@pisell/pisellos 0.0.357 → 0.0.358

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.
@@ -17,10 +17,7 @@ interface Formattitle {
17
17
  }
18
18
  interface PackageSubItemUsageRules {
19
19
  type: 'universal_discount' | 'package_exclusive' | 'single_item_promo' | 'custom_usage_rules';
20
- custom_usage_rules: {
21
- types: ("standalone_product" | "package_sub_item")[];
22
- package_sub_item_rules: ("original_price" | "markup_price")[];
23
- };
20
+ rules: ("original_price" | "markup_price")[];
24
21
  }
25
22
  interface Limitedrelationproductdata {
26
23
  id: number;
@@ -1290,6 +1290,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1290
1290
  value: function checkPackageSubItemUsageRules(discount, flatItem) {
1291
1291
  var limitedData = discount.limited_relation_product_data;
1292
1292
  var usageRules = limitedData === null || limitedData === void 0 ? void 0 : limitedData.package_sub_item_usage_rules;
1293
+ var rules = ['original_price'].concat(_toConsumableArray((usageRules === null || usageRules === void 0 ? void 0 : usageRules.rules) || []));
1293
1294
 
1294
1295
  // 如果没有配置 package_sub_item_usage_rules,则默认可用
1295
1296
  if (!usageRules) {
@@ -1330,8 +1331,34 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1330
1331
  // 套餐中购买时,判断是否为原价
1331
1332
  var _priceType = (_flatItem$bundleItem7 = flatItem.bundleItem) === null || _flatItem$bundleItem7 === void 0 ? void 0 : _flatItem$bundleItem7.price_type;
1332
1333
  var _priceTypeExt = (_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.price_type_ext;
1334
+
1335
+ // original_price 对应:
1336
+ // 1. price_type: "markup" && price_type_ext: "product_price"
1337
+ // markup_price 对应:
1338
+ // price_type: "markup" && price_type_ext: ""
1339
+ /** 原价 */
1340
+ var isOriginalPrice = _priceType === 'markup' && _priceTypeExt === 'product_price';
1341
+ /** 加价 */
1342
+ var isMarkupPrice = _priceType === 'markup' && (_priceTypeExt === '' || !_priceTypeExt);
1343
+
1344
+ // 检查 rules
1345
+ if (rules.length > 0) {
1346
+ // 检查原价
1347
+ if (isOriginalPrice && rules.includes('original_price')) {
1348
+ return true;
1349
+ }
1350
+
1351
+ // 检查加价
1352
+ if (isMarkupPrice && rules.includes('markup_price')) {
1353
+ return true;
1354
+ }
1355
+
1356
+ // 如果都不匹配,则不可用
1357
+ return false;
1358
+ }
1359
+
1333
1360
  // 原价包括:price_type: "markup" && price_type_ext: "product_price"
1334
- return _priceType === 'markup' && _priceTypeExt === 'product_price';
1361
+ return isOriginalPrice;
1335
1362
  }
1336
1363
  return false;
1337
1364
  }
@@ -1341,16 +1368,15 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1341
1368
  return isMainProduct; // 只有单独购买时可用
1342
1369
  }
1343
1370
 
1371
+ /*
1344
1372
  // custom_usage_rules: 根据自定义规则判断
1345
1373
  if (ruleType === 'custom_usage_rules') {
1346
- var customRules = usageRules.custom_usage_rules;
1347
- if (!customRules) {
1374
+ const customRules = usageRules.custom_usage_rules;
1375
+ if (!customRules) {
1348
1376
  return true; // 如果没有自定义规则,默认可用
1349
1377
  }
1350
- var types = customRules.types,
1351
- package_sub_item_rules = customRules.package_sub_item_rules;
1352
-
1353
- // 判断商品类型是否在允许的类型中
1378
+ const { types, package_sub_item_rules } = customRules;
1379
+ // 判断商品类型是否在允许的类型中
1354
1380
  if (isMainProduct) {
1355
1381
  // 主商品对应 standalone_product
1356
1382
  if (!types.includes('standalone_product')) {
@@ -1358,40 +1384,36 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1358
1384
  }
1359
1385
  return true; // 主商品不需要判断 package_sub_item_rules
1360
1386
  }
1361
- if (isBundleItem) {
1362
- var _flatItem$bundleItem9, _flatItem$bundleItem10;
1387
+ if (isBundleItem) {
1363
1388
  // bundle子商品对应 package_sub_item
1364
1389
  if (!types.includes('package_sub_item')) {
1365
1390
  return false;
1366
1391
  }
1367
-
1368
- // 如果包含 package_sub_item,还需要判断 price_type
1369
- var _priceType2 = (_flatItem$bundleItem9 = flatItem.bundleItem) === null || _flatItem$bundleItem9 === void 0 ? void 0 : _flatItem$bundleItem9.price_type;
1370
- var _priceTypeExt2 = (_flatItem$bundleItem10 = flatItem.bundleItem) === null || _flatItem$bundleItem10 === void 0 ? void 0 : _flatItem$bundleItem10.price_type_ext;
1371
-
1372
- // 检查 package_sub_item_rules
1392
+ // 如果包含 package_sub_item,还需要判断 price_type
1393
+ const priceType = flatItem.bundleItem?.price_type;
1394
+ const priceTypeExt = flatItem.bundleItem?.price_type_ext;
1395
+ // 检查 package_sub_item_rules
1373
1396
  if (package_sub_item_rules && package_sub_item_rules.length > 0) {
1374
1397
  // original_price 对应:
1375
1398
  // 1. price_type: "markup" && price_type_ext: "product_price"
1376
1399
  // markup_price 对应:
1377
1400
  // price_type: "markup" && price_type_ext: ""
1378
-
1379
- var isOriginalPrice = _priceType2 === 'markup' && _priceTypeExt2 === 'product_price';
1380
- var isMarkupPrice = _priceType2 === 'markup' && (_priceTypeExt2 === '' || !_priceTypeExt2);
1381
- if (isOriginalPrice && package_sub_item_rules.includes('original_price')) {
1401
+ const isOriginalPrice = (priceType === 'markup' && priceTypeExt === 'product_price');
1402
+ const isMarkupPrice = priceType === 'markup' && (priceTypeExt === '' || !priceTypeExt);
1403
+ if (isOriginalPrice && package_sub_item_rules.includes('original_price')) {
1382
1404
  return true;
1383
1405
  }
1384
- if (isMarkupPrice && package_sub_item_rules.includes('markup_price')) {
1406
+ if (isMarkupPrice && package_sub_item_rules.includes('markup_price')) {
1385
1407
  return true;
1386
1408
  }
1387
-
1388
- // 如果都不匹配,则不可用
1409
+ // 如果都不匹配,则不可用
1389
1410
  return false;
1390
1411
  }
1391
- return true; // 如果没有 package_sub_item_rules 配置,默认可用
1412
+ return true; // 如果没有 package_sub_item_rules 配置,默认可用
1392
1413
  }
1393
- return true;
1414
+ return true;
1394
1415
  }
1416
+ * */
1395
1417
 
1396
1418
  // 默认可用
1397
1419
  return true;
@@ -342,7 +342,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
342
342
  };
