@pisell/pisellos 2.3.73 → 2.3.75

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 (296) hide show
  1. package/dist/core/index.d.ts +7 -0
  2. package/dist/core/index.js +111 -71
  3. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  4. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  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 +2 -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 +36 -64
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Quotation/index.d.ts +6 -0
  15. package/dist/modules/Quotation/index.js +75 -19
  16. package/dist/modules/Rules/index.js +1 -4
  17. package/dist/modules/Schedule/index.js +0 -1
  18. package/dist/modules/Schedule/utils.js +0 -1
  19. package/dist/modules/Step/index.js +0 -1
  20. package/dist/plugins/request.d.ts +1 -0
  21. package/dist/plugins/request.js +1 -4
  22. package/dist/plugins/window.js +2 -6
  23. package/dist/server/index.d.ts +8 -2
  24. package/dist/server/index.js +303 -269
  25. package/dist/server/modules/floor-plan/index.d.ts +4 -0
  26. package/dist/server/modules/floor-plan/index.js +240 -98
  27. package/dist/server/modules/menu/index.js +75 -59
  28. package/dist/server/modules/order/index.d.ts +17 -7
  29. package/dist/server/modules/order/index.js +421 -211
  30. package/dist/server/modules/products/index.d.ts +8 -2
  31. package/dist/server/modules/products/index.js +191 -117
  32. package/dist/server/modules/quotation/index.js +29 -38
  33. package/dist/server/modules/resource/index.js +24 -17
  34. package/dist/server/modules/schedule/index.js +27 -35
  35. package/dist/server/utils/product.js +0 -1
  36. package/dist/solution/BaseSales/index.js +38 -41
  37. package/dist/solution/BookingByStep/index.d.ts +1 -1
  38. package/dist/solution/BookingByStep/index.js +7 -59
  39. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  40. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  41. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  42. package/dist/solution/BookingTicket/index.js +0 -2
  43. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  44. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  45. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  46. package/dist/solution/BuyTickets/index.js +9 -12
  47. package/dist/solution/Checkout/index.js +177 -252
  48. package/dist/solution/Checkout/utils/index.js +4 -16
  49. package/dist/solution/RegisterAndLogin/index.js +30 -76
  50. package/dist/solution/ScanOrder/index.js +50 -60
  51. package/dist/solution/ShopDiscount/index.js +2 -7
  52. package/dist/solution/VenueBooking/index.js +45 -55
  53. package/dist/utils/task.js +15 -18
  54. package/dist/utils/watch.js +0 -1
  55. package/lib/apis/picoding.js +2 -0
  56. package/lib/core/index.d.ts +7 -0
  57. package/lib/core/index.js +149 -131
  58. package/lib/effects/index.js +46 -57
  59. package/lib/index.js +82 -49
  60. package/lib/model/index.js +14 -21
  61. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  62. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  63. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  64. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  65. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  66. package/lib/model/strategy/adapter/index.js +100 -64
  67. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  68. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  69. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  70. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  71. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  72. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  73. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  74. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  75. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  76. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  77. package/lib/model/strategy/adapter/type.js +4 -16
  78. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  79. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  80. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  81. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  82. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  83. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  84. package/lib/model/strategy/engine.js +270 -168
  85. package/lib/model/strategy/index.js +49 -34
  86. package/lib/model/strategy/strategy-example.js +243 -239
  87. package/lib/model/strategy/type.js +100 -40
  88. package/lib/modules/Account/index.js +39 -53
  89. package/lib/modules/Account/types.js +20 -33
  90. package/lib/modules/AccountList/index.js +116 -154
  91. package/lib/modules/AccountList/types.js +30 -31
  92. package/lib/modules/AccountList/utils.js +18 -30
  93. package/lib/modules/BaseModule.js +23 -42
  94. package/lib/modules/BookingContext/index.js +158 -136
  95. package/lib/modules/BookingContext/types.js +46 -32
  96. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  97. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  98. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  99. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  100. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  101. package/lib/modules/BookingContext/utils/index.js +124 -41
  102. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  103. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  104. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  105. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  106. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  107. package/lib/modules/BookingContext/utils/resources.js +209 -167
  108. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  109. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  110. package/lib/modules/Cart/index.js +170 -124
  111. package/lib/modules/Cart/types.js +46 -51
  112. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  113. package/lib/modules/Cart/utils/cartDate.js +56 -61
  114. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  115. package/lib/modules/Cart/utils/cartNote.js +27 -32
  116. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  117. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  118. package/lib/modules/Cart/utils/cartResource.js +70 -78
  119. package/lib/modules/Cart/utils/changePrice.js +22 -50
  120. package/lib/modules/Cart/utils/index.js +106 -48
  121. package/lib/modules/Customer/constants.js +13 -34
  122. package/lib/modules/Customer/index.js +235 -172
  123. package/lib/modules/Customer/types.js +38 -35
  124. package/lib/modules/Date/index.js +116 -115
  125. package/lib/modules/Date/types.js +16 -28
  126. package/lib/modules/Date/utils.js +174 -123
  127. package/lib/modules/Discount/index.js +122 -127
  128. package/lib/modules/Discount/types.js +9 -31
  129. package/lib/modules/Guests/index.js +30 -56
  130. package/lib/modules/Guests/types.js +23 -33
  131. package/lib/modules/Holder/index.js +209 -189
  132. package/lib/modules/Holder/types.js +4 -16
  133. package/lib/modules/Holder/utils.js +20 -49
  134. package/lib/modules/OpenData/index.js +70 -76
  135. package/lib/modules/OpenData/types.js +4 -16
  136. package/lib/modules/OpenData/utils.js +44 -78
  137. package/lib/modules/Order/index.d.ts +1 -1
  138. package/lib/modules/Order/index.js +1713 -2118
  139. package/lib/modules/Order/payment-utils.js +77 -120
  140. package/lib/modules/Order/types.js +88 -35
  141. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  142. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  143. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  144. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  145. package/lib/modules/Order/utils.js +814 -647
  146. package/lib/modules/Payment/cash.js +20 -33
  147. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  148. package/lib/modules/Payment/eftpos.js +16 -30
  149. package/lib/modules/Payment/index.js +532 -399
  150. package/lib/modules/Payment/mx51.js +1 -0
  151. package/lib/modules/Payment/types.js +230 -108
  152. package/lib/modules/Payment/utils.js +52 -51
  153. package/lib/modules/Payment/walletpass.js +485 -660
  154. package/lib/modules/Product/index.js +51 -46
  155. package/lib/modules/Product/types.js +4 -16
  156. package/lib/modules/Product/utils.js +32 -33
  157. package/lib/modules/ProductList/index.js +113 -123
  158. package/lib/modules/ProductList/types.js +9 -31
  159. package/lib/modules/Quotation/index.d.ts +6 -0
  160. package/lib/modules/Quotation/index.js +110 -103
  161. package/lib/modules/Quotation/types.js +4 -16
  162. package/lib/modules/Resource/index.js +27 -59
  163. package/lib/modules/Resource/types.js +22 -32
  164. package/lib/modules/Resource/utils.js +30 -38
  165. package/lib/modules/ResourcePlanner/index.js +25 -23
  166. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  167. package/lib/modules/ResourcePlanner/planner.js +589 -770
  168. package/lib/modules/ResourcePlanner/types.js +10 -29
  169. package/lib/modules/Rules/index.js +1218 -959
  170. package/lib/modules/Rules/types.js +17 -40
  171. package/lib/modules/SalesSummary/index.js +85 -90
  172. package/lib/modules/SalesSummary/types.js +4 -16
  173. package/lib/modules/SalesSummary/utils.js +355 -430
  174. package/lib/modules/ScanOrderLogger/index.js +59 -79
  175. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  176. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  177. package/lib/modules/ScanOrderLogger/types.js +4 -16
  178. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  179. package/lib/modules/Schedule/index.js +100 -114
  180. package/lib/modules/Schedule/type.js +4 -16
  181. package/lib/modules/Schedule/types.js +4 -16
  182. package/lib/modules/Schedule/utils.js +433 -291
  183. package/lib/modules/Step/index.js +40 -52
  184. package/lib/modules/Step/tyeps.js +4 -16
  185. package/lib/modules/Summary/index.js +66 -71
  186. package/lib/modules/Summary/types.js +4 -16
  187. package/lib/modules/Summary/utils.js +773 -418
  188. package/lib/modules/SurchargeList/index.js +46 -60
  189. package/lib/modules/SurchargeList/types.js +4 -16
  190. package/lib/modules/index.js +245 -63
  191. package/lib/plugins/app.js +4 -16
  192. package/lib/plugins/index.js +36 -25
  193. package/lib/plugins/request.d.ts +1 -0
  194. package/lib/plugins/request.js +137 -126
  195. package/lib/plugins/shopStore.js +4 -16
  196. package/lib/plugins/user.js +4 -16
  197. package/lib/plugins/window.js +171 -179
  198. package/lib/server/index.d.ts +8 -2
  199. package/lib/server/index.js +3083 -2663
  200. package/lib/server/modules/floor-plan/index.d.ts +4 -0
  201. package/lib/server/modules/floor-plan/index.js +159 -127
  202. package/lib/server/modules/floor-plan/types.js +15 -30
  203. package/lib/server/modules/index.js +106 -68
  204. package/lib/server/modules/menu/index.js +170 -124
  205. package/lib/server/modules/menu/types.js +18 -31
  206. package/lib/server/modules/order/index.d.ts +17 -7
  207. package/lib/server/modules/order/index.js +916 -977
  208. package/lib/server/modules/order/types.js +122 -33
  209. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  210. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  211. package/lib/server/modules/payment/index.js +59 -83
  212. package/lib/server/modules/payment/types.js +4 -16
  213. package/lib/server/modules/products/index.d.ts +8 -2
  214. package/lib/server/modules/products/index.js +656 -471
  215. package/lib/server/modules/products/types.js +44 -34
  216. package/lib/server/modules/quotation/index.js +137 -172
  217. package/lib/server/modules/quotation/types.js +21 -31
  218. package/lib/server/modules/resource/index.js +225 -186
  219. package/lib/server/modules/resource/types.js +42 -33
  220. package/lib/server/modules/schedule/index.js +135 -123
  221. package/lib/server/modules/schedule/types.js +14 -21
  222. package/lib/server/modules/schedule/utils.js +334 -163
  223. package/lib/server/types.js +4 -16
  224. package/lib/server/utils/index.js +25 -23
  225. package/lib/server/utils/product.js +196 -139
  226. package/lib/server/utils/schedule.js +34 -41
  227. package/lib/server/utils/small-ticket.js +479 -456
  228. package/lib/server/utils/time.js +40 -49
  229. package/lib/solution/BaseSales/index.js +1186 -1410
  230. package/lib/solution/BaseSales/types.js +42 -38
  231. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  232. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  233. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  234. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  235. package/lib/solution/BaseSales/utils.js +158 -143
  236. package/lib/solution/BookingByStep/index.d.ts +1 -1
  237. package/lib/solution/BookingByStep/index.js +1527 -1340
  238. package/lib/solution/BookingByStep/types.js +40 -99
  239. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  240. package/lib/solution/BookingByStep/utils/products.js +42 -52
  241. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  242. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  243. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  244. package/lib/solution/BookingTicket/index.js +607 -522
  245. package/lib/solution/BookingTicket/types.js +99 -77
  246. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  247. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  248. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  249. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  250. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  251. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  252. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  253. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  254. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  255. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  256. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  257. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  258. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  259. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  260. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  261. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  262. package/lib/solution/BuyTickets/index.js +67 -70
  263. package/lib/solution/BuyTickets/types.js +22 -38
  264. package/lib/solution/Checkout/index.js +1451 -1158
  265. package/lib/solution/Checkout/types.js +91 -61
  266. package/lib/solution/Checkout/utils/index.js +228 -156
  267. package/lib/solution/PlaceOrder/index.js +55 -0
  268. package/lib/solution/RegisterAndLogin/config.js +493 -460
  269. package/lib/solution/RegisterAndLogin/index.js +633 -630
  270. package/lib/solution/RegisterAndLogin/types.js +189 -76
  271. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  272. package/lib/solution/Sales/index.js +328 -324
  273. package/lib/solution/Sales/types.js +27 -33
  274. package/lib/solution/ScanOrder/index.js +832 -864
  275. package/lib/solution/ScanOrder/types.js +33 -34
  276. package/lib/solution/ScanOrder/utils.js +409 -374
  277. package/lib/solution/ShopDiscount/index.js +226 -232
  278. package/lib/solution/ShopDiscount/types.js +15 -37
  279. package/lib/solution/ShopDiscount/utils.js +300 -172
  280. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  281. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  282. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  283. package/lib/solution/VenueBooking/index.js +811 -879
  284. package/lib/solution/VenueBooking/types.js +19 -39
  285. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  286. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  287. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  288. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  289. package/lib/solution/VenueBooking/utils.js +130 -67
  290. package/lib/solution/index.js +124 -41
  291. package/lib/store/createStore.js +32 -29
  292. package/lib/types/index.js +4 -16
  293. package/lib/utils/payment-number.js +26 -46
  294. package/lib/utils/task.js +36 -36
  295. package/lib/utils/watch.js +81 -47
  296. 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
