@pisell/pisellos 2.1.62 → 2.1.64
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/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/model/index.d.ts +1 -0
- package/dist/model/index.js +1 -0
- package/dist/model/strategy/adapter/index.d.ts +3 -0
- package/dist/model/strategy/adapter/index.js +4 -0
- package/dist/model/strategy/adapter/type.d.ts +28 -0
- package/dist/model/strategy/adapter/type.js +1 -0
- package/dist/model/strategy/adapter/walletPass/evaluator.d.ts +84 -0
- package/dist/model/strategy/adapter/walletPass/evaluator.js +497 -0
- package/dist/model/strategy/adapter/walletPass/example.d.ts +4 -0
- package/dist/model/strategy/adapter/walletPass/example.js +258 -0
- package/dist/model/strategy/adapter/walletPass/index.d.ts +32 -0
- package/dist/model/strategy/adapter/walletPass/index.js +182 -0
- package/dist/model/strategy/adapter/walletPass/locales.d.ts +1 -0
- package/dist/model/strategy/adapter/walletPass/locales.js +23 -0
- package/dist/model/strategy/adapter/walletPass/type.d.ts +163 -0
- package/dist/model/strategy/adapter/walletPass/type.js +1 -0
- package/dist/model/strategy/adapter/walletPass/utils.d.ts +50 -0
- package/dist/model/strategy/adapter/walletPass/utils.js +965 -0
- package/dist/model/strategy/index.d.ts +94 -0
- package/dist/model/strategy/index.js +551 -0
- package/dist/model/strategy/strategy-example.d.ts +5 -0
- package/dist/model/strategy/strategy-example.js +331 -0
- package/dist/model/strategy/type.d.ts +228 -0
- package/dist/model/strategy/type.js +94 -0
- package/dist/modules/Cart/types.d.ts +2 -0
- package/dist/modules/Cart/utils/cartProduct.js +11 -0
- package/dist/modules/Discount/index.js +1 -1
- package/dist/modules/Discount/types.d.ts +15 -0
- package/dist/modules/Payment/index.d.ts +2 -1
- package/dist/modules/Payment/index.js +10 -7
- package/dist/modules/Payment/utils.js +3 -0
- package/dist/modules/Payment/walletpass.d.ts +23 -0
- package/dist/modules/Payment/walletpass.js +191 -95
- package/dist/modules/Rules/index.d.ts +8 -3
- package/dist/modules/Rules/index.js +164 -34
- package/dist/modules/Rules/types.d.ts +1 -0
- package/dist/modules/Summary/types.d.ts +2 -0
- package/dist/modules/Summary/utils.d.ts +6 -0
- package/dist/modules/Summary/utils.js +21 -0
- package/dist/plugins/window.d.ts +2 -0
- package/dist/solution/BookingByStep/index.d.ts +2 -0
- package/dist/solution/BookingByStep/index.js +12 -1
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/Checkout/index.js +2 -0
- package/dist/solution/ShopDiscount/index.d.ts +1 -0
- package/dist/solution/ShopDiscount/index.js +11 -1
- package/dist/solution/ShopDiscount/types.d.ts +1 -0
- package/dist/solution/ShopDiscount/utils.js +26 -11
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -1
- package/lib/model/index.d.ts +1 -0
- package/lib/model/index.js +23 -0
- package/lib/model/strategy/adapter/index.d.ts +3 -0
- package/lib/model/strategy/adapter/index.js +45 -0
- package/lib/model/strategy/adapter/type.d.ts +28 -0
- package/lib/model/strategy/adapter/type.js +17 -0
- package/lib/model/strategy/adapter/walletPass/evaluator.d.ts +84 -0
- package/lib/model/strategy/adapter/walletPass/evaluator.js +421 -0
- package/lib/model/strategy/adapter/walletPass/example.d.ts +4 -0
- package/lib/model/strategy/adapter/walletPass/example.js +207 -0
- package/lib/model/strategy/adapter/walletPass/index.d.ts +32 -0
- package/lib/model/strategy/adapter/walletPass/index.js +142 -0
- package/lib/model/strategy/adapter/walletPass/locales.d.ts +1 -0
- package/lib/model/strategy/adapter/walletPass/locales.js +51 -0
- package/lib/model/strategy/adapter/walletPass/type.d.ts +163 -0
- package/lib/model/strategy/adapter/walletPass/type.js +17 -0
- package/lib/model/strategy/adapter/walletPass/utils.d.ts +50 -0
- package/lib/model/strategy/adapter/walletPass/utils.js +660 -0
- package/lib/model/strategy/index.d.ts +94 -0
- package/lib/model/strategy/index.js +413 -0
- package/lib/model/strategy/strategy-example.d.ts +5 -0
- package/lib/model/strategy/strategy-example.js +318 -0
- package/lib/model/strategy/type.d.ts +228 -0
- package/lib/model/strategy/type.js +44 -0
- package/lib/modules/Cart/types.d.ts +2 -0
- package/lib/modules/Cart/utils/cartProduct.js +9 -0
- package/lib/modules/Discount/index.js +1 -1
- package/lib/modules/Discount/types.d.ts +15 -0
- package/lib/modules/Payment/index.d.ts +2 -1
- package/lib/modules/Payment/index.js +1 -0
- package/lib/modules/Payment/utils.js +3 -0
- package/lib/modules/Payment/walletpass.d.ts +23 -0
- package/lib/modules/Payment/walletpass.js +94 -17
- package/lib/modules/Rules/index.d.ts +8 -3
- package/lib/modules/Rules/index.js +381 -199
- package/lib/modules/Rules/types.d.ts +1 -0
- package/lib/modules/Summary/types.d.ts +2 -0
- package/lib/modules/Summary/utils.d.ts +6 -0
- package/lib/modules/Summary/utils.js +15 -0
- package/lib/plugins/window.d.ts +2 -0
- package/lib/solution/BookingByStep/index.d.ts +2 -0
- package/lib/solution/BookingByStep/index.js +12 -1
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/Checkout/index.js +2 -0
- package/lib/solution/ShopDiscount/index.d.ts +1 -0
- package/lib/solution/ShopDiscount/index.js +6 -0
- package/lib/solution/ShopDiscount/types.d.ts +1 -0
- package/lib/solution/ShopDiscount/utils.js +10 -6
- package/package.json +1 -1
|
@@ -8,6 +8,12 @@ export declare const calculatePriceDetails: (shopInfo: any, items: CartItem[]) =
|
|
|
8
8
|
* @returns 商品总价字符串,保留2位小数
|
|
9
9
|
*/
|
|
10
10
|
export declare const calculateSubtotal: (items: CartItem[]) => string;
|
|
11
|
+
/**
|
|
12
|
+
* 计算商品小计(不含其他费用 不包含折扣卡商品券抵扣金额)
|
|
13
|
+
* @param items - 购物车商品数组
|
|
14
|
+
* @returns 商品总价字符串,保留2位小数
|
|
15
|
+
*/
|
|
16
|
+
export declare const calculateOriginSubtotal: (items: CartItem[]) => string;
|
|
11
17
|
/**
|
|
12
18
|
* @title: 单个商品的税费
|
|
13
19
|
* @description:
|
|
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
var utils_exports = {};
|
|
31
31
|
__export(utils_exports, {
|
|
32
32
|
calculateDeposit: () => calculateDeposit,
|
|
33
|
+
calculateOriginSubtotal: () => calculateOriginSubtotal,
|
|
33
34
|
calculatePriceDetails: () => calculatePriceDetails,
|
|
34
35
|
calculateSubtotal: () => calculateSubtotal,
|
|
35
36
|
calculateTaxFee: () => calculateTaxFee
|
|
@@ -38,12 +39,15 @@ module.exports = __toCommonJS(utils_exports);
|
|
|
38
39
|
var import_decimal = __toESM(require("decimal.js"));
|
|
39
40
|
var calculatePriceDetails = (shopInfo, items) => {
|
|
40
41
|
const subtotal = new import_decimal.default(calculateSubtotal(items));
|
|
42
|
+
const subOriginTotal = new import_decimal.default(calculateOriginSubtotal(items));
|
|
41
43
|
const totalTaxFee = new import_decimal.default(calculateTaxFee(shopInfo, items));
|
|
42
44
|
const total = (shopInfo == null ? void 0 : shopInfo.is_price_include_tax) ? subtotal : subtotal.plus(totalTaxFee);
|
|
45
|
+
const originTotal = (shopInfo == null ? void 0 : shopInfo.is_price_include_tax) ? subOriginTotal : subOriginTotal.plus(totalTaxFee);
|
|
43
46
|
const deposit = calculateDeposit(items);
|
|
44
47
|
return {
|
|
45
48
|
subtotal: subtotal.toFixed(2),
|
|
46
49
|
total: total.toFixed(2),
|
|
50
|
+
originTotal: originTotal.toFixed(2),
|
|
47
51
|
taxTitle: shopInfo == null ? void 0 : shopInfo.tax_title,
|
|
48
52
|
totalTaxFee: totalTaxFee.toFixed(2),
|
|
49
53
|
isPriceIncludeTax: shopInfo == null ? void 0 : shopInfo.is_price_include_tax,
|
|
@@ -60,6 +64,16 @@ var calculateSubtotal = (items) => {
|
|
|
60
64
|
}, new import_decimal.default(0));
|
|
61
65
|
return subtotal.toFixed(2);
|
|
62
66
|
};
|
|
67
|
+
var calculateOriginSubtotal = (items) => {
|
|
68
|
+
if (!(items == null ? void 0 : items.length)) {
|
|
69
|
+
return "0.00";
|
|
70
|
+
}
|
|
71
|
+
const subtotal = items.reduce((sum, item) => {
|
|
72
|
+
const cartItemTotalPrice = new import_decimal.default(item.summaryOriginTotal || 0);
|
|
73
|
+
return sum.plus(cartItemTotalPrice);
|
|
74
|
+
}, new import_decimal.default(0));
|
|
75
|
+
return subtotal.toFixed(2);
|
|
76
|
+
};
|
|
63
77
|
var calculateTaxFee = (shopInfo, items) => {
|
|
64
78
|
if (!(items == null ? void 0 : items.length)) {
|
|
65
79
|
return "0.00";
|
|
@@ -101,6 +115,7 @@ var calculateDeposit = (items) => {
|
|
|
101
115
|
// Annotate the CommonJS export names for ESM import in node:
|
|
102
116
|
0 && (module.exports = {
|
|
103
117
|
calculateDeposit,
|
|
118
|
+
calculateOriginSubtotal,
|
|
104
119
|
calculatePriceDetails,
|
|
105
120
|
calculateSubtotal,
|
|
106
121
|
calculateTaxFee
|
package/lib/plugins/window.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { WalletPassEvaluator } from '../model';
|
|
1
2
|
import { Plugin } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* WindowPlugin 接口定义
|
|
@@ -14,6 +15,7 @@ export interface WindowPlugin extends Plugin {
|
|
|
14
15
|
document: Partial<Document>;
|
|
15
16
|
history: History;
|
|
16
17
|
interaction?: any;
|
|
18
|
+
getWalletPassEvaluator?: () => WalletPassEvaluator;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* 简单的 Storage 接口实现
|
|
@@ -144,6 +144,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
144
144
|
getSummary(): Promise<{
|
|
145
145
|
subtotal: string | number;
|
|
146
146
|
total: string | number;
|
|
147
|
+
originTotal: string | number;
|
|
147
148
|
taxTitle?: string | undefined;
|
|
148
149
|
totalTaxFee?: string | number | undefined;
|
|
149
150
|
isPriceIncludeTax?: 0 | 1 | undefined;
|
|
@@ -315,6 +316,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
315
316
|
end_at: dayjs.Dayjs;
|
|
316
317
|
count: number;
|
|
317
318
|
left: number;
|
|
319
|
+
summaryCount: number;
|
|
318
320
|
}[];
|
|
319
321
|
/**
|
|
320
322
|
* 找到多个资源的公共可用时间段
|
|
@@ -1735,8 +1735,10 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1735
1735
|
const resourcesUseableMap = {};
|
|
1736
1736
|
let count = 0;
|
|
1737
1737
|
let bookingLeft = 0;
|
|
1738
|
+
let summaryCount = 0;
|
|
1738
1739
|
allProductResources == null ? void 0 : allProductResources.forEach((m) => {
|
|
1739
1740
|
let currentResourcesCount = 0;
|
|
1741
|
+
let currentResourcesSummaryCount = 0;
|
|
1740
1742
|
const currentResourcesTimeSlotCanUsedArr = [];
|
|
1741
1743
|
const mTimes = m.times.filter((n) => {
|
|
1742
1744
|
return !(0, import_dayjs.default)(n.start_at).isAfter((0, import_dayjs.default)(item.start), "minute") && !(0, import_dayjs.default)(n.end_at).isBefore((0, import_dayjs.default)(item.end), "minute") || (0, import_dayjs.default)(n.start_at).isBefore((0, import_dayjs.default)(item.end), "minute") && (0, import_dayjs.default)(n.end_at).isAfter((0, import_dayjs.default)(item.start), "minute");
|
|
@@ -1764,6 +1766,9 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1764
1766
|
if (res.usable && res.remainingCapacity >= count && !m.onlyComputed) {
|
|
1765
1767
|
currentResourcesCount = res.remainingCapacity;
|
|
1766
1768
|
}
|
|
1769
|
+
if (res.usable && !m.onlyComputed && res.remainingCapacity >= currentResourcesSummaryCount) {
|
|
1770
|
+
currentResourcesSummaryCount = res.remainingCapacity;
|
|
1771
|
+
}
|
|
1767
1772
|
currentResourcesTimeSlotCanUsedArr.push(res.usable);
|
|
1768
1773
|
});
|
|
1769
1774
|
if (!currentResourcesTimeSlotCanUsedArr.some(
|
|
@@ -1775,6 +1780,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1775
1780
|
}
|
|
1776
1781
|
if (!m.onlyComputed) {
|
|
1777
1782
|
bookingLeft += 1;
|
|
1783
|
+
summaryCount += currentResourcesSummaryCount;
|
|
1778
1784
|
}
|
|
1779
1785
|
}
|
|
1780
1786
|
});
|
|
@@ -1789,6 +1795,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1789
1795
|
if (sameCartItems.length > 0 && sameCartItems.length >= currentResourcesSet.size || sameCartItems.length > bookingLeft) {
|
|
1790
1796
|
bookingLeft = 0;
|
|
1791
1797
|
count = 0;
|
|
1798
|
+
summaryCount = 0;
|
|
1792
1799
|
}
|
|
1793
1800
|
const otherCartItems = cartItems2.filter((m) => {
|
|
1794
1801
|
var _a2, _b2, _c2;
|
|
@@ -1814,6 +1821,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1814
1821
|
if (currentResourcesSet.size > 0 && otherCartItems.length + sameCartItems.length >= currentResourcesSet.size) {
|
|
1815
1822
|
bookingLeft = 0;
|
|
1816
1823
|
count = 0;
|
|
1824
|
+
summaryCount = 0;
|
|
1817
1825
|
}
|
|
1818
1826
|
} else {
|
|
1819
1827
|
const sameCartItems = cartItems2.filter((m) => {
|
|
@@ -1825,6 +1833,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1825
1833
|
if (sameCartNeedCapacity >= currentProductResourcesCapacity) {
|
|
1826
1834
|
bookingLeft = 0;
|
|
1827
1835
|
count = 0;
|
|
1836
|
+
summaryCount = 0;
|
|
1828
1837
|
}
|
|
1829
1838
|
const otherSameTimesCartItems = cartItems2.filter((m) => `${m.start_date} ${m.start_time}` === item.start && `${m.start_date} ${m.end_time}` === item.end);
|
|
1830
1839
|
const otherCartNeedCapacity = otherSameTimesCartItems.reduce((acc, curr) => acc + (0, import_capacity.getCapacityInfoByCartItem)(curr).currentCapacity, 0);
|
|
@@ -1869,6 +1878,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1869
1878
|
if (otherCartNeedCapacity + usedCapacity >= currentTypeResourcesCapacity) {
|
|
1870
1879
|
bookingLeft = 0;
|
|
1871
1880
|
count = 0;
|
|
1881
|
+
summaryCount = 0;
|
|
1872
1882
|
}
|
|
1873
1883
|
}
|
|
1874
1884
|
});
|
|
@@ -1880,7 +1890,8 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1880
1890
|
start_at: startDayJs,
|
|
1881
1891
|
end_at: endDayJs,
|
|
1882
1892
|
count,
|
|
1883
|
-
left: bookingLeft
|
|
1893
|
+
left: bookingLeft,
|
|
1894
|
+
summaryCount
|
|
1884
1895
|
};
|
|
1885
1896
|
});
|
|
1886
1897
|
return formatScheduleTimeSlots;
|
|
@@ -115,7 +115,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
115
115
|
* 获取当前的客户搜索条件
|
|
116
116
|
* @returns 当前搜索条件
|
|
117
117
|
*/
|
|
118
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
118
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
|
|
119
119
|
/**
|
|
120
120
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
121
121
|
* @returns 客户状态
|
|
@@ -222,6 +222,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
222
222
|
product_id: item.product_id,
|
|
223
223
|
product_variant_id: item.product_variant_id,
|
|
224
224
|
quantity: item.num,
|
|
225
|
+
is_price_include_tax: item.is_price_include_tax,
|
|
225
226
|
// 商品是否含税:1;0
|
|
226
227
|
is_charge_tax: item.is_charge_tax ?? 0,
|
|
227
228
|
// 若商品不含税,计算得到的税费,单位(元)
|
|
@@ -246,6 +247,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
|
|
|
246
247
|
},
|
|
247
248
|
product_bundle: item.product_bundle.map((bundle) => {
|
|
248
249
|
return {
|
|
250
|
+
is_price_include_tax: item.is_price_include_tax,
|
|
249
251
|
bundle_id: bundle.bundle_id,
|
|
250
252
|
bundle_product_id: bundle.bundle_product_id,
|
|
251
253
|
bundle_variant_id: bundle.bundle_variant_id,
|
|
@@ -21,6 +21,7 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
|
21
21
|
getCurrentBookingTime(): string | null;
|
|
22
22
|
private filterDiscountListByBookingTime;
|
|
23
23
|
setCustomer(customer: Customer): Promise<void>;
|
|
24
|
+
setOriginTotalAmount(amount: number): void;
|
|
24
25
|
setHolders(holders: {
|
|
25
26
|
form_record_id: number;
|
|
26
27
|
}[]): void;
|
|
@@ -55,6 +55,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
55
55
|
originalDiscountList: [],
|
|
56
56
|
currentBookingTime: "",
|
|
57
57
|
filteredDiscountList: [],
|
|
58
|
+
orderTotalAmount: 0,
|
|
58
59
|
bookingSubject: void 0
|
|
59
60
|
};
|
|
60
61
|
}
|
|
@@ -193,6 +194,9 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
193
194
|
);
|
|
194
195
|
}
|
|
195
196
|
}
|
|
197
|
+
setOriginTotalAmount(amount) {
|
|
198
|
+
this.store.orderTotalAmount = amount;
|
|
199
|
+
}
|
|
196
200
|
// 设置holders
|
|
197
201
|
setHolders(holders) {
|
|
198
202
|
this.store.holders = holders;
|
|
@@ -213,6 +217,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
213
217
|
productList,
|
|
214
218
|
discountList: this.getDiscountList(),
|
|
215
219
|
holders: this.store.holders || [],
|
|
220
|
+
orderTotalAmount: this.store.orderTotalAmount || 0,
|
|
216
221
|
isFormSubject: ((_a = this.store.bookingSubject) == null ? void 0 : _a.type) === "form"
|
|
217
222
|
},
|
|
218
223
|
options
|
|
@@ -304,6 +309,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
304
309
|
oldDiscountList: this.getDiscountList(),
|
|
305
310
|
newDiscountList: withScanList,
|
|
306
311
|
holders: this.store.holders || [],
|
|
312
|
+
orderTotalAmount: this.store.orderTotalAmount || 0,
|
|
307
313
|
isFormSubject: ((_b = this.store.bookingSubject) == null ? void 0 : _b.type) === "form"
|
|
308
314
|
}) || {
|
|
309
315
|
isAvailable: false,
|
|
@@ -54,14 +54,18 @@ var isAllNormalProduct = (items) => {
|
|
|
54
54
|
};
|
|
55
55
|
var getDiscountAmount = (discount, total, price) => {
|
|
56
56
|
var _a;
|
|
57
|
+
let discountedPrice = 0;
|
|
57
58
|
if (discount.tag === "good_pass") {
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
discountedPrice = new import_decimal.default(price).minus(new import_decimal.default(price || 0)).toNumber();
|
|
60
|
+
} else {
|
|
61
|
+
const isFixedAmount = ((_a = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a.discount_card_type) === "fixed_amount";
|
|
62
|
+
if (isFixedAmount) {
|
|
63
|
+
discountedPrice = Math.max(new import_decimal.default(price).minus(new import_decimal.default(discount.par_value || 0)).toNumber(), 0);
|
|
64
|
+
} else {
|
|
65
|
+
discountedPrice = new import_decimal.default(100).minus(discount.par_value || 0).div(100).mul(new import_decimal.default(price)).toNumber();
|
|
66
|
+
}
|
|
63
67
|
}
|
|
64
|
-
return
|
|
68
|
+
return discountedPrice;
|
|
65
69
|
};
|
|
66
70
|
var getDiscountListAmountTotal = (discount) => {
|
|
67
71
|
return discount.reduce((acc, cur) => {
|