@pisell/pisellos 1.0.87 → 1.0.89

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.
@@ -56,7 +56,7 @@ export var getAllDiscountList = function getAllDiscountList(cartItem) {
56
56
  var _cartItem$_origin, _cartItem$_origin2;
57
57
  var discountList = (cartItem === null || cartItem === void 0 || (_cartItem$_origin = cartItem._origin) === null || _cartItem$_origin === void 0 || (_cartItem$_origin = _cartItem$_origin.product) === null || _cartItem$_origin === void 0 ? void 0 : _cartItem$_origin.discount_list) || [];
58
58
  ((cartItem === null || cartItem === void 0 || (_cartItem$_origin2 = cartItem._origin) === null || _cartItem$_origin2 === void 0 || (_cartItem$_origin2 = _cartItem$_origin2.product) === null || _cartItem$_origin2 === void 0 ? void 0 : _cartItem$_origin2.product_bundle) || []).forEach(function (item) {
59
- discountList = [].concat(_toConsumableArray(discountList), _toConsumableArray(item.discount_list));
59
+ discountList = [].concat(_toConsumableArray(discountList), _toConsumableArray(item.discount_list || []));
60
60
  item.discount_list = undefined;
61
61
  });
62
62
  return discountList;
@@ -143,10 +143,15 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
143
143
  // 遍历处理后的产品列表,检查是否有产品使用了新折扣
144
144
  result.productList.forEach(function (product) {
145
145
  var _this2$hooks$getProdu = _this2.hooks.getProduct(product),
146
- discount_list = _this2$hooks$getProdu.discount_list;
147
- if (discount_list && discount_list.length > 0) {
146
+ discount_list = _this2$hooks$getProdu.discount_list,
147
+ bundle = _this2$hooks$getProdu.bundle;
148
+ var allDiscountList = _toConsumableArray(discount_list || []);
149
+ (bundle || []).forEach(function (item) {
150
+ allDiscountList.push.apply(allDiscountList, _toConsumableArray((item === null || item === void 0 ? void 0 : item.discount_list) || []));
151
+ });
152
+ if (allDiscountList && allDiscountList.length > 0) {
148
153
  // 检查是否有使用新折扣的情况
149
- var usedNewDiscount = discount_list.some(function (discount) {
154
+ var usedNewDiscount = allDiscountList.some(function (discount) {
150
155
  var _discount$discount;
151
156
  return newDiscountIds.includes(discount === null || discount === void 0 || (_discount$discount = discount.discount) === null || _discount$discount === void 0 ? void 0 : _discount$discount.resource_id);
152
157
  });
@@ -499,14 +504,17 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
499
504
 
500
505
  // 找到适用于此商品的所有优惠券,仅考虑isSelected不为false的优惠券
501
506
  var applicableDiscounts = sortedDiscountList.filter(function (discount) {
502
- var _product$discount_lis3;
507
+ var _product$discount_lis3, _product$discount_lis4;
503
508
  // 如果商品价格为 0,其实不需要使用任何优惠券,直接 return true
504
509
  // 商品券时主商品价格小于等于0不可用
505
- if ((Number(product.price) <= 0 || !product.price) && flatItem.type === 'main' && (discount.tag || discount.type) === 'good_pass') return false;
506
- // 折扣卡时总价小于等于0时不可用
507
- if ((Number(product.total) <= 0 || !product.total) && !((_product$discount_lis3 = product.discount_list) !== null && _product$discount_lis3 !== void 0 && _product$discount_lis3.find(function (n) {
510
+ if ((Number(product.price) <= 0 || !product.price) && !((_product$discount_lis3 = product.discount_list) !== null && _product$discount_lis3 !== void 0 && _product$discount_lis3.find(function (n) {
508
511
  var _n$discount;
509
512
  return ((_n$discount = n.discount) === null || _n$discount === void 0 ? void 0 : _n$discount.resource_id) === discount.id;
513
+ })) && (discount.tag || discount.type) === 'good_pass') return false;
514
+ // 折扣卡时总价小于等于0时不可用
515
+ if ((Number(product.price) <= 0 || !product.price) && !((_product$discount_lis4 = product.discount_list) !== null && _product$discount_lis4 !== void 0 && _product$discount_lis4.find(function (n) {
516
+ var _n$discount2;
517
+ return ((_n$discount2 = n.discount) === null || _n$discount2 === void 0 ? void 0 : _n$discount2.resource_id) === discount.id;
510
518
  })) && (discount.tag || discount.type) !== 'good_pass') return false;
511
519
  // 如果优惠券已被使用,则跳过
512
520
  var targetUsedDiscounts = usedDiscounts.get(discount.id);
@@ -546,12 +554,12 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
546
554
  // 如果是手动折扣,则不适用优惠券
547
555
  var isManualDiscount = false;
548
556
  if (flatItem.type === 'main') {
549
- var _product$discount_lis4, _product7, _product7$every;
557
+ var _product$discount_lis5, _product7, _product7$every;
550
558
  // 主商品:判断自身是否手动折扣
551
559
  isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : product.total != product.origin_total && (product.bundle || []).every(function (item) {
552
560
  var _ref3;
553
561
  return !((_ref3 = item.discount_list || []) !== null && _ref3 !== void 0 && _ref3.length);
554
- }) && (!((_product$discount_lis4 = product.discount_list) !== null && _product$discount_lis4 !== void 0 && _product$discount_lis4.length) || ((_product7 = product) === null || _product7 === void 0 || (_product7 = _product7.discount_list) === null || _product7 === void 0 || (_product7$every = _product7.every) === null || _product7$every === void 0 ? void 0 : _product7$every.call(_product7, function (item) {
562
+ }) && (!((_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.length) || ((_product7 = product) === null || _product7 === void 0 || (_product7 = _product7.discount_list) === null || _product7 === void 0 || (_product7$every = _product7.every) === null || _product7$every === void 0 ? void 0 : _product7$every.call(_product7, function (item) {
555
563
  return item.type === 'product';
556
564
  })));
557
565
  } else {
@@ -570,9 +578,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
570
578
 
571
579
  // 勾选时覆盖手动折扣
572
580
  if (options !== null && options !== void 0 && options.discountId) {
573
- var _product$discount_lis5;
581
+ var _product$discount_lis6;
574
582
  // 主商品:检查自己的 discount_list
575
- if (flatItem.type === 'main' && (_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.some(function (item) {
583
+ if (flatItem.type === 'main' && (_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.some(function (item) {
576
584
  var _item$discount;
577
585
  return ((_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) === options.discountId;
578
586
  })) {
@@ -580,8 +588,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
580
588
  }
581
589
  // bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
582
590
  if (flatItem.type === 'bundle') {
583
- var _product$discount_lis6, _flatItem$parentProdu;
584
- if ((_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.some(function (item) {
591
+ var _product$discount_lis7, _flatItem$parentProdu;
592
+ if ((_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.some(function (item) {
585
593
  var _item$discount2;
586
594
  return ((_item$discount2 = item.discount) === null || _item$discount2 === void 0 ? void 0 : _item$discount2.resource_id) === options.discountId;
587
595
  }) || (_flatItem$parentProdu = flatItem.parentProduct) !== null && _flatItem$parentProdu !== void 0 && (_flatItem$parentProdu = _flatItem$parentProdu.discount_list) !== null && _flatItem$parentProdu !== void 0 && _flatItem$parentProdu.some(function (item) {
@@ -593,9 +601,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
593
601
  }
594
602
  }
595
603
  if (options !== null && options !== void 0 && options.selectedList) {
596
- var _product$discount_lis7;
604
+ var _product$discount_lis8;
597
605
  // 主商品:检查自己的 discount_list
598
- if (flatItem.type === 'main' && (_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.some(function (item) {
606
+ if (flatItem.type === 'main' && (_product$discount_lis8 = product.discount_list) !== null && _product$discount_lis8 !== void 0 && _product$discount_lis8.some(function (item) {
599
607
  var _options$selectedList;
600
608
  return options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.some(function (n) {
601
609
  var _item$discount4;
@@ -606,8 +614,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
606
614
  }
607
615
  // bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
608
616
  if (flatItem.type === 'bundle') {
609
- var _product$discount_lis8, _flatItem$parentProdu2;
610
- if ((_product$discount_lis8 = product.discount_list) !== null && _product$discount_lis8 !== void 0 && _product$discount_lis8.some(function (item) {
617
+ var _product$discount_lis9, _flatItem$parentProdu2;
618
+ if ((_product$discount_lis9 = product.discount_list) !== null && _product$discount_lis9 !== void 0 && _product$discount_lis9.some(function (item) {
611
619
  var _options$selectedList2;
612
620
  return options === null || options === void 0 || (_options$selectedList2 = options.selectedList) === null || _options$selectedList2 === void 0 ? void 0 : _options$selectedList2.some(function (n) {
613
621
  var _item$discount5;
@@ -697,7 +705,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
697
705
  }));
698
706
  }
699
707
  for (var i = 0; i < splitCount; i++) {
700
- var _product$discount_lis9, _originProduct, _selectedDiscount$met;
708
+ var _product$discount_lis10, _originProduct, _selectedDiscount$met;
701
709
  // 如果用过折扣卡,也就不存在拆分的情况了,这里直接使用上面计算出来的折扣卡
702
710
  var _selectedDiscount = selectedDiscountCard || applicableDiscounts[i];
703
711
  // 标记优惠券为已使用
@@ -709,7 +717,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
709
717
  // 优先从 origin_total拿,可能会拿不到(比如用户端预约在没有配置 original_price 的情况下)
710
718
  var productOriginTotal = product.origin_total || product.total || 0;
711
719
  // 如果当前 product 有 discount_list,则先从 origin_total 拿
712
- if ((_product$discount_lis9 = product.discount_list) !== null && _product$discount_lis9 !== void 0 && _product$discount_lis9.length && product.origin_total) {
720
+ if ((_product$discount_lis10 = product.discount_list) !== null && _product$discount_lis10 !== void 0 && _product$discount_lis10.length && product.origin_total) {
713
721
  productOriginTotal = product.origin_total;
714
722
  }
715
723
  // 如果originProduct?._productInit?.original_price为 0,product.origin_total可能为空,此时取 product.total
@@ -60,7 +60,7 @@ var getAllDiscountList = (cartItem) => {
60
60
  var _a, _b, _c, _d;
61
61
  let discountList = ((_b = (_a = cartItem == null ? void 0 : cartItem._origin) == null ? void 0 : _a.product) == null ? void 0 : _b.discount_list) || [];
62
62
  (((_d = (_c = cartItem == null ? void 0 : cartItem._origin) == null ? void 0 : _c.product) == null ? void 0 : _d.product_bundle) || []).forEach((item) => {
63
- discountList = [...discountList, ...item.discount_list];
63
+ discountList = [...discountList, ...item.discount_list || []];
64
64
  item.discount_list = void 0;
65
65
  });
66
66
  return discountList;
@@ -96,9 +96,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
96
96
  let hasApplicableDiscount = false;
97
97
  const newDiscountIds = newDiscountList.map((discount) => discount.id);
98
98
  result.productList.forEach((product) => {
99
- const { discount_list } = this.hooks.getProduct(product);
100
- if (discount_list && discount_list.length > 0) {
101
- const usedNewDiscount = discount_list.some(
99
+ const { discount_list, bundle } = this.hooks.getProduct(product);
100
+ const allDiscountList = [...discount_list || []];
101
+ (bundle || []).forEach((item) => {
102
+ allDiscountList.push(...(item == null ? void 0 : item.discount_list) || []);
103
+ });
104
+ if (allDiscountList && allDiscountList.length > 0) {
105
+ const usedNewDiscount = allDiscountList.some(
102
106
  (discount) => {
103
107
  var _a;
104
108
  return newDiscountIds.includes((_a = discount == null ? void 0 : discount.discount) == null ? void 0 : _a.resource_id);
@@ -335,10 +339,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
335
339
  return;
336
340
  }
337
341
  const applicableDiscounts = sortedDiscountList.filter((discount) => {
338
- var _a2;
339
- if ((Number(product.price) <= 0 || !product.price) && flatItem.type === "main" && (discount.tag || discount.type) === "good_pass")
342
+ var _a2, _b2;
343
+ if ((Number(product.price) <= 0 || !product.price) && !((_a2 = product.discount_list) == null ? void 0 : _a2.find((n) => {
344
+ var _a3;
345
+ return ((_a3 = n.discount) == null ? void 0 : _a3.resource_id) === discount.id;
346
+ })) && (discount.tag || discount.type) === "good_pass")
340
347
  return false;
341
- if ((Number(product.total) <= 0 || !product.total) && !((_a2 = product.discount_list) == null ? void 0 : _a2.find((n) => {
348
+ if ((Number(product.price) <= 0 || !product.price) && !((_b2 = product.discount_list) == null ? void 0 : _b2.find((n) => {
342
349
  var _a3;
343
350
  return ((_a3 = n.discount) == null ? void 0 : _a3.resource_id) === discount.id;
344
351
  })) && (discount.tag || discount.type) !== "good_pass")
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "1.0.87",
4
+ "version": "1.0.89",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",