@pisell/pisellos 2.2.10 → 2.2.11
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/utils/cartProduct.js +26 -41
- package/dist/modules/Customer/index.js +1 -1
- package/dist/modules/Discount/index.d.ts +0 -2
- package/dist/modules/Discount/index.js +36 -69
- package/dist/modules/Discount/types.d.ts +0 -16
- package/dist/modules/Order/index.js +1 -4
- package/dist/modules/Order/utils.d.ts +0 -1
- package/dist/modules/Order/utils.js +0 -9
- package/dist/modules/Payment/index.js +2 -2
- package/dist/modules/Payment/types.d.ts +0 -1
- package/dist/modules/Payment/walletpass.js +1 -3
- package/dist/modules/Product/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +9 -8
- package/dist/modules/Rules/index.d.ts +0 -7
- package/dist/modules/Rules/index.js +196 -1065
- package/dist/modules/Rules/types.d.ts +1 -4
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +8 -30
- package/dist/solution/BookingByStep/utils/products.d.ts +0 -6
- package/dist/solution/BookingByStep/utils/products.js +0 -10
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/Checkout/index.js +49 -93
- package/dist/solution/ShopDiscount/index.d.ts +0 -2
- package/dist/solution/ShopDiscount/index.js +19 -80
- package/dist/solution/ShopDiscount/types.d.ts +1 -4
- package/dist/solution/ShopDiscount/utils.d.ts +0 -55
- package/dist/solution/ShopDiscount/utils.js +3 -432
- package/lib/modules/Cart/utils/cartProduct.js +22 -35
- package/lib/modules/Customer/index.js +1 -1
- package/lib/modules/Discount/index.d.ts +0 -2
- package/lib/modules/Discount/index.js +4 -19
- package/lib/modules/Discount/types.d.ts +0 -16
- package/lib/modules/Order/index.js +0 -2
- package/lib/modules/Order/utils.d.ts +0 -1
- package/lib/modules/Order/utils.js +0 -11
- package/lib/modules/Payment/index.js +1 -1
- package/lib/modules/Payment/types.d.ts +0 -1
- package/lib/modules/Payment/walletpass.js +1 -10
- package/lib/modules/Product/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +7 -0
- package/lib/modules/Rules/index.d.ts +0 -7
- package/lib/modules/Rules/index.js +182 -824
- package/lib/modules/Rules/types.d.ts +1 -4
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +2 -19
- package/lib/solution/BookingByStep/utils/products.d.ts +0 -6
- package/lib/solution/BookingByStep/utils/products.js +2 -8
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/Checkout/index.js +19 -68
- package/lib/solution/ShopDiscount/index.d.ts +0 -2
- package/lib/solution/ShopDiscount/index.js +9 -55
- package/lib/solution/ShopDiscount/types.d.ts +1 -4
- package/lib/solution/ShopDiscount/utils.d.ts +0 -55
- package/lib/solution/ShopDiscount/utils.js +3 -266
- package/package.json +2 -2
|
@@ -27,7 +27,6 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
27
27
|
import { BaseModule } from "../../modules/BaseModule";
|
|
28
28
|
import { DiscountModule } from "../../modules/Discount";
|
|
29
29
|
import { RulesModule } from "../../modules/Rules";
|
|
30
|
-
import { filterDiscountListByBookingTime as _filterDiscountListByBookingTime, isAllNormalProduct } from "./utils";
|
|
31
30
|
import Decimal from 'decimal.js';
|
|
32
31
|
import { isBoolean } from 'lodash-es';
|
|
33
32
|
export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
@@ -52,8 +51,6 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
52
51
|
discount: null,
|
|
53
52
|
rules: null,
|
|
54
53
|
originalDiscountList: [],
|
|
55
|
-
currentBookingTime: "",
|
|
56
|
-
filteredDiscountList: [],
|
|
57
54
|
holders: []
|
|
58
55
|
};
|
|
59
56
|
return _this;
|
|
@@ -211,55 +208,6 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
211
208
|
|
|
212
209
|
// =========== 公共 API ===========
|
|
213
210
|
|
|
214
|
-
// 设置预约时间
|
|
215
|
-
// public async setBookingTime(bookingTime: string | null): Promise<void> {
|
|
216
|
-
// if (this.store.currentBookingTime !== bookingTime) {
|
|
217
|
-
// this.store.currentBookingTime = bookingTime;
|
|
218
|
-
//
|
|
219
|
-
// // 更新过滤后的优惠券列表
|
|
220
|
-
// await this.updateFilteredDiscountList();
|
|
221
|
-
// }
|
|
222
|
-
// }
|
|
223
|
-
|
|
224
|
-
// 获取当前预约时间
|
|
225
|
-
}, {
|
|
226
|
-
key: "getCurrentBookingTime",
|
|
227
|
-
value: function getCurrentBookingTime() {
|
|
228
|
-
return this.store.currentBookingTime;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// 根据预约时间过滤优惠券列表
|
|
232
|
-
}, {
|
|
233
|
-
key: "filterDiscountListByBookingTime",
|
|
234
|
-
value: function filterDiscountListByBookingTime(discountList, bookingTime) {
|
|
235
|
-
// 如果全部是普通商品,不需要过滤,直接返回当前数据
|
|
236
|
-
if (isAllNormalProduct(this.store.productList || [])) {
|
|
237
|
-
return discountList;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// 否则使用 bookingTime 进行过滤
|
|
241
|
-
return _filterDiscountListByBookingTime(discountList, bookingTime);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// 更新过滤后的优惠券列表
|
|
245
|
-
// private async updateFilteredDiscountList(): Promise<void> {
|
|
246
|
-
// const originalList = this.store.originalDiscountList;
|
|
247
|
-
// const filteredList = this.filterDiscountListByBookingTime(originalList, this.store.currentBookingTime);
|
|
248
|
-
//
|
|
249
|
-
// this.store.filteredDiscountList = filteredList;
|
|
250
|
-
//
|
|
251
|
-
// // 更新 DiscountModule 中的优惠券列表
|
|
252
|
-
// this.setDiscountList(filteredList);
|
|
253
|
-
//
|
|
254
|
-
// if (this.store.productList?.length) {
|
|
255
|
-
// const result = this.calcDiscount(this.store.productList);
|
|
256
|
-
// await this.core.effects.emit(
|
|
257
|
-
// ShopDiscountHooks.onLoadPrepareCalcResult,
|
|
258
|
-
// result,
|
|
259
|
-
// );
|
|
260
|
-
// }
|
|
261
|
-
// }
|
|
262
|
-
|
|
263
211
|
// 设置客户
|
|
264
212
|
}, {
|
|
265
213
|
key: "setCustomer",
|
|
@@ -559,7 +507,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
559
507
|
if (index !== -1) {
|
|
560
508
|
editModeDiscountList[index] = _objectSpread(_objectSpread({}, editModeDiscountList[index]), {}, {
|
|
561
509
|
amount: new Decimal(discount.amount || 0).plus(new Decimal(editModeDiscountList[index].amount || 0)).toNumber(),
|
|
562
|
-
savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.
|
|
510
|
+
savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.num) || 1).plus(new Decimal(editModeDiscountList[index].savedAmount || 0)).toNumber()
|
|
563
511
|
});
|
|
564
512
|
} else {
|
|
565
513
|
var _discount$discount2, _discount$discount3, _discount$discount4;
|
|
@@ -570,7 +518,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
570
518
|
name: discount.name || discount.discount.title.auto,
|
|
571
519
|
isEditMode: true,
|
|
572
520
|
limited_relation_product_data: {},
|
|
573
|
-
savedAmount: discount.amount * ((product === null || product === void 0 ? void 0 : product.
|
|
521
|
+
savedAmount: discount.amount * ((product === null || product === void 0 ? void 0 : product.num) || 1),
|
|
574
522
|
isAvailable: true,
|
|
575
523
|
id: ((_discount$discount2 = discount.discount) === null || _discount$discount2 === void 0 ? void 0 : _discount$discount2.resource_id) || discount.id,
|
|
576
524
|
format_title: ((_discount$discount3 = discount.discount) === null || _discount$discount3 === void 0 ? void 0 : _discount$discount3.title) || discount.format_title,
|
|
@@ -591,20 +539,17 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
591
539
|
var targetProduct = productList.find(function (n) {
|
|
592
540
|
return n.id === id;
|
|
593
541
|
});
|
|
594
|
-
if (!targetProduct) return false;
|
|
595
542
|
var product = (_this3$hooks2 = _this3.hooks) === null || _this3$hooks2 === void 0 ? void 0 : _this3$hooks2.getProduct(targetProduct);
|
|
596
543
|
// 如果 product.total 是小于等于0有可能是她已经用过商品券或者折扣卡导致的,或者本身就是负数价格,所以此时还需要判断 origin_total 是否小于等于0
|
|
597
544
|
// 如果 product.vouchersApplicable是布尔值,并且是 false,也当做免费商品处理,此商品不可用优惠券或折扣卡
|
|
598
545
|
return Number(product === null || product === void 0 ? void 0 : product.total) <= 0 && (Number(product === null || product === void 0 ? void 0 : product.origin_total) <= 0 || !(product !== null && product !== void 0 && product.origin_total)) || isBoolean(product === null || product === void 0 ? void 0 : product.vouchersApplicable) && !(product !== null && product !== void 0 && product.vouchersApplicable);
|
|
599
546
|
};
|
|
600
|
-
var allUsedProductIds = newDiscountList.
|
|
601
|
-
return !(item !== null && item !== void 0 && item.isEditMode);
|
|
602
|
-
}).map(function (n) {
|
|
547
|
+
var allUsedProductIds = newDiscountList.map(function (n) {
|
|
603
548
|
var _n$appliedProductDeta;
|
|
604
|
-
return n.isSelected ? (
|
|
549
|
+
return n.isSelected ? (_n$appliedProductDeta = n.appliedProductDetails) === null || _n$appliedProductDeta === void 0 ? void 0 : _n$appliedProductDeta.map(function (n) {
|
|
605
550
|
var _n$discount;
|
|
606
551
|
return (_n$discount = n.discount) === null || _n$discount === void 0 ? void 0 : _n$discount.product_id;
|
|
607
|
-
})
|
|
552
|
+
}) : [];
|
|
608
553
|
}).flat();
|
|
609
554
|
newDiscountList.forEach(function (item) {
|
|
610
555
|
var _item$applicableProdu;
|
|
@@ -717,7 +662,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
717
662
|
key: "loadPrepareConfig",
|
|
718
663
|
value: function () {
|
|
719
664
|
var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(params) {
|
|
720
|
-
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$
|
|
665
|
+
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, _result3;
|
|
721
666
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
722
667
|
while (1) switch (_context9.prev = _context9.next) {
|
|
723
668
|
case 0:
|
|
@@ -744,37 +689,31 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
744
689
|
newGoodPassList = goodPassList === null || goodPassList === void 0 ? void 0 : goodPassList.filter(function (n) {
|
|
745
690
|
return !scanDiscountIds.includes(n.id);
|
|
746
691
|
});
|
|
747
|
-
newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || []));
|
|
692
|
+
newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || []));
|
|
748
693
|
this.store.originalDiscountList = newDiscountList;
|
|
749
|
-
|
|
750
|
-
return (_this$store$discount8 = this.store.discount) === null || _this$store$discount8 === void 0 ? void 0 : _this$store$discount8.setOriginalDiscountList(newDiscountList);
|
|
751
|
-
case 12:
|
|
752
|
-
// 根据当前预约时间过滤优惠券列表
|
|
753
|
-
filteredDiscountList = this.filterDiscountListByBookingTime(newDiscountList, this.store.currentBookingTime);
|
|
754
|
-
this.store.filteredDiscountList = filteredDiscountList;
|
|
755
|
-
this.setDiscountList(filteredDiscountList || []);
|
|
694
|
+
this.setDiscountList(newDiscountList || []);
|
|
756
695
|
if (!((_this$store$productLi2 = this.store.productList) !== null && _this$store$productLi2 !== void 0 && _this$store$productLi2.length)) {
|
|
757
|
-
_context9.next =
|
|
696
|
+
_context9.next = 15;
|
|
758
697
|
break;
|
|
759
698
|
}
|
|
760
699
|
_result3 = this.calcDiscount(this.store.productList);
|
|
761
|
-
_context9.next =
|
|
700
|
+
_context9.next = 15;
|
|
762
701
|
return this.core.effects.emit("".concat(this.name, ":onLoadPrepareCalcResult"), _result3);
|
|
763
|
-
case
|
|
764
|
-
_context9.next =
|
|
765
|
-
return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"),
|
|
766
|
-
case
|
|
767
|
-
_context9.next =
|
|
702
|
+
case 15:
|
|
703
|
+
_context9.next = 17;
|
|
704
|
+
return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), newDiscountList);
|
|
705
|
+
case 17:
|
|
706
|
+
_context9.next = 22;
|
|
768
707
|
break;
|
|
769
|
-
case
|
|
770
|
-
_context9.prev =
|
|
708
|
+
case 19:
|
|
709
|
+
_context9.prev = 19;
|
|
771
710
|
_context9.t0 = _context9["catch"](0);
|
|
772
711
|
console.error('[ShopDiscount] 加载准备配置出错:', _context9.t0);
|
|
773
|
-
case
|
|
712
|
+
case 22:
|
|
774
713
|
case "end":
|
|
775
714
|
return _context9.stop();
|
|
776
715
|
}
|
|
777
|
-
}, _callee9, this, [[0,
|
|
716
|
+
}, _callee9, this, [[0, 19]]);
|
|
778
717
|
}));
|
|
779
718
|
function loadPrepareConfig(_x9) {
|
|
780
719
|
return _loadPrepareConfig.apply(this, arguments);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { DiscountModule } from '../../modules/Discount';
|
|
1
|
+
import { DiscountModule, Discount } from '../../modules/Discount';
|
|
2
2
|
import { RulesModule } from '../../modules/Rules';
|
|
3
|
-
import { Discount } from "../../modules/Discount/types";
|
|
4
3
|
export declare enum ShopDiscountHooks {
|
|
5
4
|
onInited = "shopDiscount:onInited",
|
|
6
5
|
onDestroy = "shopDiscount:onDestroy",
|
|
@@ -29,8 +28,6 @@ export interface ShopDiscountState {
|
|
|
29
28
|
form_id?: number;
|
|
30
29
|
main_field?: string;
|
|
31
30
|
}[];
|
|
32
|
-
currentBookingTime: string | null;
|
|
33
|
-
filteredDiscountList: Discount[];
|
|
34
31
|
}
|
|
35
32
|
export interface SetDiscountSelectedParams {
|
|
36
33
|
discountId: number;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Discount } from "../../modules/Discount/types";
|
|
2
2
|
export declare const uniqueById: <T>(arr: T[], key?: string) => T[];
|
|
3
|
-
export declare const isNormalProductByDurationSchedule: (item: any) => boolean;
|
|
4
|
-
export declare const isAllNormalProduct: (items: any[]) => boolean;
|
|
5
3
|
/**
|
|
6
4
|
* 获取折扣金额 基于折扣卡类型计算
|
|
7
5
|
* 商品券:直接返回商品价格
|
|
@@ -12,56 +10,3 @@ export declare const isAllNormalProduct: (items: any[]) => boolean;
|
|
|
12
10
|
* @returns
|
|
13
11
|
*/
|
|
14
12
|
export declare const getDiscountAmount: (discount: Discount, total: number, price: number) => number;
|
|
15
|
-
export declare const getDiscountListAmountTotal: (discount: Discount[]) => any;
|
|
16
|
-
/**
|
|
17
|
-
* 获取折扣金额 计算每个折扣的金额
|
|
18
|
-
* @param discount
|
|
19
|
-
* @returns
|
|
20
|
-
*/
|
|
21
|
-
export declare const getDiscountListAmount: (discount: Discount[]) => any;
|
|
22
|
-
export interface ScheduleItem {
|
|
23
|
-
id: number;
|
|
24
|
-
name: string | {
|
|
25
|
-
[key: string]: string;
|
|
26
|
-
};
|
|
27
|
-
type: 'standard' | 'time-slots' | 'designation';
|
|
28
|
-
start_time: string | null;
|
|
29
|
-
end_time: string | null;
|
|
30
|
-
repeat_type: 'none' | 'daily' | 'weekly';
|
|
31
|
-
repeat_rule: {
|
|
32
|
-
end: {
|
|
33
|
-
type: 'never' | 'date' | 'occurrence';
|
|
34
|
-
end_date: string | null;
|
|
35
|
-
occurrence: number | null;
|
|
36
|
-
};
|
|
37
|
-
frequency: number;
|
|
38
|
-
excluded_date: Array<{
|
|
39
|
-
start: string;
|
|
40
|
-
end: string;
|
|
41
|
-
}>;
|
|
42
|
-
included_date: Array<{
|
|
43
|
-
start: string;
|
|
44
|
-
end: string;
|
|
45
|
-
}>;
|
|
46
|
-
frequency_date: number[];
|
|
47
|
-
} | null;
|
|
48
|
-
designation: Array<{
|
|
49
|
-
start_date: string;
|
|
50
|
-
start_time: string;
|
|
51
|
-
end_date: string;
|
|
52
|
-
end_time: string;
|
|
53
|
-
}> | null;
|
|
54
|
-
is_all: number;
|
|
55
|
-
time_slot: Array<{
|
|
56
|
-
start_time: string;
|
|
57
|
-
end_time: string;
|
|
58
|
-
}>;
|
|
59
|
-
}
|
|
60
|
-
export declare const getDateIsInSchedule: (dateTime: string, scheduleList: ScheduleItem[]) => boolean;
|
|
61
|
-
/**
|
|
62
|
-
* 根据预约时间过滤优惠券列表
|
|
63
|
-
* @param discountList 优惠券列表
|
|
64
|
-
* @param bookingTime 预约时间 (格式: YYYY-MM-DD HH:mm:ss)
|
|
65
|
-
* @returns 过滤后的优惠券列表
|
|
66
|
-
*/
|
|
67
|
-
export declare const filterDiscountListByBookingTime: (discountList: Discount[], bookingTime: string | null) => Discount[];
|