@pisell/pisellos 3.0.94 → 3.0.96

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.
@@ -0,0 +1,9 @@
1
+ // 导出评估器
2
+ export { PromotionEvaluator } from "./evaluator";
3
+
4
+ // 导出适配器
5
+ export { PromotionAdapter } from "./adapter";
6
+ export { default } from "./adapter";
7
+
8
+ // 导出策略配置示例常量
9
+ export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY } from "./examples";
@@ -23,8 +23,8 @@ function _updateAllCartItemPrice() {
23
23
  _iterator = _createForOfIteratorHelper(cartItems);
24
24
  _context2.prev = 1;
25
25
  _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
26
- var _item$_productOrigin, _bundle;
27
- var item, targetProduct, cartProduct, productInfo, bundle, _productInfo$variant;
26
+ var _item$_productOrigin$, _item$_productOrigin, _item$_origin, _targetProduct$varian, _ref, _targetVariant$price, _ref2, _targetVariant$base_p, _item$_productOrigin2, _bundle;
27
+ var item, targetProduct, cartProduct, productInfo, variantId, targetVariant, bundle, _productInfo$variant;
28
28
  return _regeneratorRuntime().wrap(function _loop$(_context) {
29
29
  while (1) switch (_context.prev = _context.next) {
30
30
  case 0:
@@ -40,10 +40,17 @@ function _updateAllCartItemPrice() {
40
40
  if (!productInfo) {
41
41
  productInfo = item._productOrigin;
42
42
  }
43
- bundle = item._bundleOrigin;
44
- productInfo.price = targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.price;
45
- productInfo.base_price = targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.base_price;
46
- productInfo.product_variant_id = (_item$_productOrigin = item._productOrigin) === null || _item$_productOrigin === void 0 ? void 0 : _item$_productOrigin.product_variant_id;
43
+
44
+ // 查找选择的规格id
45
+ variantId = (_item$_productOrigin$ = item === null || item === void 0 || (_item$_productOrigin = item._productOrigin) === null || _item$_productOrigin === void 0 ? void 0 : _item$_productOrigin.product_variant_id) !== null && _item$_productOrigin$ !== void 0 ? _item$_productOrigin$ : item === null || item === void 0 || (_item$_origin = item._origin) === null || _item$_origin === void 0 || (_item$_origin = _item$_origin.product) === null || _item$_origin === void 0 ? void 0 : _item$_origin.product_variant_id;
46
+ targetVariant = targetProduct === null || targetProduct === void 0 || (_targetProduct$varian = targetProduct.variant) === null || _targetProduct$varian === void 0 ? void 0 : _targetProduct$varian.find(function (variant) {
47
+ return Number(variant.id) === Number(variantId);
48
+ });
49
+ bundle = item._bundleOrigin; // productInfo.price = targetProduct?.price;
50
+ // productInfo.base_price = targetProduct?.base_price;
51
+ productInfo.price = (_ref = (_targetVariant$price = targetVariant === null || targetVariant === void 0 ? void 0 : targetVariant.price) !== null && _targetVariant$price !== void 0 ? _targetVariant$price : targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.price) !== null && _ref !== void 0 ? _ref : productInfo.price;
52
+ productInfo.base_price = (_ref2 = (_targetVariant$base_p = targetVariant === null || targetVariant === void 0 ? void 0 : targetVariant.base_price) !== null && _targetVariant$base_p !== void 0 ? _targetVariant$base_p : targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.base_price) !== null && _ref2 !== void 0 ? _ref2 : productInfo.base_price;
53
+ productInfo.product_variant_id = (_item$_productOrigin2 = item._productOrigin) === null || _item$_productOrigin2 === void 0 ? void 0 : _item$_productOrigin2.product_variant_id;
47
54
  bundle = (_bundle = bundle) === null || _bundle === void 0 ? void 0 : _bundle.map(function (n) {
48
55
  var _targetProduct$bundle;
49
56
  // 更新 bundle 的价格
@@ -75,8 +82,8 @@ function _updateAllCartItemPrice() {
75
82
  // 如果有返回variant,则把对应variant的数据也补充进去
76
83
  if (targetProduct !== null && targetProduct !== void 0 && targetProduct.variant) {
77
84
  productInfo.variant = (_productInfo$variant = productInfo.variant) === null || _productInfo$variant === void 0 ? void 0 : _productInfo$variant.map(function (n) {
78
- var _targetProduct$varian;
79
- var targetVariant = (_targetProduct$varian = targetProduct.variant) === null || _targetProduct$varian === void 0 ? void 0 : _targetProduct$varian.find(function (m) {
85
+ var _targetProduct$varian2;
86
+ var targetVariant = (_targetProduct$varian2 = targetProduct.variant) === null || _targetProduct$varian2 === void 0 ? void 0 : _targetProduct$varian2.find(function (m) {
80
87
  return m.id === n.id;
81
88
  });
82
89
  if (targetVariant) {
@@ -99,7 +106,7 @@ function _updateAllCartItemPrice() {
99
106
  bundle: bundle,
100
107
  options: item._optionsOrigin
101
108
  });
102
- case 15:
109
+ case 17:
103
110
  case "end":
104
111
  return _context.stop();
105
112
  }
@@ -17,12 +17,13 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
17
17
  setOriginalDiscountList(originalDiscountList: Discount[]): Promise<void>;
18
18
  getOriginalDiscountList(): Discount[];
19
19
  loadPrepareConfig(params: {
20
- action?: 'create';
20
+ action?: 'create' | 'edit';
21
21
  with_good_pass: 0 | 1;
22
22
  with_discount_card: 0 | 1;
23
23
  customer_id: number;
24
24
  with_wallet_pass_holder: 0 | 1;
25
25
  request_timezone: string;
26
+ order_id?: number;
26
27
  }): Promise<Discount[]>;
27
28
  batchSearch(code: string, customerId?: number): Promise<DiscountWithReason>;
28
29
  filterEnabledDiscountList(discountList: Discount[]): Discount[];
@@ -71,7 +71,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
71
71
  enhancePayload?: SubmitPayloadEnhancer;
72
72
  }): Promise<T>;
73
73
  createOrder(params: CommitOrderParams['query']): {
74
- type: "appointment_booking" | "virtual";
74
+ type: "virtual" | "appointment_booking";
75
75
  platform: string;
76
76
  sales_channel: string;
77
77
  order_sales_channel: string;
@@ -1805,7 +1805,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1805
1805
  // 套餐适用范围配置
1806
1806
  var packageScope = usageRules === null || usageRules === void 0 ? void 0 : usageRules.package_scope;
1807
1807
  var _ref8 = packageScope || {},
1808
- scopeType = _ref8.type,
1808
+ _ref8$type = _ref8.type,
1809
+ scopeType = _ref8$type === void 0 ? 'product_all' : _ref8$type,
1809
1810
  _ref8$exclude_bundle_ = _ref8.exclude_bundle_product_ids,
1810
1811
  exclude_bundle_product_ids = _ref8$exclude_bundle_ === void 0 ? [] : _ref8$exclude_bundle_,
1811
1812
  _ref8$include_bundle_ = _ref8.include_bundle_product_ids,
@@ -325,7 +325,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
325
325
  date: string;
326
326
  status: string;
327
327
  week: string;
328
- weekNum: 0 | 5 | 1 | 4 | 2 | 3 | 6;
328
+ weekNum: 0 | 1 | 2 | 3 | 4 | 5 | 6;
329
329
  }[]>;
330
330
  submitTimeSlot(timeSlots: TimeSliceItem): void;
331
331
  private getScheduleDataByIds;
@@ -25,6 +25,7 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
25
25
  setHolders(holders: {
26
26
  form_record_id: number;
27
27
  }[]): void;
28
+ setOrderId(id?: number): void;
28
29
  setBookingSubject(bookingSubject: {
29
30
  type?: 'form' | 'customer';
30
31
  [key: string]: any;
@@ -56,7 +56,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
56
56
  originalDiscountList: [],
57
57
  currentBookingTime: "",
58
58
  filteredDiscountList: [],
59
- bookingSubject: undefined
59
+ bookingSubject: undefined,
60
+ orderId: undefined
60
61
  };
61
62
  return _this;
62
63
  }
@@ -294,6 +295,11 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
294
295
  value: function setHolders(holders) {
295
296
  this.store.holders = holders;
296
297
  }
298
+ }, {
299
+ key: "setOrderId",
300
+ value: function setOrderId(id) {
301
+ this.store.orderId = id;
302
+ }
297
303
  }, {
298
304
  key: "setBookingSubject",
299
305
  value: function setBookingSubject(bookingSubject) {
@@ -686,24 +692,27 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
686
692
  key: "loadPrepareConfig",
687
693
  value: function () {
688
694
  var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(params) {
689
- var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$discount8, _this$store$productLi, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, result;
695
+ var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$discount8, _this$store$productLi, orderId, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, result;
690
696
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
691
697
  while (1) switch (_context8.prev = _context8.next) {
692
698
  case 0:
693
699
  _context8.prev = 0;
700
+ orderId = this.store.orderId;
694
701
  customerId = params.customerId || ((_this$getCustomer2 = this.getCustomer()) === null || _this$getCustomer2 === void 0 ? void 0 : _this$getCustomer2.id); // if (customerId === 1 || !customerId) {
695
702
  // return
696
703
  // }
697
- _context8.next = 4;
698
- return (_this$store$discount7 = this.store.discount) === null || _this$store$discount7 === void 0 ? void 0 : _this$store$discount7.loadPrepareConfig({
704
+ _context8.next = 5;
705
+ return (_this$store$discount7 = this.store.discount) === null || _this$store$discount7 === void 0 ? void 0 : _this$store$discount7.loadPrepareConfig(_objectSpread({
699
706
  customer_id: customerId,
700
- action: 'create',
707
+ action: orderId ? 'edit' : 'create',
701
708
  with_good_pass: 1,
702
709
  with_discount_card: 1,
703
710
  with_wallet_pass_holder: 1,
704
711
  request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
705
- });
706
- case 4:
712
+ }, orderId ? {
713
+ order_id: orderId
714
+ } : {}));
715
+ case 5:
707
716
  goodPassList = _context8.sent;
708
717
  scanDiscount = (_this$getDiscountList = this.getDiscountList()) === null || _this$getDiscountList === void 0 ? void 0 : _this$getDiscountList.filter(function (item) {
709
718
  return item.isScan;
@@ -716,35 +725,35 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
716
725
  });
717
726
  newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || [])); // 存储原始优惠券列表
718
727
  this.store.originalDiscountList = newDiscountList;
719
- _context8.next = 12;
728
+ _context8.next = 13;
720
729
  return (_this$store$discount8 = this.store.discount) === null || _this$store$discount8 === void 0 ? void 0 : _this$store$discount8.setOriginalDiscountList(newDiscountList);
721
- case 12:
730
+ case 13:
722
731
  // 根据当前预约时间过滤优惠券列表
723
732
  filteredDiscountList = this.filterDiscountListByBookingTime(newDiscountList, this.store.currentBookingTime);
724
733
  this.store.filteredDiscountList = filteredDiscountList;
725
734
  this.setDiscountList(filteredDiscountList || []);
726
735
  if (!((_this$store$productLi = this.store.productList) !== null && _this$store$productLi !== void 0 && _this$store$productLi.length)) {
727
- _context8.next = 19;
736
+ _context8.next = 20;
728
737
  break;
729
738
  }
730
739
  result = this.calcDiscount(this.store.productList);
731
- _context8.next = 19;
740
+ _context8.next = 20;
732
741
  return this.core.effects.emit(ShopDiscountHooks.onLoadPrepareCalcResult, result);
733
- case 19:
734
- _context8.next = 21;
742
+ case 20:
743
+ _context8.next = 22;
735
744
  return this.core.effects.emit(ShopDiscountHooks.onLoadDiscountList, filteredDiscountList);
736
- case 21:
737
- _context8.next = 26;
745
+ case 22:
746
+ _context8.next = 27;
738
747
  break;
739
- case 23:
740
- _context8.prev = 23;
748
+ case 24:
749
+ _context8.prev = 24;
741
750
  _context8.t0 = _context8["catch"](0);
742
751
  console.error('[ShopDiscount] 加载准备配置出错:', _context8.t0);
743
- case 26:
752
+ case 27:
744
753
  case "end":
745
754
  return _context8.stop();
746
755
  }
747
- }, _callee8, this, [[0, 23]]);
756
+ }, _callee8, this, [[0, 24]]);
748
757
  }));
749
758
  function loadPrepareConfig(_x8) {
750
759
  return _loadPrepareConfig.apply(this, arguments);
@@ -35,4 +35,5 @@ export interface ShopDiscountState {
35
35
  type?: 'form' | 'customer';
36
36
  [key: string]: any;
37
37
  };
38
+ orderId?: number;
38
39
  }
@@ -34,7 +34,7 @@ __export(changePrice_exports, {
34
34
  module.exports = __toCommonJS(changePrice_exports);
35
35
  var import_decimal = __toESM(require("decimal.js"));
36
36
  async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCart, updateItemInitInfo) {
37
- var _a, _b;
37
+ var _a, _b, _c, _d, _e, _f;
38
38
  for (const item of cartItems) {
39
39
  const targetProduct = priceData.find((n) => n.id === item.id);
40
40
  const cartProduct = await getProduct(
@@ -44,10 +44,14 @@ async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCa
44
44
  if (!productInfo) {
45
45
  productInfo = item._productOrigin;
46
46
  }
47
+ const variantId = ((_a = item == null ? void 0 : item._productOrigin) == null ? void 0 : _a.product_variant_id) ?? ((_c = (_b = item == null ? void 0 : item._origin) == null ? void 0 : _b.product) == null ? void 0 : _c.product_variant_id);
48
+ const targetVariant = (_d = targetProduct == null ? void 0 : targetProduct.variant) == null ? void 0 : _d.find(
49
+ (variant) => Number(variant.id) === Number(variantId)
50
+ );
47
51
  let bundle = item._bundleOrigin;
48
- productInfo.price = targetProduct == null ? void 0 : targetProduct.price;
49
- productInfo.base_price = targetProduct == null ? void 0 : targetProduct.base_price;
50
- productInfo.product_variant_id = (_a = item._productOrigin) == null ? void 0 : _a.product_variant_id;
52
+ productInfo.price = (targetVariant == null ? void 0 : targetVariant.price) ?? (targetProduct == null ? void 0 : targetProduct.price) ?? productInfo.price;
53
+ productInfo.base_price = (targetVariant == null ? void 0 : targetVariant.base_price) ?? (targetProduct == null ? void 0 : targetProduct.base_price) ?? productInfo.base_price;
54
+ productInfo.product_variant_id = (_e = item._productOrigin) == null ? void 0 : _e.product_variant_id;
51
55
  bundle = bundle == null ? void 0 : bundle.map((n) => {
52
56
  var _a2;
53
57
  const targetBundle = (_a2 = targetProduct == null ? void 0 : targetProduct.bundle_group) == null ? void 0 : _a2.find(
@@ -76,14 +80,14 @@ async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCa
76
80
  return n;
77
81
  });
78
82
  if (targetProduct == null ? void 0 : targetProduct.variant) {
79
- productInfo.variant = (_b = productInfo.variant) == null ? void 0 : _b.map((n) => {
83
+ productInfo.variant = (_f = productInfo.variant) == null ? void 0 : _f.map((n) => {
80
84
  var _a2;
81
- const targetVariant = (_a2 = targetProduct.variant) == null ? void 0 : _a2.find((m) => m.id === n.id);
82
- if (targetVariant) {
85
+ const targetVariant2 = (_a2 = targetProduct.variant) == null ? void 0 : _a2.find((m) => m.id === n.id);
86
+ if (targetVariant2) {
83
87
  return {
84
88
  ...n,
85
- price: targetVariant.price,
86
- base_price: targetVariant.base_price
89
+ price: targetVariant2.price,
90
+ base_price: targetVariant2.base_price
87
91
  };
88
92
  }
89
93
  return n;
@@ -17,12 +17,13 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
17
17
  setOriginalDiscountList(originalDiscountList: Discount[]): Promise<void>;
18
18
  getOriginalDiscountList(): Discount[];
19
19
  loadPrepareConfig(params: {
20
- action?: 'create';
20
+ action?: 'create' | 'edit';
21
21
  with_good_pass: 0 | 1;
22
22
  with_discount_card: 0 | 1;
23
23
  customer_id: number;
24
24
  with_wallet_pass_holder: 0 | 1;
25
25
  request_timezone: string;
26
+ order_id?: number;
26
27
  }): Promise<Discount[]>;
27
28
  batchSearch(code: string, customerId?: number): Promise<DiscountWithReason>;
28
29
  filterEnabledDiscountList(discountList: Discount[]): Discount[];
@@ -71,7 +71,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
71
71
  enhancePayload?: SubmitPayloadEnhancer;
72
72
  }): Promise<T>;
73
73
  createOrder(params: CommitOrderParams['query']): {
74
- type: "appointment_booking" | "virtual";
74
+ type: "virtual" | "appointment_booking";
75
75
  platform: string;
76
76
  sales_channel: string;
77
77
  order_sales_channel: string;
@@ -1382,7 +1382,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1382
1382
  }
1383
1383
  const ruleType = usageRules.type;
1384
1384
  const packageScope = usageRules == null ? void 0 : usageRules.package_scope;
1385
- const { type: scopeType, exclude_bundle_product_ids = [], include_bundle_product_ids = [], filter = 0 } = packageScope || {};
1385
+ const { type: scopeType = "product_all", exclude_bundle_product_ids = [], include_bundle_product_ids = [], filter = 0 } = packageScope || {};
1386
1386
  const isMainProduct = flatItem.type === "main";
1387
1387
  const isBundleItem = flatItem.type === "bundle";
1388
1388
  if (isMainProduct) {
@@ -325,7 +325,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
325
325
  date: string;
326
326
  status: string;
327
327
  week: string;
328
- weekNum: 0 | 5 | 1 | 4 | 2 | 3 | 6;
328
+ weekNum: 0 | 1 | 2 | 3 | 4 | 5 | 6;
329
329
  }[]>;
330
330
  submitTimeSlot(timeSlots: TimeSliceItem): void;
331
331
  private getScheduleDataByIds;
@@ -25,6 +25,7 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
25
25
  setHolders(holders: {
26
26
  form_record_id: number;
27
27
  }[]): void;
28
+ setOrderId(id?: number): void;
28
29
  setBookingSubject(bookingSubject: {
29
30
  type?: 'form' | 'customer';
30
31
  [key: string]: any;
@@ -56,7 +56,8 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
56
56
  originalDiscountList: [],
57
57
  currentBookingTime: "",
58
58
  filteredDiscountList: [],
59
- bookingSubject: void 0
59
+ bookingSubject: void 0,
60
+ orderId: void 0
60
61
  };
61
62
  }
62
63
  // =========== 生命周期方法 ===========
@@ -198,6 +199,9 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
198
199
  setHolders(holders) {
199
200
  this.store.holders = holders;
200
201
  }
202
+ setOrderId(id) {
203
+ this.store.orderId = id;
204
+ }
201
205
  setBookingSubject(bookingSubject) {
202
206
  this.store.bookingSubject = bookingSubject;
203
207
  }
@@ -465,14 +469,16 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
465
469
  async loadPrepareConfig(params) {
466
470
  var _a, _b, _c, _d, _e;
467
471
  try {
472
+ const orderId = this.store.orderId;
468
473
  const customerId = params.customerId || ((_a = this.getCustomer()) == null ? void 0 : _a.id);
469
474
  const goodPassList = await ((_b = this.store.discount) == null ? void 0 : _b.loadPrepareConfig({
470
475
  customer_id: customerId,
471
- action: "create",
476
+ action: orderId ? "edit" : "create",
472
477
  with_good_pass: 1,
473
478
  with_discount_card: 1,
474
479
  with_wallet_pass_holder: 1,
475
- request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
480
+ request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
481
+ ...orderId ? { order_id: orderId } : {}
476
482
  }));
477
483
  const scanDiscount = (_c = this.getDiscountList()) == null ? void 0 : _c.filter(
478
484
  (item) => item.isScan
@@ -35,4 +35,5 @@ export interface ShopDiscountState {
35
35
  type?: 'form' | 'customer';
36
36
  [key: string]: any;
37
37
  };
38
+ orderId?: number;
38
39
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "3.0.94",
4
+ "version": "3.0.96",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",