@pisell/pisellos 0.0.567 → 0.0.568

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 (228) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
  3. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  4. package/dist/model/strategy/adapter/walletPass/utils.js +0 -3
  5. package/dist/model/strategy/strategy-example.js +5 -19
  6. package/dist/modules/Cart/index.js +0 -3
  7. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  8. package/dist/modules/Date/index.js +1 -5
  9. package/dist/modules/Discount/index.js +1 -4
  10. package/dist/modules/OpenData/index.js +0 -2
  11. package/dist/modules/Order/index.d.ts +1 -1
  12. package/dist/modules/Order/index.js +14 -41
  13. package/dist/modules/Payment/index.js +142 -270
  14. package/dist/modules/Payment/walletpass.js +4 -5
  15. package/dist/modules/Rules/index.js +0 -7
  16. package/dist/modules/Schedule/utils.js +0 -1
  17. package/dist/modules/Step/index.js +0 -1
  18. package/dist/plugins/request.js +1 -4
  19. package/dist/plugins/window.js +2 -6
  20. package/dist/server/index.js +88 -121
  21. package/dist/server/modules/menu/index.js +32 -41
  22. package/dist/server/modules/products/index.js +29 -49
  23. package/dist/server/modules/quotation/index.js +29 -38
  24. package/dist/server/modules/resource/index.js +3 -4
  25. package/dist/server/modules/schedule/index.js +32 -40
  26. package/dist/server/utils/product.js +0 -1
  27. package/dist/solution/BookingByStep/index.d.ts +1 -1
  28. package/dist/solution/BookingByStep/index.js +7 -59
  29. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  30. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  31. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  32. package/dist/solution/BookingTicket/index.d.ts +1 -1
  33. package/dist/solution/BookingTicket/index.js +5 -7
  34. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  35. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  36. package/dist/solution/BuyTickets/index.js +9 -12
  37. package/dist/solution/Checkout/index.js +177 -246
  38. package/dist/solution/Checkout/utils/index.js +4 -16
  39. package/dist/solution/RegisterAndLogin/index.js +30 -76
  40. package/dist/solution/ScanOrder/index.js +50 -60
  41. package/dist/solution/ShopDiscount/index.js +2 -7
  42. package/dist/solution/VenueBooking/index.d.ts +5 -0
  43. package/dist/solution/VenueBooking/index.js +364 -327
  44. package/dist/utils/task.js +15 -18
  45. package/dist/utils/watch.js +0 -1
  46. package/lib/apis/picoding.js +2 -0
  47. package/lib/core/index.js +130 -131
  48. package/lib/effects/index.js +46 -57
  49. package/lib/index.js +92 -53
  50. package/lib/model/index.js +14 -21
  51. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  52. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  53. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  54. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  55. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  56. package/lib/model/strategy/adapter/index.js +100 -64
  57. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  58. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  59. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  60. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  61. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  62. package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
  63. package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
  64. package/lib/model/strategy/adapter/promotion/examples.js +139 -159
  65. package/lib/model/strategy/adapter/promotion/index.js +1 -49
  66. package/lib/model/strategy/adapter/promotion/type.js +199 -35
  67. package/lib/model/strategy/adapter/type.js +4 -16
  68. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
  69. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  70. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  71. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  72. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  73. package/lib/model/strategy/adapter/walletPass/utils.js +652 -402
  74. package/lib/model/strategy/engine.js +270 -168
  75. package/lib/model/strategy/index.js +49 -34
  76. package/lib/model/strategy/strategy-example.js +243 -239
  77. package/lib/model/strategy/type.js +100 -40
  78. package/lib/modules/Account/index.js +39 -53
  79. package/lib/modules/Account/types.js +20 -33
  80. package/lib/modules/AccountList/index.js +116 -154
  81. package/lib/modules/AccountList/types.js +30 -31
  82. package/lib/modules/AccountList/utils.js +18 -30
  83. package/lib/modules/BaseModule.js +22 -45
  84. package/lib/modules/Cart/index.js +170 -124
  85. package/lib/modules/Cart/types.js +46 -51
  86. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  87. package/lib/modules/Cart/utils/cartDate.js +56 -61
  88. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  89. package/lib/modules/Cart/utils/cartNote.js +27 -32
  90. package/lib/modules/Cart/utils/cartProduct.js +306 -241
  91. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  92. package/lib/modules/Cart/utils/cartResource.js +72 -78
  93. package/lib/modules/Cart/utils/changePrice.js +26 -62
  94. package/lib/modules/Cart/utils/index.js +106 -48
  95. package/lib/modules/Customer/constants.js +13 -34
  96. package/lib/modules/Customer/index.js +216 -153
  97. package/lib/modules/Customer/types.js +38 -35
  98. package/lib/modules/Date/index.js +116 -115
  99. package/lib/modules/Date/types.js +16 -28
  100. package/lib/modules/Date/utils.js +174 -123
  101. package/lib/modules/Discount/index.js +117 -113
  102. package/lib/modules/Discount/types.js +9 -31
  103. package/lib/modules/Guests/index.js +30 -56
  104. package/lib/modules/Guests/types.js +23 -33
  105. package/lib/modules/Holder/index.js +209 -189
  106. package/lib/modules/Holder/types.js +4 -16
  107. package/lib/modules/Holder/utils.js +20 -49
  108. package/lib/modules/OpenData/index.js +63 -74
  109. package/lib/modules/OpenData/types.js +4 -16
  110. package/lib/modules/OpenData/utils.js +44 -78
  111. package/lib/modules/Order/index.d.ts +1 -1
  112. package/lib/modules/Order/index.js +332 -320
  113. package/lib/modules/Order/types.js +24 -33
  114. package/lib/modules/Order/utils.js +350 -284
  115. package/lib/modules/Payment/cash.js +20 -33
  116. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  117. package/lib/modules/Payment/eftpos.js +16 -30
  118. package/lib/modules/Payment/index.js +566 -432
  119. package/lib/modules/Payment/mx51.js +1 -0
  120. package/lib/modules/Payment/types.js +216 -107
  121. package/lib/modules/Payment/utils.js +50 -47
  122. package/lib/modules/Payment/walletpass.js +221 -203
  123. package/lib/modules/Product/index.js +51 -46
  124. package/lib/modules/Product/types.js +4 -16
  125. package/lib/modules/Product/utils.js +32 -33
  126. package/lib/modules/ProductList/index.js +111 -110
  127. package/lib/modules/ProductList/types.js +9 -31
  128. package/lib/modules/Quotation/index.js +60 -82
  129. package/lib/modules/Quotation/types.js +4 -16
  130. package/lib/modules/Resource/index.js +27 -59
  131. package/lib/modules/Resource/types.js +22 -32
  132. package/lib/modules/Resource/utils.js +30 -38
  133. package/lib/modules/Rules/index.js +1172 -872
  134. package/lib/modules/Rules/types.js +17 -40
  135. package/lib/modules/SalesSummary/index.js +59 -68
  136. package/lib/modules/SalesSummary/types.js +4 -16
  137. package/lib/modules/SalesSummary/utils.js +176 -193
  138. package/lib/modules/ScanOrderLogger/index.js +59 -79
  139. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  140. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  141. package/lib/modules/ScanOrderLogger/types.js +4 -16
  142. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -167
  143. package/lib/modules/Schedule/index.js +97 -107
  144. package/lib/modules/Schedule/type.js +4 -16
  145. package/lib/modules/Schedule/types.js +4 -16
  146. package/lib/modules/Schedule/utils.js +433 -291
  147. package/lib/modules/Step/index.js +40 -52
  148. package/lib/modules/Step/tyeps.js +4 -16
  149. package/lib/modules/Summary/index.js +66 -70
  150. package/lib/modules/Summary/types.js +4 -16
  151. package/lib/modules/Summary/utils.js +782 -429
  152. package/lib/modules/index.js +212 -57
  153. package/lib/plugins/app.js +4 -16
  154. package/lib/plugins/index.js +36 -25
  155. package/lib/plugins/request.js +137 -126
  156. package/lib/plugins/shopStore.js +4 -16
  157. package/lib/plugins/user.js +4 -16
  158. package/lib/plugins/window.js +171 -179
  159. package/lib/server/index.js +882 -623
  160. package/lib/server/modules/index.js +85 -59
  161. package/lib/server/modules/menu/index.js +146 -122
  162. package/lib/server/modules/menu/types.js +18 -31
  163. package/lib/server/modules/order/index.js +195 -231
  164. package/lib/server/modules/order/types.js +107 -32
  165. package/lib/server/modules/order/utils/filterBookings.js +174 -140
  166. package/lib/server/modules/order/utils/filterOrders.js +89 -60
  167. package/lib/server/modules/products/index.js +430 -335
  168. package/lib/server/modules/products/types.js +41 -34
  169. package/lib/server/modules/quotation/index.js +76 -77
  170. package/lib/server/modules/quotation/types.js +21 -31
  171. package/lib/server/modules/resource/index.js +216 -187
  172. package/lib/server/modules/resource/types.js +42 -33
  173. package/lib/server/modules/schedule/index.js +134 -119
  174. package/lib/server/modules/schedule/types.js +14 -21
  175. package/lib/server/modules/schedule/utils.js +334 -163
  176. package/lib/server/types.js +4 -16
  177. package/lib/server/utils/index.js +25 -23
  178. package/lib/server/utils/product.js +196 -139
  179. package/lib/server/utils/schedule.js +34 -41
  180. package/lib/server/utils/time.js +40 -49
  181. package/lib/solution/BookingByStep/index.d.ts +1 -1
  182. package/lib/solution/BookingByStep/index.js +1530 -1343
  183. package/lib/solution/BookingByStep/types.js +40 -99
  184. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  185. package/lib/solution/BookingByStep/utils/products.js +42 -52
  186. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  187. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  188. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  189. package/lib/solution/BookingTicket/index.d.ts +1 -1
  190. package/lib/solution/BookingTicket/index.js +147 -122
  191. package/lib/solution/BookingTicket/types.js +38 -64
  192. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
  193. package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
  194. package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
  195. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  196. package/lib/solution/BuyTickets/index.js +67 -70
  197. package/lib/solution/BuyTickets/types.js +22 -38
  198. package/lib/solution/Checkout/index.js +1451 -1158
  199. package/lib/solution/Checkout/types.js +91 -61
  200. package/lib/solution/Checkout/utils/index.js +227 -158
  201. package/lib/solution/PlaceOrder/index.js +55 -0
  202. package/lib/solution/RegisterAndLogin/config.js +493 -460
  203. package/lib/solution/RegisterAndLogin/index.js +633 -630
  204. package/lib/solution/RegisterAndLogin/types.js +189 -76
  205. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  206. package/lib/solution/Sales/index.js +218 -200
  207. package/lib/solution/Sales/types.js +27 -33
  208. package/lib/solution/ScanOrder/index.js +803 -840
  209. package/lib/solution/ScanOrder/types.js +34 -34
  210. package/lib/solution/ScanOrder/utils.js +372 -331
  211. package/lib/solution/ShopDiscount/index.js +230 -236
  212. package/lib/solution/ShopDiscount/types.js +15 -37
  213. package/lib/solution/ShopDiscount/utils.js +309 -172
  214. package/lib/solution/VenueBooking/index.d.ts +5 -0
  215. package/lib/solution/VenueBooking/index.js +886 -929
  216. package/lib/solution/VenueBooking/types.js +20 -40
  217. package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
  218. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  219. package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
  220. package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
  221. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
  222. package/lib/solution/VenueBooking/utils.js +130 -67
  223. package/lib/solution/index.js +102 -37
  224. package/lib/store/createStore.js +32 -29
  225. package/lib/types/index.js +4 -16
  226. package/lib/utils/task.js +36 -36
  227. package/lib/utils/watch.js +81 -47
  228. package/package.json +2 -1
