@pisell/pisellos 0.0.566 → 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 (230) 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/SalesSummary/utils.js +4 -2
  17. package/dist/modules/Schedule/utils.js +0 -1
  18. package/dist/modules/Step/index.js +0 -1
  19. package/dist/modules/Summary/utils.js +2 -2
  20. package/dist/plugins/request.js +1 -4
  21. package/dist/plugins/window.js +2 -6
  22. package/dist/server/index.js +88 -121
  23. package/dist/server/modules/menu/index.js +32 -41
  24. package/dist/server/modules/products/index.js +29 -49
  25. package/dist/server/modules/quotation/index.js +29 -38
  26. package/dist/server/modules/resource/index.js +3 -4
  27. package/dist/server/modules/schedule/index.js +32 -40
  28. package/dist/server/utils/product.js +0 -1
  29. package/dist/solution/BookingByStep/index.d.ts +1 -1
  30. package/dist/solution/BookingByStep/index.js +7 -59
  31. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  32. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  33. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  34. package/dist/solution/BookingTicket/index.d.ts +1 -1
  35. package/dist/solution/BookingTicket/index.js +5 -7
  36. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  37. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  38. package/dist/solution/BuyTickets/index.js +9 -12
  39. package/dist/solution/Checkout/index.js +177 -246
  40. package/dist/solution/Checkout/utils/index.js +4 -16
  41. package/dist/solution/RegisterAndLogin/index.js +30 -76
  42. package/dist/solution/ScanOrder/index.js +50 -60
  43. package/dist/solution/ShopDiscount/index.js +2 -7
  44. package/dist/solution/VenueBooking/index.d.ts +5 -0
  45. package/dist/solution/VenueBooking/index.js +364 -327
  46. package/dist/utils/task.js +15 -18
  47. package/dist/utils/watch.js +0 -1
  48. package/lib/apis/picoding.js +2 -0
  49. package/lib/core/index.js +130 -131
  50. package/lib/effects/index.js +46 -57
  51. package/lib/index.js +92 -53
  52. package/lib/model/index.js +14 -21
  53. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  54. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  55. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  56. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  57. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  58. package/lib/model/strategy/adapter/index.js +100 -64
  59. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  60. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  61. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  62. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  63. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  64. package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
  65. package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
  66. package/lib/model/strategy/adapter/promotion/examples.js +139 -159
  67. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  68. package/lib/model/strategy/adapter/promotion/type.js +199 -35
  69. package/lib/model/strategy/adapter/type.js +4 -16
  70. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
  71. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  72. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  73. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  74. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  75. package/lib/model/strategy/adapter/walletPass/utils.js +652 -402
  76. package/lib/model/strategy/engine.js +270 -168
  77. package/lib/model/strategy/index.js +49 -34
  78. package/lib/model/strategy/strategy-example.js +243 -239
  79. package/lib/model/strategy/type.js +100 -40
  80. package/lib/modules/Account/index.js +39 -53
  81. package/lib/modules/Account/types.js +20 -33
  82. package/lib/modules/AccountList/index.js +116 -154
  83. package/lib/modules/AccountList/types.js +30 -31
  84. package/lib/modules/AccountList/utils.js +18 -30
  85. package/lib/modules/BaseModule.js +22 -45
  86. package/lib/modules/Cart/index.js +170 -124
  87. package/lib/modules/Cart/types.js +46 -51
  88. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  89. package/lib/modules/Cart/utils/cartDate.js +56 -61
  90. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  91. package/lib/modules/Cart/utils/cartNote.js +27 -32
  92. package/lib/modules/Cart/utils/cartProduct.js +306 -241
  93. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  94. package/lib/modules/Cart/utils/cartResource.js +72 -78
  95. package/lib/modules/Cart/utils/changePrice.js +26 -62
  96. package/lib/modules/Cart/utils/index.js +106 -48
  97. package/lib/modules/Customer/constants.js +13 -34
  98. package/lib/modules/Customer/index.js +216 -153
  99. package/lib/modules/Customer/types.js +38 -35
  100. package/lib/modules/Date/index.js +116 -115
  101. package/lib/modules/Date/types.js +16 -28
  102. package/lib/modules/Date/utils.js +174 -123
  103. package/lib/modules/Discount/index.js +117 -113
  104. package/lib/modules/Discount/types.js +9 -31
  105. package/lib/modules/Guests/index.js +30 -56
  106. package/lib/modules/Guests/types.js +23 -33
  107. package/lib/modules/Holder/index.js +209 -189
  108. package/lib/modules/Holder/types.js +4 -16
  109. package/lib/modules/Holder/utils.js +20 -49
  110. package/lib/modules/OpenData/index.js +63 -74
  111. package/lib/modules/OpenData/types.js +4 -16
  112. package/lib/modules/OpenData/utils.js +44 -78
  113. package/lib/modules/Order/index.d.ts +1 -1
  114. package/lib/modules/Order/index.js +332 -320
  115. package/lib/modules/Order/types.js +24 -33
  116. package/lib/modules/Order/utils.js +350 -284
  117. package/lib/modules/Payment/cash.js +20 -33
  118. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  119. package/lib/modules/Payment/eftpos.js +16 -30
  120. package/lib/modules/Payment/index.js +566 -432
  121. package/lib/modules/Payment/mx51.js +1 -0
  122. package/lib/modules/Payment/types.js +216 -107
  123. package/lib/modules/Payment/utils.js +50 -47
  124. package/lib/modules/Payment/walletpass.js +221 -203
  125. package/lib/modules/Product/index.js +51 -46
  126. package/lib/modules/Product/types.js +4 -16
  127. package/lib/modules/Product/utils.js +32 -33
  128. package/lib/modules/ProductList/index.js +111 -110
  129. package/lib/modules/ProductList/types.js +9 -31
  130. package/lib/modules/Quotation/index.js +60 -82
  131. package/lib/modules/Quotation/types.js +4 -16
  132. package/lib/modules/Resource/index.js +27 -59
  133. package/lib/modules/Resource/types.js +22 -32
  134. package/lib/modules/Resource/utils.js +30 -38
  135. package/lib/modules/Rules/index.js +1172 -872
  136. package/lib/modules/Rules/types.js +17 -40
  137. package/lib/modules/SalesSummary/index.js +59 -68
  138. package/lib/modules/SalesSummary/types.js +4 -16
  139. package/lib/modules/SalesSummary/utils.js +178 -193
  140. package/lib/modules/ScanOrderLogger/index.js +59 -79
  141. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  142. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  143. package/lib/modules/ScanOrderLogger/types.js +4 -16
  144. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -167
  145. package/lib/modules/Schedule/index.js +97 -107
  146. package/lib/modules/Schedule/type.js +4 -16
  147. package/lib/modules/Schedule/types.js +4 -16
  148. package/lib/modules/Schedule/utils.js +433 -291
  149. package/lib/modules/Step/index.js +40 -52
  150. package/lib/modules/Step/tyeps.js +4 -16
  151. package/lib/modules/Summary/index.js +66 -70
  152. package/lib/modules/Summary/types.js +4 -16
  153. package/lib/modules/Summary/utils.js +782 -429
  154. package/lib/modules/index.js +212 -57
  155. package/lib/plugins/app.js +4 -16
  156. package/lib/plugins/index.js +36 -25
  157. package/lib/plugins/request.js +137 -126
  158. package/lib/plugins/shopStore.js +4 -16
  159. package/lib/plugins/user.js +4 -16
  160. package/lib/plugins/window.js +171 -179
  161. package/lib/server/index.js +882 -623
  162. package/lib/server/modules/index.js +85 -59
  163. package/lib/server/modules/menu/index.js +146 -122
  164. package/lib/server/modules/menu/types.js +18 -31
  165. package/lib/server/modules/order/index.js +195 -231
  166. package/lib/server/modules/order/types.js +107 -32
  167. package/lib/server/modules/order/utils/filterBookings.js +174 -140
  168. package/lib/server/modules/order/utils/filterOrders.js +89 -60
  169. package/lib/server/modules/products/index.js +430 -335
  170. package/lib/server/modules/products/types.js +41 -34
  171. package/lib/server/modules/quotation/index.js +76 -77
  172. package/lib/server/modules/quotation/types.js +21 -31
  173. package/lib/server/modules/resource/index.js +216 -187
  174. package/lib/server/modules/resource/types.js +42 -33
  175. package/lib/server/modules/schedule/index.js +134 -119
  176. package/lib/server/modules/schedule/types.js +14 -21
  177. package/lib/server/modules/schedule/utils.js +334 -163
  178. package/lib/server/types.js +4 -16
  179. package/lib/server/utils/index.js +25 -23
  180. package/lib/server/utils/product.js +196 -139
  181. package/lib/server/utils/schedule.js +34 -41
  182. package/lib/server/utils/time.js +40 -49
  183. package/lib/solution/BookingByStep/index.d.ts +1 -1
  184. package/lib/solution/BookingByStep/index.js +1530 -1343
  185. package/lib/solution/BookingByStep/types.js +40 -99
  186. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  187. package/lib/solution/BookingByStep/utils/products.js +42 -52
  188. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  189. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  190. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  191. package/lib/solution/BookingTicket/index.d.ts +1 -1
  192. package/lib/solution/BookingTicket/index.js +147 -122
  193. package/lib/solution/BookingTicket/types.js +38 -64
  194. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
  195. package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
  196. package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
  197. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  198. package/lib/solution/BuyTickets/index.js +67 -70
  199. package/lib/solution/BuyTickets/types.js +22 -38
  200. package/lib/solution/Checkout/index.js +1451 -1158
  201. package/lib/solution/Checkout/types.js +91 -61
  202. package/lib/solution/Checkout/utils/index.js +227 -158
  203. package/lib/solution/PlaceOrder/index.js +55 -0
  204. package/lib/solution/RegisterAndLogin/config.js +493 -460
  205. package/lib/solution/RegisterAndLogin/index.js +633 -630
  206. package/lib/solution/RegisterAndLogin/types.js +189 -76
  207. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  208. package/lib/solution/Sales/index.js +218 -200
  209. package/lib/solution/Sales/types.js +27 -33
  210. package/lib/solution/ScanOrder/index.js +803 -840
  211. package/lib/solution/ScanOrder/types.js +34 -34
  212. package/lib/solution/ScanOrder/utils.js +372 -331
  213. package/lib/solution/ShopDiscount/index.js +230 -236
  214. package/lib/solution/ShopDiscount/types.js +15 -37
  215. package/lib/solution/ShopDiscount/utils.js +309 -172
  216. package/lib/solution/VenueBooking/index.d.ts +5 -0
  217. package/lib/solution/VenueBooking/index.js +886 -929
  218. package/lib/solution/VenueBooking/types.js +20 -40
  219. package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
  220. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  221. package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
  222. package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
  223. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
  224. package/lib/solution/VenueBooking/utils.js +130 -67
  225. package/lib/solution/index.js +102 -37
  226. package/lib/store/createStore.js +32 -29
  227. package/lib/types/index.js +4 -16
  228. package/lib/utils/task.js +36 -36
  229. package/lib/utils/watch.js +81 -47
  230. 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
+ }({});