@pisell/pisellos 2.2.283 → 2.2.285

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 (283) hide show
  1. package/dist/core/index.js +6 -10
  2. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  3. package/dist/model/strategy/strategy-example.js +5 -19
  4. package/dist/modules/Cart/index.js +0 -3
  5. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  6. package/dist/modules/Date/index.js +1 -5
  7. package/dist/modules/Discount/index.js +2 -4
  8. package/dist/modules/OpenData/index.js +0 -2
  9. package/dist/modules/Order/index.d.ts +1 -1
  10. package/dist/modules/Order/index.js +64 -86
  11. package/dist/modules/Order/types.d.ts +3 -1
  12. package/dist/modules/Order/types.js +1 -0
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/ProductList/index.js +91 -65
  15. package/dist/modules/Rules/index.js +1 -4
  16. package/dist/modules/Schedule/index.js +0 -1
  17. package/dist/modules/Schedule/utils.js +0 -1
  18. package/dist/modules/Step/index.js +0 -1
  19. package/dist/plugins/request.js +1 -4
  20. package/dist/plugins/window.js +2 -6
  21. package/dist/server/index.js +97 -129
  22. package/dist/server/modules/menu/index.js +32 -41
  23. package/dist/server/modules/order/index.js +2 -4
  24. package/dist/server/modules/products/index.js +24 -42
  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 +27 -35
  28. package/dist/server/utils/product.js +0 -1
  29. package/dist/solution/BaseSales/index.js +115 -76
  30. package/dist/solution/BookingByStep/index.d.ts +1 -1
  31. package/dist/solution/BookingByStep/index.js +7 -59
  32. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  33. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  34. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  35. package/dist/solution/BookingTicket/index.d.ts +6 -16
  36. package/dist/solution/BookingTicket/index.js +13 -6
  37. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  38. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  39. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  40. package/dist/solution/BuyTickets/index.js +9 -12
  41. package/dist/solution/Checkout/index.js +177 -252
  42. package/dist/solution/Checkout/utils/index.js +4 -16
  43. package/dist/solution/RegisterAndLogin/index.js +30 -76
  44. package/dist/solution/ScanOrder/index.js +50 -60
  45. package/dist/solution/ShopDiscount/index.js +2 -7
  46. package/dist/solution/VenueBooking/index.js +45 -55
  47. package/dist/utils/task.js +15 -18
  48. package/dist/utils/watch.js +0 -1
  49. package/lib/apis/picoding.js +2 -0
  50. package/lib/core/index.js +131 -132
  51. package/lib/effects/index.js +46 -57
  52. package/lib/index.js +82 -49
  53. package/lib/model/index.js +14 -21
  54. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  55. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  56. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  57. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  58. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  59. package/lib/model/strategy/adapter/index.js +100 -64
  60. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  61. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  62. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  63. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  64. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  65. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  66. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  67. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  68. package/lib/model/strategy/adapter/promotion/index.js +46 -0
  69. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  70. package/lib/model/strategy/adapter/type.js +4 -16
  71. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  72. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  73. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  74. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  75. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  76. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  77. package/lib/model/strategy/engine.js +270 -168
  78. package/lib/model/strategy/index.js +49 -34
  79. package/lib/model/strategy/strategy-example.js +243 -239
  80. package/lib/model/strategy/type.js +100 -40
  81. package/lib/modules/Account/index.js +39 -53
  82. package/lib/modules/Account/types.js +20 -33
  83. package/lib/modules/AccountList/index.js +116 -154
  84. package/lib/modules/AccountList/types.js +30 -31
  85. package/lib/modules/AccountList/utils.js +18 -30
  86. package/lib/modules/BaseModule.js +23 -42
  87. package/lib/modules/BookingContext/index.js +158 -136
  88. package/lib/modules/BookingContext/types.js +46 -32
  89. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  90. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  91. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  92. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  93. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  94. package/lib/modules/BookingContext/utils/index.js +124 -41
  95. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  96. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  97. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  98. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  99. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  100. package/lib/modules/BookingContext/utils/resources.js +209 -167
  101. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  102. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  103. package/lib/modules/Cart/index.js +170 -124
  104. package/lib/modules/Cart/types.js +46 -51
  105. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  106. package/lib/modules/Cart/utils/cartDate.js +56 -61
  107. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  108. package/lib/modules/Cart/utils/cartNote.js +27 -32
  109. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  110. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  111. package/lib/modules/Cart/utils/cartResource.js +70 -78
  112. package/lib/modules/Cart/utils/changePrice.js +22 -50
  113. package/lib/modules/Cart/utils/index.js +106 -48
  114. package/lib/modules/Customer/constants.js +13 -34
  115. package/lib/modules/Customer/index.js +235 -172
  116. package/lib/modules/Customer/types.js +38 -35
  117. package/lib/modules/Date/index.js +116 -115
  118. package/lib/modules/Date/types.js +16 -28
  119. package/lib/modules/Date/utils.js +174 -123
  120. package/lib/modules/Discount/index.js +122 -127
  121. package/lib/modules/Discount/types.js +9 -31
  122. package/lib/modules/Guests/index.js +30 -56
  123. package/lib/modules/Guests/types.js +23 -33
  124. package/lib/modules/Holder/index.js +209 -189
  125. package/lib/modules/Holder/types.js +4 -16
  126. package/lib/modules/Holder/utils.js +20 -49
  127. package/lib/modules/OpenData/index.js +70 -76
  128. package/lib/modules/OpenData/types.js +4 -16
  129. package/lib/modules/OpenData/utils.js +44 -78
  130. package/lib/modules/Order/index.d.ts +1 -1
  131. package/lib/modules/Order/index.js +1728 -2123
  132. package/lib/modules/Order/payment-utils.js +77 -120
  133. package/lib/modules/Order/types.d.ts +3 -1
  134. package/lib/modules/Order/types.js +88 -35
  135. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  136. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  137. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  138. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  139. package/lib/modules/Order/utils.js +814 -647
  140. package/lib/modules/Payment/cash.js +20 -33
  141. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  142. package/lib/modules/Payment/eftpos.js +16 -30
  143. package/lib/modules/Payment/index.js +532 -399
  144. package/lib/modules/Payment/mx51.js +1 -0
  145. package/lib/modules/Payment/types.js +230 -108
  146. package/lib/modules/Payment/utils.js +52 -51
  147. package/lib/modules/Payment/walletpass.js +485 -660
  148. package/lib/modules/Product/index.js +51 -46
  149. package/lib/modules/Product/types.js +4 -16
  150. package/lib/modules/Product/utils.js +32 -33
  151. package/lib/modules/ProductList/index.js +119 -123
  152. package/lib/modules/ProductList/types.js +9 -31
  153. package/lib/modules/Quotation/index.js +66 -100
  154. package/lib/modules/Quotation/types.js +4 -16
  155. package/lib/modules/Resource/index.js +27 -59
  156. package/lib/modules/Resource/types.js +22 -32
  157. package/lib/modules/Resource/utils.js +30 -38
  158. package/lib/modules/ResourcePlanner/index.js +60 -61
  159. package/lib/modules/ResourcePlanner/planner.js +346 -384
  160. package/lib/modules/ResourcePlanner/types.js +4 -16
  161. package/lib/modules/Rules/index.js +1218 -959
  162. package/lib/modules/Rules/types.js +17 -40
  163. package/lib/modules/SalesSummary/index.js +85 -90
  164. package/lib/modules/SalesSummary/types.js +4 -16
  165. package/lib/modules/SalesSummary/utils.js +355 -430
  166. package/lib/modules/ScanOrderLogger/index.js +59 -79
  167. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  168. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  169. package/lib/modules/ScanOrderLogger/types.js +4 -16
  170. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  171. package/lib/modules/Schedule/index.js +100 -114
  172. package/lib/modules/Schedule/type.js +4 -16
  173. package/lib/modules/Schedule/types.js +4 -16
  174. package/lib/modules/Schedule/utils.js +433 -291
  175. package/lib/modules/Step/index.js +40 -52
  176. package/lib/modules/Step/tyeps.js +4 -16
  177. package/lib/modules/Summary/index.js +66 -71
  178. package/lib/modules/Summary/types.js +4 -16
  179. package/lib/modules/Summary/utils.js +773 -418
  180. package/lib/modules/SurchargeList/index.js +46 -60
  181. package/lib/modules/SurchargeList/types.js +4 -16
  182. package/lib/modules/index.js +245 -63
  183. package/lib/plugins/app.js +4 -16
  184. package/lib/plugins/index.js +36 -25
  185. package/lib/plugins/request.js +137 -126
  186. package/lib/plugins/shopStore.js +4 -16
  187. package/lib/plugins/user.js +4 -16
  188. package/lib/plugins/window.js +171 -179
  189. package/lib/server/index.js +3027 -2655
  190. package/lib/server/modules/floor-plan/index.js +102 -123
  191. package/lib/server/modules/floor-plan/types.js +15 -30
  192. package/lib/server/modules/index.js +106 -68
  193. package/lib/server/modules/menu/index.js +146 -122
  194. package/lib/server/modules/menu/types.js +18 -31
  195. package/lib/server/modules/order/index.js +758 -956
  196. package/lib/server/modules/order/types.js +122 -33
  197. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  198. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  199. package/lib/server/modules/payment/index.js +59 -83
  200. package/lib/server/modules/payment/types.js +4 -16
  201. package/lib/server/modules/products/index.js +575 -459
  202. package/lib/server/modules/products/types.js +44 -34
  203. package/lib/server/modules/quotation/index.js +137 -172
  204. package/lib/server/modules/quotation/types.js +21 -31
  205. package/lib/server/modules/resource/index.js +213 -184
  206. package/lib/server/modules/resource/types.js +42 -33
  207. package/lib/server/modules/schedule/index.js +135 -123
  208. package/lib/server/modules/schedule/types.js +14 -21
  209. package/lib/server/modules/schedule/utils.js +334 -163
  210. package/lib/server/types.js +4 -16
  211. package/lib/server/utils/index.js +25 -23
  212. package/lib/server/utils/product.js +196 -139
  213. package/lib/server/utils/schedule.js +34 -41
  214. package/lib/server/utils/small-ticket.js +479 -456
  215. package/lib/server/utils/time.js +40 -49
  216. package/lib/solution/BaseSales/index.js +1220 -1412
  217. package/lib/solution/BaseSales/types.js +42 -38
  218. package/lib/solution/BaseSales/utils/cartPromotion.js +650 -502
  219. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  220. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  221. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  222. package/lib/solution/BaseSales/utils.js +158 -143
  223. package/lib/solution/BookingByStep/index.d.ts +1 -1
  224. package/lib/solution/BookingByStep/index.js +1527 -1340
  225. package/lib/solution/BookingByStep/types.js +40 -99
  226. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  227. package/lib/solution/BookingByStep/utils/products.js +42 -52
  228. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  229. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  230. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  231. package/lib/solution/BookingTicket/index.d.ts +6 -16
  232. package/lib/solution/BookingTicket/index.js +608 -517
  233. package/lib/solution/BookingTicket/types.js +99 -77
  234. package/lib/solution/BookingTicket/utils/addProductDecision.js +225 -187
  235. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  236. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  237. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  238. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  239. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  240. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  241. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  242. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  243. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  244. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  245. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  246. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  247. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  248. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  249. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  250. package/lib/solution/BuyTickets/index.js +67 -70
  251. package/lib/solution/BuyTickets/types.js +22 -38
  252. package/lib/solution/Checkout/index.js +1451 -1158
  253. package/lib/solution/Checkout/types.js +91 -61
  254. package/lib/solution/Checkout/utils/index.js +228 -156
  255. package/lib/solution/PlaceOrder/index.js +55 -0
  256. package/lib/solution/RegisterAndLogin/config.js +493 -460
  257. package/lib/solution/RegisterAndLogin/index.js +633 -630
  258. package/lib/solution/RegisterAndLogin/types.js +189 -76
  259. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  260. package/lib/solution/Sales/index.js +328 -324
  261. package/lib/solution/Sales/types.js +27 -33
  262. package/lib/solution/ScanOrder/index.js +832 -864
  263. package/lib/solution/ScanOrder/types.js +33 -34
  264. package/lib/solution/ScanOrder/utils.js +409 -374
  265. package/lib/solution/ShopDiscount/index.js +226 -232
  266. package/lib/solution/ShopDiscount/types.js +15 -37
  267. package/lib/solution/ShopDiscount/utils.js +300 -172
  268. package/lib/solution/UnifiedBookingSales/index.js +437 -487
  269. package/lib/solution/UnifiedBookingSales/types.js +12 -31
  270. package/lib/solution/VenueBooking/index.js +811 -879
  271. package/lib/solution/VenueBooking/types.js +19 -39
  272. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  273. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  274. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  275. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  276. package/lib/solution/VenueBooking/utils.js +130 -67
  277. package/lib/solution/index.js +124 -41
  278. package/lib/store/createStore.js +32 -29
  279. package/lib/types/index.js +4 -16
  280. package/lib/utils/payment-number.js +26 -46
  281. package/lib/utils/task.js +36 -36
  282. package/lib/utils/watch.js +81 -47
  283. 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,63 +1,51 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
