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