@pisell/pisellos 2.2.283 → 2.2.284
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 -10
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- 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 +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +64 -86
- package/dist/modules/Order/types.d.ts +1 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/modules/Summary/utils.d.ts +1 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- 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 +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +100 -72
- 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 -13
- package/dist/solution/BookingTicket/index.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -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 -252
- 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.js +45 -55
- 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 +131 -132
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- 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 +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- 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 +588 -378
- 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 +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- 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 +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- 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 +122 -127
- 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 +70 -76
- 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 +1728 -2123
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +1 -1
- package/lib/modules/Order/types.js +87 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- 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 +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- 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 +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +66 -100
- 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/ResourcePlanner/index.js +60 -61
- package/lib/modules/ResourcePlanner/planner.js +346 -384
- package/lib/modules/ResourcePlanner/types.js +4 -16
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- 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 -163
- package/lib/modules/Schedule/index.js +100 -114
- 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 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.d.ts +1 -1
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- 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 +3027 -2655
- package/lib/server/modules/floor-plan/index.js +102 -123
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- 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 +758 -956
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.js +575 -459
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +213 -184
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- 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/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1209 -1412
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.js +650 -502
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1527 -1340
- 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 -13
- package/lib/solution/BookingTicket/index.js +594 -514
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +225 -187
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- 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 +228 -156
- 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 +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +437 -487
- package/lib/solution/UnifiedBookingSales/types.js +12 -31
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,52 +1,42 @@
|
|
|
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(floor_plan_exports, {
|
|
22
|
-
FloorPlanModule: () => FloorPlanModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
6
|
+
exports.FloorPlanModule = void 0;
|
|
7
|
+
var _BaseModule = require("../../../modules/BaseModule");
|
|
8
|
+
var _types = require("./types");
|
|
9
|
+
const FLOOR_PLAN_SYNC_DEBOUNCE_MS = 3000;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 平面图模块:预加载列表、pubsub 同步、供 OS Server 路由读本地 store
|
|
13
|
+
*/
|
|
14
|
+
class FloorPlanModule extends _BaseModule.BaseModule {
|
|
15
|
+
defaultName = 'floor_plan';
|
|
16
|
+
defaultVersion = '1.0.0';
|
|
17
|
+
store;
|
|
18
|
+
request;
|
|
19
|
+
logger;
|
|
20
|
+
floorPlanDataSource;
|
|
21
|
+
pendingSyncMessages = [];
|
|
22
|
+
syncTimer;
|
|
29
23
|
constructor(name, version) {
|
|
30
24
|
super(name, version);
|
|
31
|
-
this.defaultName = "floor_plan";
|
|
32
|
-
this.defaultVersion = "1.0.0";
|
|
33
|
-
this.pendingSyncMessages = [];
|
|
34
25
|
}
|
|
35
26
|
async initialize(core, options) {
|
|
36
|
-
var _a;
|
|
37
27
|
this.core = core;
|
|
38
28
|
this.store = options.store;
|
|
39
|
-
if (Array.isArray(
|
|
29
|
+
if (Array.isArray(options?.initialState?.list) && options.initialState.list.length > 0) {
|
|
40
30
|
this.store.list = options.initialState.list;
|
|
41
31
|
this.syncMaps();
|
|
42
|
-
this.core.effects.emit(
|
|
32
|
+
this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.store.list);
|
|
43
33
|
} else {
|
|
44
34
|
this.store.list = [];
|
|
45
|
-
this.store.map =
|
|
46
|
-
this.store.codeMap =
|
|
35
|
+
this.store.map = new Map();
|
|
36
|
+
this.store.codeMap = new Map();
|
|
47
37
|
}
|
|
48
|
-
this.request = core.getPlugin(
|
|
49
|
-
const appPlugin = core.getPlugin(
|
|
38
|
+
this.request = core.getPlugin('request');
|
|
39
|
+
const appPlugin = core.getPlugin('app');
|
|
50
40
|
if (appPlugin) {
|
|
51
41
|
const app = appPlugin.getApp();
|
|
52
42
|
this.logger = app.logger;
|
|
@@ -55,47 +45,46 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
55
45
|
this.setupFloorPlanSync();
|
|
56
46
|
}
|
|
57
47
|
logInfo(title, metadata) {
|
|
58
|
-
var _a, _b;
|
|
59
48
|
try {
|
|
60
|
-
|
|
61
|
-
type:
|
|
49
|
+
this.logger?.addLog?.({
|
|
50
|
+
type: 'info',
|
|
62
51
|
title: `[FloorPlanModule] ${title}`,
|
|
63
52
|
metadata: metadata || {}
|
|
64
53
|
});
|
|
65
54
|
} catch {
|
|
55
|
+
// ignore
|
|
66
56
|
}
|
|
67
57
|
}
|
|
68
58
|
logWarning(title, metadata) {
|
|
69
|
-
var _a, _b;
|
|
70
59
|
try {
|
|
71
|
-
|
|
72
|
-
type:
|
|
60
|
+
this.logger?.addLog?.({
|
|
61
|
+
type: 'warning',
|
|
73
62
|
title: `[FloorPlanModule] ${title}`,
|
|
74
63
|
metadata: metadata || {}
|
|
75
64
|
});
|
|
76
65
|
} catch {
|
|
66
|
+
// ignore
|
|
77
67
|
}
|
|
78
68
|
}
|
|
79
69
|
logError(title, metadata) {
|
|
80
|
-
var _a, _b;
|
|
81
70
|
try {
|
|
82
|
-
|
|
83
|
-
type:
|
|
71
|
+
this.logger?.addLog?.({
|
|
72
|
+
type: 'error',
|
|
84
73
|
title: `[FloorPlanModule] ${title}`,
|
|
85
74
|
metadata: metadata || {}
|
|
86
75
|
});
|
|
87
76
|
} catch {
|
|
77
|
+
// ignore
|
|
88
78
|
}
|
|
89
79
|
}
|
|
90
80
|
idKey(id) {
|
|
91
81
|
return String(id);
|
|
92
82
|
}
|
|
93
83
|
syncMaps() {
|
|
94
|
-
this.store.map =
|
|
95
|
-
this.store.codeMap =
|
|
84
|
+
this.store.map = new Map();
|
|
85
|
+
this.store.codeMap = new Map();
|
|
96
86
|
for (const item of this.store.list) {
|
|
97
|
-
if (
|
|
98
|
-
continue;
|
|
87
|
+
if (item?.id == null) continue;
|
|
99
88
|
const key = this.idKey(item.id);
|
|
100
89
|
this.store.map.set(key, item);
|
|
101
90
|
if (item.code) {
|
|
@@ -103,12 +92,12 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
103
92
|
}
|
|
104
93
|
}
|
|
105
94
|
}
|
|
95
|
+
|
|
106
96
|
/** 与接口约定一致:sort 升序,id 降序 */
|
|
107
97
|
getSortedList() {
|
|
108
98
|
return [...this.store.list].sort((a, b) => {
|
|
109
99
|
const sortDiff = Number(a.sort ?? 0) - Number(b.sort ?? 0);
|
|
110
|
-
if (sortDiff !== 0)
|
|
111
|
-
return sortDiff;
|
|
100
|
+
if (sortDiff !== 0) return sortDiff;
|
|
112
101
|
return Number(b.id) - Number(a.id);
|
|
113
102
|
});
|
|
114
103
|
}
|
|
@@ -119,41 +108,40 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
119
108
|
return this.store.codeMap.get(String(code));
|
|
120
109
|
}
|
|
121
110
|
replaceStore(list) {
|
|
122
|
-
this.store.list = list.map(
|
|
111
|
+
this.store.list = list.map(i => ({
|
|
112
|
+
...i
|
|
113
|
+
}));
|
|
123
114
|
this.syncMaps();
|
|
124
115
|
}
|
|
125
116
|
mergeItems(items) {
|
|
126
|
-
if (items.length === 0)
|
|
127
|
-
return;
|
|
117
|
+
if (items.length === 0) return;
|
|
128
118
|
const byId = new Map(this.store.map);
|
|
129
119
|
for (const item of items) {
|
|
130
|
-
if (
|
|
131
|
-
|
|
132
|
-
|
|
120
|
+
if (item?.id == null) continue;
|
|
121
|
+
byId.set(this.idKey(item.id), {
|
|
122
|
+
...item
|
|
123
|
+
});
|
|
133
124
|
}
|
|
134
125
|
this.store.list = Array.from(byId.values());
|
|
135
126
|
this.syncMaps();
|
|
136
127
|
}
|
|
137
128
|
removeByIds(ids) {
|
|
138
|
-
if (ids.length === 0)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.store.list = this.store.list.filter((p) => !set.has(this.idKey(p.id)));
|
|
129
|
+
if (ids.length === 0) return;
|
|
130
|
+
const set = new Set(ids.map(id => this.idKey(id)));
|
|
131
|
+
this.store.list = this.store.list.filter(p => !set.has(this.idKey(p.id)));
|
|
142
132
|
this.syncMaps();
|
|
143
133
|
}
|
|
144
134
|
async loadListFromServer() {
|
|
145
135
|
try {
|
|
146
|
-
const res = await this.request.get(
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
{ isShopApi: true }
|
|
150
|
-
);
|
|
136
|
+
const res = await this.request.get(`/schedule/floor-plan`, {}, {
|
|
137
|
+
isShopApi: true
|
|
138
|
+
});
|
|
151
139
|
const body = res;
|
|
152
|
-
const raw =
|
|
140
|
+
const raw = body?.data !== undefined ? body.data : body;
|
|
153
141
|
const list = Array.isArray(raw) ? raw : [];
|
|
154
142
|
return list;
|
|
155
143
|
} catch (e) {
|
|
156
|
-
this.logWarning(
|
|
144
|
+
this.logWarning('loadListFromServer 失败', {
|
|
157
145
|
error: e instanceof Error ? e.message : String(e)
|
|
158
146
|
});
|
|
159
147
|
return [];
|
|
@@ -161,14 +149,12 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
161
149
|
}
|
|
162
150
|
async fetchByIdFromServer(id) {
|
|
163
151
|
try {
|
|
164
|
-
const res = await this.request.get(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
{ isShopApi: true }
|
|
168
|
-
);
|
|
152
|
+
const res = await this.request.get(`/schedule/floor-plan/${id}`, {}, {
|
|
153
|
+
isShopApi: true
|
|
154
|
+
});
|
|
169
155
|
const body = res;
|
|
170
|
-
const data =
|
|
171
|
-
return data && typeof data ===
|
|
156
|
+
const data = body?.data !== undefined ? body.data : body;
|
|
157
|
+
return data && typeof data === 'object' ? data : null;
|
|
172
158
|
} catch {
|
|
173
159
|
return null;
|
|
174
160
|
}
|
|
@@ -176,81 +162,79 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
176
162
|
async fetchByCodeFromServer(code) {
|
|
177
163
|
try {
|
|
178
164
|
const enc = encodeURIComponent(code);
|
|
179
|
-
const res = await this.request.get(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
{ isShopApi: true }
|
|
183
|
-
);
|
|
165
|
+
const res = await this.request.get(`/schedule/floor-plan/code/${enc}`, {}, {
|
|
166
|
+
isShopApi: true
|
|
167
|
+
});
|
|
184
168
|
const body = res;
|
|
185
|
-
const data =
|
|
186
|
-
return data && typeof data ===
|
|
169
|
+
const data = body?.data !== undefined ? body.data : body;
|
|
170
|
+
return data && typeof data === 'object' ? data : null;
|
|
187
171
|
} catch {
|
|
188
172
|
return null;
|
|
189
173
|
}
|
|
190
174
|
}
|
|
191
175
|
async preload() {
|
|
192
|
-
this.logInfo(
|
|
176
|
+
this.logInfo('开始预加载平面图列表');
|
|
193
177
|
const list = await this.loadListFromServer();
|
|
194
178
|
if (list.length > 0) {
|
|
195
179
|
this.replaceStore(list);
|
|
196
|
-
this.core.effects.emit(
|
|
197
|
-
this.logInfo(
|
|
180
|
+
this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
|
|
181
|
+
this.logInfo('预加载完成', {
|
|
182
|
+
count: list.length
|
|
183
|
+
});
|
|
198
184
|
} else {
|
|
199
|
-
this.logWarning(
|
|
185
|
+
this.logWarning('预加载完成但列表为空');
|
|
200
186
|
}
|
|
201
187
|
}
|
|
202
188
|
initFloorPlanDataSource() {
|
|
203
|
-
|
|
204
|
-
const Ctor = (_b = (_a = this.core.serverOptions) == null ? void 0 : _a.All_DATA_SOURCES) == null ? void 0 : _b.FloorPlanDataSource;
|
|
189
|
+
const Ctor = this.core.serverOptions?.All_DATA_SOURCES?.FloorPlanDataSource;
|
|
205
190
|
if (!Ctor) {
|
|
206
|
-
this.logWarning(
|
|
191
|
+
this.logWarning('FloorPlanDataSource 不可用,跳过 pubsub 同步');
|
|
207
192
|
return;
|
|
208
193
|
}
|
|
209
194
|
this.floorPlanDataSource = new Ctor();
|
|
210
|
-
this.logInfo(
|
|
195
|
+
this.logInfo('FloorPlanDataSource 实例已创建');
|
|
211
196
|
}
|
|
212
197
|
setupFloorPlanSync() {
|
|
213
|
-
if (!this.floorPlanDataSource)
|
|
214
|
-
return;
|
|
198
|
+
if (!this.floorPlanDataSource) return;
|
|
215
199
|
const flush = () => {
|
|
216
|
-
if (this.syncTimer)
|
|
217
|
-
clearTimeout(this.syncTimer);
|
|
200
|
+
if (this.syncTimer) clearTimeout(this.syncTimer);
|
|
218
201
|
this.syncTimer = setTimeout(() => {
|
|
219
202
|
this.processFloorPlanSyncMessages();
|
|
220
203
|
}, FLOOR_PLAN_SYNC_DEBOUNCE_MS);
|
|
221
204
|
};
|
|
222
205
|
this.floorPlanDataSource.run({
|
|
223
206
|
pubsub: {
|
|
224
|
-
callback:
|
|
225
|
-
const data =
|
|
226
|
-
if (!data || data.module !==
|
|
227
|
-
|
|
228
|
-
|
|
207
|
+
callback: res => {
|
|
208
|
+
const data = res?.data || res;
|
|
209
|
+
if (!data || data.module !== 'floor_plan') return;
|
|
210
|
+
this.pendingSyncMessages.push({
|
|
211
|
+
...data
|
|
212
|
+
});
|
|
229
213
|
flush();
|
|
230
214
|
}
|
|
231
215
|
}
|
|
232
|
-
}).catch(
|
|
233
|
-
this.logError(
|
|
216
|
+
}).catch(err => {
|
|
217
|
+
this.logError('setupFloorPlanSync: DataSource run 出错', {
|
|
234
218
|
error: err instanceof Error ? err.message : String(err)
|
|
235
219
|
});
|
|
236
220
|
});
|
|
237
|
-
this.logInfo(
|
|
221
|
+
this.logInfo('floor_plan pubsub 订阅已建立');
|
|
238
222
|
}
|
|
239
223
|
async processFloorPlanSyncMessages() {
|
|
240
|
-
var _a, _b;
|
|
241
224
|
const messages = [...this.pendingSyncMessages];
|
|
242
225
|
this.pendingSyncMessages = [];
|
|
243
|
-
if (messages.length === 0)
|
|
244
|
-
|
|
245
|
-
|
|
226
|
+
if (messages.length === 0) return;
|
|
227
|
+
this.logInfo('processFloorPlanSyncMessages 开始', {
|
|
228
|
+
count: messages.length
|
|
229
|
+
});
|
|
246
230
|
let changed = false;
|
|
247
231
|
const deleteIds = [];
|
|
248
232
|
const bodyItems = [];
|
|
249
233
|
let needFullList = false;
|
|
250
|
-
const partialIds =
|
|
234
|
+
const partialIds = new Set();
|
|
251
235
|
for (const msg of messages) {
|
|
252
|
-
if (msg.operation ===
|
|
253
|
-
if (
|
|
236
|
+
if (msg.operation === 'delete' || msg.action === 'delete') {
|
|
237
|
+
if (msg.ids?.length) {
|
|
254
238
|
deleteIds.push(...msg.ids);
|
|
255
239
|
} else if (msg.id != null) {
|
|
256
240
|
deleteIds.push(msg.id);
|
|
@@ -258,7 +242,7 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
258
242
|
continue;
|
|
259
243
|
}
|
|
260
244
|
const body = msg.body;
|
|
261
|
-
const hasBody = body && typeof body ===
|
|
245
|
+
const hasBody = body && typeof body === 'object' && Object.keys(body).length > 0 && body.id != null;
|
|
262
246
|
if (hasBody) {
|
|
263
247
|
bodyItems.push(body);
|
|
264
248
|
continue;
|
|
@@ -267,7 +251,7 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
267
251
|
needFullList = true;
|
|
268
252
|
continue;
|
|
269
253
|
}
|
|
270
|
-
if (
|
|
254
|
+
if (msg.ids?.length === 1) {
|
|
271
255
|
partialIds.add(msg.ids[0]);
|
|
272
256
|
} else if (msg.id != null) {
|
|
273
257
|
partialIds.add(msg.id);
|
|
@@ -290,8 +274,7 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
290
274
|
const fetched = [];
|
|
291
275
|
for (const id of partialIds) {
|
|
292
276
|
const one = await this.fetchByIdFromServer(id);
|
|
293
|
-
if (one)
|
|
294
|
-
fetched.push(one);
|
|
277
|
+
if (one) fetched.push(one);
|
|
295
278
|
}
|
|
296
279
|
if (fetched.length > 0) {
|
|
297
280
|
this.mergeItems(fetched);
|
|
@@ -299,8 +282,8 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
299
282
|
}
|
|
300
283
|
}
|
|
301
284
|
if (changed) {
|
|
302
|
-
this.core.effects.emit(
|
|
303
|
-
this.core.effects.emit(
|
|
285
|
+
this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
|
|
286
|
+
this.core.effects.emit(_types.FloorPlanHooks.onFloorPlanSyncCompleted, null);
|
|
304
287
|
}
|
|
305
288
|
}
|
|
306
289
|
async clear() {
|
|
@@ -309,19 +292,15 @@ var FloorPlanModule = class extends import_BaseModule.BaseModule {
|
|
|
309
292
|
this.store.codeMap.clear();
|
|
310
293
|
}
|
|
311
294
|
destroy() {
|
|
312
|
-
var _a;
|
|
313
295
|
if (this.syncTimer) {
|
|
314
296
|
clearTimeout(this.syncTimer);
|
|
315
|
-
this.syncTimer =
|
|
297
|
+
this.syncTimer = undefined;
|
|
316
298
|
}
|
|
317
299
|
this.pendingSyncMessages = [];
|
|
318
|
-
if (
|
|
300
|
+
if (this.floorPlanDataSource?.destroy) {
|
|
319
301
|
this.floorPlanDataSource.destroy();
|
|
320
302
|
}
|
|
321
303
|
super.destroy();
|
|
322
304
|
}
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
0 && (module.exports = {
|
|
326
|
-
FloorPlanModule
|
|
327
|
-
});
|
|
305
|
+
}
|
|
306
|
+
exports.FloorPlanModule = FloorPlanModule;
|
|
@@ -1,34 +1,19 @@
|
|
|
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
|
-
FloorPlanHooks: () => FloorPlanHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
25
|
-
|
|
6
|
+
exports.FloorPlanHooks = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* 平面图(floor-plan)Server 模块类型
|
|
9
|
+
* 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
|
|
13
|
+
|
|
14
|
+
const FloorPlanHooks = exports.FloorPlanHooks = {
|
|
26
15
|
/** 本地列表变更(预加载、合并、删除后) */
|
|
27
|
-
onFloorPlansChanged:
|
|
16
|
+
onFloorPlansChanged: 'server_floor_plan:onFloorPlansChanged',
|
|
28
17
|
/** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
|
|
29
|
-
onFloorPlanSyncCompleted:
|
|
30
|
-
};
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
33
|
-
FloorPlanHooks
|
|
34
|
-
});
|
|
18
|
+
onFloorPlanSyncCompleted: 'server_floor_plan:onFloorPlanSyncCompleted'
|
|
19
|
+
};
|
|
@@ -1,70 +1,108 @@
|
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FloorPlanHooks", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _types5.FloorPlanHooks;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FloorPlanModule", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _floorPlan.FloorPlanModule;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "MenuHooks", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _types2.MenuHooks;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "MenuModule", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _menu.MenuModule;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "OrderHooks", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _types4.OrderHooks;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "OrderModule", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _order.OrderModule;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "PaymentServerModule", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _payment.PaymentServerModule;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "ProductsHooks", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _types.ProductsHooks;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "ProductsModule", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _products.ProductsModule;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "QuotationHooks", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _types3.QuotationHooks;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "QuotationModule", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _quotation.QuotationModule;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "ResourceHooks", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _resource.ResourceHooks;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "ResourceModule", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function () {
|
|
81
|
+
return _resource.ResourceModule;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "ScheduleModuleEx", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return _schedule.ScheduleModuleEx;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "resourceModule", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function () {
|
|
93
|
+
return _resource.resourceModule;
|
|
94
|
+
}
|
|
70
95
|
});
|
|
96
|
+
var _products = require("./products");
|
|
97
|
+
var _types = require("./products/types");
|
|
98
|
+
var _menu = require("./menu");
|
|
99
|
+
var _types2 = require("./menu/types");
|
|
100
|
+
var _quotation = require("./quotation");
|
|
101
|
+
var _types3 = require("./quotation/types");
|
|
102
|
+
var _schedule = require("./schedule");
|
|
103
|
+
var _order = require("./order");
|
|
104
|
+
var _types4 = require("./order/types");
|
|
105
|
+
var _payment = require("./payment");
|
|
106
|
+
var _floorPlan = require("./floor-plan");
|
|
107
|
+
var _types5 = require("./floor-plan/types");
|
|
108
|
+
var _resource = require("./resource");
|