@pisell/pisellos 2.3.74 → 2.3.76

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/promotion/index.js +9 -0
  3. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  4. package/dist/model/strategy/strategy-example.js +5 -19
  5. package/dist/modules/Cart/index.js +0 -3
  6. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  7. package/dist/modules/Date/index.js +1 -5
  8. package/dist/modules/Discount/index.js +2 -4
  9. package/dist/modules/OpenData/index.js +0 -2
  10. package/dist/modules/Order/index.d.ts +1 -1
  11. package/dist/modules/Order/index.js +75 -91
  12. package/dist/modules/Order/types.d.ts +3 -1
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Rules/index.js +1 -4
  15. package/dist/modules/Schedule/index.js +0 -1
  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 +97 -129
  21. package/dist/server/modules/menu/index.js +32 -41
  22. package/dist/server/modules/order/index.js +2 -4
  23. package/dist/server/modules/products/index.js +24 -42
  24. package/dist/server/modules/quotation/index.js +29 -38
  25. package/dist/server/modules/resource/index.js +3 -4
  26. package/dist/server/modules/schedule/index.js +27 -35
  27. package/dist/server/utils/product.js +0 -1
  28. package/dist/solution/BaseSales/index.js +100 -72
  29. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  30. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  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.js +0 -2
  36. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  37. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  38. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  39. package/dist/solution/BuyTickets/index.js +9 -12
  40. package/dist/solution/Checkout/index.js +177 -252
  41. package/dist/solution/Checkout/utils/index.js +4 -16
  42. package/dist/solution/RegisterAndLogin/index.js +30 -76
  43. package/dist/solution/ScanOrder/index.js +50 -60
  44. package/dist/solution/ShopDiscount/index.js +2 -7
  45. package/dist/solution/VenueBooking/index.js +45 -55
  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 +134 -134
  50. package/lib/effects/index.js +46 -57
  51. package/lib/index.js +82 -49
  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 +91 -69
  65. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  66. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  67. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  68. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  69. package/lib/model/strategy/adapter/type.js +4 -16
  70. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  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 +588 -378
  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 +23 -42
  86. package/lib/modules/BookingContext/index.js +158 -136
  87. package/lib/modules/BookingContext/types.js +46 -32
  88. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  89. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  90. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  91. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  92. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  93. package/lib/modules/BookingContext/utils/index.js +124 -41
  94. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  95. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  96. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  97. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  98. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  99. package/lib/modules/BookingContext/utils/resources.js +209 -167
  100. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  101. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  102. package/lib/modules/Cart/index.js +170 -124
  103. package/lib/modules/Cart/types.js +46 -51
  104. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  105. package/lib/modules/Cart/utils/cartDate.js +56 -61
  106. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  107. package/lib/modules/Cart/utils/cartNote.js +27 -32
  108. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  109. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  110. package/lib/modules/Cart/utils/cartResource.js +70 -78
  111. package/lib/modules/Cart/utils/changePrice.js +22 -50
  112. package/lib/modules/Cart/utils/index.js +106 -48
  113. package/lib/modules/Customer/constants.js +13 -34
  114. package/lib/modules/Customer/index.js +235 -172
  115. package/lib/modules/Customer/types.js +38 -35
  116. package/lib/modules/Date/index.js +116 -115
  117. package/lib/modules/Date/types.js +16 -28
  118. package/lib/modules/Date/utils.js +174 -123
  119. package/lib/modules/Discount/index.js +122 -127
  120. package/lib/modules/Discount/types.js +9 -31
  121. package/lib/modules/Guests/index.js +30 -56
  122. package/lib/modules/Guests/types.js +23 -33
  123. package/lib/modules/Holder/index.js +209 -189
  124. package/lib/modules/Holder/types.js +4 -16
  125. package/lib/modules/Holder/utils.js +20 -49
  126. package/lib/modules/OpenData/index.js +70 -76
  127. package/lib/modules/OpenData/types.js +4 -16
  128. package/lib/modules/OpenData/utils.js +44 -78
  129. package/lib/modules/Order/index.d.ts +1 -1
  130. package/lib/modules/Order/index.js +1733 -2121
  131. package/lib/modules/Order/payment-utils.js +77 -120
  132. package/lib/modules/Order/types.d.ts +3 -1
  133. package/lib/modules/Order/types.js +88 -35
  134. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  135. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  136. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  137. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  138. package/lib/modules/Order/utils.js +814 -647
  139. package/lib/modules/Payment/cash.js +20 -33
  140. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  141. package/lib/modules/Payment/eftpos.js +16 -30
  142. package/lib/modules/Payment/index.js +532 -399
  143. package/lib/modules/Payment/mx51.js +1 -0
  144. package/lib/modules/Payment/types.js +230 -108
  145. package/lib/modules/Payment/utils.js +52 -51
  146. package/lib/modules/Payment/walletpass.js +485 -660
  147. package/lib/modules/Product/index.js +51 -46
  148. package/lib/modules/Product/types.js +4 -16
  149. package/lib/modules/Product/utils.js +32 -33
  150. package/lib/modules/ProductList/index.js +113 -123
  151. package/lib/modules/ProductList/types.js +9 -31
  152. package/lib/modules/Quotation/index.js +81 -118
  153. package/lib/modules/Quotation/types.js +4 -16
  154. package/lib/modules/Resource/index.js +27 -59
  155. package/lib/modules/Resource/types.js +22 -32
  156. package/lib/modules/Resource/utils.js +30 -38
  157. package/lib/modules/ResourcePlanner/index.js +25 -23
  158. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  159. package/lib/modules/ResourcePlanner/planner.js +589 -770
  160. package/lib/modules/ResourcePlanner/types.js +10 -29
  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 +3050 -2665
  190. package/lib/server/modules/floor-plan/index.js +118 -134
  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 +142 -122
  194. package/lib/server/modules/menu/types.js +18 -31
  195. package/lib/server/modules/order/index.js +784 -1002
  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 +583 -471
  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 +220 -186
  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.d.ts +5 -0
  219. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  220. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  221. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  222. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  223. package/lib/solution/BaseSales/utils.js +158 -143
  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.js +607 -522
  232. package/lib/solution/BookingTicket/types.js +99 -77
  233. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  234. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  235. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  236. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  237. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  238. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  239. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  240. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  241. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  242. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  243. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  244. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  245. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  246. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  247. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  248. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  249. package/lib/solution/BuyTickets/index.js +67 -70
  250. package/lib/solution/BuyTickets/types.js +22 -38
  251. package/lib/solution/Checkout/index.js +1451 -1158
  252. package/lib/solution/Checkout/types.js +91 -61
  253. package/lib/solution/Checkout/utils/index.js +228 -156
  254. package/lib/solution/PlaceOrder/index.js +55 -0
  255. package/lib/solution/RegisterAndLogin/config.js +493 -460
  256. package/lib/solution/RegisterAndLogin/index.js +633 -630
  257. package/lib/solution/RegisterAndLogin/types.js +189 -76
  258. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  259. package/lib/solution/Sales/index.js +328 -324
  260. package/lib/solution/Sales/types.js +27 -33
  261. package/lib/solution/ScanOrder/index.js +832 -864
  262. package/lib/solution/ScanOrder/types.js +33 -34
  263. package/lib/solution/ScanOrder/utils.js +409 -374
  264. package/lib/solution/ShopDiscount/index.js +226 -232
  265. package/lib/solution/ShopDiscount/types.js +15 -37
  266. package/lib/solution/ShopDiscount/utils.js +300 -172
  267. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  268. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  269. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  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,20 @@ 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 productsData = await this.request.post(`/product/query`, queryPayload, {
153
+ osServer: true,
154
+ callback: options?.callback,
155
+ subscriberId: options?.subscriberId,
156
+ customToast: () => {}
157
+ });
163
158
  const sortedList = (productsData.data.list || []).slice().sort((a, b) => Number(b.sort) - Number(a.sort));
