@pisell/pisellos 0.0.567 → 0.0.568

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 (228) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
  3. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  4. package/dist/model/strategy/adapter/walletPass/utils.js +0 -3
  5. package/dist/model/strategy/strategy-example.js +5 -19
  6. package/dist/modules/Cart/index.js +0 -3
  7. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  8. package/dist/modules/Date/index.js +1 -5
  9. package/dist/modules/Discount/index.js +1 -4
  10. package/dist/modules/OpenData/index.js +0 -2
  11. package/dist/modules/Order/index.d.ts +1 -1
  12. package/dist/modules/Order/index.js +14 -41
  13. package/dist/modules/Payment/index.js +142 -270
  14. package/dist/modules/Payment/walletpass.js +4 -5
  15. package/dist/modules/Rules/index.js +0 -7
  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 +88 -121
  21. package/dist/server/modules/menu/index.js +32 -41
  22. package/dist/server/modules/products/index.js +29 -49
  23. package/dist/server/modules/quotation/index.js +29 -38
  24. package/dist/server/modules/resource/index.js +3 -4
  25. package/dist/server/modules/schedule/index.js +32 -40
  26. package/dist/server/utils/product.js +0 -1
  27. package/dist/solution/BookingByStep/index.d.ts +1 -1
  28. package/dist/solution/BookingByStep/index.js +7 -59
  29. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  30. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  31. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  32. package/dist/solution/BookingTicket/index.d.ts +1 -1
  33. package/dist/solution/BookingTicket/index.js +5 -7
  34. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  35. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  36. package/dist/solution/BuyTickets/index.js +9 -12
  37. package/dist/solution/Checkout/index.js +177 -246
  38. package/dist/solution/Checkout/utils/index.js +4 -16
  39. package/dist/solution/RegisterAndLogin/index.js +30 -76
  40. package/dist/solution/ScanOrder/index.js +50 -60
  41. package/dist/solution/ShopDiscount/index.js +2 -7
  42. package/dist/solution/VenueBooking/index.d.ts +5 -0
  43. package/dist/solution/VenueBooking/index.js +364 -327
  44. package/dist/utils/task.js +15 -18
  45. package/dist/utils/watch.js +0 -1
  46. package/lib/apis/picoding.js +2 -0
  47. package/lib/core/index.js +130 -131
  48. package/lib/effects/index.js +46 -57
  49. package/lib/index.js +92 -53
  50. package/lib/model/index.js +14 -21
  51. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  52. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  53. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  54. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  55. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  56. package/lib/model/strategy/adapter/index.js +100 -64
  57. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  58. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  59. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  60. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  61. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  62. package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
  63. package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
  64. package/lib/model/strategy/adapter/promotion/examples.js +139 -159
  65. package/lib/model/strategy/adapter/promotion/index.js +1 -49
  66. package/lib/model/strategy/adapter/promotion/type.js +199 -35
  67. package/lib/model/strategy/adapter/type.js +4 -16
  68. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
  69. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  70. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  71. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  72. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  73. package/lib/model/strategy/adapter/walletPass/utils.js +652 -402
  74. package/lib/model/strategy/engine.js +270 -168
  75. package/lib/model/strategy/index.js +49 -34
  76. package/lib/model/strategy/strategy-example.js +243 -239
  77. package/lib/model/strategy/type.js +100 -40
  78. package/lib/modules/Account/index.js +39 -53
  79. package/lib/modules/Account/types.js +20 -33
  80. package/lib/modules/AccountList/index.js +116 -154
  81. package/lib/modules/AccountList/types.js +30 -31
  82. package/lib/modules/AccountList/utils.js +18 -30
  83. package/lib/modules/BaseModule.js +22 -45
  84. package/lib/modules/Cart/index.js +170 -124
  85. package/lib/modules/Cart/types.js +46 -51
  86. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  87. package/lib/modules/Cart/utils/cartDate.js +56 -61
  88. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  89. package/lib/modules/Cart/utils/cartNote.js +27 -32
  90. package/lib/modules/Cart/utils/cartProduct.js +306 -241
  91. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  92. package/lib/modules/Cart/utils/cartResource.js +72 -78
  93. package/lib/modules/Cart/utils/changePrice.js +26 -62
  94. package/lib/modules/Cart/utils/index.js +106 -48
  95. package/lib/modules/Customer/constants.js +13 -34
  96. package/lib/modules/Customer/index.js +216 -153
  97. package/lib/modules/Customer/types.js +38 -35
  98. package/lib/modules/Date/index.js +116 -115
  99. package/lib/modules/Date/types.js +16 -28
  100. package/lib/modules/Date/utils.js +174 -123
  101. package/lib/modules/Discount/index.js +117 -113
  102. package/lib/modules/Discount/types.js +9 -31
  103. package/lib/modules/Guests/index.js +30 -56
  104. package/lib/modules/Guests/types.js +23 -33
  105. package/lib/modules/Holder/index.js +209 -189
  106. package/lib/modules/Holder/types.js +4 -16
  107. package/lib/modules/Holder/utils.js +20 -49
  108. package/lib/modules/OpenData/index.js +63 -74
  109. package/lib/modules/OpenData/types.js +4 -16
  110. package/lib/modules/OpenData/utils.js +44 -78
  111. package/lib/modules/Order/index.d.ts +1 -1
  112. package/lib/modules/Order/index.js +332 -320
  113. package/lib/modules/Order/types.js +24 -33
  114. package/lib/modules/Order/utils.js +350 -284
  115. package/lib/modules/Payment/cash.js +20 -33
  116. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  117. package/lib/modules/Payment/eftpos.js +16 -30
  118. package/lib/modules/Payment/index.js +566 -432
  119. package/lib/modules/Payment/mx51.js +1 -0
  120. package/lib/modules/Payment/types.js +216 -107
  121. package/lib/modules/Payment/utils.js +50 -47
  122. package/lib/modules/Payment/walletpass.js +221 -203
  123. package/lib/modules/Product/index.js +51 -46
  124. package/lib/modules/Product/types.js +4 -16
  125. package/lib/modules/Product/utils.js +32 -33
  126. package/lib/modules/ProductList/index.js +111 -110
  127. package/lib/modules/ProductList/types.js +9 -31
  128. package/lib/modules/Quotation/index.js +60 -82
  129. package/lib/modules/Quotation/types.js +4 -16
  130. package/lib/modules/Resource/index.js +27 -59
  131. package/lib/modules/Resource/types.js +22 -32
  132. package/lib/modules/Resource/utils.js +30 -38
  133. package/lib/modules/Rules/index.js +1172 -872
  134. package/lib/modules/Rules/types.js +17 -40
  135. package/lib/modules/SalesSummary/index.js +59 -68
  136. package/lib/modules/SalesSummary/types.js +4 -16
  137. package/lib/modules/SalesSummary/utils.js +176 -193
  138. package/lib/modules/ScanOrderLogger/index.js +59 -79
  139. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  140. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  141. package/lib/modules/ScanOrderLogger/types.js +4 -16
  142. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -167
  143. package/lib/modules/Schedule/index.js +97 -107
  144. package/lib/modules/Schedule/type.js +4 -16
  145. package/lib/modules/Schedule/types.js +4 -16
  146. package/lib/modules/Schedule/utils.js +433 -291
  147. package/lib/modules/Step/index.js +40 -52
  148. package/lib/modules/Step/tyeps.js +4 -16
  149. package/lib/modules/Summary/index.js +66 -70
  150. package/lib/modules/Summary/types.js +4 -16
  151. package/lib/modules/Summary/utils.js +782 -429
  152. package/lib/modules/index.js +212 -57
  153. package/lib/plugins/app.js +4 -16
  154. package/lib/plugins/index.js +36 -25
  155. package/lib/plugins/request.js +137 -126
  156. package/lib/plugins/shopStore.js +4 -16
  157. package/lib/plugins/user.js +4 -16
  158. package/lib/plugins/window.js +171 -179
  159. package/lib/server/index.js +882 -623
  160. package/lib/server/modules/index.js +85 -59
  161. package/lib/server/modules/menu/index.js +146 -122
  162. package/lib/server/modules/menu/types.js +18 -31
  163. package/lib/server/modules/order/index.js +195 -231
  164. package/lib/server/modules/order/types.js +107 -32
  165. package/lib/server/modules/order/utils/filterBookings.js +174 -140
  166. package/lib/server/modules/order/utils/filterOrders.js +89 -60
  167. package/lib/server/modules/products/index.js +430 -335
  168. package/lib/server/modules/products/types.js +41 -34
  169. package/lib/server/modules/quotation/index.js +76 -77
  170. package/lib/server/modules/quotation/types.js +21 -31
  171. package/lib/server/modules/resource/index.js +216 -187
  172. package/lib/server/modules/resource/types.js +42 -33
  173. package/lib/server/modules/schedule/index.js +134 -119
  174. package/lib/server/modules/schedule/types.js +14 -21
  175. package/lib/server/modules/schedule/utils.js +334 -163
  176. package/lib/server/types.js +4 -16
  177. package/lib/server/utils/index.js +25 -23
  178. package/lib/server/utils/product.js +196 -139
  179. package/lib/server/utils/schedule.js +34 -41
  180. package/lib/server/utils/time.js +40 -49
  181. package/lib/solution/BookingByStep/index.d.ts +1 -1
  182. package/lib/solution/BookingByStep/index.js +1530 -1343
  183. package/lib/solution/BookingByStep/types.js +40 -99
  184. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  185. package/lib/solution/BookingByStep/utils/products.js +42 -52
  186. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  187. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  188. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  189. package/lib/solution/BookingTicket/index.d.ts +1 -1
  190. package/lib/solution/BookingTicket/index.js +147 -122
  191. package/lib/solution/BookingTicket/types.js +38 -64
  192. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
  193. package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
  194. package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
  195. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  196. package/lib/solution/BuyTickets/index.js +67 -70
  197. package/lib/solution/BuyTickets/types.js +22 -38
  198. package/lib/solution/Checkout/index.js +1451 -1158
  199. package/lib/solution/Checkout/types.js +91 -61
  200. package/lib/solution/Checkout/utils/index.js +227 -158
  201. package/lib/solution/PlaceOrder/index.js +55 -0
  202. package/lib/solution/RegisterAndLogin/config.js +493 -460
  203. package/lib/solution/RegisterAndLogin/index.js +633 -630
  204. package/lib/solution/RegisterAndLogin/types.js +189 -76
  205. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  206. package/lib/solution/Sales/index.js +218 -200
  207. package/lib/solution/Sales/types.js +27 -33
  208. package/lib/solution/ScanOrder/index.js +803 -840
  209. package/lib/solution/ScanOrder/types.js +34 -34
  210. package/lib/solution/ScanOrder/utils.js +372 -331
  211. package/lib/solution/ShopDiscount/index.js +230 -236
  212. package/lib/solution/ShopDiscount/types.js +15 -37
  213. package/lib/solution/ShopDiscount/utils.js +309 -172
  214. package/lib/solution/VenueBooking/index.d.ts +5 -0
  215. package/lib/solution/VenueBooking/index.js +886 -929
  216. package/lib/solution/VenueBooking/types.js +20 -40
  217. package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
  218. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  219. package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
  220. package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
  221. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
  222. package/lib/solution/VenueBooking/utils.js +130 -67
  223. package/lib/solution/index.js +102 -37
  224. package/lib/store/createStore.js +32 -29
  225. package/lib/types/index.js +4 -16
  226. package/lib/utils/task.js +36 -36
  227. package/lib/utils/watch.js +81 -47
  228. package/package.json +2 -1
