@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.
Files changed (55) hide show
  1. package/dist/modules/Cart/utils/cartProduct.js +26 -41
  2. package/dist/modules/Customer/index.js +1 -1
  3. package/dist/modules/Discount/index.d.ts +0 -2
  4. package/dist/modules/Discount/index.js +36 -69
  5. package/dist/modules/Discount/types.d.ts +0 -16
  6. package/dist/modules/Order/index.js +1 -4
  7. package/dist/modules/Order/utils.d.ts +0 -1
  8. package/dist/modules/Order/utils.js +0 -9
  9. package/dist/modules/Payment/index.js +2 -2
  10. package/dist/modules/Payment/types.d.ts +0 -1
  11. package/dist/modules/Payment/walletpass.js +1 -3
  12. package/dist/modules/Product/index.d.ts +1 -1
  13. package/dist/modules/ProductList/index.js +9 -8
  14. package/dist/modules/Rules/index.d.ts +0 -7
  15. package/dist/modules/Rules/index.js +196 -1065
  16. package/dist/modules/Rules/types.d.ts +1 -4
  17. package/dist/solution/BookingByStep/index.d.ts +1 -1
  18. package/dist/solution/BookingByStep/index.js +8 -30
  19. package/dist/solution/BookingByStep/utils/products.d.ts +0 -6
  20. package/dist/solution/BookingByStep/utils/products.js +0 -10
  21. package/dist/solution/BookingTicket/index.d.ts +1 -1
  22. package/dist/solution/Checkout/index.js +49 -93
  23. package/dist/solution/ShopDiscount/index.d.ts +0 -2
  24. package/dist/solution/ShopDiscount/index.js +19 -80
  25. package/dist/solution/ShopDiscount/types.d.ts +1 -4
  26. package/dist/solution/ShopDiscount/utils.d.ts +0 -55
  27. package/dist/solution/ShopDiscount/utils.js +3 -432
  28. package/lib/modules/Cart/utils/cartProduct.js +22 -35
  29. package/lib/modules/Customer/index.js +1 -1
  30. package/lib/modules/Discount/index.d.ts +0 -2
  31. package/lib/modules/Discount/index.js +4 -19
  32. package/lib/modules/Discount/types.d.ts +0 -16
  33. package/lib/modules/Order/index.js +0 -2
  34. package/lib/modules/Order/utils.d.ts +0 -1
  35. package/lib/modules/Order/utils.js +0 -11
  36. package/lib/modules/Payment/index.js +1 -1
  37. package/lib/modules/Payment/types.d.ts +0 -1
  38. package/lib/modules/Payment/walletpass.js +1 -10
  39. package/lib/modules/Product/index.d.ts +1 -1
  40. package/lib/modules/ProductList/index.js +7 -0
  41. package/lib/modules/Rules/index.d.ts +0 -7
  42. package/lib/modules/Rules/index.js +182 -824
  43. package/lib/modules/Rules/types.d.ts +1 -4
  44. package/lib/solution/BookingByStep/index.d.ts +1 -1
  45. package/lib/solution/BookingByStep/index.js +2 -19
  46. package/lib/solution/BookingByStep/utils/products.d.ts +0 -6
  47. package/lib/solution/BookingByStep/utils/products.js +2 -8
  48. package/lib/solution/BookingTicket/index.d.ts +1 -1
  49. package/lib/solution/Checkout/index.js +19 -68
  50. package/lib/solution/ShopDiscount/index.d.ts +0 -2
  51. package/lib/solution/ShopDiscount/index.js +9 -55
  52. package/lib/solution/ShopDiscount/types.d.ts +1 -4
  53. package/lib/solution/ShopDiscount/utils.d.ts +0 -55
  54. package/lib/solution/ShopDiscount/utils.js +3 -266
  55. 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.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1).plus(new Decimal(editModeDiscountList[index].savedAmount || 0)).toNumber()
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.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1),
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.filter(function (item) {
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 ? ((_n$appliedProductDeta = n.appliedProductDetails) === null || _n$appliedProductDeta === void 0 ? void 0 : _n$appliedProductDeta.map(function (n) {
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
- })) || n.product_id : [];
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$discount8, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, _result3;
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
- _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 || []);
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 = 19;
696
+ _context9.next = 15;
758
697
  break;
759
698
  }
760
699
  _result3 = this.calcDiscount(this.store.productList);
761
- _context9.next = 19;
700
+ _context9.next = 15;
762
701
  return this.core.effects.emit("".concat(this.name, ":onLoadPrepareCalcResult"), _result3);
763
- case 19:
764
- _context9.next = 21;
765
- return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), filteredDiscountList);
766
- case 21:
767
- _context9.next = 26;
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 23:
770
- _context9.prev = 23;
708
+ case 19:
709
+ _context9.prev = 19;
771
710
  _context9.t0 = _context9["catch"](0);
772
711
  console.error('[ShopDiscount] 加载准备配置出错:', _context9.t0);
773
- case 26:
712
+ case 22:
774
713
  case "end":
775
714
  return _context9.stop();
776
715
  }
777
- }, _callee9, this, [[0, 23]]);
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[];