159
+ // if (sortedList.length) {
160
+ // sortedList.forEach((n: any) => {
161
+ // if (n.is_eject !== 1 && n['schedule.ids'] && n['schedule.ids'].length) {
162
+ // n.is_eject = 1
163
+ // }
164
+ // })
165
+ // }
164
166
  this.addProduct(sortedList);
165
167
  return sortedList;
166
168
  }
@@ -170,80 +172,68 @@ var ProductList = class extends import_BaseModule.BaseModule {
170
172
  schedule_date,
171
173
  channel
172
174
  }) {
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
- );
175
+ const productsData = await this.request.post(`/product/query/price`, {
176
+ ids,
177
+ customer_id,
178
+ schedule_date,
179
+ channel
180
+ }, {
181
+ useCache: true
182
+ });
183
183
  return productsData.data;
184
184
  }
185
185
  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);
186
+ await this.core.effects.emit(`${this.name}:onGetProducts`, this.store.list);
187
+ return (0, _lodashEs.cloneDeep)(this.store.list);
191
188
  }
192
189
  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;
190
+ await this.core.effects.emit(`${this.name}:onGetProduct`, this.store.list);
191
+ const product = this.store.list.find(product => product.id === id);
192
+ return product ? (0, _lodashEs.cloneDeep)(product) : undefined;
199
193
  }
