@pisell/pisellos 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/Cart/index.d.ts +26 -8
- package/dist/modules/Cart/index.js +134 -122
- package/dist/modules/Cart/types.d.ts +36 -15
- package/dist/modules/Cart/types.js +3 -3
- package/dist/modules/Cart/utils.d.ts +49 -1
- package/dist/modules/Cart/utils.js +109 -0
- package/dist/modules/Date/index.js +6 -1
- package/dist/modules/Rules/index.js +6 -4
- package/dist/modules/Summary/index.js +6 -1
- package/dist/modules/Summary/utils.js +4 -5
- package/dist/solution/BookingByStep/index.d.ts +11 -4
- package/dist/solution/BookingByStep/index.js +185 -159
- package/dist/solution/BookingByStep/utils/resources.js +4 -2
- package/lib/modules/Cart/index.d.ts +26 -8
- package/lib/modules/Cart/index.js +67 -52
- package/lib/modules/Cart/types.d.ts +36 -15
- package/lib/modules/Cart/utils.d.ts +49 -1
- package/lib/modules/Cart/utils.js +74 -0
- package/lib/modules/Date/index.js +3 -0
- package/lib/modules/Rules/index.js +6 -4
- package/lib/modules/Summary/index.js +3 -0
- package/lib/modules/Summary/utils.js +4 -5
- package/lib/solution/BookingByStep/index.d.ts +11 -4
- package/lib/solution/BookingByStep/index.js +60 -30
- package/lib/solution/BookingByStep/utils/resources.js +4 -1
- package/package.json +1 -1
|
@@ -132,6 +132,36 @@ export var formatProductToCartItemOrigin = function formatProductToCartItemOrigi
|
|
|
132
132
|
return origin;
|
|
133
133
|
};
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* 格式化折扣到购物车
|
|
137
|
+
* @param params 参数
|
|
138
|
+
* @returns 格式化后的购物车
|
|
139
|
+
*/
|
|
140
|
+
export var formatDiscountToCartItem = function formatDiscountToCartItem(params) {
|
|
141
|
+
var cartItem = params.cartItem;
|
|
142
|
+
var oringin = formatDiscountToCartItemOrigin(params);
|
|
143
|
+
cartItem._origin = oringin;
|
|
144
|
+
return cartItem;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* 格式化折扣到购物车原始数据
|
|
149
|
+
* @param params 参数
|
|
150
|
+
* @returns 格式化后的购物车原始数据
|
|
151
|
+
*/
|
|
152
|
+
export var formatDiscountToCartItemOrigin = function formatDiscountToCartItemOrigin(params) {
|
|
153
|
+
var cartItem = params.cartItem,
|
|
154
|
+
discounts = params.discounts;
|
|
155
|
+
var origin = cartItem._origin;
|
|
156
|
+
if (discounts && discounts !== null && discounts !== void 0 && discounts.length) {
|
|
157
|
+
if (!origin.product) {
|
|
158
|
+
origin.product = {};
|
|
159
|
+
}
|
|
160
|
+
origin.product.discount_list = discounts;
|
|
161
|
+
}
|
|
162
|
+
return origin;
|
|
163
|
+
};
|
|
164
|
+
|
|
135
165
|
/**
|
|
136
166
|
* 格式化账户到购物车
|
|
137
167
|
* @param account 账户
|
|
@@ -179,6 +209,7 @@ export var formatResourceToCartItem = function formatResourceToCartItem(params)
|
|
|
179
209
|
}
|
|
180
210
|
var oringin = formatResourceToCartItemOrigin(params);
|
|
181
211
|
cartItem._origin = oringin;
|
|
212
|
+
cartItem._resourceOrigin = resources;
|
|
182
213
|
return cartItem;
|
|
183
214
|
};
|
|
184
215
|
export var formatResourceToCartItemOrigin = function formatResourceToCartItemOrigin(params) {
|
|
@@ -214,6 +245,84 @@ export var formatResourceToCartItemOrigin = function formatResourceToCartItemOri
|
|
|
214
245
|
return origin;
|
|
215
246
|
};
|
|
216
247
|
|
|
248
|
+
/**
|
|
249
|
+
* 从购物车中删除资源相关信息
|
|
250
|
+
* @param cartItem 购物车
|
|
251
|
+
* @returns 删除后的购物车
|
|
252
|
+
*/
|
|
253
|
+
export var deleteResourceFromCartItem = function deleteResourceFromCartItem(cartItem) {
|
|
254
|
+
// 删除UI层的数据
|
|
255
|
+
cartItem.resource_id = undefined;
|
|
256
|
+
cartItem.relation_form_name = undefined;
|
|
257
|
+
cartItem.start_date = undefined;
|
|
258
|
+
cartItem.start_time = undefined;
|
|
259
|
+
cartItem.end_date = undefined;
|
|
260
|
+
cartItem.end_time = undefined;
|
|
261
|
+
|
|
262
|
+
// 删除资源原始数据
|
|
263
|
+
delete cartItem._resourceOrigin;
|
|
264
|
+
|
|
265
|
+
// 删除原始数据
|
|
266
|
+
cartItem._origin.resources = null;
|
|
267
|
+
cartItem._origin.select_date = null;
|
|
268
|
+
cartItem._origin.start_date = null;
|
|
269
|
+
cartItem._origin.start_time = null;
|
|
270
|
+
cartItem._origin.end_date = null;
|
|
271
|
+
cartItem._origin.end_time = null;
|
|
272
|
+
return cartItem;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* 从购物车中删除时间
|
|
277
|
+
* @param cartItem 购物车
|
|
278
|
+
* @returns 删除后的购物车
|
|
279
|
+
*/
|
|
280
|
+
export var deleteTimeFromCartItem = function deleteTimeFromCartItem(cartItem) {
|
|
281
|
+
// 删除UI层的数据
|
|
282
|
+
cartItem.start_date = undefined;
|
|
283
|
+
cartItem.start_time = undefined;
|
|
284
|
+
cartItem.end_date = undefined;
|
|
285
|
+
cartItem.end_time = undefined;
|
|
286
|
+
|
|
287
|
+
// 删除原始数据
|
|
288
|
+
cartItem._origin.select_date = null;
|
|
289
|
+
cartItem._origin.start_date = null;
|
|
290
|
+
cartItem._origin.start_time = null;
|
|
291
|
+
cartItem._origin.end_date = null;
|
|
292
|
+
cartItem._origin.end_time = null;
|
|
293
|
+
return cartItem;
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* 格式化备注到购物车
|
|
298
|
+
* @param params 参数
|
|
299
|
+
* @returns 格式化后的购物车
|
|
300
|
+
*/
|
|
301
|
+
export var formatNoteToCartItem = function formatNoteToCartItem(params) {
|
|
302
|
+
var cartItem = params.cartItem,
|
|
303
|
+
note = params.note;
|
|
304
|
+
cartItem.note = note;
|
|
305
|
+
var oringin = formatNoteToCartItemOrigin(params);
|
|
306
|
+
cartItem._origin = oringin;
|
|
307
|
+
return cartItem;
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* 格式化备注到购物车原始数据
|
|
312
|
+
* @param params 参数
|
|
313
|
+
* @returns 格式化后的购物车原始数据
|
|
314
|
+
*/
|
|
315
|
+
export var formatNoteToCartItemOrigin = function formatNoteToCartItemOrigin(params) {
|
|
316
|
+
var cartItem = params.cartItem,
|
|
317
|
+
note = params.note;
|
|
318
|
+
var origin = cartItem._origin;
|
|
319
|
+
if (!origin.product) {
|
|
320
|
+
origin.product = {};
|
|
321
|
+
}
|
|
322
|
+
origin.product.note = note;
|
|
323
|
+
return origin;
|
|
324
|
+
};
|
|
325
|
+
|
|
217
326
|
/**
|
|
218
327
|
* 格式化套餐规格信息
|
|
219
328
|
* @param options 套餐规格信息
|
|
@@ -41,7 +41,12 @@ export var DateModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
41
41
|
this.core = core;
|
|
42
42
|
this.store = options.store;
|
|
43
43
|
this.request = this.core.getPlugin("request");
|
|
44
|
-
|
|
44
|
+
if (this.request) {
|
|
45
|
+
_context.next = 5;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
throw new Error("DateModule 需要 request 插件支持");
|
|
49
|
+
case 5:
|
|
45
50
|
case "end":
|
|
46
51
|
return _context.stop();
|
|
47
52
|
}
|
|
@@ -280,10 +280,12 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
280
280
|
var discountDetail = {
|
|
281
281
|
amount: product.price,
|
|
282
282
|
type: selectedDiscount.tag,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
283
|
+
discount: {
|
|
284
|
+
resource_id: selectedDiscount.id,
|
|
285
|
+
title: selectedDiscount.format_title,
|
|
286
|
+
original_amount: product.origin_total,
|
|
287
|
+
product_id: selectedDiscount.product_id
|
|
288
|
+
}
|
|
287
289
|
};
|
|
288
290
|
appliedProducts.push(discountDetail);
|
|
289
291
|
appliedDiscountProducts.set(selectedDiscount.id, appliedProducts);
|
|
@@ -40,7 +40,12 @@ export var SummaryModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
40
40
|
this.core = core;
|
|
41
41
|
this.store = options.store;
|
|
42
42
|
this.shopStore = this.core.getPlugin("shopStore");
|
|
43
|
-
|
|
43
|
+
if (this.shopStore) {
|
|
44
|
+
_context.next = 5;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
throw new Error("SummaryModule 需要 shopStore 插件支持");
|
|
48
|
+
case 5:
|
|
44
49
|
case "end":
|
|
45
50
|
return _context.stop();
|
|
46
51
|
}
|
|
@@ -24,9 +24,8 @@ export var calculateSubtotal = function calculateSubtotal(items) {
|
|
|
24
24
|
return "0.00";
|
|
25
25
|
}
|
|
26
26
|
var subtotal = items.reduce(function (sum, item) {
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
return sum.plus(price.times(quantity));
|
|
27
|
+
var cartItemTotalPrice = new Decimal(item.total || 0);
|
|
28
|
+
return sum.plus(cartItemTotalPrice);
|
|
30
29
|
}, new Decimal(0));
|
|
31
30
|
return subtotal.toFixed(2);
|
|
32
31
|
};
|
|
@@ -47,9 +46,9 @@ export var calculateTaxFee = function calculateTaxFee(shopInfo, items) {
|
|
|
47
46
|
is_price_include_tax = _ref.is_price_include_tax,
|
|
48
47
|
tax_rate = _ref.tax_rate;
|
|
49
48
|
var totalTaxFee = items.reduce(function (sum, item) {
|
|
50
|
-
var
|
|
49
|
+
var cartItemTotalPrice = new Decimal(item.total || 0);
|
|
51
50
|
var taxRate = new Decimal(tax_rate || 0).div(100);
|
|
52
|
-
var productTaxRate =
|
|
51
|
+
var productTaxRate = cartItemTotalPrice.times(taxRate).times((item === null || item === void 0 ? void 0 : item.is_charge_tax) || 0).div(taxRate.times(is_price_include_tax || 0).plus(1));
|
|
53
52
|
return sum.plus(productTaxRate);
|
|
54
53
|
}, new Decimal(0));
|
|
55
54
|
return totalTaxFee;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Module, PisellCore } from "../../types";
|
|
2
2
|
import { BaseModule } from "../../modules/BaseModule";
|
|
3
3
|
import { BookingByStepState } from "./types";
|
|
4
|
-
import { IUpdateItemParams, ProductData } from "../../modules";
|
|
4
|
+
import { CartItem, IUpdateItemParams, ProductData } from "../../modules";
|
|
5
5
|
import { Account } from "../../modules/Account/types";
|
|
6
6
|
import { IStep } from "../../modules/Step/tyeps";
|
|
7
7
|
import { TimeSliceItem } from "./utils/resources";
|
|
@@ -25,7 +25,6 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
25
25
|
back(): void;
|
|
26
26
|
gotoStep(index: number): void;
|
|
27
27
|
getStepList(): IStep[];
|
|
28
|
-
getStoreCart(key?: string): Promise<any>;
|
|
29
28
|
loadProducts({ category_ids, product_ids, collection, }: {
|
|
30
29
|
category_ids?: number[];
|
|
31
30
|
product_ids?: number[];
|
|
@@ -40,7 +39,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
40
39
|
removeAccount(id: string): void;
|
|
41
40
|
setDateRange(dateRange: ITime[]): Promise<void>;
|
|
42
41
|
getRangeDate(): Promise<string>;
|
|
43
|
-
getCart(): Promise<
|
|
42
|
+
getCart(): Promise<CartItem[]>;
|
|
44
43
|
getAvailableDate(params?: {
|
|
45
44
|
products?: ProductData[];
|
|
46
45
|
startDate?: string;
|
|
@@ -67,9 +66,17 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
67
66
|
}): Promise<void>;
|
|
68
67
|
getOtherParams(): Promise<Record<string, any>>;
|
|
69
68
|
updateCart(params: IUpdateItemParams): void;
|
|
70
|
-
deleteCart(
|
|
69
|
+
deleteCart(cartItemId: string): void;
|
|
71
70
|
clearCart(): void;
|
|
72
71
|
clearCartByAccount(account_id: string): void;
|
|
72
|
+
/**
|
|
73
|
+
* 批量更新购物车
|
|
74
|
+
*/
|
|
75
|
+
batchUpdateCart(paramsList: IUpdateItemParams[]): void;
|
|
76
|
+
/**
|
|
77
|
+
* 从购物车中按类别删除信息
|
|
78
|
+
*/
|
|
79
|
+
deleteCartItemInfo(types: "resource" | "time"): void;
|
|
73
80
|
destory(): void;
|
|
74
81
|
getResourcesList(): any[];
|
|
75
82
|
getResourceTimeSlot({ product, resources, currentResourceId, }: {
|