@pisell/pisellos 2.2.8 → 2.2.10
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 +41 -26
- package/dist/modules/Customer/index.js +1 -1
- package/dist/modules/Discount/index.d.ts +3 -0
- package/dist/modules/Discount/index.js +70 -37
- package/dist/modules/Discount/types.d.ts +16 -0
- package/dist/modules/Order/index.js +4 -1
- package/dist/modules/Order/utils.d.ts +1 -0
- package/dist/modules/Order/utils.js +9 -0
- package/dist/modules/Payment/cash.js +1 -1
- package/dist/modules/Payment/eftpos.js +1 -1
- package/dist/modules/Payment/index.js +101 -31
- package/dist/modules/Payment/types.d.ts +22 -2
- package/dist/modules/Payment/walletpass.js +8 -3
- package/dist/modules/Product/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +8 -9
- package/dist/modules/Rules/index.d.ts +16 -2
- package/dist/modules/Rules/index.js +1102 -200
- package/dist/modules/Rules/types.d.ts +8 -1
- package/dist/solution/BookingByStep/index.js +30 -8
- package/dist/solution/BookingByStep/utils/products.d.ts +6 -0
- package/dist/solution/BookingByStep/utils/products.js +10 -0
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/Checkout/index.d.ts +2 -0
- package/dist/solution/Checkout/index.js +277 -88
- package/dist/solution/Checkout/types.d.ts +2 -0
- package/dist/solution/ShopDiscount/index.d.ts +5 -0
- package/dist/solution/ShopDiscount/index.js +96 -24
- package/dist/solution/ShopDiscount/types.d.ts +9 -1
- package/dist/solution/ShopDiscount/utils.d.ts +55 -0
- package/dist/solution/ShopDiscount/utils.js +432 -3
- package/lib/modules/Cart/utils/cartProduct.js +35 -22
- package/lib/modules/Customer/index.js +1 -1
- package/lib/modules/Discount/index.d.ts +3 -0
- package/lib/modules/Discount/index.js +20 -5
- package/lib/modules/Discount/types.d.ts +16 -0
- package/lib/modules/Order/index.js +2 -0
- package/lib/modules/Order/utils.d.ts +1 -0
- package/lib/modules/Order/utils.js +11 -0
- package/lib/modules/Payment/cash.js +1 -1
- package/lib/modules/Payment/eftpos.js +1 -1
- package/lib/modules/Payment/index.js +71 -11
- package/lib/modules/Payment/types.d.ts +22 -2
- package/lib/modules/Payment/walletpass.js +15 -4
- package/lib/modules/Product/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +0 -7
- package/lib/modules/Rules/index.d.ts +16 -2
- package/lib/modules/Rules/index.js +857 -184
- package/lib/modules/Rules/types.d.ts +8 -1
- package/lib/solution/BookingByStep/index.js +19 -2
- package/lib/solution/BookingByStep/utils/products.d.ts +6 -0
- package/lib/solution/BookingByStep/utils/products.js +8 -2
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/Checkout/index.d.ts +2 -0
- package/lib/solution/Checkout/index.js +185 -25
- package/lib/solution/Checkout/types.d.ts +2 -0
- package/lib/solution/ShopDiscount/index.d.ts +5 -0
- package/lib/solution/ShopDiscount/index.js +67 -13
- package/lib/solution/ShopDiscount/types.d.ts +9 -1
- package/lib/solution/ShopDiscount/utils.d.ts +55 -0
- package/lib/solution/ShopDiscount/utils.js +266 -3
- package/package.json +2 -2
|
@@ -103,6 +103,8 @@ export interface UpdateLocalOrderParams {
|
|
|
103
103
|
cartSummary: CartSummaryItem[];
|
|
104
104
|
/** total 信息(用于拆解金额) */
|
|
105
105
|
totalInfo: any;
|
|
106
|
+
/** 云端已存在的支付项(可选,用于处理订单在其他设备或云端生成的场景) */
|
|
107
|
+
existPayment?: PaymentItem[];
|
|
106
108
|
}
|
|
107
109
|
/**
|
|
108
110
|
* 本地订单数据结构 (基于 appointmentDemo.json)
|
|
@@ -18,7 +18,12 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
|
18
18
|
private initializePlugins;
|
|
19
19
|
private registerDependentModules;
|
|
20
20
|
private registerEventListeners;
|
|
21
|
+
getCurrentBookingTime(): string | null;
|
|
22
|
+
private filterDiscountListByBookingTime;
|
|
21
23
|
setCustomer(customer: Customer): Promise<void>;
|
|
24
|
+
setHolders(holders: {
|
|
25
|
+
form_record_id: number;
|
|
26
|
+
}[]): void;
|
|
22
27
|
calcDiscount(productList: Record<string, any>[], options?: SetDiscountSelectedParams): {
|
|
23
28
|
productList: Record<string, any>[];
|
|
24
29
|
discountList: Discount[];
|
|
@@ -27,6 +27,7 @@ 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";
|
|
30
31
|
import Decimal from 'decimal.js';
|
|
31
32
|
import { isBoolean } from 'lodash-es';
|
|
32
33
|
export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
@@ -50,7 +51,10 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
50
51
|
productList: [],
|
|
51
52
|
discount: null,
|
|
52
53
|
rules: null,
|
|
53
|
-
originalDiscountList: []
|
|
54
|
+
originalDiscountList: [],
|
|
55
|
+
currentBookingTime: "",
|
|
56
|
+
filteredDiscountList: [],
|
|
57
|
+
holders: []
|
|
54
58
|
};
|
|
55
59
|
return _this;
|
|
56
60
|
}
|
|
@@ -207,6 +211,55 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
207
211
|
|
|
208
212
|
// =========== 公共 API ===========
|
|
209
213
|
|
|
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
|
+
|
|
210
263
|
// 设置客户
|
|
211
264
|
}, {
|
|
212
265
|
key: "setCustomer",
|
|
@@ -233,7 +286,14 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
233
286
|
return _setCustomer.apply(this, arguments);
|
|
234
287
|
}
|
|
235
288
|
return setCustomer;
|
|
236
|
-
}() //
|
|
289
|
+
}() // 设置holders
|
|
290
|
+
}, {
|
|
291
|
+
key: "setHolders",
|
|
292
|
+
value: function setHolders(holders) {
|
|
293
|
+
this.store.holders = holders;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// 计算优惠券
|
|
237
297
|
}, {
|
|
238
298
|
key: "calcDiscount",
|
|
239
299
|
value: function calcDiscount(productList, options) {
|
|
@@ -247,7 +307,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
247
307
|
}
|
|
248
308
|
var _ref = rulesModule.calcDiscount({
|
|
249
309
|
productList: productList,
|
|
250
|
-
discountList: this.getDiscountList()
|
|
310
|
+
discountList: this.getDiscountList(),
|
|
311
|
+
holders: this.store.holders || []
|
|
251
312
|
}, options) || {
|
|
252
313
|
productList: productList,
|
|
253
314
|
discountList: this.getDiscountList()
|
|
@@ -385,7 +446,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
385
446
|
_ref2 = rulesModule.isDiscountListAvailable({
|
|
386
447
|
productList: this.store.productList || [],
|
|
387
448
|
oldDiscountList: this.getDiscountList(),
|
|
388
|
-
newDiscountList: withScanList
|
|
449
|
+
newDiscountList: withScanList,
|
|
450
|
+
holders: this.store.holders || []
|
|
389
451
|
}) || {
|
|
390
452
|
isAvailable: false,
|
|
391
453
|
productList: this.store.productList || [],
|
|
@@ -497,7 +559,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
497
559
|
if (index !== -1) {
|
|
498
560
|
editModeDiscountList[index] = _objectSpread(_objectSpread({}, editModeDiscountList[index]), {}, {
|
|
499
561
|
amount: new Decimal(discount.amount || 0).plus(new Decimal(editModeDiscountList[index].amount || 0)).toNumber(),
|
|
500
|
-
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()
|
|
562
|
+
savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1).plus(new Decimal(editModeDiscountList[index].savedAmount || 0)).toNumber()
|
|
501
563
|
});
|
|
502
564
|
} else {
|
|
503
565
|
var _discount$discount2, _discount$discount3, _discount$discount4;
|
|
@@ -508,7 +570,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
508
570
|
name: discount.name || discount.discount.title.auto,
|
|
509
571
|
isEditMode: true,
|
|
510
572
|
limited_relation_product_data: {},
|
|
511
|
-
savedAmount: discount.amount * ((product === null || product === void 0 ? void 0 : product.num) || 1),
|
|
573
|
+
savedAmount: discount.amount * ((product === null || product === void 0 ? void 0 : product.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1),
|
|
512
574
|
isAvailable: true,
|
|
513
575
|
id: ((_discount$discount2 = discount.discount) === null || _discount$discount2 === void 0 ? void 0 : _discount$discount2.resource_id) || discount.id,
|
|
514
576
|
format_title: ((_discount$discount3 = discount.discount) === null || _discount$discount3 === void 0 ? void 0 : _discount$discount3.title) || discount.format_title,
|
|
@@ -529,17 +591,20 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
529
591
|
var targetProduct = productList.find(function (n) {
|
|
530
592
|
return n.id === id;
|
|
531
593
|
});
|
|
594
|
+
if (!targetProduct) return false;
|
|
532
595
|
var product = (_this3$hooks2 = _this3.hooks) === null || _this3$hooks2 === void 0 ? void 0 : _this3$hooks2.getProduct(targetProduct);
|
|
533
596
|
// 如果 product.total 是小于等于0有可能是她已经用过商品券或者折扣卡导致的,或者本身就是负数价格,所以此时还需要判断 origin_total 是否小于等于0
|
|
534
597
|
// 如果 product.vouchersApplicable是布尔值,并且是 false,也当做免费商品处理,此商品不可用优惠券或折扣卡
|
|
535
598
|
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);
|
|
536
599
|
};
|
|
537
|
-
var allUsedProductIds = newDiscountList.
|
|
600
|
+
var allUsedProductIds = newDiscountList.filter(function (item) {
|
|
601
|
+
return !(item !== null && item !== void 0 && item.isEditMode);
|
|
602
|
+
}).map(function (n) {
|
|
538
603
|
var _n$appliedProductDeta;
|
|
539
|
-
return n.isSelected ? (_n$appliedProductDeta = n.appliedProductDetails) === null || _n$appliedProductDeta === void 0 ? void 0 : _n$appliedProductDeta.map(function (n) {
|
|
604
|
+
return n.isSelected ? ((_n$appliedProductDeta = n.appliedProductDetails) === null || _n$appliedProductDeta === void 0 ? void 0 : _n$appliedProductDeta.map(function (n) {
|
|
540
605
|
var _n$discount;
|
|
541
606
|
return (_n$discount = n.discount) === null || _n$discount === void 0 ? void 0 : _n$discount.product_id;
|
|
542
|
-
}) : [];
|
|
607
|
+
})) || n.product_id : [];
|
|
543
608
|
}).flat();
|
|
544
609
|
newDiscountList.forEach(function (item) {
|
|
545
610
|
var _item$applicableProdu;
|
|
@@ -652,7 +717,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
652
717
|
key: "loadPrepareConfig",
|
|
653
718
|
value: function () {
|
|
654
719
|
var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(params) {
|
|
655
|
-
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, _result3;
|
|
720
|
+
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$discount8, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, _result3;
|
|
656
721
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
657
722
|
while (1) switch (_context9.prev = _context9.next) {
|
|
658
723
|
case 0:
|
|
@@ -665,7 +730,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
665
730
|
customer_id: customerId,
|
|
666
731
|
action: 'create',
|
|
667
732
|
with_good_pass: 1,
|
|
668
|
-
with_discount_card: 1
|
|
733
|
+
with_discount_card: 1,
|
|
734
|
+
with_wallet_pass_holder: 1
|
|
669
735
|
});
|
|
670
736
|
case 4:
|
|
671
737
|
goodPassList = _context9.sent;
|
|
@@ -678,31 +744,37 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
678
744
|
newGoodPassList = goodPassList === null || goodPassList === void 0 ? void 0 : goodPassList.filter(function (n) {
|
|
679
745
|
return !scanDiscountIds.includes(n.id);
|
|
680
746
|
});
|
|
681
|
-
newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || []));
|
|
747
|
+
newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || [])); // 存储原始优惠券列表
|
|
682
748
|
this.store.originalDiscountList = newDiscountList;
|
|
683
|
-
|
|
749
|
+
_context9.next = 12;
|
|
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 || []);
|
|
684
756
|
if (!((_this$store$productLi2 = this.store.productList) !== null && _this$store$productLi2 !== void 0 && _this$store$productLi2.length)) {
|
|
685
|
-
_context9.next =
|
|
757
|
+
_context9.next = 19;
|
|
686
758
|
break;
|
|
687
759
|
}
|
|
688
760
|
_result3 = this.calcDiscount(this.store.productList);
|
|
689
|
-
_context9.next =
|
|
761
|
+
_context9.next = 19;
|
|
690
762
|
return this.core.effects.emit("".concat(this.name, ":onLoadPrepareCalcResult"), _result3);
|
|
691
|
-
case 15:
|
|
692
|
-
_context9.next = 17;
|
|
693
|
-
return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), newDiscountList);
|
|
694
|
-
case 17:
|
|
695
|
-
_context9.next = 22;
|
|
696
|
-
break;
|
|
697
763
|
case 19:
|
|
698
|
-
_context9.
|
|
764
|
+
_context9.next = 21;
|
|
765
|
+
return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), filteredDiscountList);
|
|
766
|
+
case 21:
|
|
767
|
+
_context9.next = 26;
|
|
768
|
+
break;
|
|
769
|
+
case 23:
|
|
770
|
+
_context9.prev = 23;
|
|
699
771
|
_context9.t0 = _context9["catch"](0);
|
|
700
772
|
console.error('[ShopDiscount] 加载准备配置出错:', _context9.t0);
|
|
701
|
-
case
|
|
773
|
+
case 26:
|
|
702
774
|
case "end":
|
|
703
775
|
return _context9.stop();
|
|
704
776
|
}
|
|
705
|
-
}, _callee9, this, [[0,
|
|
777
|
+
}, _callee9, this, [[0, 23]]);
|
|
706
778
|
}));
|
|
707
779
|
function loadPrepareConfig(_x9) {
|
|
708
780
|
return _loadPrepareConfig.apply(this, arguments);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { DiscountModule
|
|
1
|
+
import { DiscountModule } from '../../modules/Discount';
|
|
2
2
|
import { RulesModule } from '../../modules/Rules';
|
|
3
|
+
import { Discount } from "../../modules/Discount/types";
|
|
3
4
|
export declare enum ShopDiscountHooks {
|
|
4
5
|
onInited = "shopDiscount:onInited",
|
|
5
6
|
onDestroy = "shopDiscount:onDestroy",
|
|
@@ -23,6 +24,13 @@ export interface ShopDiscountState {
|
|
|
23
24
|
rules: RulesModule | null;
|
|
24
25
|
productList: Record<string, any>[];
|
|
25
26
|
originalDiscountList: Discount[];
|
|
27
|
+
holders?: {
|
|
28
|
+
form_record_id: number;
|
|
29
|
+
form_id?: number;
|
|
30
|
+
main_field?: string;
|
|
31
|
+
}[];
|
|
32
|
+
currentBookingTime: string | null;
|
|
33
|
+
filteredDiscountList: Discount[];
|
|
26
34
|
}
|
|
27
35
|
export interface SetDiscountSelectedParams {
|
|
28
36
|
discountId: number;
|
|
@@ -1,5 +1,7 @@
|
|
|
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;
|
|
3
5
|
/**
|
|
4
6
|
* 获取折扣金额 基于折扣卡类型计算
|
|
5
7
|
* 商品券:直接返回商品价格
|
|
@@ -10,3 +12,56 @@ export declare const uniqueById: <T>(arr: T[], key?: string) => T[];
|
|
|
10
12
|
* @returns
|
|
11
13
|
*/
|
|
12
14
|
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[];
|