@pisell/pisellos 0.0.569 → 0.10.2
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 +10 -6
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -3
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
- package/dist/model/strategy/adapter/walletPass/example.js +26 -3
- package/dist/model/strategy/adapter/walletPass/index.js +5 -5
- package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
- package/dist/model/strategy/strategy-example.js +19 -5
- package/dist/modules/BaseModule.d.ts +1 -1
- package/dist/modules/BaseModule.js +8 -10
- package/dist/modules/Cart/index.js +3 -0
- package/dist/modules/Cart/utils/cartProduct.js +1 -0
- package/dist/modules/Cart/utils/cartResource.js +0 -2
- package/dist/modules/Cart/utils/changePrice.js +9 -16
- package/dist/modules/Date/index.js +5 -1
- package/dist/modules/Discount/index.d.ts +0 -1
- package/dist/modules/Discount/index.js +7 -22
- package/dist/modules/Discount/types.d.ts +0 -1
- package/dist/modules/OpenData/index.js +2 -0
- package/dist/modules/Order/index.js +70 -40
- package/dist/modules/Payment/index.js +162 -97
- package/dist/modules/Payment/types.d.ts +4 -8
- package/dist/modules/Payment/walletpass.d.ts +0 -2
- package/dist/modules/Payment/walletpass.js +5 -4
- package/dist/modules/ProductList/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +3 -12
- package/dist/modules/ProductList/types.d.ts +0 -1
- package/dist/modules/Rules/index.js +126 -427
- package/dist/modules/SalesSummary/utils.js +1 -2
- package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
- package/dist/modules/Schedule/index.js +1 -0
- package/dist/modules/Schedule/utils.js +1 -0
- package/dist/modules/Step/index.js +1 -0
- package/dist/modules/Summary/utils.js +22 -43
- package/dist/plugins/request.js +4 -1
- package/dist/plugins/window.js +6 -2
- package/dist/server/index.js +129 -97
- package/dist/server/modules/menu/index.js +41 -32
- package/dist/server/modules/order/index.js +4 -2
- package/dist/server/modules/products/index.js +42 -24
- package/dist/server/modules/quotation/index.js +38 -29
- package/dist/server/modules/resource/index.js +4 -3
- package/dist/server/modules/schedule/index.js +35 -27
- package/dist/server/utils/product.js +1 -0
- package/dist/solution/BaseSales/index.js +41 -38
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +60 -11
- package/dist/solution/BookingByStep/utils/capacity.js +11 -1
- package/dist/solution/BookingByStep/utils/resources.js +3 -1
- package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +2 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
- package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
- package/dist/solution/BuyTickets/index.js +12 -9
- package/dist/solution/Checkout/index.js +252 -177
- package/dist/solution/Checkout/utils/index.js +16 -4
- package/dist/solution/RegisterAndLogin/index.js +76 -30
- package/dist/solution/ScanOrder/index.js +60 -50
- package/dist/solution/ShopDiscount/index.js +14 -15
- package/dist/solution/ShopDiscount/types.d.ts +4 -5
- package/dist/solution/ShopDiscount/utils.d.ts +0 -9
- package/dist/solution/ShopDiscount/utils.js +0 -9
- package/dist/solution/VenueBooking/index.d.ts +3 -31
- package/dist/solution/VenueBooking/index.js +496 -651
- package/dist/solution/VenueBooking/types.d.ts +1 -3
- package/dist/solution/VenueBooking/types.js +0 -1
- package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
- package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/task.js +18 -15
- package/dist/utils/watch.js +1 -0
- package/lib/apis/picoding.js +0 -2
- package/lib/core/index.js +132 -130
- package/lib/effects/index.js +57 -46
- package/lib/index.d.ts +0 -1
- package/lib/index.js +50 -92
- package/lib/model/index.js +21 -14
- package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
- package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
- package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
- package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
- package/lib/model/strategy/adapter/index.js +64 -100
- package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
- package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
- package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
- package/lib/model/strategy/adapter/itemRule/index.js +57 -83
- package/lib/model/strategy/adapter/itemRule/type.js +36 -97
- package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
- package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
- package/lib/model/strategy/adapter/promotion/examples.js +159 -139
- package/lib/model/strategy/adapter/promotion/index.js +49 -1
- package/lib/model/strategy/adapter/promotion/type.js +35 -199
- package/lib/model/strategy/adapter/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
- package/lib/model/strategy/adapter/walletPass/example.js +190 -217
- package/lib/model/strategy/adapter/walletPass/index.js +51 -75
- package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
- package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/lib/model/strategy/adapter/walletPass/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
- package/lib/model/strategy/engine.js +168 -270
- package/lib/model/strategy/index.js +34 -49
- package/lib/model/strategy/strategy-example.js +239 -243
- package/lib/model/strategy/type.js +40 -100
- package/lib/modules/Account/index.js +53 -39
- package/lib/modules/Account/types.js +33 -20
- package/lib/modules/AccountList/index.js +154 -116
- package/lib/modules/AccountList/types.js +31 -30
- package/lib/modules/AccountList/utils.js +30 -18
- package/lib/modules/BaseModule.d.ts +1 -1
- package/lib/modules/BaseModule.js +46 -25
- package/lib/modules/BookingContext/index.js +136 -158
- package/lib/modules/BookingContext/types.js +32 -46
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
- package/lib/modules/BookingContext/utils/flexible.js +55 -38
- package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
- package/lib/modules/BookingContext/utils/index.js +41 -124
- package/lib/modules/BookingContext/utils/noResource.js +70 -58
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
- package/lib/modules/BookingContext/utils/productExtend.js +155 -202
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
- package/lib/modules/BookingContext/utils/resources.js +167 -209
- package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
- package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
- package/lib/modules/Cart/index.js +124 -170
- package/lib/modules/Cart/types.js +51 -46
- package/lib/modules/Cart/utils/cartAccount.js +39 -40
- package/lib/modules/Cart/utils/cartDate.js +61 -56
- package/lib/modules/Cart/utils/cartDiscount.js +33 -28
- package/lib/modules/Cart/utils/cartNote.js +32 -27
- package/lib/modules/Cart/utils/cartProduct.js +251 -321
- package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
- package/lib/modules/Cart/utils/cartResource.js +78 -72
- package/lib/modules/Cart/utils/changePrice.js +50 -28
- package/lib/modules/Cart/utils/index.js +48 -106
- package/lib/modules/Customer/constants.js +34 -13
- package/lib/modules/Customer/index.js +169 -232
- package/lib/modules/Customer/types.js +35 -38
- package/lib/modules/Date/index.js +115 -116
- package/lib/modules/Date/types.js +28 -16
- package/lib/modules/Date/utils.js +123 -174
- package/lib/modules/Discount/index.d.ts +0 -1
- package/lib/modules/Discount/index.js +128 -130
- package/lib/modules/Discount/types.d.ts +0 -1
- package/lib/modules/Discount/types.js +31 -9
- package/lib/modules/Guests/index.js +56 -30
- package/lib/modules/Guests/types.js +33 -23
- package/lib/modules/Holder/index.js +189 -209
- package/lib/modules/Holder/types.js +16 -4
- package/lib/modules/Holder/utils.js +49 -20
- package/lib/modules/OpenData/index.js +76 -69
- package/lib/modules/OpenData/types.js +16 -4
- package/lib/modules/OpenData/utils.js +78 -44
- package/lib/modules/Order/index.js +1909 -1572
- package/lib/modules/Order/types.js +35 -78
- package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
- package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
- package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
- package/lib/modules/Order/utils.js +634 -799
- package/lib/modules/Payment/cash.js +33 -20
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
- package/lib/modules/Payment/eftpos.js +30 -16
- package/lib/modules/Payment/index.js +378 -518
- package/lib/modules/Payment/mx51.js +0 -1
- package/lib/modules/Payment/types.d.ts +4 -8
- package/lib/modules/Payment/types.js +107 -216
- package/lib/modules/Payment/utils.js +48 -51
- package/lib/modules/Payment/walletpass.d.ts +0 -2
- package/lib/modules/Payment/walletpass.js +211 -226
- package/lib/modules/Product/index.js +46 -51
- package/lib/modules/Product/types.js +16 -4
- package/lib/modules/Product/utils.js +33 -32
- package/lib/modules/ProductList/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +117 -117
- package/lib/modules/ProductList/types.d.ts +0 -1
- package/lib/modules/ProductList/types.js +31 -9
- package/lib/modules/Quotation/index.js +100 -66
- package/lib/modules/Quotation/types.js +16 -4
- package/lib/modules/Resource/index.js +59 -27
- package/lib/modules/Resource/types.js +32 -22
- package/lib/modules/Resource/utils.js +38 -30
- package/lib/modules/ResourcePlanner/index.js +61 -60
- package/lib/modules/ResourcePlanner/planner.js +384 -346
- package/lib/modules/ResourcePlanner/types.js +16 -4
- package/lib/modules/Rules/index.js +903 -1475
- package/lib/modules/Rules/types.js +40 -17
- package/lib/modules/SalesSummary/index.js +90 -85
- package/lib/modules/SalesSummary/types.js +16 -4
- package/lib/modules/SalesSummary/utils.js +427 -351
- package/lib/modules/ScanOrderLogger/index.js +79 -59
- package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
- package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
- package/lib/modules/ScanOrderLogger/types.js +16 -4
- package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
- package/lib/modules/Schedule/index.js +114 -100
- package/lib/modules/Schedule/type.js +16 -4
- package/lib/modules/Schedule/types.js +16 -4
- package/lib/modules/Schedule/utils.js +291 -433
- package/lib/modules/Step/index.js +52 -40
- package/lib/modules/Step/tyeps.js +16 -4
- package/lib/modules/Summary/index.js +71 -66
- package/lib/modules/Summary/types.js +16 -4
- package/lib/modules/Summary/utils.js +418 -791
- package/lib/modules/SurchargeList/index.js +60 -46
- package/lib/modules/SurchargeList/types.js +16 -4
- package/lib/modules/index.js +63 -245
- package/lib/plugins/app.js +16 -4
- package/lib/plugins/index.js +25 -36
- package/lib/plugins/request.js +126 -137
- package/lib/plugins/shopStore.js +16 -4
- package/lib/plugins/user.js +16 -4
- package/lib/plugins/window.js +179 -171
- package/lib/server/index.js +2337 -2675
- package/lib/server/modules/floor-plan/index.js +123 -102
- package/lib/server/modules/floor-plan/types.js +30 -15
- package/lib/server/modules/index.js +68 -106
- package/lib/server/modules/menu/index.js +122 -146
- package/lib/server/modules/menu/types.js +31 -18
- package/lib/server/modules/order/index.js +642 -567
- package/lib/server/modules/order/types.js +32 -117
- package/lib/server/modules/order/utils/filterBookings.js +194 -219
- package/lib/server/modules/order/utils/filterOrders.js +92 -118
- package/lib/server/modules/payment/index.js +83 -59
- package/lib/server/modules/payment/types.js +16 -4
- package/lib/server/modules/products/index.js +459 -575
- package/lib/server/modules/products/types.js +34 -44
- package/lib/server/modules/quotation/index.js +172 -137
- package/lib/server/modules/quotation/types.js +31 -21
- package/lib/server/modules/resource/index.js +184 -213
- package/lib/server/modules/resource/types.js +33 -42
- package/lib/server/modules/schedule/index.js +123 -135
- package/lib/server/modules/schedule/types.js +21 -14
- package/lib/server/modules/schedule/utils.js +163 -334
- package/lib/server/types.js +16 -4
- package/lib/server/utils/index.js +23 -25
- package/lib/server/utils/product.js +139 -196
- package/lib/server/utils/schedule.js +41 -34
- package/lib/server/utils/small-ticket.js +456 -478
- package/lib/server/utils/time.js +49 -40
- package/lib/solution/BaseSales/index.js +1016 -850
- package/lib/solution/BaseSales/types.js +37 -41
- package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
- package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
- package/lib/solution/BaseSales/utils.js +140 -155
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1340 -1530
- package/lib/solution/BookingByStep/types.js +99 -40
- package/lib/solution/BookingByStep/utils/capacity.js +160 -192
- package/lib/solution/BookingByStep/utils/products.js +52 -42
- package/lib/solution/BookingByStep/utils/resources.js +330 -527
- package/lib/solution/BookingByStep/utils/stock.js +44 -65
- package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +459 -543
- package/lib/solution/BookingTicket/types.js +77 -99
- package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
- package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
- package/lib/solution/BookingTicket/utils/cartView.js +94 -110
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
- package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
- package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
- package/lib/solution/BuyTickets/index.js +70 -67
- package/lib/solution/BuyTickets/types.js +38 -22
- package/lib/solution/Checkout/index.js +1158 -1451
- package/lib/solution/Checkout/types.js +61 -91
- package/lib/solution/Checkout/utils/index.js +156 -228
- package/lib/solution/PlaceOrder/index.js +0 -55
- package/lib/solution/RegisterAndLogin/config.js +460 -493
- package/lib/solution/RegisterAndLogin/index.js +630 -633
- package/lib/solution/RegisterAndLogin/types.js +76 -189
- package/lib/solution/RegisterAndLogin/utils.js +125 -183
- package/lib/solution/Sales/index.js +320 -317
- package/lib/solution/Sales/types.js +33 -27
- package/lib/solution/ScanOrder/index.js +862 -831
- package/lib/solution/ScanOrder/types.js +34 -33
- package/lib/solution/ScanOrder/utils.js +371 -406
- package/lib/solution/ShopDiscount/index.js +233 -235
- package/lib/solution/ShopDiscount/types.d.ts +4 -5
- package/lib/solution/ShopDiscount/types.js +37 -15
- package/lib/solution/ShopDiscount/utils.d.ts +0 -9
- package/lib/solution/ShopDiscount/utils.js +172 -309
- package/lib/solution/UnifiedBookingSales/index.js +405 -379
- package/lib/solution/UnifiedBookingSales/types.js +31 -12
- package/lib/solution/VenueBooking/index.d.ts +3 -31
- package/lib/solution/VenueBooking/index.js +916 -967
- package/lib/solution/VenueBooking/types.d.ts +1 -3
- package/lib/solution/VenueBooking/types.js +39 -20
- package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
- package/lib/solution/VenueBooking/utils/resource.js +54 -31
- package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
- package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
- package/lib/solution/VenueBooking/utils.js +67 -130
- package/lib/solution/index.js +41 -124
- package/lib/store/createStore.js +29 -32
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +16 -4
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +47 -81
- package/package.json +2 -4
- package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
- package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
|
@@ -1,17 +1,32 @@
|
|
|
1
|
-
|
|
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);
|
|
2
18
|
|
|
3
|
-
|
|
4
|
-
|
|
19
|
+
// src/modules/BaseModule.ts
|
|
20
|
+
var BaseModule_exports = {};
|
|
21
|
+
__export(BaseModule_exports, {
|
|
22
|
+
BaseModule: () => BaseModule
|
|
5
23
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
defaultName = 'baseModule';
|
|
9
|
-
defaultVersion = '1.0.0';
|
|
10
|
-
name;
|
|
11
|
-
version;
|
|
12
|
-
isSolution = false;
|
|
13
|
-
core;
|
|
24
|
+
module.exports = __toCommonJS(BaseModule_exports);
|
|
25
|
+
var BaseModule = class {
|
|
14
26
|
constructor(name, version) {
|
|
27
|
+
this.defaultName = "baseModule";
|
|
28
|
+
this.defaultVersion = "1.0.0";
|
|
29
|
+
this.isSolution = false;
|
|
15
30
|
this.name = name || this.defaultName;
|
|
16
31
|
this.version = version || this.defaultVersion;
|
|
17
32
|
}
|
|
@@ -19,7 +34,6 @@ class BaseModule {
|
|
|
19
34
|
this.core.effects.offByModuleDestroy(this.name);
|
|
20
35
|
this.core.unregisterModule(this);
|
|
21
36
|
}
|
|
22
|
-
|
|
23
37
|
// 提供统一的缓存 module 里的数据的方法
|
|
24
38
|
checkSaveCache({
|
|
25
39
|
cacheId,
|
|
@@ -27,40 +41,44 @@ class BaseModule {
|
|
|
27
41
|
store,
|
|
28
42
|
cacheKey
|
|
29
43
|
}) {
|
|
30
|
-
const window = this.core.getPlugin(
|
|
44
|
+
const window = this.core.getPlugin("window");
|
|
31
45
|
if (cacheId) {
|
|
32
46
|
if (fatherModule) {
|
|
33
47
|
const currentCacheData = window.sessionStorage.getItem(fatherModule);
|
|
34
|
-
let currentCacheDataObj = JSON.parse(currentCacheData ||
|
|
48
|
+
let currentCacheDataObj = JSON.parse(currentCacheData || "{}");
|
|
35
49
|
if (!currentCacheData || !currentCacheDataObj[cacheId]) {
|
|
36
50
|
currentCacheDataObj = {
|
|
37
51
|
[cacheId]: {
|
|
38
52
|
[this.name]: {}
|
|
39
|
-
}
|
|
40
|
-
// 防止有其他 cacheid 的数据
|
|
41
|
-
...currentCacheDataObj
|
|
53
|
+
}
|
|
42
54
|
};
|
|
43
55
|
}
|
|
44
56
|
if (!currentCacheDataObj[cacheId][this.name]) {
|
|
45
57
|
currentCacheDataObj[cacheId][this.name] = {};
|
|
46
58
|
}
|
|
47
|
-
cacheKey.forEach(key => {
|
|
48
|
-
currentCacheDataObj[cacheId][this.name][key] = store
|
|
59
|
+
cacheKey.forEach((key) => {
|
|
60
|
+
currentCacheDataObj[cacheId][this.name][key] = store == null ? void 0 : store[key];
|
|
49
61
|
});
|
|
50
|
-
window.sessionStorage.setItem(
|
|
62
|
+
window.sessionStorage.setItem(
|
|
63
|
+
fatherModule,
|
|
64
|
+
JSON.stringify(currentCacheDataObj)
|
|
65
|
+
);
|
|
51
66
|
} else {
|
|
52
67
|
let currentCacheData = window.sessionStorage.getItem(cacheId);
|
|
53
|
-
let currentCacheDataObj = JSON.parse(currentCacheData ||
|
|
68
|
+
let currentCacheDataObj = JSON.parse(currentCacheData || "{}");
|
|
54
69
|
if (!currentCacheDataObj) {
|
|
55
70
|
currentCacheDataObj = {};
|
|
56
71
|
}
|
|
57
72
|
if (!currentCacheDataObj[this.name]) {
|
|
58
73
|
currentCacheDataObj[this.name] = {};
|
|
59
74
|
}
|
|
60
|
-
cacheKey.forEach(key => {
|
|
75
|
+
cacheKey.forEach((key) => {
|
|
61
76
|
currentCacheDataObj[this.name][key] = store[key];
|
|
62
77
|
});
|
|
63
|
-
window.sessionStorage.setItem(
|
|
78
|
+
window.sessionStorage.setItem(
|
|
79
|
+
cacheId,
|
|
80
|
+
JSON.stringify(currentCacheDataObj)
|
|
81
|
+
);
|
|
64
82
|
}
|
|
65
83
|
}
|
|
66
84
|
}
|
|
@@ -76,5 +94,8 @@ class BaseModule {
|
|
|
76
94
|
effectsEmit(eventType, payload) {
|
|
77
95
|
return this.core.effects.emit(`${this.name}:${eventType}`, payload);
|
|
78
96
|
}
|
|
79
|
-
}
|
|
80
|
-
|
|
97
|
+
};
|
|
98
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
+
0 && (module.exports = {
|
|
100
|
+
BaseModule
|
|
101
|
+
});
|
|
@@ -1,129 +1,105 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
BookingContextModule: true
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
10
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function () {
|
|
40
|
-
return _utils[key];
|
|
41
|
-
}
|
|
42
|
-
});
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/modules/BookingContext/index.ts
|
|
31
|
+
var BookingContext_exports = {};
|
|
32
|
+
__export(BookingContext_exports, {
|
|
33
|
+
BookingContextModule: () => BookingContextModule,
|
|
34
|
+
__clearBookingContextSharedCacheForTest: () => __clearBookingContextSharedCacheForTest,
|
|
35
|
+
buildBookingConfigQueryKey: () => buildBookingConfigQueryKey,
|
|
36
|
+
buildBookingResourcesQueryKey: () => buildBookingResourcesQueryKey
|
|
43
37
|
});
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
module.exports = __toCommonJS(BookingContext_exports);
|
|
39
|
+
var import_dayjs = __toESM(require("dayjs"));
|
|
40
|
+
var import_BaseModule = require("../BaseModule");
|
|
41
|
+
var import_request = require("../../plugins/request");
|
|
42
|
+
var import_types = require("./types");
|
|
43
|
+
var import_formatResourceList = require("./utils/formatResourceList");
|
|
44
|
+
__reExport(BookingContext_exports, require("./types"), module.exports);
|
|
45
|
+
__reExport(BookingContext_exports, require("./utils"), module.exports);
|
|
46
|
+
var EMPTY_STATE = {
|
|
46
47
|
bookingConfig: null,
|
|
47
48
|
resourcesOrigin: [],
|
|
48
49
|
resourcesOriginMap: {},
|
|
49
50
|
date: null
|
|
50
51
|
};
|
|
51
|
-
|
|
52
|
-
item_type:
|
|
53
|
-
sub_type:
|
|
52
|
+
var DEFAULT_BOOKING_CONFIG_PARAMS = {
|
|
53
|
+
item_type: "appointment_booking",
|
|
54
|
+
sub_type: "ticket"
|
|
54
55
|
};
|
|
55
|
-
|
|
56
|
+
var BOARD_CONFIG_CACHE = {
|
|
56
57
|
useCache: true,
|
|
57
58
|
cache: {
|
|
58
|
-
mode:
|
|
59
|
-
type:
|
|
59
|
+
mode: import_request.RequestModeENUM.REMOTE_LOCAL,
|
|
60
|
+
type: "indexDB",
|
|
60
61
|
updateCache: true
|
|
61
62
|
}
|
|
62
63
|
};
|
|
63
|
-
|
|
64
|
+
var RESOURCE_LIST_CACHE = {
|
|
64
65
|
useCache: true,
|
|
65
66
|
cache: {
|
|
66
|
-
mode:
|
|
67
|
-
type:
|
|
67
|
+
mode: import_request.RequestModeENUM.REMOTE_LOCAL,
|
|
68
|
+
type: "memory"
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* 为 request 插件生成稳定作用域,避免不同 request 客户端之间共享缓存数据。
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* const scopedKey = buildSharedCacheKey(requestPlugin, '{"sub_type":"ticket"}');
|
|
82
|
-
*/
|
|
71
|
+
var requestScopeIds = /* @__PURE__ */ new WeakMap();
|
|
72
|
+
var nextRequestScopeId = 1;
|
|
73
|
+
var sharedBookingConfigCache = /* @__PURE__ */ new Map();
|
|
74
|
+
var sharedBookingConfigPending = /* @__PURE__ */ new Map();
|
|
75
|
+
var sharedResourcesCache = /* @__PURE__ */ new Map();
|
|
76
|
+
var sharedResourcesPending = /* @__PURE__ */ new Map();
|
|
83
77
|
function getRequestScopeId(request) {
|
|
84
78
|
const key = request;
|
|
85
79
|
const existed = requestScopeIds.get(key);
|
|
86
|
-
if (existed)
|
|
80
|
+
if (existed)
|
|
81
|
+
return existed;
|
|
87
82
|
const id = nextRequestScopeId++;
|
|
88
83
|
requestScopeIds.set(key, id);
|
|
89
84
|
return id;
|
|
90
85
|
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* 共享缓存 key = request 作用域 + 已稳定序列化的业务参数。
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* const cacheKey = buildSharedCacheKey(requestPlugin, '2026-06-10|1,2');
|
|
97
|
-
*/
|
|
98
86
|
function buildSharedCacheKey(request, queryKey) {
|
|
99
87
|
return `${getRequestScopeId(request)}:${queryKey}`;
|
|
100
88
|
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* 清理跨实例共享缓存,仅供单元测试隔离使用。
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
* __clearBookingContextSharedCacheForTest();
|
|
107
|
-
*/
|
|
108
89
|
function __clearBookingContextSharedCacheForTest() {
|
|
109
90
|
sharedBookingConfigCache.clear();
|
|
110
91
|
sharedBookingConfigPending.clear();
|
|
111
92
|
sharedResourcesCache.clear();
|
|
112
93
|
sharedResourcesPending.clear();
|
|
113
94
|
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* 把多形态 date 入参 normalize 成字符串。
|
|
117
|
-
* - dayjs 实例:调用 format()(无参 ISO)。
|
|
118
|
-
* - Date 实例:toISOString()。
|
|
119
|
-
* - 字符串:原样保留。
|
|
120
|
-
* - null/undefined/空串:→ null。
|
|
121
|
-
*/
|
|
122
95
|
function normalizeDate(input) {
|
|
123
|
-
if (input === null || input ===
|
|
124
|
-
|
|
125
|
-
if (input
|
|
126
|
-
|
|
96
|
+
if (input === null || input === void 0)
|
|
97
|
+
return null;
|
|
98
|
+
if (typeof input === "string")
|
|
99
|
+
return input || null;
|
|
100
|
+
if (input instanceof Date)
|
|
101
|
+
return input.toISOString();
|
|
102
|
+
if (typeof input.format === "function") {
|
|
127
103
|
try {
|
|
128
104
|
return input.format() || null;
|
|
129
105
|
} catch {
|
|
@@ -132,67 +108,52 @@ function normalizeDate(input) {
|
|
|
132
108
|
}
|
|
133
109
|
return null;
|
|
134
110
|
}
|
|
135
|
-
|
|
136
|
-
/** 资源接口使用的 `YYYY-MM-DD` 日期串。 */
|
|
137
111
|
function toScheduleQueryDate(input) {
|
|
138
112
|
const normalized = normalizeDate(input);
|
|
139
|
-
if (!normalized)
|
|
140
|
-
|
|
141
|
-
|
|
113
|
+
if (!normalized)
|
|
114
|
+
return (0, import_dayjs.default)().format("YYYY-MM-DD");
|
|
115
|
+
const parsed = (0, import_dayjs.default)(normalized);
|
|
116
|
+
return parsed.isValid() ? parsed.format("YYYY-MM-DD") : (0, import_dayjs.default)().format("YYYY-MM-DD");
|
|
142
117
|
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* 由 resources 数组派生出以 id 为 key 的 map,便于 `getResourceByIds` 直接命中。
|
|
146
|
-
*/
|
|
147
118
|
function buildResourcesMap(resources) {
|
|
148
119
|
const map = {};
|
|
149
|
-
resources.forEach(resource => {
|
|
150
|
-
if (resource && resource.id !==
|
|
120
|
+
resources.forEach((resource) => {
|
|
121
|
+
if (resource && resource.id !== void 0 && resource.id !== null) {
|
|
151
122
|
map[String(resource.id)] = resource;
|
|
152
123
|
}
|
|
153
124
|
});
|
|
154
125
|
return map;
|
|
155
126
|
}
|
|
156
|
-
|
|
157
|
-
/** 稳定序列化 config 查询参数,用于判断是否与上次 loadBookingConfig 一致。 */
|
|
158
127
|
function buildBookingConfigQueryKey(params = {}) {
|
|
159
|
-
const merged = {
|
|
160
|
-
...DEFAULT_BOOKING_CONFIG_PARAMS,
|
|
161
|
-
...params
|
|
162
|
-
};
|
|
128
|
+
const merged = { ...DEFAULT_BOOKING_CONFIG_PARAMS, ...params };
|
|
163
129
|
const keys = Object.keys(merged).sort();
|
|
164
130
|
const sorted = {};
|
|
165
|
-
keys.forEach(k => {
|
|
131
|
+
keys.forEach((k) => {
|
|
166
132
|
sorted[k] = merged[k];
|
|
167
133
|
});
|
|
168
134
|
return JSON.stringify(sorted);
|
|
169
135
|
}
|
|
170
|
-
|
|
171
|
-
/** 稳定序列化资源列表查询(date + bookingIds),用于跳过重复 loadResources。 */
|
|
172
136
|
function buildBookingResourcesQueryKey(params = {}) {
|
|
173
137
|
const date = toScheduleQueryDate(params.date);
|
|
174
|
-
const ids = (params.bookingIds || []).filter(id => typeof id ===
|
|
175
|
-
return `${date}|${ids.join(
|
|
138
|
+
const ids = (params.bookingIds || []).filter((id) => typeof id === "number" && Number.isFinite(id)).sort((a, b) => a - b);
|
|
139
|
+
return `${date}|${ids.join(",")}`;
|
|
176
140
|
}
|
|
177
|
-
|
|
178
|
-
defaultName = 'bookingContext';
|
|
179
|
-
defaultVersion = '1.0.0';
|
|
180
|
-
request;
|
|
181
|
-
store = {
|
|
182
|
-
...EMPTY_STATE
|
|
183
|
-
};
|
|
184
|
-
/** 上次成功 loadBookingConfig 的 query key;命中则不再请求。 */
|
|
185
|
-
lastConfigQueryKey = null;
|
|
186
|
-
/** 上次成功 loadResources 的 query key(date|bookingIds);命中则不再请求。 */
|
|
187
|
-
lastResourcesQueryKey = null;
|
|
141
|
+
var BookingContextModule = class extends import_BaseModule.BaseModule {
|
|
188
142
|
constructor(name, version) {
|
|
189
143
|
super(name, version);
|
|
144
|
+
this.defaultName = "bookingContext";
|
|
145
|
+
this.defaultVersion = "1.0.0";
|
|
146
|
+
this.store = { ...EMPTY_STATE };
|
|
147
|
+
/** 上次成功 loadBookingConfig 的 query key;命中则不再请求。 */
|
|
148
|
+
this.lastConfigQueryKey = null;
|
|
149
|
+
/** 上次成功 loadResources 的 query key(date|bookingIds);命中则不再请求。 */
|
|
150
|
+
this.lastResourcesQueryKey = null;
|
|
190
151
|
}
|
|
191
152
|
async initialize(core, options = {}) {
|
|
192
153
|
this.core = core;
|
|
193
|
-
this.request = core.getPlugin(
|
|
154
|
+
this.request = core.getPlugin("request");
|
|
194
155
|
if (!this.request) {
|
|
195
|
-
throw new Error(
|
|
156
|
+
throw new Error("BookingContextModule 需要 request 插件支持");
|
|
196
157
|
}
|
|
197
158
|
this.store = {
|
|
198
159
|
bookingConfig: null,
|
|
@@ -228,14 +189,18 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
228
189
|
this.lastConfigQueryKey = configKey;
|
|
229
190
|
return cached;
|
|
230
191
|
}
|
|
231
|
-
let pending = !options.forceRefresh ? sharedBookingConfigPending.get(sharedKey) :
|
|
192
|
+
let pending = !options.forceRefresh ? sharedBookingConfigPending.get(sharedKey) : void 0;
|
|
232
193
|
if (!pending) {
|
|
233
194
|
const requestPromise = (async () => {
|
|
234
195
|
try {
|
|
235
|
-
const res = await this.request.get(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
196
|
+
const res = await this.request.get(
|
|
197
|
+
"/core/board/management/config",
|
|
198
|
+
query,
|
|
199
|
+
BOARD_CONFIG_CACHE
|
|
200
|
+
);
|
|
201
|
+
const config2 = (res == null ? void 0 : res.data) ?? null;
|
|
202
|
+
sharedBookingConfigCache.set(sharedKey, config2);
|
|
203
|
+
return config2;
|
|
239
204
|
} finally {
|
|
240
205
|
sharedBookingConfigPending.delete(sharedKey);
|
|
241
206
|
}
|
|
@@ -264,18 +229,18 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
264
229
|
this.lastResourcesQueryKey = resourcesKey;
|
|
265
230
|
return this.getResourcesOrigin();
|
|
266
231
|
}
|
|
267
|
-
let pending = !options.forceRefresh ? sharedResourcesPending.get(sharedKey) :
|
|
232
|
+
let pending = !options.forceRefresh ? sharedResourcesPending.get(sharedKey) : void 0;
|
|
268
233
|
if (!pending) {
|
|
269
234
|
const requestPromise = (async () => {
|
|
270
235
|
try {
|
|
271
|
-
const res = await this.request.get(
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
} = (0,
|
|
277
|
-
sharedResourcesCache.set(sharedKey,
|
|
278
|
-
return
|
|
236
|
+
const res = await this.request.get(
|
|
237
|
+
"/schedule/resource/list",
|
|
238
|
+
{ date },
|
|
239
|
+
RESOURCE_LIST_CACHE
|
|
240
|
+
);
|
|
241
|
+
const { list: list2 } = (0, import_formatResourceList.formatResourceListAndMap)(res == null ? void 0 : res.data, params.bookingIds || []);
|
|
242
|
+
sharedResourcesCache.set(sharedKey, list2);
|
|
243
|
+
return list2;
|
|
279
244
|
} finally {
|
|
280
245
|
sharedResourcesPending.delete(sharedKey);
|
|
281
246
|
}
|
|
@@ -288,13 +253,12 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
288
253
|
this.lastResourcesQueryKey = resourcesKey;
|
|
289
254
|
return this.getResourcesOrigin();
|
|
290
255
|
}
|
|
291
|
-
|
|
292
256
|
/**
|
|
293
257
|
* store 内是否已具备与本次 init 入参等价的 config / resources(不再打接口)。
|
|
294
258
|
*/
|
|
295
259
|
isBookingContextReady(params = {}) {
|
|
296
260
|
const configKey = buildBookingConfigQueryKey(params.bookingConfigParams);
|
|
297
|
-
const dateInput = params.date ?? this.store.date ?? (0,
|
|
261
|
+
const dateInput = params.date ?? this.store.date ?? (0, import_dayjs.default)();
|
|
298
262
|
const queryDate = toScheduleQueryDate(dateInput);
|
|
299
263
|
const resourcesKey = buildBookingResourcesQueryKey({
|
|
300
264
|
date: queryDate,
|
|
@@ -305,7 +269,7 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
305
269
|
return configReady && resourcesReady;
|
|
306
270
|
}
|
|
307
271
|
async initBookingContext(params = {}) {
|
|
308
|
-
const dateInput = params.date ?? this.store.date ?? (0,
|
|
272
|
+
const dateInput = params.date ?? this.store.date ?? (0, import_dayjs.default)();
|
|
309
273
|
const queryDate = toScheduleQueryDate(dateInput);
|
|
310
274
|
this.setDate(dateInput);
|
|
311
275
|
if (!params.forceRefresh && this.isBookingContextReady(params)) {
|
|
@@ -324,18 +288,24 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
324
288
|
});
|
|
325
289
|
}
|
|
326
290
|
if (needResources) {
|
|
327
|
-
await this.loadResources(
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
291
|
+
await this.loadResources(
|
|
292
|
+
{
|
|
293
|
+
date: queryDate,
|
|
294
|
+
bookingIds: params.bookingIds
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
forceRefresh: params.forceRefresh
|
|
298
|
+
}
|
|
299
|
+
);
|
|
333
300
|
}
|
|
334
301
|
return this.getState();
|
|
335
302
|
}
|
|
336
303
|
setBookingConfig(config) {
|
|
337
304
|
this.store.bookingConfig = config || null;
|
|
338
|
-
this.core.effects.emit(
|
|
305
|
+
this.core.effects.emit(
|
|
306
|
+
`${this.name}:${import_types.BookingContextEvent.OnBookingConfigChange}`,
|
|
307
|
+
this.store.bookingConfig
|
|
308
|
+
);
|
|
339
309
|
}
|
|
340
310
|
getBookingConfig() {
|
|
341
311
|
return this.store.bookingConfig;
|
|
@@ -344,7 +314,7 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
344
314
|
const list = Array.isArray(resources) ? resources : [];
|
|
345
315
|
this.store.resourcesOrigin = list;
|
|
346
316
|
this.store.resourcesOriginMap = buildResourcesMap(list);
|
|
347
|
-
this.core.effects.emit(`${this.name}:${
|
|
317
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnResourcesChange}`, {
|
|
348
318
|
resourcesOrigin: this.store.resourcesOrigin,
|
|
349
319
|
resourcesOriginMap: this.store.resourcesOriginMap
|
|
350
320
|
});
|
|
@@ -357,7 +327,7 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
357
327
|
}
|
|
358
328
|
setDate(date) {
|
|
359
329
|
this.store.date = normalizeDate(date);
|
|
360
|
-
this.core.effects.emit(`${this.name}:${
|
|
330
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnDateChange}`, this.store.date);
|
|
361
331
|
}
|
|
362
332
|
getDate() {
|
|
363
333
|
return this.store.date;
|
|
@@ -379,12 +349,20 @@ class BookingContextModule extends _BaseModule.BaseModule {
|
|
|
379
349
|
resourcesOriginMap: {},
|
|
380
350
|
date: null
|
|
381
351
|
};
|
|
382
|
-
this.core.effects.emit(`${this.name}:${
|
|
383
|
-
this.core.effects.emit(`${this.name}:${
|
|
352
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnBookingConfigChange}`, null);
|
|
353
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnResourcesChange}`, {
|
|
384
354
|
resourcesOrigin: [],
|
|
385
355
|
resourcesOriginMap: {}
|
|
386
356
|
});
|
|
387
|
-
this.core.effects.emit(`${this.name}:${
|
|
357
|
+
this.core.effects.emit(`${this.name}:${import_types.BookingContextEvent.OnDateChange}`, null);
|
|
388
358
|
}
|
|
389
|
-
}
|
|
390
|
-
|
|
359
|
+
};
|
|
360
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
361
|
+
0 && (module.exports = {
|
|
362
|
+
BookingContextModule,
|
|
363
|
+
__clearBookingContextSharedCacheForTest,
|
|
364
|
+
buildBookingConfigQueryKey,
|
|
365
|
+
buildBookingResourcesQueryKey,
|
|
366
|
+
...require("./types"),
|
|
367
|
+
...require("./utils")
|
|
368
|
+
});
|
|
@@ -1,48 +1,34 @@
|
|
|
1
|
-
|
|
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);
|
|
2
18
|
|
|
3
|
-
|
|
4
|
-
|
|
19
|
+
// src/modules/BookingContext/types.ts
|
|
20
|
+
var types_exports = {};
|
|
21
|
+
__export(types_exports, {
|
|
22
|
+
BookingContextEvent: () => BookingContextEvent
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(types_exports);
|
|
25
|
+
var BookingContextEvent = /* @__PURE__ */ ((BookingContextEvent2) => {
|
|
26
|
+
BookingContextEvent2["OnBookingConfigChange"] = "onBookingConfigChange";
|
|
27
|
+
BookingContextEvent2["OnResourcesChange"] = "onResourcesChange";
|
|
28
|
+
BookingContextEvent2["OnDateChange"] = "onDateChange";
|
|
29
|
+
return BookingContextEvent2;
|
|
30
|
+
})(BookingContextEvent || {});
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
BookingContextEvent
|
|
5
34
|
});
|
|
6
|
-
exports.BookingContextEvent = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* BookingContext 子模块:承载「预约 UI 上下文」三件套。
|
|
9
|
-
*
|
|
10
|
-
* - bookingConfig:来自 `/core/board/management/config` 的整套预约配置(service_time / resource_tab /
|
|
11
|
-
* appointment_subject / subject_require / stock_setting / basic / capacity 等)。
|
|
12
|
-
* - resourcesOrigin / resourcesOriginMap:来自 `/schedule/resource/list` 的资源全集,含 times / event_list /
|
|
13
|
-
* combined_resource 等运行态信息,是 getResourceByIds / getResourceTimeIsUsable 的输入。
|
|
14
|
-
* - date:当前选择的日期(dayjs 或 ISO 字符串,迁移后内部统一存原始 ISO 字符串,UI 可自行解析)。
|
|
15
|
-
*
|
|
16
|
-
* 设计原则(与 BookingTicket 现状对齐):
|
|
17
|
-
* - 默认由 `loadBookingConfig` / `loadResources` 拉取并写入 store;也支持消费方 `set*` 直接灌入(复用 ticketBooking 已拉到的数据)。
|
|
18
|
-
* - 所有读 API 返回浅克隆(数组)或原引用(map / config),避免 UI 写穿。
|
|
19
|
-
*/
|
|
20
|
-
/** `loadBookingConfig` 入参,与 ticketBooking `getBookingConfig` 一致。 */
|
|
21
|
-
/** `loadResources` 入参,与 info2 `getResourceList` 一致。 */
|
|
22
|
-
/** `initBookingContext` 入参(BookingTicket 聚合入口)。 */
|
|
23
|
-
/**
|
|
24
|
-
* 资源全集 map:key 为资源 id(数字),value 为资源原始对象,含 times / event_list 等运行态。
|
|
25
|
-
* 这里只声明 Record 形态;具体字段保留 `any`,与 ticketBooking 现网传入的数据形状兼容。
|
|
26
|
-
*/
|
|
27
|
-
/**
|
|
28
|
-
* 形参 booking_config(结构来自 `/core/board/management/config` 接口)。
|
|
29
|
-
* OS 不强制 schema,保留 `Record<string, any>` 兼容现网;常用路径文档化在 SDK docs。
|
|
30
|
-
*/
|
|
31
|
-
/**
|
|
32
|
-
* 日期入参:接受 dayjs 实例、ISO 字符串、Date 实例;内部统一 normalize 为 ISO 字符串保存。
|
|
33
|
-
*/
|
|
34
|
-
/**
|
|
35
|
-
* 内部 store 形态。`resourcesOriginMap` 由 `setResources` 派生,不允许外部直接 set。
|
|
36
|
-
*/
|
|
37
|
-
/**
|
|
38
|
-
* BookingContextModule 对外 API(给 BookingTicket / SDK Provider 透传消费)。
|
|
39
|
-
*/
|
|
40
|
-
/**
|
|
41
|
-
* BookingContextModule 事件名常量(采用 `${this.name}:` 前缀,与现有模块一致)。
|
|
42
|
-
*/
|
|
43
|
-
let BookingContextEvent = exports.BookingContextEvent = /*#__PURE__*/function (BookingContextEvent) {
|
|
44
|
-
BookingContextEvent["OnBookingConfigChange"] = "onBookingConfigChange";
|
|
45
|
-
BookingContextEvent["OnResourcesChange"] = "onResourcesChange";
|
|
46
|
-
BookingContextEvent["OnDateChange"] = "onDateChange";
|
|
47
|
-
return BookingContextEvent;
|
|
48
|
-
}({});
|