+ }({});
@@ -9,6 +9,8 @@ export declare class QuotationModule extends BaseModule implements Module {
9
9
  private request;
10
10
  private store;
11
11
  private scheduleResolver?;
12
+ private app;
13
+ private quotationListUpdatedListener?;
12
14
  constructor(name?: string, version?: string);
13
15
  initialize(core: PisellCore, options: ModuleOptions): Promise<void>;
14
16
  loadQuotations(params?: {
@@ -16,6 +18,7 @@ export declare class QuotationModule extends BaseModule implements Module {
16
18
  customer_id?: number | string;
17
19
  }): Promise<void>;
18
20
  getQuotationList(): QuotationItem[];
21
+ setQuotationListUpdatedListener(listener?: () => void): void;
19
22
  getQuotationCustomerScopeInfo(): QuotationCustomerScopeInfo;
20
23
  /**
21
24
  * Look up the quotation price for a specific product (+ optional variant) at a given datetime.
@@ -60,6 +63,9 @@ export declare class QuotationModule extends BaseModule implements Module {
60
63
  customer_id?: number | string;
61
64
  }): Map<string, string | null>;
62
65
  setScheduleResolver(resolver: (id: number) => ScheduleItem | undefined): void;
66
+ private applyQuotationResponse;
67
+ private notifyQuotationListUpdated;
68
+ private getQuotationCacheKeyData;
63
69
  private isQuotationVisibleForCustomer;
64
70
  private hasValidCustomerId;
65
71
  private normalizeCustomerId;