@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,70 +1,55 @@
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/AccountList/index.ts
20
- var AccountList_exports = {};
21
- __export(AccountList_exports, {
22
- AccountListModule: () => AccountListModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(AccountList_exports);
25
- var import_lodash_es = require("lodash-es");
26
- var import_Account = require("../Account");
27
- var import_BaseModule = require("../BaseModule");
28
- var import_types = require("./types");
29
- var import_utils = require("./utils");
30
- var AccountListModule = class extends import_BaseModule.BaseModule {
6
+ exports.AccountListModule = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ var _Account = require("../Account");
9
+ var _BaseModule = require("../BaseModule");
10
+ var _types = require("./types");
11
+ var _utils = require("./utils");
12
+ class AccountListModule extends _BaseModule.BaseModule {
13
+ defaultName = 'accountList';
14
+ defaultVersion = '1.0.0';
15
+ store = {
16
+ accountList: [],
17
+ // 账号的纯数据列表
18
+ accounts: [],
19
+ // 账号的 module 列表
20
+ isLoading: false,
21
+ error: null
22
+ };
23
+ request;
24
+ cacheId;
25
+ openCache = false;
26
+ fatherModule;
31
27
  constructor(name, version) {
32
28
  super(name, version);
33
- this.defaultName = "accountList";
34
- this.defaultVersion = "1.0.0";
35
- this.store = {
36
- accountList: [],
37
- // 账号的纯数据列表
38
- accounts: [],
39
- // 账号的 module 列表
40
- isLoading: false,
41
- error: null
42
- };
43
- this.openCache = false;
44
29
  }
45
30
  async initialize(core, options) {
46
- var _a, _b, _c;
47
31
  this.core = core;
48
- this.store = options == null ? void 0 : options.store;
49
- this.request = this.core.getPlugin("request");
50
- if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.accountList)) {
51
- const recordList = (0, import_lodash_es.cloneDeep)(options.initialState.accountList || []);
32
+ this.store = options?.store;
33
+ this.request = this.core.getPlugin('request');
34
+ if (Array.isArray(options?.initialState?.accountList)) {
35
+ const recordList = (0, _lodashEs.cloneDeep)(options.initialState.accountList || []);
52
36
  this.store.accounts = [];
53
- recordList.forEach((account) => {
37
+ recordList.forEach(account => {
54
38
  this.addAccount(account);
55
39
  });
56
40
  } else {
57
41
  this.store.accounts = [];
58
42
  this.store.accountList = [];
59
43
  }
60
- if ((_b = options == null ? void 0 : options.otherParams) == null ? void 0 : _b.cacheId) {
44
+ if (options?.otherParams?.cacheId) {
61
45
  this.openCache = options.otherParams.openCache;
62
46
  this.cacheId = options.otherParams.cacheId;
63
47
  }
64
- if ((_c = options == null ? void 0 : options.otherParams) == null ? void 0 : _c.fatherModule) {
48
+ if (options?.otherParams?.fatherModule) {
65
49
  this.fatherModule = options.otherParams.fatherModule;
66
50
  }
67
51
  }
52
+
68
53
  /**
69
54
  * 创建账号并添加到列表中
70
55
  * @param account 账号信息
@@ -72,32 +57,28 @@ var AccountListModule = class extends import_BaseModule.BaseModule {
72
57
  * @param type 添加类型
73
58
  */
74
59
  async createAccountAndAdd(account, needEmit = true, type) {
75
- const tempAccountModule = this.store.accounts.find(
76
- (a) => a.getId() === account.id
77
- );
60
+ const tempAccountModule = this.store.accounts.find(a => a.getId() === account.id);
61
+ // 如果账号已经存在,则直接返回
78
62
  if (tempAccountModule) {
79
63
  return tempAccountModule;
80
64
  }
81
- const newAccountList = [...this.store.accountList || []];
82
- if (type === "unshift") {
65
+ const newAccountList = [...(this.store.accountList || [])];
66
+ if (type === 'unshift') {
83
67
  newAccountList.unshift(account);
84
68
  } else {
85
69
  newAccountList.push(account);
86
70
  }
87
71
  this.store.accountList = newAccountList;
88
- const accountModule = new import_Account.AccountModule(`account_${account.id}`);
72
+ const accountModule = new _Account.AccountModule(`account_${account.id}`);
89
73
  this.core.registerModule(accountModule);
90
74
  accountModule.setAccountInfo(account);
91
- if (type === "unshift") {
92
- this.store.accounts = [accountModule, ...this.store.accounts || []];
75
+ if (type === 'unshift') {
76
+ this.store.accounts = [accountModule, ...(this.store.accounts || [])];
93
77
  } else {
94
- this.store.accounts = [...this.store.accounts || [], accountModule];
78
+ this.store.accounts = [...(this.store.accounts || []), accountModule];
95
79
  }
96
80
  if (needEmit) {
97
- await this.core.effects.emit(
98
- import_types.AccountListHooks.OnAccountListUpdate,
99
- this.store
100
- );
81
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListUpdate, this.store);
101
82
  }
102
83
  return accountModule;
103
84
  }
@@ -106,32 +87,24 @@ var AccountListModule = class extends import_BaseModule.BaseModule {
106
87
  try {
107
88
  this.store.isLoading = true;
108
89
  this.store.error = null;
109
- if (this.store.accounts.some((a) => a.getId() === account.id)) {
110
- currentAccountModule = this.store.accounts.find(
111
- (n) => n.getId() === account.id
112
- );
90
+ if (this.store.accounts.some(a => a.getId() === account.id)) {
91
+ currentAccountModule = this.store.accounts.find(n => n.getId() === account.id);
113
92
  throw new Error(`Account with id ${account.id} already exists`);
114
93
  }
115
94
  this.store.accountList.push(account);
116
- const accountModule = new import_Account.AccountModule(`account_${account.id}`);
95
+ const accountModule = new _Account.AccountModule(`account_${account.id}`);
117
96
  this.core.registerModule(accountModule);
118
97
  accountModule.setAccountInfo(account);
119
- this.store.accounts = [...this.store.accounts || [], accountModule];
98
+ this.store.accounts = [...(this.store.accounts || []), accountModule];
120
99
  if (this.store.accounts.length === 1) {
121
100
  this.setActiveAccount(accountModule.getId());
122
101
  }
123
102
  currentAccountModule = accountModule;
124
- await this.core.effects.emit(
125
- import_types.AccountListHooks.OnAccountListUpdate,
126
- this.store
127
- );
103
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListUpdate, this.store);
128
104
  } catch (error) {
129
105
  console.error(error);
130
- this.store.error = error instanceof Error ? error.message : "Failed to add account";
131
- await this.core.effects.emit(
132
- import_types.AccountListHooks.OnAccountListError,
133
- this.store.error
134
- );
106
+ this.store.error = error instanceof Error ? error.message : 'Failed to add account';
107
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListError, this.store.error);
135
108
  } finally {
136
109
  this.store.isLoading = false;
137
110
  return currentAccountModule;
@@ -146,99 +119,80 @@ var AccountListModule = class extends import_BaseModule.BaseModule {
146
119
  throw new Error(`Account with id ${id} not found`);
147
120
  }
148
121
  account.setAccountInfo(updates);
149
- const index = this.store.accountList.findIndex(
150
- (account2) => account2.id === id
151
- );
122
+ // this.store.accountList.forEach(account => {
123
+ // if (account.id === id) {
124
+ // Object.assign(account, updates)
125
+ // }
126
+ // })
127
+ const index = this.store.accountList.findIndex(account => account.id === id);
152
128
  if (index !== -1) {
153
129
  this.store.accountList[index] = updates;
154
130
  }
155
- await this.core.effects.emit(
156
- import_types.AccountListHooks.OnAccountListUpdate,
157
- this.store
158
- );
131
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListUpdate, this.store);
159
132
  } catch (error) {
160
- this.store.error = error instanceof Error ? error.message : "Failed to update account";
161
- await this.core.effects.emit(
162
- import_types.AccountListHooks.OnAccountListError,
163
- this.store.error
164
- );
133
+ this.store.error = error instanceof Error ? error.message : 'Failed to update account';
134
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListError, this.store.error);
165
135
  } finally {
166
136
  this.store.isLoading = false;
167
137
  }
168
138
  }
169
139
  async updateAccountListById(id, updates) {
170
- this.store.accountList = this.store.accountList.map((account) => {
140
+ this.store.accountList = this.store.accountList.map(account => {
171
141
  if (account.id === id) {
172
142
  return updates;
173
143
  }
174
144
  return account;
175
145
  });
176
146
  this.core.effects.emit(`${this.name}:changed`, {
177
- path: "accounts",
147
+ path: 'accounts',
178
148
  value: this.store.accountList
179
149
  });
180
150
  }
181
151
  async removeAccount(id) {
182
- var _a;
183
152
  try {
184
153
  this.store.isLoading = true;
185
154
  this.store.error = null;
186
- const index = this.store.accounts.findIndex((a) => a.getId() === id);
155
+ const index = this.store.accounts.findIndex(a => a.getId() === id);
187
156
  if (index === -1) {
188
157
  throw new Error(`Account with id ${id} not found`);
189
158
  }
190
159
  this.store.accounts[index].destroy();
191
- this.store.accounts = [
192
- ...(this.store.accounts || []).slice(0, index),
193
- ...(this.store.accounts || []).slice(index + 1)
194
- ];
195
- this.store.accountList = this.store.accountList.filter(
196
- (account) => account.id !== id
197
- );
198
- if (!this.getActiveAccount() || ((_a = this.getActiveAccount()) == null ? void 0 : _a.getId()) === id || this.store.accounts.length === 1) {
160
+ this.store.accounts = [...(this.store.accounts || []).slice(0, index), ...(this.store.accounts || []).slice(index + 1)];
161
+ this.store.accountList = this.store.accountList.filter(account => account.id !== id);
162
+
163
+ // 检测 如果被删除的是活跃账号,则默认把第一个账号设置为 activeAccount
164
+ if (!this.getActiveAccount() || this.getActiveAccount()?.getId() === id || this.store.accounts.length === 1) {
199
165
  this.setActiveAccount(this.store.accounts[0].getId());
200
166
  }
201
- await this.core.effects.emit(
202
- import_types.AccountListHooks.OnAccountListUpdate,
203
- this.store
204
- );
167
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListUpdate, this.store);
205
168
  } catch (error) {
206
- this.store.error = error instanceof Error ? error.message : "Failed to remove account";
207
- await this.core.effects.emit(
208
- import_types.AccountListHooks.OnAccountListError,
209
- this.store.error
210
- );
169
+ this.store.error = error instanceof Error ? error.message : 'Failed to remove account';
170
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListError, this.store.error);
211
171
  } finally {
212
172
  this.store.isLoading = false;
213
173
  }
214
174
  }
215
175
  getAccounts() {
216
- return [...this.store.accounts || []];
176
+ return [...(this.store.accounts || [])];
217
177
  }
218
178
  getAccount(id) {
219
- return this.store.accounts.find((account) => account.getId() === id) || null;
179
+ return this.store.accounts.find(account => account.getId() === id) || null;
220
180
  }
221
181
  async clearAccounts() {
222
182
  try {
223
183
  this.store.isLoading = true;
224
184
  this.store.error = null;
225
185
  this.store.accounts = [];
226
- await this.core.effects.emit(
227
- import_types.AccountListHooks.OnAccountListUpdate,
228
- this.store
229
- );
186
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListUpdate, this.store);
230
187
  } catch (error) {
231
- this.store.error = error instanceof Error ? error.message : "Failed to clear accounts";
232
- await this.core.effects.emit(
233
- import_types.AccountListHooks.OnAccountListError,
234
- this.store.error
235
- );
188
+ this.store.error = error instanceof Error ? error.message : 'Failed to clear accounts';
189
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListError, this.store.error);
236
190
  } finally {
237
191
  this.store.isLoading = false;
238
192
  }
239
193
  }
240
194
  setActiveAccount(id) {
241
- this.store.accounts.forEach((account) => {
195
+ this.store.accounts.forEach(account => {
242
196
  if (account.getId() === id) {
243
197
  account.setActive(true);
244
198
  } else {
@@ -247,82 +201,93 @@ var AccountListModule = class extends import_BaseModule.BaseModule {
247
201
  });
248
202
  }
249
203
  getActiveAccount() {
250
- return this.store.accounts.find((account) => account.isActive()) || null;
204
+ return this.store.accounts.find(account => account.isActive()) || null;
251
205
  }
252
206
  storeChange() {
253
207
  if (this.openCache) {
254
- const store = (0, import_lodash_es.cloneDeep)(this.store);
255
- store.accountList = store.accountList.filter(
256
- (account, index, self) => index === self.findIndex((t) => t.id === account.id)
257
- );
208
+ const store = (0, _lodashEs.cloneDeep)(this.store);
209
+ // store里的 accountList 要主动基于 id 做下去重,避免重复写入
210
+ store.accountList = store.accountList.filter((account, index, self) => index === self.findIndex(t => t.id === account.id));
258
211
  this.checkSaveCache({
259
212
  cacheId: this.cacheId,
260
213
  fatherModule: this.fatherModule,
261
214
  store,
262
- cacheKey: ["accountList"]
215
+ cacheKey: ['accountList']
263
216
  });
264
217
  }
265
218
  }
219
+
266
220
  /**
267
221
  * 批量添加holder类型账号
268
222
  */
269
223
  async addHolderAccounts(params) {
270
- const { holders, customerId, type = "push" } = params;
224
+ const {
225
+ holders,
226
+ customerId,
227
+ type = 'push'
228
+ } = params;
271
229
  const accountModules = [];
272
230
  for (const holder of holders) {
273
- const account = (0, import_utils.createHolderAccount)(holder, customerId);
274
- const accountModule = await this.createAccountAndAdd(
275
- account,
276
- false,
277
- type
278
- );
279
- if (type === "unshift") {
231
+ const account = (0, _utils.createHolderAccount)(holder, customerId);
232
+ const accountModule = await this.createAccountAndAdd(account, false, type);
233
+ if (type === 'unshift') {
280
234
  accountModules.unshift(accountModule);
281
235
  } else {
282
236
  accountModules.push(accountModule);
283
237
  }
284
238
  }
285
- await this.core.effects.emit(
286
- import_types.AccountListHooks.OnAccountListUpdate,
287
- this.store
288
- );
239
+ await this.core.effects.emit(_types.AccountListHooks.OnAccountListUpdate, this.store);
289
240
  return accountModules;
290
241
  }
242
+
291
243
  /**
292
244
  * 获取客户列表
293
245
  * @param params 查询参数
294
246
  * @returns 客户列表
295
247
  */
296
248
  async getCustomerList(params = {}) {
297
- const url = "/customer/es/data";
298
- const { page = 1, pageSize = 20, keyword, ...otherParams } = params;
249
+ const url = '/customer/es/data';
250
+ const {
251
+ page = 1,
252
+ pageSize = 20,
253
+ keyword,
254
+ ...otherParams
255
+ } = params;
299
256
  try {
300
257
  this.store.isLoading = true;
301
258
  this.store.error = null;
302
259
  const queryParams = {
303
260
  page,
304
261
  pageSize,
305
- ...keyword && { keyword },
262
+ ...(keyword && {
263
+ keyword
264
+ }),
306
265
  ...otherParams
307
266
  };
308
267
  const res = await this.request.get(url, queryParams);
309
- return (res == null ? void 0 : res.data) || [];
268
+ return res?.data || [];
310
269
  } catch (error) {
311
- console.error("Failed to fetch customer list:", error);
312
- this.store.error = error instanceof Error ? error.message : "Failed to fetch customer list";
270
+ console.error('Failed to fetch customer list:', error);
271
+ this.store.error = error instanceof Error ? error.message : 'Failed to fetch customer list';
313
272
  throw error;
314
273
  } finally {
315
274
  this.store.isLoading = false;
316
275
  }
317
276
  }
277
+
318
278
  /**
319
279
  * 获取holder类型账户列表
320
280
  * @param params
321
281
  */
322
282
  async fetchHolderAccounts(params) {
323
- var _a, _b;
324
- const url = params.url || "/account/holder";
325
- const { form_id, shop_id, num, skip, customer_id } = (params == null ? void 0 : params.query) || {};
283
+ const url = params.url || '/account/holder';
284
+ const {
285
+ form_id,
286
+ shop_id,
287
+ num,
288
+ skip,
289
+ customer_id
290
+ } = params?.query || {};
326
291
  try {
327
292
  const res = await this.request.get(url, {
328
293
  customer_id,
@@ -333,7 +298,7 @@ var AccountListModule = class extends import_BaseModule.BaseModule {
333
298
  });
334
299
  this.store.accountList = [];
335
300
  this.store.accounts = [];
336
- if ((_b = (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.list) == null ? void 0 : _b.length) {
301
+ if (res?.data?.list?.length) {
337
302
  await this.addHolderAccounts({
338
303
  holders: res.data.list,
339
304
  customerId: customer_id
@@ -344,10 +309,7 @@ var AccountListModule = class extends import_BaseModule.BaseModule {
344
309
  }
345
310
  }
346
311
  getLoginAccount() {
347
- return this.store.accounts.find((n) => n.isLogin());
312
+ return this.store.accounts.find(n => n.isLogin());
348
313
  }
349
- };
350
- // Annotate the CommonJS export names for ESM import in node:
351
- 0 && (module.exports = {
352
- AccountListModule
353
- });
314
+ }
315
+ exports.AccountListModule = AccountListModule;
@@ -1,33 +1,32 @@
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/AccountList/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- AccountListHooks: () => AccountListHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var AccountListHooks = /* @__PURE__ */ ((AccountListHooks2) => {
26
- AccountListHooks2["OnAccountListUpdate"] = "accountList:onUpdate";
27
- AccountListHooks2["OnAccountListError"] = "accountList:onError";
28
- return AccountListHooks2;
29
- })(AccountListHooks || {});
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- AccountListHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
6
+ exports.AccountListHooks = void 0;
7
+ let AccountListHooks = exports.AccountListHooks = /*#__PURE__*/function (AccountListHooks) {
8
+ AccountListHooks["OnAccountListUpdate"] = "accountList:onUpdate";
9
+ AccountListHooks["OnAccountListError"] = "accountList:onError";
10
+ return AccountListHooks;
11
+ }({});
12
+ /**
13
+ * 账户列表查询参数
14
+ */
15
+ /**
16
+ * 账户列表状态
17
+ */
18
+ /**
19
+ * 账户列表模块 API
20
+ */
21
+ /**
22
+ * 获取holder类型账户列表参数
23
+ */
24
+ /**
25
+ * holder类型数据
26
+ */
27
+ /**
28
+ * 获取客户列表参数
29
+ */
30
+ /**
31
+ * 客户数据
32
+ */
@@ -1,39 +1,27 @@
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/AccountList/utils.ts
20
- var utils_exports = {};
21
- __export(utils_exports, {
22
- createHolderAccount: () => createHolderAccount
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(utils_exports);
25
- var createHolderAccount = (holder, customerId) => {
6
+ exports.createHolderAccount = void 0;
7
+ /**
8
+ * 创建holder类型账号
9
+ * @param holder
10
+ * @param customer_id 账户id
11
+ * @returns
12
+ */
13
+ const createHolderAccount = (holder, customerId) => {
26
14
  const account = {
27
15
  id: holder.form_record_id,
28
16
  name: holder.main_field,
29
17
  username: holder.main_field,
30
- avatar: (holder == null ? void 0 : holder.customer_cover) || "",
31
- type: "holder",
32
- _origin: { ...holder, customer_id: customerId }
18
+ avatar: holder?.customer_cover || '',
19
+ type: 'holder',
20
+ _origin: {
21
+ ...holder,
22
+ customer_id: customerId
23
+ }
33
24
  };
34
25
  return account;
35
26
  };
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- createHolderAccount
39
- });
27
+ exports.createHolderAccount = createHolderAccount;
@@ -1,32 +1,17 @@
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/BaseModule.ts
20
- var BaseModule_exports = {};
21
- __export(BaseModule_exports, {
22
- BaseModule: () => BaseModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(BaseModule_exports);
25
- var BaseModule = class {
6
+ exports.BaseModule = void 0;
7
+ class BaseModule {
8
+ defaultName = 'baseModule';
9
+ defaultVersion = '1.0.0';
10
+ name;
11
+ version;
12
+ isSolution = false;
13
+ core;
26
14
  constructor(name, version) {
27
- this.defaultName = "baseModule";
28
- this.defaultVersion = "1.0.0";
29
- this.isSolution = false;
30
15
  this.name = name || this.defaultName;
31
16
  this.version = version || this.defaultVersion;
32
17
  }
@@ -35,8 +20,9 @@ var BaseModule = class {
35
20
  this.core.unregisterModule(this);
36
21
  }
37
22
  isRecord(value) {
38
- return !!value && typeof value === "object" && !Array.isArray(value);
23
+ return !!value && typeof value === 'object' && !Array.isArray(value);
39
24
  }
25
+
40
26
  // 提供统一的缓存 module 里的数据的方法
41
27
  checkSaveCache({
42
28
  cacheId,
@@ -44,22 +30,19 @@ var BaseModule = class {
44
30
  store,
45
31
  cacheKey
46
32
  }) {
47
- if (!cacheId)
48
- return;
33
+ if (!cacheId) return;
49
34
  try {
50
- const window = this.core.getPlugin("window");
51
- const sessionStorage = window == null ? void 0 : window.sessionStorage;
52
- if (!sessionStorage)
53
- return;
35
+ const window = this.core.getPlugin('window');
36
+ const sessionStorage = window?.sessionStorage;
37
+ if (!sessionStorage) return;
54
38
  const storageKey = fatherModule || cacheId;
55
39
  const rawCacheData = sessionStorage.getItem(storageKey);
56
40
  const parsedCacheData = rawCacheData ? JSON.parse(rawCacheData) : {};
57
- if (!this.isRecord(parsedCacheData))
58
- return;
41
+ if (!this.isRecord(parsedCacheData)) return;
59
42
  const cacheBucket = fatherModule ? this.isRecord(parsedCacheData[cacheId]) ? parsedCacheData[cacheId] : {} : parsedCacheData;
60
43
  const moduleBucket = this.isRecord(cacheBucket[this.name]) ? cacheBucket[this.name] : {};
61
- cacheKey.forEach((key) => {
62
- moduleBucket[key] = store == null ? void 0 : store[key];
44
+ cacheKey.forEach(key => {
45
+ moduleBucket[key] = store?.[key];
63
46
  });
64
47
  cacheBucket[this.name] = moduleBucket;
65
48
  if (fatherModule) {
@@ -67,6 +50,7 @@ var BaseModule = class {
67
50
  }
68
51
  sessionStorage.setItem(storageKey, JSON.stringify(parsedCacheData));
69
52
  } catch {
53
+ // sessionStorage persistence is best-effort and must not block checkout.
70
54
  }
71
55
  }
72
56
  effectsOn(eventType, callback) {
@@ -81,8 +65,5 @@ var BaseModule = class {
81
65
  effectsEmit(eventType, payload) {
82
66
  return this.core.effects.emit(`${this.name}:${eventType}`, payload);
83
67
  }
84
- };
85
- // Annotate the CommonJS export names for ESM import in node:
86
- 0 && (module.exports = {
87
- BaseModule
88
- });
68
+ }
69
+ exports.BaseModule = BaseModule;