@@ -1,38 +1,43 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
19
2
 
20
- // src/modules/Product/index.ts
21
- var Product_exports = {};
22
- __export(Product_exports, {
23
- Product: () => Product
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ Product: true
8
+ };
9
+ exports.Product = void 0;
10
+ var _BaseModule = require("../BaseModule");
11
+ var _types = require("./types");
12
+ Object.keys(_types).forEach(function (key) {
13
+ if (key === "default" || key === "__esModule") return;
14
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
15
+ if (key in exports && exports[key] === _types[key]) return;
16
+ Object.defineProperty(exports, key, {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _types[key];
20
+ }
21
+ });
24
22
  });
25
- module.exports = __toCommonJS(Product_exports);
26
- var import_BaseModule = require("../BaseModule");
27
- __reExport(Product_exports, require("./types"), module.exports);
28
- var Product = class extends import_BaseModule.BaseModule {
23
+ /**
24
+ * 商品详情模块
25
+ * 除了跟商品列表模块组合外,还会提供单独的商品详情页的一些方法
26
+ *
27
+ * @export
28
+ * @class Product
29
+ * @extends {BaseModule}
30
+ * @implements {Module}
31
+ */
32
+ class Product extends _BaseModule.BaseModule {
33
+ defaultName = 'product';
34
+ defaultVersion = '1.0.0';
35
+ store;
36
+ otherParams = {
37
+ scheduler: []
38
+ };
29
39
  constructor(name, version) {
30
40
  super(name, version);
31
- this.defaultName = "product";
32
- this.defaultVersion = "1.0.0";
33
- this.otherParams = {
34
- scheduler: []
35
- };
36
41
  }
37
42
  async initialize(core, options) {
38
43
  this.core = core;
@@ -41,44 +46,49 @@ var Product = class extends import_BaseModule.BaseModule {
41
46
  updateData(data) {
42
47
  Object.assign(this.store, data);
43
48
  }
49
+
44
50
  /**
45
51
  * 获取商品数据
46
52
  */
47
53
  getData() {
48
54
  return this.store;
49
55
  }
56
+
50
57
  /**
51
58
  * 获取商品ID
52
59
  */
53
60
  getId() {
54
- var _a;
55
- return ((_a = this.store) == null ? void 0 : _a.id) ?? null;
61
+ return this.store?.id ?? null;
56
62
  }
63
+
57
64
  /**
58
65
  * 获取商品标题
59
66
  */
60
67
  getTitle() {
61
- var _a;
62
- return ((_a = this.store) == null ? void 0 : _a.title) ?? null;
68
+ return this.store?.title ?? null;
63
69
  }
70
+
64
71
  /**
65
72
  * 获取商品捆绑组
66
73
  */
67
74
  getBundleGroups() {
68
75
  return this.store.bundle_groups;
69
76
  }
77
+
70
78
  /**
71
79
  * 获取商品媒体
72
80
  */
73
81
  getMedia() {
74
82
  return this.store.media;
75
83
  }
84
+
76
85
  /**
77
86
  * 获取商品标签
78
87
  */
79
88
  getTags() {
80
89
  return this.store.tags;
81
90
  }
91
+
82
92
  /**
83
93
  * 获取商品分类
84
94
  */
@@ -92,18 +102,13 @@ var Product = class extends import_BaseModule.BaseModule {
92
102
  return this.otherParams;
93
103
  }
94
104
  getProductType() {
95
- var _a;
96
105
  if (this.store.duration) {
97
- return "duration";
106
+ return 'duration';
98
107
  }
99
- if ((_a = this.store["schedule.ids"]) == null ? void 0 : _a.length) {
100
- return "session";
108
+ if (this.store['schedule.ids']?.length) {
109
+ return 'session';
101
110
  }
102
- return "normal";
111
+ return 'normal';
103
112
  }
104
- };
105
- // Annotate the CommonJS export names for ESM import in node:
106
- 0 && (module.exports = {
107
- Product,
108
- ...require("./types")
109
- });
113
+ }
114
+ exports.Product = Product;
@@ -1,17 +1,5 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
14
2
 
15
- // src/modules/Product/types.ts
16
- var types_exports = {};
17
- module.exports = __toCommonJS(types_exports);
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,46 +1,45 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/modules/Product/utils.ts
20
- var utils_exports = {};
21
- __export(utils_exports, {
22
- areAllNormalProducts: () => areAllNormalProducts,
23
- isNormalProduct: () => isNormalProduct
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
24
5
  });
25
- module.exports = __toCommonJS(utils_exports);
6
+ exports.areAllNormalProducts = areAllNormalProducts;
7
+ exports.isNormalProduct = isNormalProduct;
8
+ /**
9
+ * 传入单个商品信息,通过商品上是否有 duration 或者 schedule.ids 来判断是否是普通商品
10
+ *
11
+ * @export
12
+ * @param {ProductData} product
13
+ * @return {*} {boolean}
14
+ */
26
15
  function isNormalProduct(product) {
27
- var _a;
28
- if (product == null ? void 0 : product.duration) {
16
+ // 如果有 duration 配置,则不是普通商品
17
+ if (product?.duration) {
29
18
  return false;
30
19
  }
31
- if ((_a = product == null ? void 0 : product["schedule.ids"]) == null ? void 0 : _a.length) {
20
+
21
+ // 如果有 schedule.ids 且长度大于0,则不是普通商品
22
+ if (product?.['schedule.ids']?.length) {
32
23
  return false;
33
24
  }
25
+
26
+ // 既没有 duration 也没有 schedule.ids,则是普通商品
34
27
  return true;
35
28
  }
29
+
30
+ /**
31
+ * 传入多个商品信息,确定这些商品是否都是普通商品
32
+ *
33
+ * @export
34
+ * @param {ProductData[]} products
35
+ * @return {*} {boolean}
36
+ */
36
37
  function areAllNormalProducts(products) {
38
+ // 如果数组为空,返回 true
37
39
  if (!products.length) {
38
40
  return false;
39
41
  }
40
- return products.every((product) => isNormalProduct(product));
41
- }
42
- // Annotate the CommonJS export names for ESM import in node:
43
- 0 && (module.exports = {
44
- areAllNormalProducts,
45
- isNormalProduct
46
- });
42
+
43
+ // 检查所有商品是否都是普通商品
44
+ return products.every(product => isNormalProduct(product));
45
+ }
@@ -1,53 +1,50 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
19
2
 
20
- // src/modules/ProductList/index.ts
21
- var ProductList_exports = {};
22
- __export(ProductList_exports, {
23
- ProductList: () => ProductList
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
24
5
  });
25
- module.exports = __toCommonJS(ProductList_exports);
26
- var import_BaseModule = require("../BaseModule");
27
- var import_lodash_es = require("lodash-es");
28
- __reExport(ProductList_exports, require("./types"), module.exports);
29
- var ProductList = class extends import_BaseModule.BaseModule {
6
+ var _exportNames = {
7
+ ProductList: true
8
+ };
9
+ exports.ProductList = void 0;
10
+ var _BaseModule = require("../BaseModule");
11
+ var _lodashEs = require("lodash-es");
12
+ var _types = require("./types");
13
+ Object.keys(_types).forEach(function (key) {
14
+ if (key === "default" || key === "__esModule") return;
15
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
+ if (key in exports && exports[key] === _types[key]) return;
17
+ Object.defineProperty(exports, key, {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _types[key];
21
+ }
22
+ });
23
+ });
24
+ class ProductList extends _BaseModule.BaseModule {
25
+ defaultName = 'productList';
26
+ defaultVersion = '1.0.0';
27
+ store;
28
+ request;
29
+ otherParams = {};
30
30
  constructor(name, version) {
31
31
  super(name, version);
32
- this.defaultName = "productList";
33
- this.defaultVersion = "1.0.0";
34
- this.otherParams = {};
35
32
  }
36
33
  async initialize(core, options) {
37
- var _a;
38
34
  this.core = core;
39
35
  this.store = options.store;
40
36
  this.otherParams = options.otherParams || {};
41
- if (Array.isArray((_a = options.initialState) == null ? void 0 : _a.list)) {
37
+ if (Array.isArray(options.initialState?.list)) {
42
38
  this.store.list = options.initialState.list.slice().sort((a, b) => Number(b.sort) - Number(a.sort));
43
39
  this.core.effects.emit(`${this.name}:changed`, this.store.list);
44
40
  } else {
45
41
  this.store.list = [];
46
42
  this.store.selectProducts = [];
47
43
  }
48
- this.request = core.getPlugin("request");
44
+ this.request = core.getPlugin('request');
49
45
  }
50
46
  async storeChange(path, value) {
47
+ // No longer needed - products are stored as plain objects instead of Product instances
51
48
  }
52
49
  async loadProducts({
53
50
  category_ids = [],
@@ -62,59 +59,72 @@ var ProductList = class extends import_BaseModule.BaseModule {
62
59
  with_schedule,
63
60
  with_extra = []
64
61
  }, options) {
65
- var _a, _b, _c;
66
- let userPlugin = this.core.getPlugin("user");
67
- let customer_id = void 0;
62
+ // // 如果 schedule_ids 为空,则需要尝试从 schedule 模块里获取
63
+ // if (!schedule_ids?.length) {
64
+ // const schedule_ids_data = this.store.schedule
65
+ // .getScheduleListByIds(schedule_ids)
66
+ // .map((n) => n.id);
67
+ // if (schedule_ids_data.length) {
68
+ // schedule_ids = schedule_ids_data;
69
+ // } else if (schedule_date) {
70
+ // // 后端说如果 schedule_ids 如果为空,需要给[0]
71
+ // schedule_ids = [0];
72
+ // }
73
+ // }
74
+ let userPlugin = this.core.getPlugin('user');
75
+ let customer_id = undefined;
68
76
  try {
69
- customer_id = paramsCustomerId || ((_a = userPlugin == null ? void 0 : userPlugin.get()) == null ? void 0 : _a.id);
77
+ customer_id = paramsCustomerId || userPlugin?.get()?.id;
70
78
  } catch (error) {
71
79
  console.error(error);
72
80
  }
73
81
  const channelMap = {
74
- "online_store": "online-store",
75
- "scan_to_order": "online-store",
76
- "scan_to_order_2": "online-store",
77
- "scan_to_order_3": "online-store"
82
+ 'online_store': 'online-store',
83
+ 'scan_to_order': 'online-store',
84
+ 'scan_to_order_2': 'online-store',
85
+ 'scan_to_order_3': 'online-store'
78
86
  };
79
- const saleChannel = channelMap[(_b = this.otherParams) == null ? void 0 : _b.channel] || ((_c = this.otherParams) == null ? void 0 : _c.channel);
87
+ const saleChannel = channelMap[this.otherParams?.channel] || this.otherParams?.channel;
80
88
  try {
81
- const productsData = await this.request.post(
82
- `/product/query`,
83
- {
84
- open_quotation: 1,
85
- open_bundle: 0,
86
- exclude_extension_type: [
87
- "product_party",
88
- "product_event",
89
- "product_series_event",
90
- "product_package_ticket",
91
- "ticket",
92
- "event_item"
93
- ],
94
- with: ["category", "collection", "resourceRelation", ...with_extra],
95
- status: "published",
96
- num: 500,
97
- skip: 1,
98
- customer_id,
99
- category_ids,
100
- ids: product_ids,
101
- collection,
102
- front_end_cache_id: cacheId,
103
- menu_list_ids,
104
- with_count,
105
- // client_schedule_ids: schedule_ids,
106
- schedule_date,
107
- schedule_datetime,
108
- // application_code: this.otherParams?.channel === 'online_store' ? 'online-store' : this.otherParams?.channel,
109
- application_code: saleChannel,
110
- with_schedule,
111
- is_eject: 1,
112
- open_deposit: 1
113
- },
114
- { osServer: true, callback: options == null ? void 0 : options.callback, subscriberId: options == null ? void 0 : options.subscriberId, useCache: true, customToast: () => {
115
- } }
116
- );
89
+ // 如果没传schedule_date,则从
90
+ const productsData = await this.request.post(`/product/query`, {
91
+ open_quotation: 1,
92
+ open_bundle: 0,
93
+ exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item'],
94
+ with: ['category', 'collection', 'resourceRelation', ...with_extra],
95
+ status: 'published',
96
+ num: 500,
97
+ skip: 1,
98
+ customer_id,
99
+ category_ids,
100
+ ids: product_ids,
101
+ collection,
102
+ front_end_cache_id: cacheId,
103
+ menu_list_ids,
104
+ with_count,
105
+ // client_schedule_ids: schedule_ids,
106
+ schedule_date,
107
+ schedule_datetime,
108
+ // application_code: this.otherParams?.channel === 'online_store' ? 'online-store' : this.otherParams?.channel,
109
+ application_code: saleChannel,
110
+ with_schedule,
111
+ is_eject: 1,
112
+ open_deposit: 1
113
+ }, {
114
+ osServer: true,
115
+ callback: options?.callback,
116
+ subscriberId: options?.subscriberId,
117
+ useCache: true,
118
+ customToast: () => {}
119
+ });
117
120
  const sortedList = (productsData.data.list || []).slice().sort((a, b) => Number(b.sort) - Number(a.sort));
121
+ // if (sortedList.length) {
122
+ // sortedList.forEach((n: any) => {
123
+ // if (n.is_eject !== 1 && n['schedule.ids'] && n['schedule.ids'].length) {
124
+ // n.is_eject = 1
125
+ // }
126
+ // })
127
+ // }
118
128
  this.addProduct(sortedList);
119
129
  return sortedList;
120
130
  } catch (error) {
@@ -127,72 +137,63 @@ var ProductList = class extends import_BaseModule.BaseModule {
127
137
  schedule_date,
128
138
  channel
129
139
  }) {
130
- const productsData = await this.request.post(
131
- `/product/query/price`,
132
- {
133
- ids,
134
- customer_id,
135
- schedule_date,
136
- channel
137
- },
138
- { useCache: true }
139
- );
140
+ const productsData = await this.request.post(`/product/query/price`, {
141
+ ids,
142
+ customer_id,
143
+ schedule_date,
144
+ channel
145
+ }, {
146
+ useCache: true
147
+ });
140
148
  return productsData.data;
141
149
  }
142
150
  async getProducts() {
143
- await this.core.effects.emit(
144
- `${this.name}:onGetProducts`,
145
- this.store.list
146
- );
147
- return (0, import_lodash_es.cloneDeep)(this.store.list);
151
+ await this.core.effects.emit(`${this.name}:onGetProducts`, this.store.list);
152
+ return (0, _lodashEs.cloneDeep)(this.store.list);
148
153
  }
149
154
  async getProduct(id) {
150
- await this.core.effects.emit(
151
- `${this.name}:onGetProduct`,
152
- this.store.list
153
- );
154
- const product = this.store.list.find((product2) => product2.id === id);
155
- return product ? (0, import_lodash_es.cloneDeep)(product) : void 0;
155
+ await this.core.effects.emit(`${this.name}:onGetProduct`, this.store.list);
156
+ const product = this.store.list.find(product => product.id === id);
157
+ return product ? (0, _lodashEs.cloneDeep)(product) : undefined;
156
158
  }
157
159
  async addProduct(products) {
160
+ // list 需要根据 id 去重
158
161
  if (!this.store.list) {
159
162
  this.store.list = [];
160
163
  }
161
- products.forEach((n) => {
162
- const index = this.store.list.findIndex((m) => m.id === n.id);
164
+ products.forEach(n => {
165
+ const index = this.store.list.findIndex(m => m.id === n.id);
163
166
  if (index === -1) {
164
167
  this.store.list.push(n);
165
168
  } else {
166
169
  this.store.list[index] = n;
167
170
  }
168
171
  });
172
+ // 根据 sort 值做降序排序(数字越大越靠前)
169
173
  this.store.list.sort((a, b) => Number(b.sort) - Number(a.sort));
170
174
  this.core.effects.emit(`${this.name}:changed`, this.store.list);
171
175
  }
172
176
  async selectProducts(products) {
173
177
  this.store.selectProducts = products;
174
178
  }
179
+
175
180
  /**
176
181
  * 根据商品编码或条码搜索商品
177
182
  * @param code 商品编码或条码
178
183
  * @returns 匹配的商品列表,如果没有匹配则返回空数组
179
184
  */
180
185
  findProductsByCodeOrBarcode(code) {
181
- if (!code || typeof code !== "string") {
186
+ if (!code || typeof code !== 'string') {
182
187
  return [];
183
188
  }
184
189
  const trimmedCode = code.trim();
185
190
  if (!trimmedCode) {
186
191
  return [];
187
192
  }
188
- const matchingProducts = this.store.list.filter((product) => {
193
+ const matchingProducts = this.store.list.filter(product => {
189
194
  return product.code && product.code.trim() === trimmedCode || product.barcode && product.barcode.trim() === trimmedCode;
190
195
  });
191
- return (0, import_lodash_es.cloneDeep)(matchingProducts);
196
+ return (0, _lodashEs.cloneDeep)(matchingProducts);
192
197
  }
193
- };
194
- // Annotate the CommonJS export names for ESM import in node:
195
- 0 && (module.exports = {
196
- ProductList,
197
- ...require("./types")
198
- });
198
+ }
199
+ exports.ProductList = ProductList;
@@ -1,33 +1,11 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/modules/ProductList/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- ProductListHooks: () => ProductListHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var ProductListHooks = /* @__PURE__ */ ((ProductListHooks2) => {
26
- ProductListHooks2["onGetProducts"] = "productList:onGetProducts";
27
- ProductListHooks2["onGetProduct"] = "productList:onGetProduct";
28
- return ProductListHooks2;
29
- })(ProductListHooks || {});
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- ProductListHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
6
+ exports.ProductListHooks = void 0;
7
+ let ProductListHooks = exports.ProductListHooks = /*#__PURE__*/function (ProductListHooks) {
8
+ ProductListHooks["onGetProducts"] = "productList:onGetProducts";
9
+ ProductListHooks["onGetProduct"] = "productList:onGetProduct";
10
+ return ProductListHooks;
11
+ }({});