343
343
  setOtherData(key: string, value: any): void;
344
344
  getOtherData(key: string): any;
345
- getProductTypeById(id: number): Promise<"duration" | "session" | "normal">;
345
+ getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
346
346
  /**
347
347
  * 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
348
348
  *
@@ -17,10 +17,7 @@ interface Formattitle {
17
17
  }
18
18
  interface PackageSubItemUsageRules {
19
19
  type: 'universal_discount' | 'package_exclusive' | 'single_item_promo' | 'custom_usage_rules';
20
- custom_usage_rules: {
21
- types: ("standalone_product" | "package_sub_item")[];
22
- package_sub_item_rules: ("original_price" | "markup_price")[];
23
- };
20
+ rules: ("original_price" | "markup_price")[];
24
21
  }
25
22
  interface Limitedrelationproductdata {
26
23
  id: number;
@@ -994,9 +994,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
994
994
  * @returns 是否可用
995
995
  */
996
996
  checkPackageSubItemUsageRules(discount, flatItem) {
997
- var _a, _b, _c, _d, _e, _f;
997
+ var _a, _b, _c, _d;
998
998
  const limitedData = discount.limited_relation_product_data;
999
999
  const usageRules = limitedData == null ? void 0 : limitedData.package_sub_item_usage_rules;
1000
+ const rules = ["original_price", ...(usageRules == null ? void 0 : usageRules.rules) || []];
1000
1001
  if (!usageRules) {
1001
1002
  return true;
1002
1003
  }
@@ -1024,45 +1025,23 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1024
1025
  if (isBundleItem) {
1025
1026
  const priceType = (_c = flatItem.bundleItem) == null ? void 0 : _c.price_type;
1026
1027
  const priceTypeExt = (_d = flatItem.bundleItem) == null ? void 0 : _d.price_type_ext;
1027
- return priceType === "markup" && priceTypeExt === "product_price";
1028
- }
1029
- return false;
1030
- }
1031
- if (ruleType === "single_item_promo") {
1032
- return isMainProduct;
1033
- }
1034
- if (ruleType === "custom_usage_rules") {
1035
- const customRules = usageRules.custom_usage_rules;
1036
- if (!customRules) {
1037
- return true;
1038
- }
1039
- const { types, package_sub_item_rules } = customRules;
1040
- if (isMainProduct) {
1041
- if (!types.includes("standalone_product")) {
1042
- return false;
1043
- }
1044
- return true;
1045
- }
1046
- if (isBundleItem) {
1047
- if (!types.includes("package_sub_item")) {
1048
- return false;
1049
- }
1050
- const priceType = (_e = flatItem.bundleItem) == null ? void 0 : _e.price_type;
1051
- const priceTypeExt = (_f = flatItem.bundleItem) == null ? void 0 : _f.price_type_ext;
1052
- if (package_sub_item_rules && package_sub_item_rules.length > 0) {
1053
- const isOriginalPrice = priceType === "markup" && priceTypeExt === "product_price";
1054
- const isMarkupPrice = priceType === "markup" && (priceTypeExt === "" || !priceTypeExt);
1055
- if (isOriginalPrice && package_sub_item_rules.includes("original_price")) {
1028
+ const isOriginalPrice = priceType === "markup" && priceTypeExt === "product_price";
1029
+ const isMarkupPrice = priceType === "markup" && (priceTypeExt === "" || !priceTypeExt);
1030
+ if (rules.length > 0) {
1031
+ if (isOriginalPrice && rules.includes("original_price")) {
1056
1032
  return true;
1057
1033
  }
1058
- if (isMarkupPrice && package_sub_item_rules.includes("markup_price")) {
1034
+ if (isMarkupPrice && rules.includes("markup_price")) {
1059
1035
  return true;
1060
1036
  }
1061
1037
  return false;
1062
1038
  }
1063
- return true;
1039
+ return isOriginalPrice;
1064
1040
  }
1065
- return true;
1041
+ return false;
1042
+ }
1043
+ if (ruleType === "single_item_promo") {
1044
+ return isMainProduct;
1066
1045
  }
1067
1046
  return true;
1068
1047
  }
@@ -342,7 +342,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
342
342
  };
343
343
  setOtherData(key: string, value: any): void;
344
344
  getOtherData(key: string): any;
345
- getProductTypeById(id: number): Promise<"duration" | "session" | "normal">;
345
+ getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
346
346
  /**
347
347
  * 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
348
348
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "0.0.357",
4
+ "version": "0.0.358",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",