29
2
 
30
- // src/modules/ProductList/index.ts
31
- var ProductList_exports = {};
32
- __export(ProductList_exports, {
33
- ProductList: () => ProductList
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
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 _dayjs = _interopRequireDefault(require("dayjs"));
13
+ var _types = require("./types");
14
+ Object.keys(_types).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _types[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _types[key];
22
+ }
23
+ });
34
24
  });
35
- module.exports = __toCommonJS(ProductList_exports);
36
- var import_BaseModule = require("../BaseModule");
37
- var import_lodash_es = require("lodash-es");
38
- var import_dayjs = __toESM(require("dayjs"));
39
- __reExport(ProductList_exports, require("./types"), module.exports);
40
- var ProductList = class extends import_BaseModule.BaseModule {
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ class ProductList extends _BaseModule.BaseModule {
27
+ defaultName = 'productList';
28
+ defaultVersion = '1.0.0';
29
+ store;
30
+ request;
31
+ otherParams = {};
41
32
  constructor(name, version) {
42
33
  super(name, version);
43
- this.defaultName = "productList";
44
- this.defaultVersion = "1.0.0";
45
- this.otherParams = {};
46
34
  }
47
35
  async initialize(core, options) {
48
- var _a;
49
36
  this.core = core;
50
37
  this.store = options.store;
51
38
  this.otherParams = options.otherParams || {};
52
- if (Array.isArray((_a = options.initialState) == null ? void 0 : _a.list)) {
39
+ if (Array.isArray(options.initialState?.list)) {
53
40
  this.store.list = options.initialState.list.slice().sort((a, b) => Number(b.sort) - Number(a.sort));
54
41
  this.core.effects.emit(`${this.name}:changed`, this.store.list);
55
42
  } else {
56
43
  this.store.list = [];
57
44
  this.store.selectProducts = [];
58
45
  }
59
- this.request = core.getPlugin("request");
46
+ this.request = core.getPlugin('request');
60
47
  }
48
+
61
49
  /**
62
50
  * 更新运行态参数,供父级解决方案 setOtherParams 后同步查询上下文。
63
51
  *
@@ -68,7 +56,9 @@ var ProductList = class extends import_BaseModule.BaseModule {
68
56
  this.otherParams = params || {};
69
57
  }
70
58
  async storeChange(path, value) {
59
+ // No longer needed - products are stored as plain objects instead of Product instances
71
60
  }
61
+
72
62
  /**
73
63
  * 获取加时商品列表。
74
64
  *
@@ -77,10 +67,10 @@ var ProductList = class extends import_BaseModule.BaseModule {
77
67
  */
78
68
  async getAddTimeProducts(params = {}) {
79
69
  return this.loadProducts({
80
- schedule_date: (0, import_dayjs.default)().format("YYYY-MM-DD"),
81
- status: "published",
70
+ schedule_date: (0, _dayjs.default)().format('YYYY-MM-DD'),
71
+ status: 'published',
82
72
  ...params,
83
- extension_type: ["product_add_time"]
73
+ extension_type: ['product_add_time']
84
74
  });
85
75
  }
86
76
  async loadProducts({
@@ -95,55 +85,60 @@ var ProductList = class extends import_BaseModule.BaseModule {
95
85
  cacheId,
96
86
  with_schedule,
97
87
  extension_type,
98
- status = "published",
88
+ status = 'published',
99
89
  strategy_context
100
90
  } = {}, options) {
101
- var _a, _b;
102
- let userPlugin = this.core.getPlugin("user");
103
- let customer_id = void 0;
91
+ // // 如果 schedule_ids 为空,则需要尝试从 schedule 模块里获取
92
+ // if (!schedule_ids?.length) {
93
+ // const schedule_ids_data = this.store.schedule
94
+ // .getScheduleListByIds(schedule_ids)
95
+ // .map((n) => n.id);
96
+ // if (schedule_ids_data.length) {
97
+ // schedule_ids = schedule_ids_data;
98
+ // } else if (schedule_date) {
99
+ // // 后端说如果 schedule_ids 如果为空,需要给[0]
100
+ // schedule_ids = [0];
101
+ // }
102
+ // }
103
+ let userPlugin = this.core.getPlugin('user');
104
+ let customer_id = undefined;
104
105
  try {
105
- customer_id = paramsCustomerId || ((_a = userPlugin == null ? void 0 : userPlugin.get()) == null ? void 0 : _a.id);
106
+ customer_id = paramsCustomerId || userPlugin?.get()?.id;
106
107
  } catch (error) {
107
108
  console.error(error);
108
109
  }
110
+ // 如果没传schedule_date,则从
109
111
  const channelMap = {
110
- online_store: "online-store",
111
- scan_to_order: "online-store",
112
- "scan-to-order": "online-store",
113
- scan_to_order_2: "mobile_order",
114
- scan_to_order_3: "scantoorder3"
112
+ online_store: 'online-store',
113
+ scan_to_order: 'online-store',
114
+ 'scan-to-order': 'online-store',
115
+ scan_to_order_2: 'mobile_order',
116
+ scan_to_order_3: 'scantoorder3'
115
117
  };
116
- const rawApplicationCode = (_b = this.otherParams) == null ? void 0 : _b.channel;
117
- const mappedApplicationCode = typeof rawApplicationCode === "string" ? channelMap[rawApplicationCode] || rawApplicationCode : rawApplicationCode;
118
+ const rawApplicationCode = this.otherParams?.channel;
119
+ const mappedApplicationCode = typeof rawApplicationCode === 'string' ? channelMap[rawApplicationCode] || rawApplicationCode : rawApplicationCode;
118
120
  const queryPayload = {
119
121
  open_quotation: 1,
120
122
  open_bundle: 0,
121
- exclude_extension_type: [
122
- "product_party",
123
- "product_event",
124
- "product_series_event",
125
- "product_package_ticket",
126
- "ticket",
127
- "event_item"
128
- ],
129
- with: [
130
- "category",
131
- "collection",
132
- "resourceRelation",
133
- "bundleGroup.bundleItem",
134
- "optionGroup.optionItem",
135
- "variantGroup.variantItem",
136
- "dataVariants"
137
- ],
123
+ exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item'],
124
+ with: ['category', 'collection', 'resourceRelation', 'bundleGroup.bundleItem', 'optionGroup.optionItem', 'variantGroup.variantItem', 'dataVariants'],
138
125
  status,
139
126
  num: 500,
140
127
  skip: 1,
141
128
  customer_id,
142
- ...Array.isArray(category_ids) && category_ids.length ? { category_ids } : {},
143
- ...Array.isArray(product_ids) && product_ids.length ? { ids: product_ids } : {},
144
- ...Array.isArray(collection) && collection.length ? { collection } : {},
129
+ ...(Array.isArray(category_ids) && category_ids.length ? {
130
+ category_ids
131
+ } : {}),
132
+ ...(Array.isArray(product_ids) && product_ids.length ? {
133
+ ids: product_ids
134
+ } : {}),
135
+ ...(Array.isArray(collection) && collection.length ? {
136
+ collection
137
+ } : {}),
145
138
  front_end_cache_id: cacheId,
146
- ...Array.isArray(menu_list_ids) && menu_list_ids.length ? { menu_list_ids } : {},
139
+ ...(Array.isArray(menu_list_ids) && menu_list_ids.length ? {
140
+ menu_list_ids
141
+ } : {}),
147
142
  with_count,
148
143
  // client_schedule_ids: schedule_ids,
149
144
  schedule_date,
@@ -154,13 +149,26 @@ var ProductList = class extends import_BaseModule.BaseModule {
154
149
  extension_type,
155
150
  strategy_context
156
151
  };
157
- const productsData = await this.request.post(
158
- `/product/query`,
159
- queryPayload,
160
- { osServer: true, callback: options == null ? void 0 : options.callback, subscriberId: options == null ? void 0 : options.subscriberId, customToast: () => {
161
- } }
162
- );
152
+ const originalCallback = options?.callback;
153
+ const subscriptionCallback = originalCallback ? async result => {
154
+ const products = Array.isArray(result?.data?.list) ? result.data.list : [];
155
+ await this.addProduct(products);
156
+ originalCallback(result);
157
+ } : undefined;
158
+ const productsData = await this.request.post(`/product/query`, queryPayload, {
159
+ osServer: true,
160
+ callback: subscriptionCallback,
161
+ subscriberId: options?.subscriberId,
162
+ customToast: () => {}
163
+ });
163
164
  const sortedList = (productsData.data.list || []).slice().sort((a, b) => Number(b.sort) - Number(a.sort));
165
+ // if (sortedList.length) {
166
+ // sortedList.forEach((n: any) => {
167
+ // if (n.is_eject !== 1 && n['schedule.ids'] && n['schedule.ids'].length) {
168
+ // n.is_eject = 1
169
+ // }
170
+ // })
171
+ // }
164
172
  this.addProduct(sortedList);
165
173
  return sortedList;
166
174
  }
@@ -170,80 +178,68 @@ var ProductList = class extends import_BaseModule.BaseModule {
170
178
  schedule_date,
171
179
  channel
172
180
  }) {
173
- const productsData = await this.request.post(
174
- `/product/query/price`,
175
- {
176
- ids,
177
- customer_id,
178
- schedule_date,
179
- channel
180
- },
181
- { useCache: true }
182
- );
181
+ const productsData = await this.request.post(`/product/query/price`, {
182
+ ids,
183
+ customer_id,
184
+ schedule_date,
185
+ channel
186
+ }, {
187
+ useCache: true
188
+ });
183
189
  return productsData.data;
184
190
  }
185
191
  async getProducts() {
186
- await this.core.effects.emit(
187
- `${this.name}:onGetProducts`,
188
- this.store.list
189
- );
190
- return (0, import_lodash_es.cloneDeep)(this.store.list);
192
+ await this.core.effects.emit(`${this.name}:onGetProducts`, this.store.list);
193
+ return (0, _lodashEs.cloneDeep)(this.store.list);
191
194
  }
192
195
  async getProduct(id) {
193
- await this.core.effects.emit(
194
- `${this.name}:onGetProduct`,
195
- this.store.list
196
- );
197
- const product = this.store.list.find((product2) => product2.id === id);
198
- return product ? (0, import_lodash_es.cloneDeep)(product) : void 0;
196
+ await this.core.effects.emit(`${this.name}:onGetProduct`, this.store.list);
197
+ const product = this.store.list.find(product => product.id === id);
198
+ return product ? (0, _lodashEs.cloneDeep)(product) : undefined;
199
199
  }
200
200
  async getProductByIds(ids) {
201
- await this.core.effects.emit(
202
- `${this.name}:onGetProductByIds`,
203
- this.store.list
204
- );
205
- const products = this.store.list.filter((product) => ids.includes(product.id));
201
+ await this.core.effects.emit(`${this.name}:onGetProductByIds`, this.store.list);
202
+ const products = this.store.list.filter(product => ids.includes(product.id));
206
203
  return products;
207
204
  }
208
205
  async addProduct(products) {
206
+ // list 需要根据 id 去重
209
207
  if (!this.store.list) {
210
208
  this.store.list = [];
211
209
  }
212
- products.forEach((n) => {
213
- const index = this.store.list.findIndex((m) => m.id === n.id);
210
+ products.forEach(n => {
211
+ const index = this.store.list.findIndex(m => m.id === n.id);
214
212
  if (index === -1) {
215
213
  this.store.list.push(n);
216
214
  } else {
217
215
  this.store.list[index] = n;
218
216
  }
219
217
  });
218
+ // 根据 sort 值做降序排序(数字越大越靠前)
220
219
  this.store.list.sort((a, b) => Number(b.sort) - Number(a.sort));
221
220
  this.core.effects.emit(`${this.name}:changed`, this.store.list);
222
221
  }
223
222
  async selectProducts(products) {
224
223
  this.store.selectProducts = products;
225
224
  }
225
+
226
226
  /**
227
227
  * 根据商品编码或条码搜索商品
228
228
  * @param code 商品编码或条码
229
229
  * @returns 匹配的商品列表,如果没有匹配则返回空数组
230
230
  */
231
231
  findProductsByCodeOrBarcode(code) {
232
- if (!code || typeof code !== "string") {
232
+ if (!code || typeof code !== 'string') {
233
233
  return [];
234
234
  }
235
235
  const trimmedCode = code.trim();
236
236
  if (!trimmedCode) {
237
237
  return [];
238
238
  }
239
- const matchingProducts = this.store.list.filter((product) => {
239
+ const matchingProducts = this.store.list.filter(product => {
240
240
  return product.code && product.code.trim() === trimmedCode || product.barcode && product.barcode.trim() === trimmedCode;
241
241
  });
242
- return (0, import_lodash_es.cloneDeep)(matchingProducts);
242
+ return (0, _lodashEs.cloneDeep)(matchingProducts);
243
243
  }
244
- };
245
- // Annotate the CommonJS export names for ESM import in node:
246
- 0 && (module.exports = {
247
- ProductList,
248
- ...require("./types")
249
- });
244
+ }
245
+ 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
+ }({});