200
194
  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));
195
+ await this.core.effects.emit(`${this.name}:onGetProductByIds`, this.store.list);
196
+ const products = this.store.list.filter(product => ids.includes(product.id));
206
197
  return products;
207
198
  }
208
199
  async addProduct(products) {
200
+ // list 需要根据 id 去重
209
201
  if (!this.store.list) {
210
202
  this.store.list = [];
211
203
  }
212
- products.forEach((n) => {
213
- const index = this.store.list.findIndex((m) => m.id === n.id);
204
+ products.forEach(n => {
205
+ const index = this.store.list.findIndex(m => m.id === n.id);
214
206
  if (index === -1) {
215
207
  this.store.list.push(n);
216
208
  } else {
217
209
  this.store.list[index] = n;
218
210
  }
219
211
  });
212
+ // 根据 sort 值做降序排序(数字越大越靠前)
220
213
  this.store.list.sort((a, b) => Number(b.sort) - Number(a.sort));
221
214
  this.core.effects.emit(`${this.name}:changed`, this.store.list);
222
215
  }
223
216
  async selectProducts(products) {
224
217
  this.store.selectProducts = products;
225
218
  }
219
+
226
220
  /**
227
221
  * 根据商品编码或条码搜索商品
228
222
  * @param code 商品编码或条码
229
223
  * @returns 匹配的商品列表,如果没有匹配则返回空数组
230
224
  */
231
225
  findProductsByCodeOrBarcode(code) {
232
- if (!code || typeof code !== "string") {
226
+ if (!code || typeof code !== 'string') {
233
227
  return [];
234
228
  }
235
229
  const trimmedCode = code.trim();
236
230
  if (!trimmedCode) {
237
231
  return [];
238
232
  }
239
- const matchingProducts = this.store.list.filter((product) => {
233
+ const matchingProducts = this.store.list.filter(product => {
240
234
  return product.code && product.code.trim() === trimmedCode || product.barcode && product.barcode.trim() === trimmedCode;
241
235
  });
242
- return (0, import_lodash_es.cloneDeep)(matchingProducts);
236
+ return (0, _lodashEs.cloneDeep)(matchingProducts);
243
237
  }
244
- };
245
- // Annotate the CommonJS export names for ESM import in node:
246
- 0 && (module.exports = {
247
- ProductList,
248
- ...require("./types")
249
- });
238
+ }
239
+ 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
+ }({});