@pisell/pisellos 0.10.15 → 0.10.16

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 (299) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/promotion/index.js +0 -9
  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 +5 -1
  13. package/dist/modules/Order/utils.js +7 -1
  14. package/dist/modules/Payment/index.js +97 -162
  15. package/dist/modules/Product/types.d.ts +2 -0
  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.js +1 -4
  21. package/dist/plugins/window.js +2 -6
  22. package/dist/server/index.js +97 -129
  23. package/dist/server/modules/menu/index.js +32 -41
  24. package/dist/server/modules/order/index.js +2 -4
  25. package/dist/server/modules/products/index.js +24 -42
  26. package/dist/server/modules/quotation/index.js +29 -38
  27. package/dist/server/modules/resource/index.js +3 -4
  28. package/dist/server/modules/schedule/index.js +27 -35
  29. package/dist/server/utils/product.js +0 -1
  30. package/dist/solution/BaseSales/index.js +100 -72
  31. package/dist/solution/BaseSales/types.d.ts +2 -0
  32. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  33. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  34. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  35. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -1
  36. package/dist/solution/BaseSales/utils.js +6 -3
  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 +8 -4
  43. package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -1
  44. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  45. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  46. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  47. package/dist/solution/BuyTickets/index.js +9 -12
  48. package/dist/solution/Checkout/index.js +177 -252
  49. package/dist/solution/Checkout/utils/index.js +4 -16
  50. package/dist/solution/RegisterAndLogin/index.js +30 -76
  51. package/dist/solution/ScanOrder/index.js +50 -60
  52. package/dist/solution/ScanOrder/types.d.ts +2 -0
  53. package/dist/solution/ScanOrder/utils.js +6 -3
  54. package/dist/solution/ShopDiscount/index.js +2 -7
  55. package/dist/solution/VenueBooking/index.js +45 -55
  56. package/dist/utils/task.js +15 -18
  57. package/dist/utils/watch.js +0 -1
  58. package/lib/apis/picoding.js +2 -0
  59. package/lib/core/index.js +131 -131
  60. package/lib/effects/index.js +46 -57
  61. package/lib/index.js +82 -49
  62. package/lib/model/index.js +14 -21
  63. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  64. package/lib/model/strategy/adapter/dataVariant/evaluator.js +209 -315
  65. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  66. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  67. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  68. package/lib/model/strategy/adapter/index.js +100 -64
  69. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  70. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  71. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  72. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  73. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  74. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  75. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  76. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  77. package/lib/model/strategy/adapter/promotion/index.js +43 -48
  78. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  79. package/lib/model/strategy/adapter/type.js +4 -16
  80. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  81. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  82. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  83. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  84. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  85. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  86. package/lib/model/strategy/engine.js +270 -168
  87. package/lib/model/strategy/index.js +49 -34
  88. package/lib/model/strategy/strategy-example.js +243 -239
  89. package/lib/model/strategy/type.js +100 -40
  90. package/lib/modules/Account/index.js +39 -53
  91. package/lib/modules/Account/types.js +20 -33
  92. package/lib/modules/AccountList/index.js +116 -154
  93. package/lib/modules/AccountList/types.js +30 -31
  94. package/lib/modules/AccountList/utils.js +18 -30
  95. package/lib/modules/BaseModule.js +23 -42
  96. package/lib/modules/BookingContext/index.js +158 -136
  97. package/lib/modules/BookingContext/types.js +46 -32
  98. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  99. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  100. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  101. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  102. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  103. package/lib/modules/BookingContext/utils/index.js +124 -41
  104. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  105. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  106. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  107. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  108. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  109. package/lib/modules/BookingContext/utils/resources.js +209 -167
  110. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  111. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  112. package/lib/modules/Cart/index.js +170 -124
  113. package/lib/modules/Cart/types.js +46 -51
  114. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  115. package/lib/modules/Cart/utils/cartDate.js +56 -61
  116. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  117. package/lib/modules/Cart/utils/cartNote.js +27 -32
  118. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  119. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  120. package/lib/modules/Cart/utils/cartResource.js +70 -78
  121. package/lib/modules/Cart/utils/changePrice.js +22 -50
  122. package/lib/modules/Cart/utils/index.js +106 -48
  123. package/lib/modules/Customer/constants.js +13 -34
  124. package/lib/modules/Customer/index.js +235 -172
  125. package/lib/modules/Customer/types.js +38 -35
  126. package/lib/modules/Date/index.js +116 -115
  127. package/lib/modules/Date/types.js +16 -28
  128. package/lib/modules/Date/utils.js +174 -123
  129. package/lib/modules/Discount/index.js +133 -143
  130. package/lib/modules/Discount/types.js +9 -31
  131. package/lib/modules/Guests/index.js +30 -56
  132. package/lib/modules/Guests/types.js +23 -33
  133. package/lib/modules/Holder/index.js +209 -189
  134. package/lib/modules/Holder/types.js +4 -16
  135. package/lib/modules/Holder/utils.js +20 -49
  136. package/lib/modules/OpenData/index.js +70 -76
  137. package/lib/modules/OpenData/types.js +4 -16
  138. package/lib/modules/OpenData/utils.js +44 -78
  139. package/lib/modules/Order/index.d.ts +1 -1
  140. package/lib/modules/Order/index.js +1810 -2238
  141. package/lib/modules/Order/payment-utils.js +77 -120
  142. package/lib/modules/Order/types.d.ts +5 -1
  143. package/lib/modules/Order/types.js +87 -35
  144. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  145. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  146. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  147. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  148. package/lib/modules/Order/utils/virtualSettlement.js +120 -171
  149. package/lib/modules/Order/utils.js +834 -668
  150. package/lib/modules/Payment/cash.js +20 -33
  151. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  152. package/lib/modules/Payment/eftpos.js +16 -30
  153. package/lib/modules/Payment/index.js +532 -399
  154. package/lib/modules/Payment/mx51.js +1 -0
  155. package/lib/modules/Payment/types.js +230 -108
  156. package/lib/modules/Payment/utils.js +52 -51
  157. package/lib/modules/Payment/walletpass.js +485 -660
  158. package/lib/modules/Product/index.js +51 -46
  159. package/lib/modules/Product/types.d.ts +2 -0
  160. package/lib/modules/Product/types.js +4 -16
  161. package/lib/modules/Product/utils.js +32 -33
  162. package/lib/modules/ProductList/index.js +138 -161
  163. package/lib/modules/ProductList/types.js +9 -31
  164. package/lib/modules/Quotation/index.js +66 -100
  165. package/lib/modules/Quotation/types.js +4 -16
  166. package/lib/modules/Resource/index.js +27 -59
  167. package/lib/modules/Resource/types.js +22 -32
  168. package/lib/modules/Resource/utils.js +30 -38
  169. package/lib/modules/ResourcePlanner/index.js +25 -23
  170. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  171. package/lib/modules/ResourcePlanner/planner.js +591 -772
  172. package/lib/modules/ResourcePlanner/types.js +10 -29
  173. package/lib/modules/Rules/index.js +1218 -959
  174. package/lib/modules/Rules/types.js +17 -40
  175. package/lib/modules/SalesSummary/index.js +78 -89
  176. package/lib/modules/SalesSummary/types.js +4 -16
  177. package/lib/modules/SalesSummary/utils.js +359 -442
  178. package/lib/modules/ScanOrderLogger/index.js +59 -79
  179. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  180. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  181. package/lib/modules/ScanOrderLogger/types.js +4 -16
  182. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  183. package/lib/modules/Schedule/index.js +100 -114
  184. package/lib/modules/Schedule/type.js +4 -16
  185. package/lib/modules/Schedule/types.js +4 -16
  186. package/lib/modules/Schedule/utils.js +433 -291
  187. package/lib/modules/Step/index.js +40 -52
  188. package/lib/modules/Step/tyeps.js +4 -16
  189. package/lib/modules/Summary/index.js +66 -71
  190. package/lib/modules/Summary/types.js +4 -16
  191. package/lib/modules/Summary/utils.js +773 -418
  192. package/lib/modules/SurchargeList/index.js +46 -60
  193. package/lib/modules/SurchargeList/types.js +4 -16
  194. package/lib/modules/index.js +245 -63
  195. package/lib/plugins/app.js +4 -16
  196. package/lib/plugins/index.js +36 -25
  197. package/lib/plugins/request.js +137 -126
  198. package/lib/plugins/shopStore.js +4 -16
  199. package/lib/plugins/user.js +4 -16
  200. package/lib/plugins/window.js +171 -179
  201. package/lib/server/index.js +3027 -2655
  202. package/lib/server/modules/floor-plan/index.js +102 -123
  203. package/lib/server/modules/floor-plan/types.js +15 -30
  204. package/lib/server/modules/index.js +106 -68
  205. package/lib/server/modules/menu/index.js +146 -122
  206. package/lib/server/modules/menu/types.js +18 -31
  207. package/lib/server/modules/order/index.js +758 -956
  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.js +575 -459
  214. package/lib/server/modules/products/types.js +44 -34
  215. package/lib/server/modules/quotation/index.js +137 -172
  216. package/lib/server/modules/quotation/types.js +21 -31
  217. package/lib/server/modules/resource/index.js +213 -184
  218. package/lib/server/modules/resource/types.js +42 -33
  219. package/lib/server/modules/schedule/index.js +135 -123
  220. package/lib/server/modules/schedule/types.js +14 -21
  221. package/lib/server/modules/schedule/utils.js +334 -163
  222. package/lib/server/types.js +4 -16
  223. package/lib/server/utils/index.js +25 -23
  224. package/lib/server/utils/product.js +196 -139
  225. package/lib/server/utils/schedule.js +34 -41
  226. package/lib/server/utils/small-ticket.js +479 -456
  227. package/lib/server/utils/time.js +40 -49
  228. package/lib/solution/BaseSales/index.js +1274 -1489
  229. package/lib/solution/BaseSales/types.d.ts +2 -0
  230. package/lib/solution/BaseSales/types.js +42 -38
  231. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  232. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  233. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  234. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  235. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
  236. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +138 -180
  237. package/lib/solution/BaseSales/utils.js +161 -143
  238. package/lib/solution/BookingByStep/index.d.ts +1 -1
  239. package/lib/solution/BookingByStep/index.js +1527 -1340
  240. package/lib/solution/BookingByStep/types.js +40 -99
  241. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  242. package/lib/solution/BookingByStep/utils/products.js +42 -52
  243. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  244. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  245. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  246. package/lib/solution/BookingTicket/index.js +598 -514
  247. package/lib/solution/BookingTicket/types.js +99 -77
  248. package/lib/solution/BookingTicket/utils/addProductDecision.js +229 -190
  249. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  250. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  251. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  252. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  253. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  254. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  255. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  256. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  257. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  258. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  259. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  260. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  261. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  262. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  263. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  264. package/lib/solution/BuyTickets/index.js +67 -70
  265. package/lib/solution/BuyTickets/types.js +22 -38
  266. package/lib/solution/Checkout/index.js +1451 -1158
  267. package/lib/solution/Checkout/types.js +91 -61
  268. package/lib/solution/Checkout/utils/index.js +228 -156
  269. package/lib/solution/PlaceOrder/index.js +55 -0
  270. package/lib/solution/RegisterAndLogin/config.js +493 -460
  271. package/lib/solution/RegisterAndLogin/index.js +633 -630
  272. package/lib/solution/RegisterAndLogin/types.js +189 -76
  273. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  274. package/lib/solution/Sales/index.js +328 -324
  275. package/lib/solution/Sales/types.js +27 -33
  276. package/lib/solution/ScanOrder/index.js +822 -852
  277. package/lib/solution/ScanOrder/types.d.ts +2 -0
  278. package/lib/solution/ScanOrder/types.js +33 -34
  279. package/lib/solution/ScanOrder/utils.js +412 -374
  280. package/lib/solution/ShopDiscount/index.js +226 -232
  281. package/lib/solution/ShopDiscount/types.js +15 -37
  282. package/lib/solution/ShopDiscount/utils.js +300 -172
  283. package/lib/solution/UnifiedBookingSales/index.js +1052 -1213
  284. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  285. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  286. package/lib/solution/VenueBooking/index.js +811 -879
  287. package/lib/solution/VenueBooking/types.js +19 -39
  288. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  289. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  290. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  291. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  292. package/lib/solution/VenueBooking/utils.js +130 -67
  293. package/lib/solution/index.js +124 -41
  294. package/lib/store/createStore.js +32 -29
  295. package/lib/types/index.js +4 -16
  296. package/lib/utils/payment-number.js +26 -46
  297. package/lib/utils/task.js +36 -36
  298. package/lib/utils/watch.js +81 -47
  299. package/package.json +2 -1
