@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.
- package/dist/core/index.js +6 -9
- package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +0 -3
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +1 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +14 -41
- package/dist/modules/Payment/index.js +142 -270
- package/dist/modules/Payment/walletpass.js +4 -5
- package/dist/modules/Rules/index.js +0 -7
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +88 -121
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/products/index.js +29 -49
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +32 -40
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +5 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -246
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.d.ts +5 -0
- package/dist/solution/VenueBooking/index.js +364 -327
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +130 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +92 -53
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
- package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
- package/lib/model/strategy/adapter/promotion/examples.js +139 -159
- package/lib/model/strategy/adapter/promotion/index.js +1 -49
- package/lib/model/strategy/adapter/promotion/type.js +199 -35
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +652 -402
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +22 -45
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +306 -241
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +72 -78
- package/lib/modules/Cart/utils/changePrice.js +26 -62
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +216 -153
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +117 -113
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +63 -74
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +332 -320
- package/lib/modules/Order/types.js +24 -33
- package/lib/modules/Order/utils.js +350 -284
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +566 -432
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +216 -107
- package/lib/modules/Payment/utils.js +50 -47
- package/lib/modules/Payment/walletpass.js +221 -203
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +111 -110
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +60 -82
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/Rules/index.js +1172 -872
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +59 -68
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +176 -193
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -167
- package/lib/modules/Schedule/index.js +97 -107
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -70
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +782 -429
- package/lib/modules/index.js +212 -57
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +882 -623
- package/lib/server/modules/index.js +85 -59
- package/lib/server/modules/menu/index.js +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +195 -231
- package/lib/server/modules/order/types.js +107 -32
- package/lib/server/modules/order/utils/filterBookings.js +174 -140
- package/lib/server/modules/order/utils/filterOrders.js +89 -60
- package/lib/server/modules/products/index.js +430 -335
- package/lib/server/modules/products/types.js +41 -34
- package/lib/server/modules/quotation/index.js +76 -77
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +216 -187
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +134 -119
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1530 -1343
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +147 -122
- package/lib/solution/BookingTicket/types.js +38 -64
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
- package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +227 -158
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +218 -200
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +803 -840
- package/lib/solution/ScanOrder/types.js +34 -34
- package/lib/solution/ScanOrder/utils.js +372 -331
- package/lib/solution/ShopDiscount/index.js +230 -236
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +309 -172
- package/lib/solution/VenueBooking/index.d.ts +5 -0
- package/lib/solution/VenueBooking/index.js +886 -929
- package/lib/solution/VenueBooking/types.js +20 -40
- package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
- package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +102 -37
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,36 +1,43 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
40
|
-
if (Array.isArray(
|
|
41
|
-
this.store.quotationList = options
|
|
42
|
-
this.core.effects.emit(
|
|
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
|
-
|
|
37
|
+
|
|
38
|
+
// 获取依赖的插件
|
|
39
|
+
this.request = core.getPlugin('request');
|
|
47
40
|
if (!this.request) {
|
|
48
|
-
throw new Error(
|
|
41
|
+
throw new Error('QuotationModule 需要 request 插件支持');
|
|
49
42
|
}
|
|
50
|
-
|
|
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.
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
140
|
-
|
|
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(
|
|
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
|
-
|
|
158
|
-
this.store.quotationList = (0,
|
|
159
|
-
this.core.effects.emit(
|
|
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(
|
|
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,
|
|
170
|
-
this.core.effects.emit(
|
|
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
|
-
|
|
175
|
-
0 && (module.exports = {
|
|
176
|
-
QuotationModule
|
|
177
|
-
});
|
|
175
|
+
}
|
|
176
|
+
exports.QuotationModule = QuotationModule;
|
|
@@ -1,33 +1,23 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
+
}({});
|