@pisell/pisellos 0.0.23 → 0.0.24

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.
@@ -23,7 +23,7 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
23
23
  filterEnabledDiscountList(discountList: Discount[]): Discount[];
24
24
  uniqueByProductId(discountList: Discount[]): Discount[];
25
25
  filterDiscountListByProductIds(discountList: Discount[], productIds: number[]): Discount[];
26
- calcDiscountApplicableProductTotalPrice(discount: Discount): number;
26
+ calcDiscountApplicableProductTotalPrice(discount: Discount): number | undefined;
27
27
  destroy(): Promise<void>;
28
28
  clear(): Promise<void>;
29
29
  storeChange(): void;
@@ -193,13 +193,15 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
193
193
  }, {
194
194
  key: "calcDiscountApplicableProductTotalPrice",
195
195
  value: function calcDiscountApplicableProductTotalPrice(discount) {
196
+ if (discount !== null && discount !== void 0 && discount.savedAmount) {
197
+ return (discount === null || discount === void 0 ? void 0 : discount.savedAmount) || 0;
198
+ }
196
199
  if (discount.appliedProductDetails) {
197
200
  return discount.appliedProductDetails.reduce(function (total, product) {
198
201
  var price = Number(product === null || product === void 0 ? void 0 : product.amount) || 0;
199
202
  return total + price;
200
203
  }, 0);
201
204
  }
202
- return (discount === null || discount === void 0 ? void 0 : discount.savedAmount) || 0;
203
205
  }
204
206
  }, {
205
207
  key: "destroy",
@@ -205,10 +205,19 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
205
205
  sortedProductList.forEach(function (originProduct) {
206
206
  var product = _this3.hooks.getProduct(originProduct);
207
207
  addModeDiscount.forEach(function (discount) {
208
+ var _product$discount_lis, _product$discount_lis2;
208
209
  var limitedData = discount === null || discount === void 0 ? void 0 : discount.limited_relation_product_data;
209
210
 
211
+ // 是符合折扣的商品
212
+ var isLimitedProduct = limitedData.type === "product_all" || limitedData.product_ids && limitedData.product_ids.includes(product.id);
213
+
214
+ // 编辑的商品 使用了优惠券不可用
215
+ var isAvailableProduct = !(product !== null && product !== void 0 && product.booking_id && product !== null && product !== void 0 && (_product$discount_lis = product.discount_list) !== null && _product$discount_lis !== void 0 && _product$discount_lis.length && product !== null && product !== void 0 && (_product$discount_lis2 = product.discount_list) !== null && _product$discount_lis2 !== void 0 && _product$discount_lis2.every(function (discount) {
216
+ return discount.id;
217
+ }));
218
+
210
219
  // 判断优惠券是否适用于该商品
211
- if (!(product !== null && product !== void 0 && product.booking_id) && (limitedData.type === "product_all" || limitedData.product_ids && limitedData.product_ids.includes(product.id))) {
220
+ if (isAvailableProduct && isLimitedProduct) {
212
221
  var _discountApplicabilit;
213
222
  // 记录此优惠券适用的商品
214
223
  (_discountApplicabilit = discountApplicability.get(discount.id)) === null || _discountApplicabilit === void 0 || _discountApplicabilit.push(product.id);
@@ -231,9 +240,11 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
231
240
 
232
241
  // 然后再处理应用哪些优惠券,此时只考虑filteredDiscountList中的优惠券
233
242
  sortedProductList.forEach(function (originProduct) {
234
- var _product$discount_lis;
243
+ var _product$discount_lis3, _product$discount_lis4, _product$discount_lis5;
235
244
  var product = _this3.hooks.getProduct(originProduct);
236
- if (product !== null && product !== void 0 && product.booking_id) {
245
+ if (product !== null && product !== void 0 && product.booking_id && (_product$discount_lis3 = product.discount_list) !== null && _product$discount_lis3 !== void 0 && _product$discount_lis3.length && product !== null && product !== void 0 && (_product$discount_lis4 = product.discount_list) !== null && _product$discount_lis4 !== void 0 && _product$discount_lis4.every(function (discount) {
246
+ return discount.id;
247
+ })) {
237
248
  processedProductsMap.set(product._id, originProduct);
238
249
  return;
239
250
  }
@@ -257,7 +268,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
257
268
  var selectedDiscount = applicableDiscounts[0];
258
269
 
259
270
  // 如果是手动折扣,则不适用优惠券
260
- var isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && !((_product$discount_lis = product.discount_list) !== null && _product$discount_lis !== void 0 && _product$discount_lis.length);
271
+ var isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && !((_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.length);
261
272
 
262
273
  // 勾选时覆盖手动折扣
263
274
  if (options !== null && options !== void 0 && options.discountId && (options === null || options === void 0 ? void 0 : options.discountId) === (selectedDiscount === null || selectedDiscount === void 0 ? void 0 : selectedDiscount.id)) {
@@ -274,6 +285,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
274
285
  })));
275
286
  return;
276
287
  }
288
+ if (applicableDiscounts.length && product.booking_id && typeof selectedDiscount.isManualSelect === 'undefined') {
289
+ return;
290
+ }
277
291
 
278
292
  // 标记优惠券为已使用
279
293
  usedDiscounts.set(selectedDiscount.id, true);
@@ -331,7 +345,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
331
345
  // 如果此优惠券被明确设置为不选中,保持其状态,但正确设置isAvailable
332
346
  if (typeof discount.isSelected === "boolean" && discount.isSelected === false && discount.isManualSelect) {
333
347
  return _objectSpread(_objectSpread({}, discount), {}, {
334
- isUsed: false,
335
348
  isSelected: false,
336
349
  isAvailable: isAvailable,
337
350
  // 正确设置可用性
@@ -344,7 +357,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
344
357
  }
345
358
  if (usedDiscounts.get(discount.id)) {
346
359
  return _objectSpread(_objectSpread({}, discount), {}, {
347
- isUsed: true,
348
360
  isSelected: true,
349
361
  // 标记为可用,因为它已被应用
350
362
  isAvailable: true,
@@ -359,7 +371,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
359
371
  var isSelected = typeof discount.isSelected === "boolean" ? discount.isSelected : undefined;
360
372
 
361
373
  // 如果是可用的 并且没有手动标记 则设置为选中
362
- if (isAvailable && !discount.isManualSelect) {
374
+ if (isAvailable && appliedProductDetails.length && !discount.isManualSelect) {
363
375
  isSelected = true;
364
376
  } else if (!appliedProductDetails.length) {
365
377
  isSelected = false;
@@ -235,6 +235,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
235
235
  }, {
236
236
  key: "calcDiscount",
237
237
  value: function calcDiscount(productList, options) {
238
+ this.store.productList = productList;
238
239
  var rulesModule = this.core.getModule("".concat(this.name, "_rules"));
239
240
  if (!rulesModule) {
240
241
  return {
@@ -252,7 +253,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
252
253
  newProductList = _ref.productList,
253
254
  newDiscountList = _ref.discountList;
254
255
  if (newDiscountList) {
255
- this.setDiscountList(newDiscountList);
256
+ newDiscountList = this.setDiscountList(newDiscountList);
256
257
  }
257
258
  return {
258
259
  productList: newProductList || productList,
@@ -275,8 +276,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
275
276
  return _objectSpread(_objectSpread({}, discount), {}, {
276
277
  isSelected: isSelected,
277
278
  // 手动设置不使用
278
- isManualSelect: !isSelected,
279
- isUsed: isSelected
279
+ isManualSelect: !isSelected
280
280
  });
281
281
  }
282
282
  return discount;
@@ -423,47 +423,39 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
423
423
  }() // 设置优惠券列表
424
424
  }, {
425
425
  key: "setDiscountList",
426
- value: function () {
427
- var _setDiscountList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(discountList) {
428
- var _this$store$discount5;
429
- var productList, editModeDiscountList, newDiscountList;
430
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
431
- while (1) switch (_context7.prev = _context7.next) {
432
- case 0:
433
- productList = this.store.productList || [];
434
- editModeDiscountList = [];
435
- productList.forEach(function (item) {
436
- if (item.booking_id) {
437
- editModeDiscountList.push.apply(editModeDiscountList, _toConsumableArray((item.discount_list || []).map(function (item) {
438
- return _objectSpread(_objectSpread({}, item), {}, {
439
- isEditMode: true,
440
- limited_relation_product_data: {},
441
- savedAmount: item.amount,
442
- isAvailable: true,
443
- id: item.discount.resource_id,
444
- format_title: item.discount.title,
445
- isDisabled: true,
446
- isSelected: true,
447
- product_id: item.discount.product_id
448
- });
449
- })));
450
- }
451
- });
452
- newDiscountList = uniqueById([].concat(editModeDiscountList, _toConsumableArray(discountList)), "product_id");
453
- (_this$store$discount5 = this.store.discount) === null || _this$store$discount5 === void 0 || _this$store$discount5.setDiscountList(newDiscountList);
454
- _context7.next = 7;
455
- return this.emitDiscountListChange(newDiscountList);
456
- case 7:
457
- case "end":
458
- return _context7.stop();
459
- }
460
- }, _callee7, this);
461
- }));
462
- function setDiscountList(_x6) {
463
- return _setDiscountList.apply(this, arguments);
464
- }
465
- return setDiscountList;
466
- }() // 获取优惠券列表
426
+ value: function setDiscountList(discountList) {
427
+ var _this$store$discount5;
428
+ var productList = this.store.productList || [];
429
+ var editModeDiscountList = [];
430
+ productList.forEach(function (item) {
431
+ if (item.booking_id) {
432
+ (item.discount_list || []).forEach(function (discount) {
433
+ if (discount.id) {
434
+ var _discount$discount, _discount$discount2, _discount$discount3;
435
+ editModeDiscountList.push(_objectSpread(_objectSpread({}, discount), {}, {
436
+ isEditMode: true,
437
+ limited_relation_product_data: {},
438
+ savedAmount: discount.amount,
439
+ isAvailable: true,
440
+ id: ((_discount$discount = discount.discount) === null || _discount$discount === void 0 ? void 0 : _discount$discount.resource_id) || discount.id,
441
+ format_title: ((_discount$discount2 = discount.discount) === null || _discount$discount2 === void 0 ? void 0 : _discount$discount2.title) || discount.format_title,
442
+ isDisabled: true,
443
+ isSelected: true,
444
+ product_id: ((_discount$discount3 = discount.discount) === null || _discount$discount3 === void 0 ? void 0 : _discount$discount3.product_id) || discount.product_id
445
+ }));
446
+ }
447
+ });
448
+ }
449
+ });
450
+ var newDiscountList = uniqueById([].concat(editModeDiscountList, _toConsumableArray(discountList.filter(function (item) {
451
+ return !item.isDisabled;
452
+ }))), "product_id");
453
+ (_this$store$discount5 = this.store.discount) === null || _this$store$discount5 === void 0 || _this$store$discount5.setDiscountList(newDiscountList);
454
+ this.emitDiscountListChange(newDiscountList);
455
+ return newDiscountList;
456
+ }
457
+
458
+ // 获取优惠券列表
467
459
  }, {
468
460
  key: "getDiscountList",
469
461
  value: function getDiscountList() {
@@ -475,35 +467,35 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
475
467
  }, {
476
468
  key: "getCustomerWallet",
477
469
  value: function () {
478
- var _getCustomerWallet = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(id) {
470
+ var _getCustomerWallet = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(id) {
479
471
  var result, _result$data, wallet_pass_list, customer;
480
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
481
- while (1) switch (_context8.prev = _context8.next) {
472
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
473
+ while (1) switch (_context7.prev = _context7.next) {
482
474
  case 0:
483
- _context8.prev = 0;
484
- _context8.next = 3;
475
+ _context7.prev = 0;
476
+ _context7.next = 3;
485
477
  return this.request.get("/customer/info/wallet/".concat(id), {
486
478
  wallet_pass_tags: ["good_pass"]
487
479
  });
488
480
  case 3:
489
- result = _context8.sent;
481
+ result = _context7.sent;
490
482
  if (result !== null && result !== void 0 && result.data) {
491
483
  _result$data = result.data, wallet_pass_list = _result$data.wallet_pass_list, customer = _objectWithoutProperties(_result$data, _excluded);
492
484
  this.setCustomer(customer);
493
485
  }
494
- _context8.next = 10;
486
+ _context7.next = 10;
495
487
  break;
496
488
  case 7:
497
- _context8.prev = 7;
498
- _context8.t0 = _context8["catch"](0);
499
- console.error("[ShopDiscount] 获取客户钱包信息出错:", _context8.t0);
489
+ _context7.prev = 7;
490
+ _context7.t0 = _context7["catch"](0);
491
+ console.error("[ShopDiscount] 获取客户钱包信息出错:", _context7.t0);
500
492
  case 10:
501
493
  case "end":
502
- return _context8.stop();
494
+ return _context7.stop();
503
495
  }
504
- }, _callee8, this, [[0, 7]]);
496
+ }, _callee7, this, [[0, 7]]);
505
497
  }));
506
- function getCustomerWallet(_x7) {
498
+ function getCustomerWallet(_x6) {
507
499
  return _getCustomerWallet.apply(this, arguments);
508
500
  }
509
501
  return getCustomerWallet;
@@ -511,48 +503,48 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
511
503
  }, {
512
504
  key: "loadPrepareConfig",
513
505
  value: function () {
514
- var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(params) {
506
+ var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(params) {
515
507
  var _this$getCustomer2, _this$store$discount7, _this$store$productLi, customerId, goodPassList, result;
516
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
517
- while (1) switch (_context9.prev = _context9.next) {
508
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
509
+ while (1) switch (_context8.prev = _context8.next) {
518
510
  case 0:
519
- _context9.prev = 0;
511
+ _context8.prev = 0;
520
512
  customerId = params.customerId || ((_this$getCustomer2 = this.getCustomer()) === null || _this$getCustomer2 === void 0 ? void 0 : _this$getCustomer2.id); // if (customerId === 1 || !customerId) {
521
513
  // return
522
514
  // }
523
- _context9.next = 4;
515
+ _context8.next = 4;
524
516
  return (_this$store$discount7 = this.store.discount) === null || _this$store$discount7 === void 0 ? void 0 : _this$store$discount7.loadPrepareConfig({
525
517
  customer_id: customerId,
526
518
  action: "create",
527
519
  with_good_pass: 1
528
520
  });
529
521
  case 4:
530
- goodPassList = _context9.sent;
522
+ goodPassList = _context8.sent;
531
523
  this.setDiscountList(goodPassList || []);
532
524
  if (!((_this$store$productLi = this.store.productList) !== null && _this$store$productLi !== void 0 && _this$store$productLi.length)) {
533
- _context9.next = 10;
525
+ _context8.next = 10;
534
526
  break;
535
527
  }
536
528
  result = this.calcDiscount(this.store.productList);
537
- _context9.next = 10;
529
+ _context8.next = 10;
538
530
  return this.core.effects.emit(ShopDiscountHooks.onLoadPrepareCalcResult, result);
539
531
  case 10:
540
- _context9.next = 12;
532
+ _context8.next = 12;
541
533
  return this.core.effects.emit(ShopDiscountHooks.onLoadDiscountList, goodPassList);
542
534
  case 12:
543
- _context9.next = 17;
535
+ _context8.next = 17;
544
536
  break;
545
537
  case 14:
546
- _context9.prev = 14;
547
- _context9.t0 = _context9["catch"](0);
548
- console.error("[ShopDiscount] 加载准备配置出错:", _context9.t0);
538
+ _context8.prev = 14;
539
+ _context8.t0 = _context8["catch"](0);
540
+ console.error("[ShopDiscount] 加载准备配置出错:", _context8.t0);
549
541
  case 17:
550
542
  case "end":
551
- return _context9.stop();
543
+ return _context8.stop();
552
544
  }
553
- }, _callee9, this, [[0, 14]]);
545
+ }, _callee8, this, [[0, 14]]);
554
546
  }));
555
- function loadPrepareConfig(_x8) {
547
+ function loadPrepareConfig(_x7) {
556
548
  return _loadPrepareConfig.apply(this, arguments);
557
549
  }
558
550
  return loadPrepareConfig;
@@ -23,7 +23,7 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
23
23
  filterEnabledDiscountList(discountList: Discount[]): Discount[];
24
24
  uniqueByProductId(discountList: Discount[]): Discount[];
25
25
  filterDiscountListByProductIds(discountList: Discount[], productIds: number[]): Discount[];
26
- calcDiscountApplicableProductTotalPrice(discount: Discount): number;
26
+ calcDiscountApplicableProductTotalPrice(discount: Discount): number | undefined;
27
27
  destroy(): Promise<void>;
28
28
  clear(): Promise<void>;
29
29
  storeChange(): void;
@@ -107,13 +107,15 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
107
107
  });
108
108
  }
109
109
  calcDiscountApplicableProductTotalPrice(discount) {
110
+ if (discount == null ? void 0 : discount.savedAmount) {
111
+ return (discount == null ? void 0 : discount.savedAmount) || 0;
112
+ }
110
113
  if (discount.appliedProductDetails) {
111
114
  return discount.appliedProductDetails.reduce((total, product) => {
112
115
  const price = Number(product == null ? void 0 : product.amount) || 0;
113
116
  return total + price;
114
117
  }, 0);
115
118
  }
116
- return (discount == null ? void 0 : discount.savedAmount) || 0;
117
119
  }
118
120
  async destroy() {
119
121
  this.store.discountList = [];
@@ -130,10 +130,12 @@ var RulesModule = class extends import_BaseModule.BaseModule {
130
130
  sortedProductList.forEach((originProduct) => {
131
131
  const product = this.hooks.getProduct(originProduct);
132
132
  addModeDiscount.forEach((discount) => {
133
- var _a;
133
+ var _a, _b, _c;
134
134
  const limitedData = discount == null ? void 0 : discount.limited_relation_product_data;
135
- if (!(product == null ? void 0 : product.booking_id) && (limitedData.type === "product_all" || limitedData.product_ids && limitedData.product_ids.includes(product.id))) {
136
- (_a = discountApplicability.get(discount.id)) == null ? void 0 : _a.push(product.id);
135
+ const isLimitedProduct = limitedData.type === "product_all" || limitedData.product_ids && limitedData.product_ids.includes(product.id);
136
+ const isAvailableProduct = !((product == null ? void 0 : product.booking_id) && ((_a = product == null ? void 0 : product.discount_list) == null ? void 0 : _a.length) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.every((discount2) => discount2.id)));
137
+ if (isAvailableProduct && isLimitedProduct) {
138
+ (_c = discountApplicability.get(discount.id)) == null ? void 0 : _c.push(product.id);
137
139
  const applicableProducts = discountApplicableProducts.get(discount.id) || [];
138
140
  applicableProducts.push({
139
141
  amount: product.price,
@@ -149,9 +151,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
149
151
  });
150
152
  });
151
153
  sortedProductList.forEach((originProduct) => {
152
- var _a;
154
+ var _a, _b, _c;
153
155
  const product = this.hooks.getProduct(originProduct);
154
- if (product == null ? void 0 : product.booking_id) {
156
+ if ((product == null ? void 0 : product.booking_id) && ((_a = product.discount_list) == null ? void 0 : _a.length) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.every((discount) => discount.id))) {
155
157
  processedProductsMap.set(product._id, originProduct);
156
158
  return;
157
159
  }
@@ -167,7 +169,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
167
169
  return false;
168
170
  });
169
171
  const selectedDiscount = applicableDiscounts[0];
170
- let isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && !((_a = product.discount_list) == null ? void 0 : _a.length);
172
+ let isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && !((_c = product.discount_list) == null ? void 0 : _c.length);
171
173
  if ((options == null ? void 0 : options.discountId) && (options == null ? void 0 : options.discountId) === (selectedDiscount == null ? void 0 : selectedDiscount.id)) {
172
174
  isManualDiscount = false;
173
175
  }
@@ -184,6 +186,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
184
186
  );
185
187
  return;
186
188
  }
189
+ if (applicableDiscounts.length && product.booking_id && typeof selectedDiscount.isManualSelect === "undefined") {
190
+ return;
191
+ }
187
192
  usedDiscounts.set(selectedDiscount.id, true);
188
193
  const appliedProducts = appliedDiscountProducts.get(selectedDiscount.id) || [];
189
194
  const discountDetail = {
@@ -225,7 +230,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
225
230
  if (typeof discount.isSelected === "boolean" && discount.isSelected === false && discount.isManualSelect) {
226
231
  return {
227
232
  ...discount,
228
- isUsed: false,
229
233
  isSelected: false,
230
234
  isAvailable,
231
235
  // 正确设置可用性
@@ -239,7 +243,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
239
243
  if (usedDiscounts.get(discount.id)) {
240
244
  return {
241
245
  ...discount,
242
- isUsed: true,
243
246
  isSelected: true,
244
247
  // 标记为可用,因为它已被应用
245
248
  isAvailable: true,
@@ -252,7 +255,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
252
255
  };
253
256
  }
254
257
  let isSelected = typeof discount.isSelected === "boolean" ? discount.isSelected : void 0;
255
- if (isAvailable && !discount.isManualSelect) {
258
+ if (isAvailable && appliedProductDetails.length && !discount.isManualSelect) {
256
259
  isSelected = true;
257
260
  } else if (!appliedProductDetails.length) {
258
261
  isSelected = false;
@@ -138,11 +138,12 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
138
138
  }
139
139
  // 计算优惠券
140
140
  calcDiscount(productList, options) {
141
+ this.store.productList = productList;
141
142
  const rulesModule = this.core.getModule(`${this.name}_rules`);
142
143
  if (!rulesModule) {
143
144
  return { productList, discountList: this.getDiscountList() };
144
145
  }
145
- const { productList: newProductList, discountList: newDiscountList } = rulesModule.calcDiscount(
146
+ let { productList: newProductList, discountList: newDiscountList } = rulesModule.calcDiscount(
146
147
  {
147
148
  productList,
148
149
  discountList: this.getDiscountList()
@@ -150,7 +151,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
150
151
  options
151
152
  ) || { productList, discountList: this.getDiscountList() };
152
153
  if (newDiscountList) {
153
- this.setDiscountList(newDiscountList);
154
+ newDiscountList = this.setDiscountList(newDiscountList);
154
155
  }
155
156
  return {
156
157
  productList: newProductList || productList,
@@ -169,8 +170,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
169
170
  ...discount,
170
171
  isSelected,
171
172
  // 手动设置不使用
172
- isManualSelect: !isSelected,
173
- isUsed: isSelected
173
+ isManualSelect: !isSelected
174
174
  };
175
175
  }
176
176
  return discount;
@@ -257,31 +257,35 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
257
257
  );
258
258
  }
259
259
  // 设置优惠券列表
260
- async setDiscountList(discountList) {
260
+ setDiscountList(discountList) {
261
261
  var _a;
262
262
  const productList = this.store.productList || [];
263
263
  const editModeDiscountList = [];
264
264
  productList.forEach((item) => {
265
265
  if (item.booking_id) {
266
- editModeDiscountList.push(...(item.discount_list || []).map((item2) => {
267
- return {
268
- ...item2,
269
- isEditMode: true,
270
- limited_relation_product_data: {},
271
- savedAmount: item2.amount,
272
- isAvailable: true,
273
- id: item2.discount.resource_id,
274
- format_title: item2.discount.title,
275
- isDisabled: true,
276
- isSelected: true,
277
- product_id: item2.discount.product_id
278
- };
279
- }));
266
+ (item.discount_list || []).forEach((discount) => {
267
+ var _a2, _b, _c;
268
+ if (discount.id) {
269
+ editModeDiscountList.push({
270
+ ...discount,
271
+ isEditMode: true,
272
+ limited_relation_product_data: {},
273
+ savedAmount: discount.amount,
274
+ isAvailable: true,
275
+ id: ((_a2 = discount.discount) == null ? void 0 : _a2.resource_id) || discount.id,
276
+ format_title: ((_b = discount.discount) == null ? void 0 : _b.title) || discount.format_title,
277
+ isDisabled: true,
278
+ isSelected: true,
279
+ product_id: ((_c = discount.discount) == null ? void 0 : _c.product_id) || discount.product_id
280
+ });
281
+ }
282
+ });
280
283
  }
281
284
  });
282
- const newDiscountList = (0, import_utils.uniqueById)([...editModeDiscountList, ...discountList], "product_id");
285
+ const newDiscountList = (0, import_utils.uniqueById)([...editModeDiscountList, ...discountList.filter((item) => !item.isDisabled)], "product_id");
283
286
  (_a = this.store.discount) == null ? void 0 : _a.setDiscountList(newDiscountList);
284
- await this.emitDiscountListChange(newDiscountList);
287
+ this.emitDiscountListChange(newDiscountList);
288
+ return newDiscountList;
285
289
  }
286
290
  // 获取优惠券列表
287
291
  getDiscountList() {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "0.0.23",
4
+ "version": "0.0.24",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",