@@ -1,90 +1,108 @@
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 });
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ CartModule: true,
8
+ getProductDeposit: true
8
9
  };
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 });
10
+ exports.CartModule = void 0;
11
+ Object.defineProperty(exports, "getProductDeposit", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _utils.getProductDeposit;
14
15
  }
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);
19
-
20
- // src/modules/Cart/index.ts
21
- var Cart_exports = {};
22
- __export(Cart_exports, {
23
- CartModule: () => CartModule,
24
- getProductDeposit: () => import_utils3.getProductDeposit
25
16
  });
26
- module.exports = __toCommonJS(Cart_exports);
27
- var import_BaseModule = require("../BaseModule");
28
- var import_types = require("./types");
29
- var import_utils = require("./utils");
30
- var import_lodash_es = require("lodash-es");
31
- var import_utils2 = require("../Product/utils");
32
- __reExport(Cart_exports, require("./types"), module.exports);
33
- var import_utils3 = require("./utils");
34
- var CartModule = class extends import_BaseModule.BaseModule {
17
+ var _BaseModule = require("../BaseModule");
18
+ var _types = require("./types");
19
+ Object.keys(_types).forEach(function (key) {
20
+ if (key === "default" || key === "__esModule") return;
21
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
22
+ if (key in exports && exports[key] === _types[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _types[key];
27
+ }
28
+ });
29
+ });
30
+ var _utils = require("./utils");
31
+ var _lodashEs = require("lodash-es");
32
+ var _utils2 = require("../Product/utils");
33
+ /**
34
+ * 购物车模块实现
35
+ */
36
+ class CartModule extends _BaseModule.BaseModule {
37
+ // 提供给 baseModule 用的默认名称 和 默认版本
38
+ defaultName = 'cart';
39
+ defaultVersion = '1.0.0';
40
+ request;
41
+ window;
42
+ store;
43
+ cacheId;
44
+ openCache = false;
45
+ fatherModule;
35
46
  constructor(name, version) {
36
- super(name || "cart", version || "1.0.0");
37
- // 提供给 baseModule 用的默认名称 和 默认版本
38
- this.defaultName = "cart";
39
- this.defaultVersion = "1.0.0";
40
- this.openCache = false;
47
+ super(name || 'cart', version || '1.0.0');
41
48
  }
49
+
42
50
  /**
43
51
  * 初始化购物车模块
44
52
  */
45
53
  async initialize(core, options) {
46
- var _a, _b, _c;
47
54
  this.core = core;
48
55
  this.store = options.store;
49
- if (Array.isArray((_a = options.initialState) == null ? void 0 : _a.list)) {
56
+ if (Array.isArray(options.initialState?.list)) {
50
57
  this.store.list = options.initialState.list;
51
58
  this.core.effects.emit(`${this.name}:changed`, this.store.list);
52
59
  } else {
53
60
  this.store.list = [];
54
61
  }
55
- if ((_b = options.otherParams) == null ? void 0 : _b.cacheId) {
62
+ if (options.otherParams?.cacheId) {
56
63
  this.openCache = options.otherParams.openCache;
57
64
  this.cacheId = options.otherParams.cacheId;
58
65
  }
59
- if ((_c = options.otherParams) == null ? void 0 : _c.fatherModule) {
66
+ if (options.otherParams?.fatherModule) {
60
67
  this.fatherModule = options.otherParams.fatherModule;
61
68
  }
62
- this.request = core.getPlugin("request");
63
- this.window = core.getPlugin("window");
69
+
70
+ // 获取依赖的插件
71
+ this.request = core.getPlugin('request');
72
+ this.window = core.getPlugin('window');
64
73
  if (!this.request) {
65
- throw new Error("购物车模块需要 request 插件支持");
74
+ throw new Error('购物车模块需要 request 插件支持');
66
75
  }
67
76
  if (!this.window) {
68
- throw new Error("购物车模块需要 window 插件支持");
77
+ throw new Error('购物车模块需要 window 插件支持');
69
78
  }
70
- console.log("[CartModule] 初始化完成");
79
+ // this.store.temp = {};
71
80
  }
81
+
72
82
  /**
73
83
  * 添加商品到购物车
74
84
  */
75
85
  async addItem(params) {
76
- const { account, product, bundle, options, date, quantity = 1 } = params;
86
+ const {
87
+ account,
88
+ product,
89
+ bundle,
90
+ options,
91
+ date,
92
+ quantity = 1
93
+ } = params;
94
+ // 生成一个唯一的 ID
77
95
  let cartItem = {
78
- _id: (0, import_utils.getUniqueId)(),
79
- _origin: (0, import_utils.createCartItemOrigin)()
96
+ _id: (0, _utils.getUniqueId)(),
97
+ _origin: (0, _utils.createCartItemOrigin)()
80
98
  };
81
99
  if (product) {
82
- const newProduct = (0, import_utils.handleVariantProduct)(product);
83
- cartItem._productOrigin = (0, import_lodash_es.cloneDeep)(newProduct);
84
- cartItem._productInit = (0, import_lodash_es.cloneDeep)(newProduct);
85
- cartItem._bundleOrigin = (0, import_lodash_es.cloneDeep)(bundle);
86
- cartItem._optionsOrigin = (0, import_lodash_es.cloneDeep)(options);
87
- cartItem = (0, import_utils.formatProductToCartItem)({
100
+ const newProduct = (0, _utils.handleVariantProduct)(product);
101
+ cartItem._productOrigin = (0, _lodashEs.cloneDeep)(newProduct);
102
+ cartItem._productInit = (0, _lodashEs.cloneDeep)(newProduct);
103
+ cartItem._bundleOrigin = (0, _lodashEs.cloneDeep)(bundle);
104
+ cartItem._optionsOrigin = (0, _lodashEs.cloneDeep)(options);
105
+ cartItem = (0, _utils.formatProductToCartItem)({
88
106
  cartItem,
89
107
  product: newProduct,
90
108
  bundle,
@@ -94,43 +112,61 @@ var CartModule = class extends import_BaseModule.BaseModule {
94
112
  });
95
113
  }
96
114
  if (account) {
97
- cartItem = (0, import_utils.formatAccountToCartItem)({ cartItem, account });
115
+ cartItem = (0, _utils.formatAccountToCartItem)({
116
+ cartItem,
117
+ account
118
+ });
98
119
  }
99
120
  if (date) {
100
- cartItem = (0, import_utils.formatDateToCartItem)({ cartItem, date });
121
+ cartItem = (0, _utils.formatDateToCartItem)({
122
+ cartItem,
123
+ date
124
+ });
101
125
  }
126
+
127
+ // 更新购物车数据
102
128
  const items = [...this.store.list, cartItem];
103
129
  this.store.list = items;
130
+
131
+ // 触发事件
104
132
  await this.core.effects.emit(`${this.name}:onAddItem`, cartItem);
105
133
  }
134
+
106
135
  /**
107
136
  * 更新购物车信息
108
137
  */
109
138
  async updateItem(params) {
110
139
  try {
111
140
  const tempCartItem = this.formatCartItem(params);
112
- const items = this.store.list.map((item) => {
113
- if (item._id === (tempCartItem == null ? void 0 : tempCartItem._id)) {
141
+ // 更新购物车数据
142
+ const items = this.store.list.map(item => {
143
+ if (item._id === tempCartItem?._id) {
114
144
  return tempCartItem;
115
145
  }
116
146
  return item;
117
147
  });
118
148
  this.store.list = [...items];
149
+ // 触发事件
119
150
  await this.core.effects.emit(`${this.name}:onUpdateItem`, tempCartItem);
120
151
  } catch (error) {
121
- console.error("[CartModule] 更新购物车商品失败", error);
152
+ console.error('[CartModule] 更新购物车商品失败', error);
122
153
  }
123
154
  }
155
+
124
156
  // 更新购物车中商品的初始信息
125
157
  // 为什么会有这个操作,主要服务于报价单和商品券
126
158
  // 商品券那边会使用 init 的 price 做计算,而报价单那边就需要修改 init 的 price 来辅助商品计算
127
159
  async updateItemInitInfo(params) {
128
- const { _id, product } = params;
129
- const cartItem = this.store.list.find((i) => i._id === _id);
160
+ const {
161
+ _id,
162
+ product
163
+ } = params;
164
+ const cartItem = this.store.list.find(i => i._id === _id);
130
165
  if (cartItem) {
131
- cartItem._productInit = (0, import_lodash_es.cloneDeep)(product);
166
+ cartItem._productInit = (0, _lodashEs.cloneDeep)(product);
132
167
  }
133
168
  }
169
+
134
170
  /**
135
171
  * 格式化数据到购物车
136
172
  */
@@ -150,22 +186,22 @@ var CartModule = class extends import_BaseModule.BaseModule {
150
186
  osWarnTips
151
187
  } = params;
152
188
  let quantity = params.quantity;
153
- let tempCartItem = this.store.list.find((i) => i._id === _id);
154
- if (!quantity && (tempCartItem == null ? void 0 : tempCartItem.num)) {
155
- quantity = (tempCartItem == null ? void 0 : tempCartItem.num) || 1;
189
+ let tempCartItem = this.store.list.find(i => i._id === _id);
190
+ if (!quantity && tempCartItem?.num) {
191
+ quantity = tempCartItem?.num || 1;
156
192
  }
157
193
  if (!tempCartItem) {
158
- throw new Error("[CartModule] 格式化数据到购物车失败,商品不存在");
194
+ throw new Error('[CartModule] 格式化数据到购物车失败,商品不存在');
159
195
  }
160
196
  if (cartItem) {
161
197
  tempCartItem = cartItem;
162
198
  }
163
199
  if (product) {
164
- const newProduct = (0, import_utils.handleVariantProduct)(product);
165
- tempCartItem._productOrigin = (0, import_lodash_es.cloneDeep)(newProduct);
166
- tempCartItem._bundleOrigin = (0, import_lodash_es.cloneDeep)(bundle);
167
- tempCartItem._optionsOrigin = (0, import_lodash_es.cloneDeep)(options);
168
- tempCartItem = (0, import_utils.formatProductToCartItem)({
200
+ const newProduct = (0, _utils.handleVariantProduct)(product);
201
+ tempCartItem._productOrigin = (0, _lodashEs.cloneDeep)(newProduct);
202
+ tempCartItem._bundleOrigin = (0, _lodashEs.cloneDeep)(bundle);
203
+ tempCartItem._optionsOrigin = (0, _lodashEs.cloneDeep)(options);
204
+ tempCartItem = (0, _utils.formatProductToCartItem)({
169
205
  cartItem: tempCartItem,
170
206
  product: newProduct,
171
207
  bundle,
@@ -176,112 +212,128 @@ var CartModule = class extends import_BaseModule.BaseModule {
176
212
  });
177
213
  }
178
214
  if (discounts) {
179
- tempCartItem = (0, import_utils.formatDiscountToCartItem)({
215
+ tempCartItem = (0, _utils.formatDiscountToCartItem)({
180
216
  cartItem: tempCartItem,
181
217
  discounts
182
218
  });
183
219
  }
184
220
  if (account) {
185
- tempCartItem = (0, import_utils.formatAccountToCartItem)({
221
+ tempCartItem = (0, _utils.formatAccountToCartItem)({
186
222
  cartItem: tempCartItem,
187
223
  account
188
224
  });
189
225
  }
190
226
  if (resources) {
191
- tempCartItem = (0, import_utils.formatResourceToCartItem)({
227
+ tempCartItem = (0, _utils.formatResourceToCartItem)({
192
228
  cartItem: tempCartItem,
193
229
  resources
194
230
  });
195
231
  }
196
232
  if (relationForms) {
197
- tempCartItem = (0, import_utils.formatRelationFormsToCartItem)({
233
+ tempCartItem = (0, _utils.formatRelationFormsToCartItem)({
198
234
  cartItem: tempCartItem,
199
235
  relationForms
200
236
  });
201
237
  }
202
238
  if (date) {
203
- tempCartItem = (0, import_utils.formatDateToCartItem)({ cartItem: tempCartItem, date });
239
+ tempCartItem = (0, _utils.formatDateToCartItem)({
240
+ cartItem: tempCartItem,
241
+ date
242
+ });
204
243
  }
205
244
  if (note) {
206
- tempCartItem = (0, import_utils.formatNoteToCartItem)({ cartItem: tempCartItem, note });
245
+ tempCartItem = (0, _utils.formatNoteToCartItem)({
246
+ cartItem: tempCartItem,
247
+ note
248
+ });
207
249
  }
208
250
  if (osWarnTips) {
209
251
  tempCartItem.osWarnTips = osWarnTips;
210
252
  }
211
253
  return tempCartItem;
212
254
  }
255
+
213
256
  /**
214
257
  * 批量设置购物车数据
215
258
  */
216
259
  async batchSetItems(items) {
217
- this.store.list = [...items || []];
260
+ this.store.list = [...(items || [])];
218
261
  }
262
+
219
263
  /**
220
264
  * 获取购物车商品
221
265
  */
222
266
  getItems() {
223
267
  return this.store.list;
224
268
  }
269
+
225
270
  /**
226
271
  * 获取购物车商品--通过购物车 id 获取单条
227
272
  */
228
273
  getItem(id) {
229
- return this.store.list.find((item) => item._id === id);
274
+ return this.store.list.find(item => item._id === id);
230
275
  }
276
+
231
277
  /**
232
278
  * 根据账户ID获取购物车
233
279
  */
234
280
  getCartByAccount(account_id) {
235
- return this.store.list.filter(
236
- (item) => item.holder_id === account_id
237
- );
281
+ return this.store.list.filter(item => item.holder_id === account_id);
238
282
  }
283
+
239
284
  /**
240
285
  * 移除购物车商品
241
286
  */
242
287
  async removeItem(id) {
243
- const items = this.store.list.filter((i) => i._id !== id);
288
+ const items = this.store.list.filter(i => i._id !== id);
244
289
  this.store.list = items;
245
290
  await this.core.effects.emit(`${this.name}:onRemoveItem`, items);
246
291
  }
292
+
247
293
  /**
248
294
  * 根据账户ID清除购物车
249
295
  */
250
296
  clearCartByAccount(account_id) {
251
- const items = this.store.list.filter(
252
- (item) => item.holder_id !== account_id
253
- );
254
- this.store.list = [...items || []];
297
+ const items = this.store.list.filter(item => item.holder_id !== account_id);
298
+ this.store.list = [...(items || [])];
255
299
  }
300
+
256
301
  /**
257
302
  * 清除购物车商品中的信息
258
303
  * @param type 清除购物车商品中的信息类型
259
304
  * @param _id 购物车商品ID
260
305
  */
261
306
  deleteCartItemInfo(type, _id) {
262
- const list = this.store.list.map((item) => {
307
+ const list = this.store.list.map(item => {
263
308
  const needDelete = _id ? item._id === _id : true;
309
+
310
+ // 如果存在_id,则只需要操作对应的购物车数据,否则操作所有
264
311
  if (!needDelete) {
265
312
  return item;
266
313
  }
267
314
  switch (type) {
268
- case import_types.ECartItemInfoType.Resource:
269
- item = (0, import_utils.deleteResourceFromCartItem)(item);
315
+ case _types.ECartItemInfoType.Resource:
316
+ // 清除购物车商品中的资源信息
317
+ item = (0, _utils.deleteResourceFromCartItem)(item);
270
318
  break;
271
- case import_types.ECartItemInfoType.Time:
272
- item = (0, import_utils.deleteTimeFromCartItem)(item);
319
+ case _types.ECartItemInfoType.Time:
320
+ // 清除购物车商品中的时间信息
321
+ item = (0, _utils.deleteTimeFromCartItem)(item);
273
322
  break;
274
- case import_types.ECartItemInfoType.RelationForms:
275
- item = (0, import_utils.deleteRelationFormsFromCartItem)(item);
323
+ case _types.ECartItemInfoType.RelationForms:
324
+ // 清除购物车商品中的关联表单信息
325
+ item = (0, _utils.deleteRelationFormsFromCartItem)(item);
276
326
  break;
277
- case import_types.ECartItemInfoType.Holder:
278
- item = (0, import_utils.deleteHolderFromCartItem)(item);
327
+ case _types.ECartItemInfoType.Holder:
328
+ // 清除购物车商品中的账户信息
329
+ item = (0, _utils.deleteHolderFromCartItem)(item);
279
330
  break;
280
331
  }
281
332
  return item;
282
333
  });
283
334
  this.store.list = [...list];
284
335
  }
336
+
285
337
  /**
286
338
  * 清除购物车
287
339
  */
@@ -290,15 +342,14 @@ var CartModule = class extends import_BaseModule.BaseModule {
290
342
  }
291
343
  storeChange() {
292
344
  if (this.openCache) {
293
- const store = (0, import_lodash_es.cloneDeep)(this.store);
294
- store.list = store.list.filter(
295
- (item, index, self) => index === self.findIndex((t) => t._id === item._id)
296
- );
345
+ const store = (0, _lodashEs.cloneDeep)(this.store);
346
+ // store里的 list 要主动基于 id 做下去重,避免重复写入
347
+ store.list = store.list.filter((item, index, self) => index === self.findIndex(t => t._id === item._id));
297
348
  this.checkSaveCache({
298
349
  cacheId: this.cacheId,
299
350
  fatherModule: this.fatherModule,
300
351
  store,
301
- cacheKey: ["list"]
352
+ cacheKey: ['list']
302
353
  });
303
354
  }
304
355
  }
@@ -313,21 +364,22 @@ var CartModule = class extends import_BaseModule.BaseModule {
313
364
  relation_forms
314
365
  } = cartItem._origin || {};
315
366
  switch (type) {
316
- case import_types.ECartItemCheckType.Account:
317
- result = !!holder || !!(metadata == null ? void 0 : metadata.account);
367
+ case _types.ECartItemCheckType.Account:
368
+ result = !!holder || !!metadata?.account;
318
369
  break;
319
- case import_types.ECartItemCheckType.Resources:
320
- result = !!(resources == null ? void 0 : resources.length);
370
+ case _types.ECartItemCheckType.Resources:
371
+ result = !!resources?.length;
321
372
  break;
322
- case import_types.ECartItemCheckType.Date:
373
+ case _types.ECartItemCheckType.Date:
323
374
  result = !!start_date && !!end_date;
324
375
  break;
325
- case import_types.ECartItemCheckType.RelationForms:
326
- result = !!(relation_forms == null ? void 0 : relation_forms.length);
376
+ case _types.ECartItemCheckType.RelationForms:
377
+ result = !!relation_forms?.length;
327
378
  break;
328
379
  }
329
380
  return result;
330
381
  }
382
+
331
383
  /**
332
384
  * 基于rowkey 合并商品,目前只有普通商品需要合并
333
385
  *
@@ -337,17 +389,16 @@ var CartModule = class extends import_BaseModule.BaseModule {
337
389
  * @memberof CartModule
338
390
  */
339
391
  mergeCartItemByRowKey(params) {
340
- const { rowKey, quantity, account } = params;
392
+ const {
393
+ rowKey,
394
+ quantity,
395
+ account
396
+ } = params;
341
397
  let flag = false;
342
398
  const cartItems = this.getItems();
343
- const targetCartItem = cartItems.find(
344
- (n) => {
345
- var _a;
346
- return ((_a = n._productOrigin) == null ? void 0 : _a.rowKey) === rowKey;
347
- }
348
- );
349
- const isSameAccount = (account == null ? void 0 : account.id) === (targetCartItem == null ? void 0 : targetCartItem.holder_id);
350
- if (rowKey && targetCartItem && (0, import_utils2.isNormalProduct)(targetCartItem._productOrigin) && isSameAccount) {
399
+ const targetCartItem = cartItems.find(n => n._productOrigin?.rowKey === rowKey);
400
+ const isSameAccount = account?.id === targetCartItem?.holder_id;
401
+ if (rowKey && targetCartItem && (0, _utils2.isNormalProduct)(targetCartItem._productOrigin) && isSameAccount) {
351
402
  this.updateItem({
352
403
  _id: targetCartItem._id,
353
404
  product: {
@@ -359,10 +410,5 @@ var CartModule = class extends import_BaseModule.BaseModule {
359
410
  }
360
411
  return flag;
361
412
  }
362
- };
363
- // Annotate the CommonJS export names for ESM import in node:
364
- 0 && (module.exports = {
365
- CartModule,
366
- getProductDeposit,
367
- ...require("./types")
368
- });
413
+ }
414
+ exports.CartModule = CartModule;
@@ -1,53 +1,48 @@
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/Cart/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- CartHooks: () => CartHooks,
23
- ECartItemCheckType: () => ECartItemCheckType,
24
- ECartItemInfoType: () => ECartItemInfoType
25
- });
26
- module.exports = __toCommonJS(types_exports);
27
- var CartHooks = /* @__PURE__ */ ((CartHooks2) => {
28
- CartHooks2["OnAddItem"] = "card:onAddItem";
29
- CartHooks2["OnCartChange"] = "card:onCartChange";
30
- CartHooks2["OnCartUpdateItem"] = "card:onCartUpdateItem";
31
- CartHooks2["OnCartRemove"] = "card:onCartRemove";
32
- return CartHooks2;
33
- })(CartHooks || {});
34
- var ECartItemInfoType = /* @__PURE__ */ ((ECartItemInfoType2) => {
35
- ECartItemInfoType2["Resource"] = "resource";
36
- ECartItemInfoType2["Time"] = "time";
37
- ECartItemInfoType2["RelationForms"] = "relationForms";
38
- ECartItemInfoType2["Holder"] = "holder";
39
- return ECartItemInfoType2;
40
- })(ECartItemInfoType || {});
41
- var ECartItemCheckType = /* @__PURE__ */ ((ECartItemCheckType2) => {
42
- ECartItemCheckType2["Account"] = "account";
43
- ECartItemCheckType2["Resources"] = "resources";
44
- ECartItemCheckType2["Date"] = "date";
45
- ECartItemCheckType2["RelationForms"] = "relationForms";
46
- return ECartItemCheckType2;
47
- })(ECartItemCheckType || {});
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- CartHooks,
51
- ECartItemCheckType,
52
- ECartItemInfoType
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
53
5
  });
6
+ exports.ECartItemInfoType = exports.ECartItemCheckType = exports.CartHooks = void 0;
7
+ let CartHooks = exports.CartHooks = /*#__PURE__*/function (CartHooks) {
8
+ CartHooks["OnAddItem"] = "card:onAddItem";
9
+ CartHooks["OnCartChange"] = "card:onCartChange";
10
+ CartHooks["OnCartUpdateItem"] = "card:onCartUpdateItem";
11
+ CartHooks["OnCartRemove"] = "card:onCartRemove";
12
+ return CartHooks;
13
+ }({});
14
+ /**
15
+ * 购物车商品信息类型
16
+ */
17
+ let ECartItemInfoType = exports.ECartItemInfoType = /*#__PURE__*/function (ECartItemInfoType) {
18
+ ECartItemInfoType["Resource"] = "resource";
19
+ ECartItemInfoType["Time"] = "time";
20
+ ECartItemInfoType["RelationForms"] = "relationForms";
21
+ ECartItemInfoType["Holder"] = "holder";
22
+ return ECartItemInfoType;
23
+ }({});
24
+ /**
25
+ * 购物车商品检查类型
26
+ */
27
+ let ECartItemCheckType = exports.ECartItemCheckType = /*#__PURE__*/function (ECartItemCheckType) {
28
+ ECartItemCheckType["Account"] = "account";
29
+ ECartItemCheckType["Resources"] = "resources";
30
+ ECartItemCheckType["Date"] = "date";
31
+ ECartItemCheckType["RelationForms"] = "relationForms";
32
+ return ECartItemCheckType;
33
+ }({});
34
+ /**
35
+ * 购物车商品接口
36
+ */
37
+ /**
38
+ * 购物车状态接口
39
+ */
40
+ /**
41
+ * 添加商品到购物车参数
42
+ */
43
+ /**
44
+ * 更新购物车信息参数
45
+ */
46
+ /**
47
+ * 折扣
48
+ */