@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,63 +1,47 @@
|
|
|
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(Quotation_exports, {
|
|
22
|
-
QuotationModule: () => QuotationModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
6
|
+
exports.QuotationModule = void 0;
|
|
7
|
+
var _BaseModule = require("../BaseModule");
|
|
8
|
+
var _getDateIsInSchedule = require("../Schedule/getDateIsInSchedule");
|
|
9
|
+
class QuotationModule extends _BaseModule.BaseModule {
|
|
10
|
+
defaultName = 'quotation';
|
|
11
|
+
defaultVersion = '1.0.0';
|
|
12
|
+
request;
|
|
13
|
+
store = {
|
|
14
|
+
list: []
|
|
15
|
+
};
|
|
16
|
+
scheduleResolver;
|
|
28
17
|
constructor(name, version) {
|
|
29
18
|
super(name, version);
|
|
30
|
-
this.defaultName = "quotation";
|
|
31
|
-
this.defaultVersion = "1.0.0";
|
|
32
|
-
this.store = { list: [] };
|
|
33
19
|
}
|
|
34
20
|
async initialize(core, options) {
|
|
35
21
|
this.core = core;
|
|
36
|
-
this.request = core.getPlugin(
|
|
37
|
-
if (!this.request)
|
|
38
|
-
|
|
39
|
-
|
|
22
|
+
this.request = core.getPlugin('request');
|
|
23
|
+
if (!this.request) throw new Error('QuotationModule 需要 request 插件支持');
|
|
24
|
+
this.store = {
|
|
25
|
+
list: []
|
|
26
|
+
};
|
|
40
27
|
}
|
|
41
28
|
async loadQuotations(params) {
|
|
42
|
-
var _a;
|
|
43
29
|
const query = {};
|
|
44
|
-
if (params
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
query.channel = "online-store";
|
|
30
|
+
if (params?.channel) query.channel = params.channel;
|
|
31
|
+
if (params?.channel === 'online_store') {
|
|
32
|
+
query.channel = 'online-store';
|
|
48
33
|
}
|
|
49
|
-
const res = await this.request.get(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
);
|
|
54
|
-
const list = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.list) || (res == null ? void 0 : res.list) || [];
|
|
34
|
+
const res = await this.request.get('/quotation/available', query, {
|
|
35
|
+
useCache: false
|
|
36
|
+
});
|
|
37
|
+
const list = res?.data?.list || res?.list || [];
|
|
55
38
|
list.sort((a, b) => b.sort - a.sort);
|
|
56
39
|
this.store.list = list;
|
|
57
40
|
}
|
|
58
41
|
getQuotationList() {
|
|
59
42
|
return this.store.list;
|
|
60
43
|
}
|
|
44
|
+
|
|
61
45
|
/**
|
|
62
46
|
* Look up the quotation price for a specific product (+ optional variant) at a given datetime.
|
|
63
47
|
* Returns the price as a string (e.g. "300.00"), or null if no quotation applies.
|
|
@@ -67,44 +51,50 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
|
|
|
67
51
|
* the requested productId wins.
|
|
68
52
|
*/
|
|
69
53
|
getPriceForProduct(params) {
|
|
70
|
-
const {
|
|
54
|
+
const {
|
|
55
|
+
productId,
|
|
56
|
+
variantId,
|
|
57
|
+
datetime
|
|
58
|
+
} = params;
|
|
71
59
|
for (const quotation of this.store.list) {
|
|
72
|
-
if (!this.isQuotationActiveAt(quotation, datetime))
|
|
73
|
-
continue;
|
|
60
|
+
if (!this.isQuotationActiveAt(quotation, datetime)) continue;
|
|
74
61
|
const match = this.findProductData(quotation.product_data, productId, variantId);
|
|
75
|
-
if (!match)
|
|
76
|
-
|
|
77
|
-
if (match.value === 0)
|
|
78
|
-
continue;
|
|
62
|
+
if (!match) continue;
|
|
63
|
+
if (match.value === 0) continue;
|
|
79
64
|
return String(match.value);
|
|
80
65
|
}
|
|
81
66
|
return null;
|
|
82
67
|
}
|
|
83
68
|
getQuotationShelfId(params) {
|
|
84
|
-
const {
|
|
69
|
+
const {
|
|
70
|
+
productId,
|
|
71
|
+
variantId,
|
|
72
|
+
datetime
|
|
73
|
+
} = params;
|
|
85
74
|
for (const quotation of this.store.list) {
|
|
86
|
-
if (!this.isQuotationActiveAt(quotation, datetime))
|
|
87
|
-
continue;
|
|
75
|
+
if (!this.isQuotationActiveAt(quotation, datetime)) continue;
|
|
88
76
|
const match = this.findProductData(quotation.product_data, productId, variantId);
|
|
89
|
-
if (!match || match.value === 0)
|
|
90
|
-
continue;
|
|
77
|
+
if (!match || match.value === 0) continue;
|
|
91
78
|
return quotation.id;
|
|
92
79
|
}
|
|
93
80
|
return 0;
|
|
94
81
|
}
|
|
82
|
+
|
|
95
83
|
/**
|
|
96
84
|
* Batch pre-compute quotation prices for a set of products across multiple time points.
|
|
97
85
|
* Key format: `${productId}:${timePoint}`
|
|
98
86
|
* This avoids repeated schedule matching when the same product appears in multiple resource rows.
|
|
99
87
|
*/
|
|
100
88
|
buildProductPriceMap(params) {
|
|
101
|
-
const map =
|
|
102
|
-
if (!this.store.list.length)
|
|
103
|
-
return map;
|
|
89
|
+
const map = new Map();
|
|
90
|
+
if (!this.store.list.length) return map;
|
|
104
91
|
for (const productId of params.productIds) {
|
|
105
92
|
for (const timePoint of params.timePoints) {
|
|
106
93
|
const key = `${productId}:${timePoint}`;
|
|
107
|
-
const price = this.getPriceForProduct({
|
|
94
|
+
const price = this.getPriceForProduct({
|
|
95
|
+
productId,
|
|
96
|
+
datetime: timePoint
|
|
97
|
+
});
|
|
108
98
|
if (price !== null) {
|
|
109
99
|
map.set(key, price);
|
|
110
100
|
}
|
|
@@ -116,37 +106,25 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
|
|
|
116
106
|
this.scheduleResolver = resolver;
|
|
117
107
|
}
|
|
118
108
|
isQuotationActiveAt(quotation, datetime) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
var _a2;
|
|
124
|
-
const full = (_a2 = this.scheduleResolver) == null ? void 0 : _a2.call(this, s.id);
|
|
125
|
-
if (full)
|
|
126
|
-
return full;
|
|
109
|
+
if (!quotation.schedule?.length) return false;
|
|
110
|
+
const scheduleItems = quotation.schedule.map(s => {
|
|
111
|
+
const full = this.scheduleResolver?.(s.id);
|
|
112
|
+
if (full) return full;
|
|
127
113
|
return {
|
|
128
114
|
...s,
|
|
129
|
-
repeat_type: s.repeat_type ||
|
|
115
|
+
repeat_type: s.repeat_type || 'none',
|
|
130
116
|
repeat_rule: s.repeat_rule || null,
|
|
131
117
|
time_slot: s.time_slot || []
|
|
132
118
|
};
|
|
133
119
|
});
|
|
134
|
-
return (0,
|
|
120
|
+
return (0, _getDateIsInSchedule.getDateIsInSchedule)(datetime, scheduleItems);
|
|
135
121
|
}
|
|
136
122
|
findProductData(productData, productId, variantId) {
|
|
137
123
|
if (variantId && variantId !== 0) {
|
|
138
|
-
const variantMatch = productData.find(
|
|
139
|
-
|
|
140
|
-
);
|
|
141
|
-
if (variantMatch)
|
|
142
|
-
return variantMatch;
|
|
124
|
+
const variantMatch = productData.find(p => p.product_id === productId && p.variant_id === variantId);
|
|
125
|
+
if (variantMatch) return variantMatch;
|
|
143
126
|
}
|
|
144
|
-
return productData.find(
|
|
145
|
-
(p) => p.product_id === productId && p.variant_id === 0
|
|
146
|
-
);
|
|
127
|
+
return productData.find(p => p.product_id === productId && p.variant_id === 0);
|
|
147
128
|
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
0 && (module.exports = {
|
|
151
|
-
QuotationModule
|
|
152
|
-
});
|
|
129
|
+
}
|
|
130
|
+
exports.QuotationModule = QuotationModule;
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
14
2
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
@@ -1,34 +1,17 @@
|
|
|
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(Resource_exports, {
|
|
22
|
-
ResourceListModule: () => ResourceListModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
6
|
+
exports.ResourceListModule = void 0;
|
|
7
|
+
var _BaseModule = require("../BaseModule");
|
|
8
|
+
var _types = require("./types");
|
|
9
|
+
class ResourceListModule extends _BaseModule.BaseModule {
|
|
10
|
+
defaultName = 'resourceList';
|
|
11
|
+
defaultVersion = '1.0.0';
|
|
12
|
+
store;
|
|
28
13
|
constructor(name, version) {
|
|
29
14
|
super(name, version);
|
|
30
|
-
this.defaultName = "resourceList";
|
|
31
|
-
this.defaultVersion = "1.0.0";
|
|
32
15
|
}
|
|
33
16
|
async initialize(core, options) {
|
|
34
17
|
this.core = core;
|
|
@@ -38,9 +21,8 @@ var ResourceListModule = class extends import_BaseModule.BaseModule {
|
|
|
38
21
|
return this.store.list;
|
|
39
22
|
}
|
|
40
23
|
async selectResource(resourceId) {
|
|
41
|
-
const resource = this.store.list.find(
|
|
42
|
-
if (!resource)
|
|
43
|
-
return;
|
|
24
|
+
const resource = this.store.list.find(r => r.id === resourceId);
|
|
25
|
+
if (!resource) return;
|
|
44
26
|
this.store.selectedResource = resource;
|
|
45
27
|
await this.core.effects.emit(`${this.name}:onResourceSelect`, resource);
|
|
46
28
|
}
|
|
@@ -48,43 +30,29 @@ var ResourceListModule = class extends import_BaseModule.BaseModule {
|
|
|
48
30
|
return this.store.selectedResource;
|
|
49
31
|
}
|
|
50
32
|
async checkAvailability(resourceId, start, end) {
|
|
51
|
-
const resource = this.store.list.find(
|
|
52
|
-
if (!resource)
|
|
53
|
-
|
|
54
|
-
return resource.timeSlots.some(
|
|
55
|
-
(slot) => slot.start.getTime() <= start.getTime() && slot.end.getTime() >= end.getTime() && slot.availableCapacity > 0
|
|
56
|
-
);
|
|
33
|
+
const resource = this.store.list.find(r => r.id === resourceId);
|
|
34
|
+
if (!resource) return false;
|
|
35
|
+
return resource.timeSlots.some(slot => slot.start.getTime() <= start.getTime() && slot.end.getTime() >= end.getTime() && slot.availableCapacity > 0);
|
|
57
36
|
}
|
|
58
37
|
async getAvailableTimeSlots(resourceId) {
|
|
59
|
-
const resource = this.store.list.find(
|
|
60
|
-
if (!resource)
|
|
61
|
-
|
|
62
|
-
return resource.timeSlots.filter((slot) => slot.availableCapacity > 0);
|
|
38
|
+
const resource = this.store.list.find(r => r.id === resourceId);
|
|
39
|
+
if (!resource) return [];
|
|
40
|
+
return resource.timeSlots.filter(slot => slot.availableCapacity > 0);
|
|
63
41
|
}
|
|
64
42
|
getAvailableCapacity(resourceId, timeSlot) {
|
|
65
|
-
const resource = this.store.list.find(
|
|
66
|
-
if (!resource)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
(s) => s.start.getTime() === timeSlot.start.getTime() && s.end.getTime() === timeSlot.end.getTime()
|
|
70
|
-
);
|
|
71
|
-
return (slot == null ? void 0 : slot.availableCapacity) || 0;
|
|
43
|
+
const resource = this.store.list.find(r => r.id === resourceId);
|
|
44
|
+
if (!resource) return 0;
|
|
45
|
+
const slot = resource.timeSlots.find(s => s.start.getTime() === timeSlot.start.getTime() && s.end.getTime() === timeSlot.end.getTime());
|
|
46
|
+
return slot?.availableCapacity || 0;
|
|
72
47
|
}
|
|
73
48
|
async updateResource(resourceId, updates) {
|
|
74
|
-
const index = this.store.list.findIndex(
|
|
75
|
-
if (index === -1)
|
|
76
|
-
return;
|
|
49
|
+
const index = this.store.list.findIndex(r => r.id === resourceId);
|
|
50
|
+
if (index === -1) return;
|
|
77
51
|
this.store.list[index] = {
|
|
78
52
|
...this.store.list[index],
|
|
79
53
|
...updates
|
|
80
54
|
};
|
|
81
|
-
await this.core.effects.emit(
|
|
82
|
-
import_types.ResourceHooks.OnResourceChange,
|
|
83
|
-
this.store.list[index]
|
|
84
|
-
);
|
|
55
|
+
await this.core.effects.emit(_types.ResourceHooks.OnResourceChange, this.store.list[index]);
|
|
85
56
|
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
0 && (module.exports = {
|
|
89
|
-
ResourceListModule
|
|
90
|
-
});
|
|
57
|
+
}
|
|
58
|
+
exports.ResourceListModule = ResourceListModule;
|
|
@@ -1,34 +1,24 @@
|
|
|
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
|
-
ResourceHooks: () => ResourceHooks
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var ResourceHooks = /* @__PURE__ */ ((ResourceHooks2) => {
|
|
26
|
-
ResourceHooks2["OnResourceSelect"] = "resource:onResourceSelect";
|
|
27
|
-
ResourceHooks2["OnResourceChange"] = "resource:onResourceChange";
|
|
28
|
-
ResourceHooks2["OnAvailabilityCheck"] = "resource:onAvailabilityCheck";
|
|
29
|
-
return ResourceHooks2;
|
|
30
|
-
})(ResourceHooks || {});
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
33
|
-
ResourceHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
34
5
|
});
|
|
6
|
+
exports.ResourceHooks = void 0;
|
|
7
|
+
let ResourceHooks = exports.ResourceHooks = /*#__PURE__*/function (ResourceHooks) {
|
|
8
|
+
ResourceHooks["OnResourceSelect"] = "resource:onResourceSelect";
|
|
9
|
+
ResourceHooks["OnResourceChange"] = "resource:onResourceChange";
|
|
10
|
+
ResourceHooks["OnAvailabilityCheck"] = "resource:onAvailabilityCheck";
|
|
11
|
+
return ResourceHooks;
|
|
12
|
+
}({});
|
|
13
|
+
/**
|
|
14
|
+
* 资源可用时间段
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* 资源信息
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* 资源列表状态
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* 资源列表模块 API
|
|
24
|
+
*/
|
|
@@ -1,42 +1,34 @@
|
|
|
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(utils_exports, {
|
|
22
|
-
getResourcesByIds: () => getResourcesByIds,
|
|
23
|
-
getResourcesMap: () => getResourcesMap
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
24
5
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
6
|
+
exports.getResourcesMap = exports.getResourcesByIds = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @title: 获取资源map
|
|
9
|
+
* @description:
|
|
10
|
+
* @param {any} resourceList
|
|
11
|
+
* @return {*}
|
|
12
|
+
* @Author: zhiwei.Wang
|
|
13
|
+
*/
|
|
14
|
+
const getResourcesMap = resourceList => {
|
|
15
|
+
return resourceList.reduce((pre, item) => {
|
|
16
|
+
pre[item.id] = item;
|
|
17
|
+
return pre;
|
|
18
|
+
}, {});
|
|
34
19
|
};
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @title: 根据ids筛选资源列表
|
|
23
|
+
* @description:
|
|
24
|
+
* @param {any} resourcesMap
|
|
25
|
+
* @param {any} ids
|
|
26
|
+
* @return {*}
|
|
27
|
+
* @Author: zhiwei.Wang
|
|
28
|
+
* @Date: 2024-09-19 20:23
|
|
29
|
+
*/
|
|
30
|
+
exports.getResourcesMap = getResourcesMap;
|
|
31
|
+
const getResourcesByIds = (resourcesMap, ids) => {
|
|
32
|
+
return (ids || []).map(id => resourcesMap[id]);
|
|
37
33
|
};
|
|
38
|
-
|
|
39
|
-
0 && (module.exports = {
|
|
40
|
-
getResourcesByIds,
|
|
41
|
-
getResourcesMap
|
|
42
|
-
});
|
|
34
|
+
exports.getResourcesByIds = getResourcesByIds;
|