@@ -1,36 +1,43 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/server/modules/products/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- ProductsHooks: () => ProductsHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var ProductsHooks = /* @__PURE__ */ ((ProductsHooks2) => {
26
- ProductsHooks2["onProductsLoaded"] = "products:onProductsLoaded";
27
- ProductsHooks2["onProductsChanged"] = "products:onProductsChanged";
28
- ProductsHooks2["onProductSelected"] = "products:onProductSelected";
29
- ProductsHooks2["onProductsPriceApplied"] = "products:onProductsPriceApplied";
30
- ProductsHooks2["onProductsSyncCompleted"] = "products:onProductsSyncCompleted";
31
- return ProductsHooks2;
32
- })(ProductsHooks || {});
33
- // Annotate the CommonJS export names for ESM import in node:
34
- 0 && (module.exports = {
35
- ProductsHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
36
5
  });
6
+ exports.ProductsHooks = void 0;
7
+ /**
8
+ * Products 模块状态
9
+ */
10
+ /**
11
+ * 商品格式化后数据
12
+ */
13
+ /**
14
+ * 加载报价单商品价格参数
15
+ */
16
+ /**
17
+ * 加载报价单商品价格返回数据
18
+ */
19
+ /**
20
+ * 加载报价单商品价格返回数据
21
+ */
22
+ /**
23
+ * Products 模块状态
24
+ */
25
+ /**
26
+ * Products 模块钩子
27
+ */
28
+ let ProductsHooks = exports.ProductsHooks = /*#__PURE__*/function (ProductsHooks) {
29
+ ProductsHooks["onProductsLoaded"] = "products:onProductsLoaded";
30
+ ProductsHooks["onProductsChanged"] = "products:onProductsChanged";
31
+ ProductsHooks["onProductSelected"] = "products:onProductSelected";
32
+ ProductsHooks["onProductsPriceApplied"] = "products:onProductsPriceApplied";
33
+ ProductsHooks["onProductsSyncCompleted"] = "products:onProductsSyncCompleted";
34
+ return ProductsHooks;
35
+ }({});
36
+ /** pubsub 商品同步消息结构 */
37
+ /**
38
+ * 商品格式化器上下文
39
+ */
40
+ /**
41
+ * 商品格式化器类型
42
+ * 用于对商品数据进行处理和格式化(包括价格应用、字段扩展等)
43
+ */
@@ -1,94 +1,89 @@
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);
18
-
19
- // src/server/modules/quotation/index.ts
20
- var quotation_exports = {};
21
- __export(quotation_exports, {
22
- QuotationModule: () => QuotationModule
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(quotation_exports);
25
- var import_lodash_es = require("lodash-es");
26
- var import_BaseModule = require("../../../modules/BaseModule");
27
- var import_types = require("./types");
28
- var INDEXDB_STORE_NAME = "quotation";
29
- var QuotationModule = class extends import_BaseModule.BaseModule {
30
- // IndexDBManager 实例
6
+ exports.QuotationModule = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ var _BaseModule = require("../../../modules/BaseModule");
9
+ var _types = require("./types");
10
+ /**
11
+ * IndexDB 存储名称
12
+ */
13
+ const INDEXDB_STORE_NAME = 'quotation';
14
+
15
+ /**
16
+ * 报价单模块 - 用于管理报价单数据和计算商品价格
17
+ */
18
+ class QuotationModule extends _BaseModule.BaseModule {
19
+ defaultName = 'quotation';
20
+ defaultVersion = '1.0.0';
21
+ request;
22
+ store;
23
+ dbManager; // IndexDBManager 实例
24
+
31
25
  constructor(name, version) {
32
26
  super(name, version);
33
- this.defaultName = "quotation";
34
- this.defaultVersion = "1.0.0";
35
27
  }
36
28
  async initialize(core, options) {
37
- var _a;
38
29
  this.core = core;
39
- this.store = options == null ? void 0 : options.store;
40
- if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.quotationList)) {
41
- this.store.quotationList = options == null ? void 0 : options.initialState.quotationList;
42
- this.core.effects.emit(import_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
30
+ this.store = options?.store;
31
+ if (Array.isArray(options?.initialState?.quotationList)) {
32
+ this.store.quotationList = options?.initialState.quotationList;
33
+ this.core.effects.emit(_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
43
34
  } else {
44
35
  this.store.quotationList = [];
45
36
  }
46
- this.request = core.getPlugin("request");
37
+
38
+ // 获取依赖的插件
39
+ this.request = core.getPlugin('request');
47
40
  if (!this.request) {
48
- throw new Error("QuotationModule 需要 request 插件支持");
41
+ throw new Error('QuotationModule 需要 request 插件支持');
49
42
  }
50
- const appPlugin = core.getPlugin("app");
43
+
44
+ // 获取并存储 dbManager
45
+ const appPlugin = core.getPlugin('app');
51
46
  if (appPlugin) {
52
47
  const app = appPlugin.getApp();
53
48
  this.dbManager = app.dbManager;
54
- if (this.dbManager) {
55
- console.log("[Quotation] IndexDB Manager 已初始化");
56
- } else {
57
- console.warn("[Quotation] IndexDB Manager 未找到");
49
+ if (this.dbManager) {} else {
50
+ console.warn('[Quotation] IndexDB Manager 未找到');
58
51
  }
59
52
  }
60
53
  }
54
+
61
55
  /**
62
56
  * 加载报价单列表(从服务器)
63
57
  * TODO: 接口地址待定
64
58
  */
65
59
  async loadQuotationList() {
66
- var _a;
67
60
  try {
68
- const response = await this.request.get(
69
- `/quotation`,
70
- {
71
- num: 999,
72
- skip: 1,
73
- status: "published"
74
- }
75
- );
76
- const quotationList = ((_a = response.data) == null ? void 0 : _a.list) || [];
61
+ // TODO: 替换为实际的接口地址
62
+ const response = await this.request.get(`/quotation`, {
63
+ num: 999,
64
+ skip: 1,
65
+ status: 'published'
66
+ });
67
+ const quotationList = response.data?.list || [];
68
+
69
+ // 保存到 IndexDB
77
70
  await this.saveQuotationToIndexDB(quotationList);
78
71
  await this.setQuotationList(quotationList);
79
72
  return quotationList;
80
73
  } catch (error) {
81
- console.error("[Quotation] 加载报价单数据失败:", error);
74
+ console.error('[Quotation] 加载报价单数据失败:', error);
82
75
  return [];
83
76
  }
84
77
  }
78
+
85
79
  /**
86
80
  * 设置报价单列表
87
81
  */
88
82
  async setQuotationList(quotationList) {
89
83
  this.store.quotationList = quotationList;
90
- await this.core.effects.emit(import_types.QuotationHooks.onQuotationLoaded, quotationList);
84
+ await this.core.effects.emit(_types.QuotationHooks.onQuotationLoaded, quotationList);
91
85
  }
86
+
92
87
  /**
93
88
  * 获取报价单列表
94
89
  */
@@ -100,16 +95,17 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
100
95
  */
101
96
  async clear() {
102
97
  this.store.quotationList = [];
98
+
99
+ // 同时清空 IndexDB 中的数据
103
100
  if (this.dbManager) {
104
101
  try {
105
102
  await this.dbManager.clear(INDEXDB_STORE_NAME);
106
- console.log("[Quotation] IndexDB 缓存已清空");
107
103
  } catch (error) {
108
- console.error("[Quotation] 清空 IndexDB 缓存失败:", error);
104
+ console.error('[Quotation] 清空 IndexDB 缓存失败:', error);
109
105
  }
110
106
  }
111
- console.log("[Quotation] 缓存已清空");
112
107
  }
108
+
113
109
  /**
114
110
  * 从 IndexDB 加载报价单数据
115
111
  * @private
@@ -119,13 +115,15 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
119
115
  return [];
120
116
  }
121
117
  try {
118
+ // 直接获取所有报价单记录
122
119
  const quotationList = await this.dbManager.getAll(INDEXDB_STORE_NAME);
123
120
  return quotationList || [];
124
121
  } catch (error) {
125
- console.error("[Quotation] 从 IndexDB 读取数据失败:", error);
122
+ console.error('[Quotation] 从 IndexDB 读取数据失败:', error);
126
123
  return [];
127
124
  }
128
125
  }
126
+
129
127
  /**
130
128
  * 保存报价单数据到 IndexDB
131
129
  * @private
@@ -135,43 +133,44 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
135
133
  return;
136
134
  }
137
135
  try {
136
+ // 先清空现有的报价单数据
138
137
  await this.dbManager.clear(INDEXDB_STORE_NAME);
139
- const savePromises = quotationList.map(
140
- (quotation) => this.dbManager.add(INDEXDB_STORE_NAME, quotation)
141
- );
138
+
139
+ // 逐个保存报价单(每个报价单是独立的记录)
140
+ const savePromises = quotationList.map(quotation => this.dbManager.add(INDEXDB_STORE_NAME, quotation));
142
141
  await Promise.all(savePromises);
143
- console.log(`[Quotation] 已将 ${quotationList.length} 条报价单数据保存到 IndexDB`);
144
142
  } catch (error) {
145
- console.error("[Quotation] 保存数据到 IndexDB 失败:", error);
143
+ console.error('[Quotation] 保存数据到 IndexDB 失败:', error);
146
144
  }
147
145
  }
146
+
148
147
  /**
149
148
  * 预加载模块数据(统一接口)
150
149
  * 在模块注册后自动调用
151
150
  */
152
151
  async preload() {
153
- console.log("[Quotation] 开始预加载数据...");
154
152
  try {
153
+ // 1. 尝试从 IndexDB 加载数据
155
154
  const cachedData = await this.loadQuotationFromIndexDB();
156
155
  if (cachedData && cachedData.length > 0) {
157
- console.log(`[Quotation] 从 IndexDB 加载了 ${cachedData.length} 条报价单数据`);
158
- this.store.quotationList = (0, import_lodash_es.cloneDeep)(cachedData);
159
- this.core.effects.emit(import_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
156
+ // 将缓存数据放入 store
157
+ this.store.quotationList = (0, _lodashEs.cloneDeep)(cachedData);
158
+ this.core.effects.emit(_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
160
159
  return;
161
160
  }
162
- console.log("[Quotation] IndexDB 中没有缓存数据,从服务器加载...");
163
161
  } catch (error) {
164
- console.warn("[Quotation] 从 IndexDB 加载数据失败:", error);
162
+ console.warn('[Quotation] 从 IndexDB 加载数据失败:', error);
165
163
  }
164
+
165
+ // 2. 如果 IndexDB 中没有数据,从服务器加载
166
166
  const quotationList = await this.loadQuotationList();
167
+
168
+ // 3. 将服务器数据保存到 IndexDB 和 store
167
169
  if (quotationList && quotationList.length > 0) {
168
170
  await this.saveQuotationToIndexDB(quotationList);
169
- this.store.quotationList = (0, import_lodash_es.cloneDeep)(quotationList);
170
- this.core.effects.emit(import_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
171
+ this.store.quotationList = (0, _lodashEs.cloneDeep)(quotationList);
172
+ this.core.effects.emit(_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
171
173
  }
172
174
  }
173
- };
174
- // Annotate the CommonJS export names for ESM import in node:
175
- 0 && (module.exports = {
176
- QuotationModule
177
- });
175
+ }
176
+ exports.QuotationModule = QuotationModule;
@@ -1,33 +1,23 @@
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/server/modules/quotation/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- QuotationHooks: () => QuotationHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var QuotationHooks = /* @__PURE__ */ ((QuotationHooks2) => {
26
- QuotationHooks2["onQuotationLoaded"] = "quotation:onQuotationLoaded";
27
- QuotationHooks2["onQuotationChanged"] = "quotation:onQuotationChanged";
28
- return QuotationHooks2;
29
- })(QuotationHooks || {});
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- QuotationHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
6
+ exports.QuotationHooks = void 0;
7
+ /**
8
+ * 报价单模块状态
9
+ */
10
+ /**
11
+ * 报价单数据结构
12
+ */
13
+ /**
14
+ * 报价单商品价格配置
15
+ */
16
+ /**
17
+ * 报价单模块钩子
18
+ */
19
+ let QuotationHooks = exports.QuotationHooks = /*#__PURE__*/function (QuotationHooks) {
20
+ QuotationHooks["onQuotationLoaded"] = "quotation:onQuotationLoaded";
21
+ QuotationHooks["onQuotationChanged"] = "quotation:onQuotationChanged";
22
+ return QuotationHooks;
23
+ }({});