@pisell/pisellos 3.0.4 → 3.0.6
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/modules/Account/index.d.ts +2 -6
- package/dist/modules/Account/index.js +21 -103
- package/dist/modules/Account/types.d.ts +12 -1
- package/dist/modules/AccountList/index.d.ts +20 -1
- package/dist/modules/AccountList/index.js +243 -75
- package/dist/modules/AccountList/types.d.ts +33 -1
- package/dist/modules/AccountList/types.js +8 -0
- package/dist/modules/AccountList/utils.d.ts +9 -0
- package/dist/modules/AccountList/utils.js +25 -0
- package/dist/modules/BaseModule.d.ts +2 -2
- package/dist/modules/BaseModule.js +1 -1
- package/dist/modules/Cart/index.d.ts +8 -5
- package/dist/modules/Cart/index.js +101 -25
- package/dist/modules/Cart/types.d.ts +82 -5
- package/dist/modules/Cart/types.js +22 -0
- package/dist/modules/Cart/utils.d.ts +106 -13
- package/dist/modules/Cart/utils.js +289 -76
- package/dist/modules/Date/index.d.ts +6 -6
- package/dist/modules/Date/index.js +41 -58
- package/dist/modules/Date/types.d.ts +22 -6
- package/dist/modules/Date/utils.d.ts +4 -3
- package/dist/modules/Date/utils.js +81 -30
- package/dist/modules/Discount/index.d.ts +4 -4
- package/dist/modules/Discount/index.js +11 -11
- package/dist/modules/Order/index.d.ts +11 -5
- package/dist/modules/Order/index.js +47 -18
- package/dist/modules/Order/types.d.ts +10 -3
- package/dist/modules/Order/utils.d.ts +10 -0
- package/dist/modules/Order/utils.js +15 -0
- package/dist/modules/Product/index.d.ts +14 -1
- package/dist/modules/Product/index.js +35 -0
- package/dist/modules/Product/types.d.ts +27 -3
- package/dist/modules/ProductList/index.js +11 -5
- package/dist/modules/Resource/types.d.ts +1 -0
- package/dist/modules/Resource/utils.js +1 -1
- package/dist/modules/Rules/index.d.ts +3 -3
- package/dist/modules/Rules/index.js +121 -53
- package/dist/modules/Rules/types.d.ts +5 -1
- package/dist/modules/Schedule/index.d.ts +18 -0
- package/dist/modules/Schedule/index.js +111 -0
- package/dist/modules/Schedule/type.d.ts +157 -0
- package/dist/modules/Schedule/type.js +1 -0
- package/dist/modules/Schedule/types.d.ts +182 -0
- package/dist/modules/Schedule/types.js +1 -0
- package/dist/modules/Schedule/utils.d.ts +67 -0
- package/dist/modules/Schedule/utils.js +729 -0
- package/dist/modules/Step/index.d.ts +14 -3
- package/dist/modules/Step/index.js +54 -2
- package/dist/modules/Summary/index.d.ts +12 -5
- package/dist/modules/Summary/index.js +33 -7
- package/dist/modules/Summary/types.d.ts +23 -2
- package/dist/modules/Summary/utils.d.ts +14 -4
- package/dist/modules/Summary/utils.js +46 -4
- package/dist/modules/index.d.ts +10 -0
- package/dist/modules/index.js +11 -1
- package/dist/plugins/index.d.ts +3 -3
- package/dist/plugins/request.d.ts +3 -3
- package/dist/plugins/request.js +30 -30
- package/dist/plugins/shopStore.d.ts +1 -1
- package/dist/solution/BookingByStep/index.d.ts +97 -24
- package/dist/solution/BookingByStep/index.js +1024 -322
- package/dist/solution/BookingByStep/types.d.ts +3 -10
- package/dist/solution/BookingByStep/types.js +11 -15
- package/dist/solution/BookingByStep/utils/products.d.ts +1 -1
- package/dist/solution/BookingByStep/utils/products.js +3 -0
- package/dist/solution/BookingByStep/utils/resources.d.ts +60 -6
- package/dist/solution/BookingByStep/utils/resources.js +293 -52
- package/dist/solution/ShopDiscount/index.d.ts +4 -4
- package/dist/solution/ShopDiscount/index.js +16 -16
- package/dist/solution/ShopDiscount/types.d.ts +2 -2
- package/dist/solution/ShopDiscount/utils.js +1 -1
- package/lib/core/index.js +7 -2
- package/lib/modules/Account/index.d.ts +2 -6
- package/lib/modules/Account/index.js +15 -30
- package/lib/modules/Account/types.d.ts +12 -1
- package/lib/modules/AccountList/index.d.ts +20 -1
- package/lib/modules/AccountList/index.js +122 -13
- package/lib/modules/AccountList/types.d.ts +33 -1
- package/lib/modules/AccountList/utils.d.ts +9 -0
- package/lib/modules/AccountList/utils.js +39 -0
- package/lib/modules/BaseModule.d.ts +2 -2
- package/lib/modules/BaseModule.js +14 -3
- package/lib/modules/Cart/index.d.ts +8 -5
- package/lib/modules/Cart/index.js +81 -8
- package/lib/modules/Cart/types.d.ts +82 -5
- package/lib/modules/Cart/types.js +20 -2
- package/lib/modules/Cart/utils.d.ts +106 -13
- package/lib/modules/Cart/utils.js +188 -45
- package/lib/modules/Date/index.d.ts +6 -6
- package/lib/modules/Date/index.js +13 -28
- package/lib/modules/Date/types.d.ts +22 -6
- package/lib/modules/Date/utils.d.ts +4 -3
- package/lib/modules/Date/utils.js +47 -13
- package/lib/modules/Discount/index.d.ts +4 -4
- package/lib/modules/Discount/index.js +9 -2
- package/lib/modules/Guests/index.js +4 -1
- package/lib/modules/Order/index.d.ts +11 -5
- package/lib/modules/Order/index.js +24 -3
- package/lib/modules/Order/types.d.ts +10 -3
- package/lib/modules/Order/utils.d.ts +10 -0
- package/lib/modules/Order/utils.js +45 -0
- package/lib/modules/Payment/index.js +1 -6
- package/lib/modules/Product/index.d.ts +14 -1
- package/lib/modules/Product/index.js +19 -0
- package/lib/modules/Product/types.d.ts +27 -3
- package/lib/modules/ProductList/index.js +21 -7
- package/lib/modules/Resource/index.js +4 -1
- package/lib/modules/Resource/types.d.ts +1 -0
- package/lib/modules/Resource/utils.js +7 -4
- package/lib/modules/Rules/index.d.ts +3 -3
- package/lib/modules/Rules/index.js +118 -43
- package/lib/modules/Rules/types.d.ts +5 -1
- package/lib/modules/Schedule/index.d.ts +18 -0
- package/lib/modules/Schedule/index.js +81 -0
- package/lib/modules/Schedule/type.d.ts +157 -0
- package/lib/modules/Schedule/type.js +17 -0
- package/lib/modules/Schedule/types.d.ts +182 -0
- package/lib/modules/Schedule/types.js +17 -0
- package/lib/modules/Schedule/utils.d.ts +67 -0
- package/lib/modules/Schedule/utils.js +600 -0
- package/lib/modules/Step/index.d.ts +14 -3
- package/lib/modules/Step/index.js +38 -1
- package/lib/modules/Summary/index.d.ts +12 -5
- package/lib/modules/Summary/index.js +15 -1
- package/lib/modules/Summary/types.d.ts +23 -2
- package/lib/modules/Summary/utils.d.ts +14 -4
- package/lib/modules/Summary/utils.js +30 -1
- package/lib/modules/index.d.ts +10 -0
- package/lib/modules/index.js +21 -1
- package/lib/plugins/index.d.ts +3 -3
- package/lib/plugins/request.d.ts +3 -3
- package/lib/plugins/request.js +48 -11
- package/lib/plugins/shopStore.d.ts +1 -1
- package/lib/solution/BookingByStep/index.d.ts +97 -24
- package/lib/solution/BookingByStep/index.js +693 -145
- package/lib/solution/BookingByStep/types.d.ts +3 -10
- package/lib/solution/BookingByStep/types.js +37 -14
- package/lib/solution/BookingByStep/utils/products.d.ts +1 -1
- package/lib/solution/BookingByStep/utils/products.js +3 -0
- package/lib/solution/BookingByStep/utils/resources.d.ts +60 -6
- package/lib/solution/BookingByStep/utils/resources.js +286 -54
- package/lib/solution/BuyTickets/index.js +34 -20
- package/lib/solution/ShopDiscount/index.d.ts +4 -4
- package/lib/solution/ShopDiscount/index.js +10 -2
- package/lib/solution/ShopDiscount/types.d.ts +2 -2
- package/package.json +4 -2
- package/dist/core/index.d.ts.map +0 -1
- package/dist/effects/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/modules/Account/index.d.ts.map +0 -1
- package/dist/modules/Account/types.d.ts.map +0 -1
- package/dist/modules/AccountList/types.d.ts.map +0 -1
- package/dist/modules/Cart/index.d.ts.map +0 -1
- package/dist/modules/Cart/types.d.ts.map +0 -1
- package/dist/modules/Date/types.d.ts.map +0 -1
- package/dist/modules/Date/utils.d.ts.map +0 -1
- package/dist/modules/Guests/index.d.ts.map +0 -1
- package/dist/modules/Guests/types.d.ts.map +0 -1
- package/dist/modules/Order/index.d.ts.map +0 -1
- package/dist/modules/Order/types.d.ts.map +0 -1
- package/dist/modules/Payment/index.d.ts.map +0 -1
- package/dist/modules/Payment/types.d.ts.map +0 -1
- package/dist/modules/Product/index.d.ts.map +0 -1
- package/dist/modules/Product/types.d.ts.map +0 -1
- package/dist/modules/ProductList/types.d.ts.map +0 -1
- package/dist/modules/Resource/index.d.ts.map +0 -1
- package/dist/modules/Resource/types.d.ts.map +0 -1
- package/dist/modules/Resource/utils.d.ts.map +0 -1
- package/dist/modules/Rules/types.d.ts.map +0 -1
- package/dist/modules/Step/index.d.ts.map +0 -1
- package/dist/modules/Step/tyeps.d.ts.map +0 -1
- package/dist/modules/Summary/index.d.ts.map +0 -1
- package/dist/modules/Summary/types.d.ts.map +0 -1
- package/dist/modules/Summary/utils.d.ts.map +0 -1
- package/dist/modules/index.d.ts.map +0 -1
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/request.d.ts.map +0 -1
- package/dist/plugins/shopStore.d.ts.map +0 -1
- package/dist/plugins/window.d.ts.map +0 -1
- package/dist/solution/BookingByStep/types.d.ts.map +0 -1
- package/dist/solution/BookingByStep/utils/products.d.ts.map +0 -1
- package/dist/solution/BuyTickets/index.d.ts.map +0 -1
- package/dist/solution/BuyTickets/types.d.ts.map +0 -1
- package/dist/solution/PlaceOrder/index.d.ts.map +0 -1
- package/dist/solution/ShopDiscount/types.d.ts.map +0 -1
- package/dist/solution/ShopDiscount/utils.d.ts.map +0 -1
- package/dist/solution/index.d.ts.map +0 -1
- package/dist/store/createStore.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import { ProductList, CartModule } from
|
|
2
|
-
import { AccountModule } from "../../modules/Account";
|
|
3
|
-
import { AccountListModule } from "../../modules/AccountList";
|
|
4
|
-
import { DateModule } from "../../modules/Date";
|
|
5
|
-
import { GuestListModule } from "../../modules/Guests";
|
|
6
|
-
import { OrderModule } from "../../modules/Order";
|
|
7
|
-
import { PaymentModule } from "../../modules/Payment";
|
|
8
|
-
import { ResourceListModule } from "../../modules/Resource";
|
|
9
|
-
import { StepModule } from "../../modules/Step";
|
|
10
|
-
import { SummaryModule } from "../../modules/Summary";
|
|
1
|
+
import { ProductList, CartModule, Product, AccountModule, AccountListModule, DateModule, GuestListModule, OrderModule, PaymentModule, ResourceListModule, StepModule, SummaryModule, ScheduleModule } from '../../modules';
|
|
11
2
|
export interface BookingByStepState {
|
|
12
3
|
cart: CartModule;
|
|
13
4
|
summary: SummaryModule;
|
|
@@ -20,6 +11,8 @@ export interface BookingByStepState {
|
|
|
20
11
|
accountList: AccountListModule;
|
|
21
12
|
order: OrderModule;
|
|
22
13
|
payment: PaymentModule;
|
|
14
|
+
currentProduct?: Product;
|
|
15
|
+
schedule: ScheduleModule;
|
|
23
16
|
}
|
|
24
17
|
export declare function createModule<T extends keyof BookingByStepState>(moduleName: T, solutionName: string, name?: string, version?: string): BookingByStepState[T];
|
|
25
18
|
export declare enum BookingByStepHooks {
|
|
@@ -24,30 +24,53 @@ __export(types_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(types_exports);
|
|
26
26
|
var import_modules = require("../../modules");
|
|
27
|
-
var import_AccountList = require("../../modules/AccountList");
|
|
28
|
-
var import_Date = require("../../modules/Date");
|
|
29
|
-
var import_Order = require("../../modules/Order");
|
|
30
|
-
var import_Payment = require("../../modules/Payment");
|
|
31
|
-
var import_Step = require("../../modules/Step");
|
|
32
|
-
var import_Summary = require("../../modules/Summary");
|
|
33
27
|
function createModule(moduleName, solutionName, name, version) {
|
|
34
28
|
switch (moduleName) {
|
|
35
29
|
case "cart":
|
|
36
|
-
return new import_modules.CartModule(
|
|
30
|
+
return new import_modules.CartModule(
|
|
31
|
+
`${solutionName}_${name || moduleName}`,
|
|
32
|
+
version
|
|
33
|
+
);
|
|
37
34
|
case "summary":
|
|
38
|
-
return new
|
|
35
|
+
return new import_modules.SummaryModule(
|
|
36
|
+
`${solutionName}_${name || moduleName}`,
|
|
37
|
+
version
|
|
38
|
+
);
|
|
39
39
|
case "step":
|
|
40
|
-
return new
|
|
40
|
+
return new import_modules.StepModule(
|
|
41
|
+
`${solutionName}_${name || moduleName}`,
|
|
42
|
+
version
|
|
43
|
+
);
|
|
41
44
|
case "products":
|
|
42
|
-
return new import_modules.ProductList(
|
|
45
|
+
return new import_modules.ProductList(
|
|
46
|
+
`${solutionName}_${name || moduleName}`,
|
|
47
|
+
version
|
|
48
|
+
);
|
|
43
49
|
case "date":
|
|
44
|
-
return new
|
|
50
|
+
return new import_modules.DateModule(
|
|
51
|
+
`${solutionName}_${name || moduleName}`,
|
|
52
|
+
version
|
|
53
|
+
);
|
|
45
54
|
case "accountList":
|
|
46
|
-
return new
|
|
55
|
+
return new import_modules.AccountListModule(
|
|
56
|
+
`${solutionName}_${name || moduleName}`,
|
|
57
|
+
version
|
|
58
|
+
);
|
|
47
59
|
case "order":
|
|
48
|
-
return new
|
|
60
|
+
return new import_modules.OrderModule(
|
|
61
|
+
`${solutionName}_${name || moduleName}`,
|
|
62
|
+
version
|
|
63
|
+
);
|
|
49
64
|
case "payment":
|
|
50
|
-
return new
|
|
65
|
+
return new import_modules.PaymentModule(
|
|
66
|
+
`${solutionName}_${name || moduleName}`,
|
|
67
|
+
version
|
|
68
|
+
);
|
|
69
|
+
case "schedule":
|
|
70
|
+
return new import_modules.ScheduleModule(
|
|
71
|
+
`${solutionName}_${name || moduleName}`,
|
|
72
|
+
version
|
|
73
|
+
);
|
|
51
74
|
default:
|
|
52
75
|
throw new Error(`Unknown module type: ${moduleName}`);
|
|
53
76
|
}
|
|
@@ -50,6 +50,9 @@ var getAvailableProductResources = (products) => {
|
|
|
50
50
|
if (tempResourceIds) {
|
|
51
51
|
rule.resourceFormIds = [...new Set(tempResourceIds)];
|
|
52
52
|
}
|
|
53
|
+
if (product == null ? void 0 : product._schedule) {
|
|
54
|
+
rule.schedule = product == null ? void 0 : product._schedule;
|
|
55
|
+
}
|
|
53
56
|
rules.push(rule);
|
|
54
57
|
});
|
|
55
58
|
return { resourceIds: [...new Set(resourceIds)], rules, resourcesMap };
|
|
@@ -27,15 +27,17 @@ interface BookingItem {
|
|
|
27
27
|
* @return {*}
|
|
28
28
|
* @Author: zhiwei.Wang
|
|
29
29
|
*/
|
|
30
|
-
export declare const getIsUsableByTimeItem: ({ timeSlice, time, resource, currentCount }: {
|
|
30
|
+
export declare const getIsUsableByTimeItem: ({ timeSlice, time, resource, currentCount, resourcesUseableMap, }: {
|
|
31
31
|
timeSlice: TimeSliceItem;
|
|
32
32
|
time: any;
|
|
33
33
|
resource: ResourceItem;
|
|
34
34
|
currentCount: number;
|
|
35
|
+
resourcesUseableMap: Record<string, boolean>;
|
|
35
36
|
}) => {
|
|
36
37
|
afterToDay: boolean;
|
|
37
38
|
capacity: boolean;
|
|
38
39
|
usable: boolean;
|
|
40
|
+
remainingCapacity: number;
|
|
39
41
|
};
|
|
40
42
|
/**
|
|
41
43
|
* @title: 获取商品下绑定的资源列表
|
|
@@ -45,8 +47,7 @@ export declare const getIsUsableByTimeItem: ({ timeSlice, time, resource, curren
|
|
|
45
47
|
* @return {*}
|
|
46
48
|
* @Author: zhiwei.Wang
|
|
47
49
|
*/
|
|
48
|
-
export declare const getResourcesByProduct: (resourcesMap: Record<string, ResourceItem>,
|
|
49
|
-
export declare const getSumCapacity: () => number;
|
|
50
|
+
export declare const getResourcesByProduct: (resourcesMap: Record<string, ResourceItem>, resources: ResourceItem[], selectedResources: number[], capacity?: number) => ResourceItem[];
|
|
50
51
|
/**
|
|
51
52
|
* @title: 获取资源列表
|
|
52
53
|
* @description:
|
|
@@ -54,7 +55,7 @@ export declare const getSumCapacity: () => number;
|
|
|
54
55
|
* @Author: zhiwei.Wang
|
|
55
56
|
* @Date: 2024-01-09 13:38
|
|
56
57
|
*/
|
|
57
|
-
export declare const formatResources: ({ booking, resources }: {
|
|
58
|
+
export declare const formatResources: ({ booking, resources, }: {
|
|
58
59
|
booking: BookingItem;
|
|
59
60
|
resources: ResourceItem[];
|
|
60
61
|
}) => {
|
|
@@ -67,11 +68,13 @@ export declare const formatResources: ({ booking, resources }: {
|
|
|
67
68
|
* @return {*}
|
|
68
69
|
* @Author: zhiwei.Wang
|
|
69
70
|
*/
|
|
70
|
-
export declare const getTimeSlicesByResource: ({ resource, duration, split, currentDate }: {
|
|
71
|
+
export declare const getTimeSlicesByResource: ({ resource, duration, split, currentDate, capacity, resourcesUseableMap, }: {
|
|
71
72
|
resource: ResourceItem;
|
|
72
73
|
duration: number;
|
|
73
74
|
split: number;
|
|
74
75
|
currentDate: DateType | string;
|
|
76
|
+
capacity?: number | undefined;
|
|
77
|
+
resourcesUseableMap?: Record<string, boolean> | undefined;
|
|
75
78
|
}) => TimeSliceItem[];
|
|
76
79
|
/**
|
|
77
80
|
* @title: 获取时间切片列表的交集
|
|
@@ -100,11 +103,62 @@ export declare const getResourcesByIds: (resourcesMap: Record<string, ResourceIt
|
|
|
100
103
|
* @return {*}
|
|
101
104
|
* @Author: zhiwei.Wang
|
|
102
105
|
*/
|
|
103
|
-
export declare const getTimeSlicesByResources: ({ resourceIds, resourcesMap, duration, currentDate, split }: {
|
|
106
|
+
export declare const getTimeSlicesByResources: ({ resourceIds, resourcesMap, duration, currentDate, split, capacity, resourcesUseableMap, }: {
|
|
104
107
|
resourceIds: number[];
|
|
105
108
|
resourcesMap: any;
|
|
106
109
|
duration: number;
|
|
107
110
|
currentDate: DateType | string;
|
|
108
111
|
split: number;
|
|
112
|
+
capacity?: number | undefined;
|
|
113
|
+
resourcesUseableMap: Record<string, boolean>;
|
|
109
114
|
}) => any[];
|
|
115
|
+
/**
|
|
116
|
+
* @title: 获取其他人的已选资源
|
|
117
|
+
* @description:
|
|
118
|
+
* @param {CartItem[]} cartItems
|
|
119
|
+
* @param {number | string} accountId
|
|
120
|
+
* @return {*}
|
|
121
|
+
* @Author: jinglin.tan
|
|
122
|
+
*/
|
|
123
|
+
export declare const getOthersSelectedResources: (cartItems: CartItem[], accountId: number | string, resourcesMap: Record<string, ResourceItem>) => number[];
|
|
124
|
+
/**
|
|
125
|
+
* @title: 获取其他购物车内商品的已选资源
|
|
126
|
+
* @description:
|
|
127
|
+
* @param {CartItem[]} cartItems
|
|
128
|
+
* @param {number | string} accountId
|
|
129
|
+
* @return {*}
|
|
130
|
+
* @Author: jinglin.tan
|
|
131
|
+
*/
|
|
132
|
+
export declare const getOthersCartSelectedResources: (cartItems: CartItem[], cartItemId: number | string, resourcesMap: Record<string, ResourceItem>) => number[];
|
|
133
|
+
interface CapacityItem {
|
|
134
|
+
id: number;
|
|
135
|
+
value: number;
|
|
136
|
+
name: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @title: 基于选择的商品格式化容量
|
|
140
|
+
* @description:
|
|
141
|
+
* @param {any} param1
|
|
142
|
+
* @return {*}
|
|
143
|
+
* @Author: zhiwei.Wang
|
|
144
|
+
*/
|
|
145
|
+
export declare const formatDefaultCapacitys: ({ capacity, product_bundle, }: any) => CapacityItem[];
|
|
146
|
+
/**
|
|
147
|
+
* @title: 获取总容量
|
|
148
|
+
* @description:
|
|
149
|
+
* @param {object} capacity 为 formatDefaultCapacitys()的结果
|
|
150
|
+
* @return {*}
|
|
151
|
+
* @Author: zhiwei.Wang
|
|
152
|
+
*/
|
|
153
|
+
export declare const getSumCapacity: ({ capacity }: {
|
|
154
|
+
capacity: CapacityItem[];
|
|
155
|
+
}) => number;
|
|
156
|
+
/**
|
|
157
|
+
* @title: 传入资源,如果有子资源,会根据组合资源的 capacity 计算修改子资源的 capacity
|
|
158
|
+
* @description:
|
|
159
|
+
* @param {object} resource
|
|
160
|
+
* @return {*}
|
|
161
|
+
* @Author: jinglin.tan
|
|
162
|
+
*/
|
|
163
|
+
export declare const checkSubResourcesCapacity: (resource: ResourceItem) => void;
|
|
110
164
|
export {};
|
|
@@ -29,8 +29,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
// src/solution/BookingByStep/utils/resources.ts
|
|
30
30
|
var resources_exports = {};
|
|
31
31
|
__export(resources_exports, {
|
|
32
|
+
checkSubResourcesCapacity: () => checkSubResourcesCapacity,
|
|
33
|
+
formatDefaultCapacitys: () => formatDefaultCapacitys,
|
|
32
34
|
formatResources: () => formatResources,
|
|
33
35
|
getIsUsableByTimeItem: () => getIsUsableByTimeItem,
|
|
36
|
+
getOthersCartSelectedResources: () => getOthersCartSelectedResources,
|
|
37
|
+
getOthersSelectedResources: () => getOthersSelectedResources,
|
|
34
38
|
getResourcesByIds: () => getResourcesByIds,
|
|
35
39
|
getResourcesByProduct: () => getResourcesByProduct,
|
|
36
40
|
getSumCapacity: () => getSumCapacity,
|
|
@@ -71,85 +75,159 @@ var formatResource = (resourceItem, booking) => {
|
|
|
71
75
|
_resourceItem.labelText = _resourceItem.main_field;
|
|
72
76
|
return _resourceItem;
|
|
73
77
|
};
|
|
74
|
-
var checkCapacity = ({
|
|
78
|
+
var checkCapacity = ({
|
|
79
|
+
event_list,
|
|
80
|
+
timeSlice,
|
|
81
|
+
resource,
|
|
82
|
+
currentCount = 1
|
|
83
|
+
}) => {
|
|
75
84
|
if (currentCount > resource.capacity) {
|
|
76
|
-
return
|
|
85
|
+
return {
|
|
86
|
+
status: false,
|
|
87
|
+
capacity: resource.capacity
|
|
88
|
+
};
|
|
77
89
|
}
|
|
78
90
|
let conflict = (event_list || []).filter((d) => {
|
|
79
|
-
return isConflict(
|
|
91
|
+
return isConflict(
|
|
92
|
+
{ start_at: d.start_at, end_at: d.end_at },
|
|
93
|
+
{ start_at: timeSlice.start_at, end_at: timeSlice.end_at }
|
|
94
|
+
);
|
|
80
95
|
});
|
|
96
|
+
let conflictCount = getUseableEventCount(conflict, resource.capacity);
|
|
81
97
|
if (resource.resourceType === "single") {
|
|
82
98
|
if (conflict.length === 0) {
|
|
83
|
-
return
|
|
99
|
+
return {
|
|
100
|
+
status: true,
|
|
101
|
+
capacity: conflictCount
|
|
102
|
+
};
|
|
84
103
|
} else {
|
|
85
|
-
return
|
|
104
|
+
return {
|
|
105
|
+
status: false,
|
|
106
|
+
capacity: conflictCount
|
|
107
|
+
};
|
|
86
108
|
}
|
|
87
109
|
} else {
|
|
88
|
-
let conflictCount = getUseableEventCount(conflict, resource.capacity);
|
|
89
110
|
if (currentCount <= conflictCount) {
|
|
90
|
-
return
|
|
111
|
+
return {
|
|
112
|
+
status: true,
|
|
113
|
+
capacity: conflictCount
|
|
114
|
+
};
|
|
91
115
|
} else {
|
|
92
|
-
return
|
|
116
|
+
return {
|
|
117
|
+
status: false,
|
|
118
|
+
capacity: conflictCount
|
|
119
|
+
};
|
|
93
120
|
}
|
|
94
121
|
}
|
|
95
122
|
};
|
|
96
|
-
var getIsUsableByTimeItem = ({
|
|
123
|
+
var getIsUsableByTimeItem = ({
|
|
124
|
+
timeSlice,
|
|
125
|
+
time,
|
|
126
|
+
resource,
|
|
127
|
+
currentCount = 1,
|
|
128
|
+
resourcesUseableMap = {}
|
|
129
|
+
}) => {
|
|
130
|
+
var _a;
|
|
97
131
|
let status = {
|
|
98
132
|
afterToDay: false,
|
|
99
133
|
capacity: false,
|
|
100
|
-
usable: false
|
|
134
|
+
usable: false,
|
|
135
|
+
remainingCapacity: 0
|
|
136
|
+
// 剩余容量
|
|
101
137
|
};
|
|
102
138
|
let earliest = (0, import_dayjs.default)();
|
|
103
139
|
if (!checkAfterToDay(timeSlice.start_at, earliest)) {
|
|
104
140
|
return status;
|
|
105
141
|
}
|
|
106
142
|
status.afterToDay = true;
|
|
107
|
-
|
|
143
|
+
const checkCapacityResult = checkCapacity({
|
|
144
|
+
event_list: time == null ? void 0 : time.event_list,
|
|
145
|
+
timeSlice,
|
|
146
|
+
resource,
|
|
147
|
+
currentCount
|
|
148
|
+
});
|
|
149
|
+
if ((_a = resource.combined_resource) == null ? void 0 : _a.status) {
|
|
150
|
+
const resourceIds = resource.combined_resource.resource_ids;
|
|
151
|
+
resourceIds.forEach((id) => {
|
|
152
|
+
if ((resourcesUseableMap == null ? void 0 : resourcesUseableMap[id]) === false) {
|
|
153
|
+
checkCapacityResult.status = false;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
if (!checkCapacityResult.status) {
|
|
108
158
|
return status;
|
|
109
159
|
}
|
|
160
|
+
status.remainingCapacity = checkCapacityResult.capacity;
|
|
110
161
|
status.capacity = true;
|
|
111
162
|
status.usable = true;
|
|
112
163
|
return status;
|
|
113
164
|
};
|
|
114
|
-
var getResourcesByProduct = (resourcesMap,
|
|
115
|
-
|
|
116
|
-
const product = cartItem._productOrigin;
|
|
117
|
-
return (((_a = product == null ? void 0 : product.product_resource) == null ? void 0 : _a.resources) || []).reduce((acc, item) => {
|
|
165
|
+
var getResourcesByProduct = (resourcesMap, resources, selectedResources, capacity = 1) => {
|
|
166
|
+
return (resources || []).reduce((acc, item) => {
|
|
118
167
|
if ((item == null ? void 0 : item.status) == 1) {
|
|
119
168
|
const form_id = item.id;
|
|
120
169
|
item.optional_resource = (item.optional_resource || []).filter(
|
|
121
170
|
(d) => item.default_resource.indexOf(d) == -1
|
|
122
171
|
);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
d.
|
|
128
|
-
|
|
129
|
-
|
|
172
|
+
let optional_resource = item.optional_resource.reduce(
|
|
173
|
+
(childAcc, d) => {
|
|
174
|
+
if (resourcesMap[d] && !selectedResources.includes(resourcesMap[d].id)) {
|
|
175
|
+
const combiningResources = [];
|
|
176
|
+
if (resourcesMap[d].combined_resource && resourcesMap[d].combined_resource.status === 1) {
|
|
177
|
+
resourcesMap[d].combined_resource.resource_ids.forEach(
|
|
178
|
+
(id) => {
|
|
179
|
+
if (resourcesMap[id]) {
|
|
180
|
+
combiningResources.push(resourcesMap[id]);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
childAcc.push(
|
|
186
|
+
Object.assign({}, resourcesMap[d], {
|
|
187
|
+
form_id,
|
|
188
|
+
resourceType: item.type,
|
|
189
|
+
children: combiningResources,
|
|
190
|
+
metadata: {
|
|
191
|
+
...resourcesMap[d].metadata,
|
|
192
|
+
combined_resource: resourcesMap[d].combined_resource
|
|
193
|
+
}
|
|
194
|
+
})
|
|
195
|
+
);
|
|
130
196
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
197
|
+
return childAcc;
|
|
198
|
+
},
|
|
199
|
+
[]
|
|
200
|
+
);
|
|
201
|
+
let default_resource = item.default_resource.reduce(
|
|
202
|
+
(childAcc, d) => {
|
|
203
|
+
if (resourcesMap[d] && !selectedResources.includes(resourcesMap[d].id)) {
|
|
204
|
+
const combiningResources = [];
|
|
205
|
+
if (resourcesMap[d].combined_resource && resourcesMap[d].combined_resource.status === 1) {
|
|
206
|
+
resourcesMap[d].combined_resource.resource_ids.forEach(
|
|
207
|
+
(id) => {
|
|
208
|
+
if (resourcesMap[id]) {
|
|
209
|
+
combiningResources.push(resourcesMap[id]);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
childAcc.push(
|
|
215
|
+
Object.assign({}, resourcesMap[d], {
|
|
216
|
+
form_id,
|
|
217
|
+
resourceType: item.type,
|
|
218
|
+
is_default: 1,
|
|
219
|
+
children: combiningResources,
|
|
220
|
+
metadata: {
|
|
221
|
+
...resourcesMap[d].metadata,
|
|
222
|
+
combined_resource: resourcesMap[d].combined_resource
|
|
223
|
+
}
|
|
224
|
+
})
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
return childAcc;
|
|
228
|
+
},
|
|
229
|
+
[]
|
|
230
|
+
);
|
|
153
231
|
item.renderList = optional_resource.concat(default_resource);
|
|
154
232
|
item.renderList = item.renderList.filter((d) => {
|
|
155
233
|
const latestTime = d.times.reduce((latest, current) => {
|
|
@@ -163,10 +241,10 @@ var getResourcesByProduct = (resourcesMap, cartItem, cartList) => {
|
|
|
163
241
|
return acc;
|
|
164
242
|
}, []);
|
|
165
243
|
};
|
|
166
|
-
var
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
244
|
+
var formatResources = ({
|
|
245
|
+
booking,
|
|
246
|
+
resources
|
|
247
|
+
}) => {
|
|
170
248
|
try {
|
|
171
249
|
let _list = [...resources];
|
|
172
250
|
let maps = {};
|
|
@@ -195,7 +273,9 @@ var getTimeSlicesByResource = ({
|
|
|
195
273
|
resource,
|
|
196
274
|
duration,
|
|
197
275
|
split = 10,
|
|
198
|
-
currentDate = (0, import_dayjs.default)()
|
|
276
|
+
currentDate = (0, import_dayjs.default)(),
|
|
277
|
+
capacity,
|
|
278
|
+
resourcesUseableMap = {}
|
|
199
279
|
}) => {
|
|
200
280
|
const { times } = resource;
|
|
201
281
|
const timeSlices = [];
|
|
@@ -219,8 +299,12 @@ var getTimeSlicesByResource = ({
|
|
|
219
299
|
timeSlice,
|
|
220
300
|
time,
|
|
221
301
|
resource,
|
|
222
|
-
currentCount:
|
|
302
|
+
currentCount: capacity || 1,
|
|
303
|
+
resourcesUseableMap
|
|
223
304
|
});
|
|
305
|
+
if ((resourcesUseableMap == null ? void 0 : resourcesUseableMap[resource.id]) !== false) {
|
|
306
|
+
resourcesUseableMap[resource.id] = _status.usable;
|
|
307
|
+
}
|
|
224
308
|
if (_status.usable) {
|
|
225
309
|
timeSlices.push({
|
|
226
310
|
...timeSlice,
|
|
@@ -256,19 +340,167 @@ var getTimeSlicesByResources = ({
|
|
|
256
340
|
resourcesMap,
|
|
257
341
|
duration,
|
|
258
342
|
currentDate,
|
|
259
|
-
split
|
|
343
|
+
split,
|
|
344
|
+
capacity,
|
|
345
|
+
resourcesUseableMap
|
|
260
346
|
}) => {
|
|
261
347
|
let resources = getResourcesByIds(resourcesMap, resourceIds);
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
348
|
+
resources.sort((a, b) => {
|
|
349
|
+
var _a, _b, _c, _d;
|
|
350
|
+
const aIsCombined = ((_b = (_a = a.metadata) == null ? void 0 : _a.combined_resource) == null ? void 0 : _b.status) === 1;
|
|
351
|
+
const bIsCombined = ((_d = (_c = b.metadata) == null ? void 0 : _c.combined_resource) == null ? void 0 : _d.status) === 1;
|
|
352
|
+
if (aIsCombined && !bIsCombined)
|
|
353
|
+
return 1;
|
|
354
|
+
if (!aIsCombined && bIsCombined)
|
|
355
|
+
return -1;
|
|
356
|
+
return 0;
|
|
357
|
+
});
|
|
358
|
+
let timeSliceList = resources.reduce(
|
|
359
|
+
(acc, item) => {
|
|
360
|
+
return acc.concat(
|
|
361
|
+
getTimeSlicesByResource({
|
|
362
|
+
resource: item,
|
|
363
|
+
duration,
|
|
364
|
+
split,
|
|
365
|
+
currentDate,
|
|
366
|
+
capacity,
|
|
367
|
+
resourcesUseableMap
|
|
368
|
+
})
|
|
369
|
+
);
|
|
370
|
+
},
|
|
371
|
+
[]
|
|
372
|
+
);
|
|
265
373
|
let intersection = getTimesIntersection(timeSliceList, resources.length);
|
|
266
374
|
return intersection;
|
|
267
375
|
};
|
|
376
|
+
var getOthersSelectedResources = (cartItems, accountId, resourcesMap) => {
|
|
377
|
+
return cartItems.reduce((acc, d) => {
|
|
378
|
+
var _a;
|
|
379
|
+
if (d.holder_id !== accountId) {
|
|
380
|
+
if ((_a = d._origin) == null ? void 0 : _a.resources) {
|
|
381
|
+
d._origin.resources.forEach((n) => {
|
|
382
|
+
if (n.metadata.combined_resource && n.metadata.combined_resource.status === 1) {
|
|
383
|
+
if (n.metadata.combined_resource.resource_ids.some(
|
|
384
|
+
(m) => acc.includes(m)
|
|
385
|
+
)) {
|
|
386
|
+
return acc;
|
|
387
|
+
}
|
|
388
|
+
acc.push(...n.metadata.combined_resource.resource_ids);
|
|
389
|
+
n.metadata.combined_resource.resource_ids.forEach((m) => {
|
|
390
|
+
resourcesMap[m].capacity -= n.num;
|
|
391
|
+
});
|
|
392
|
+
} else {
|
|
393
|
+
Object.values(resourcesMap).forEach((m) => {
|
|
394
|
+
if (m.combined_resource && m.combined_resource.status === 1) {
|
|
395
|
+
if (m.combined_resource.resource_ids.includes(n.id)) {
|
|
396
|
+
acc.push(m.id);
|
|
397
|
+
resourcesMap[m.id].capacity -= n.num;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
acc.push(n.id);
|
|
403
|
+
resourcesMap[n.id].capacity -= n.num;
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return acc;
|
|
408
|
+
}, []);
|
|
409
|
+
};
|
|
410
|
+
var getOthersCartSelectedResources = (cartItems, cartItemId, resourcesMap) => {
|
|
411
|
+
return cartItems.reduce((acc, d) => {
|
|
412
|
+
var _a;
|
|
413
|
+
if (d._id !== cartItemId) {
|
|
414
|
+
if ((_a = d._origin) == null ? void 0 : _a.resources) {
|
|
415
|
+
d._origin.resources.forEach((n) => {
|
|
416
|
+
if (n.metadata.combined_resource && n.metadata.combined_resource.status === 1) {
|
|
417
|
+
if (n.metadata.combined_resource.resource_ids.some(
|
|
418
|
+
(m) => acc.includes(m)
|
|
419
|
+
)) {
|
|
420
|
+
return acc;
|
|
421
|
+
}
|
|
422
|
+
acc.push(...n.metadata.combined_resource.resource_ids);
|
|
423
|
+
n.metadata.combined_resource.resource_ids.forEach((m) => {
|
|
424
|
+
resourcesMap[m].capacity -= n.num;
|
|
425
|
+
});
|
|
426
|
+
} else {
|
|
427
|
+
Object.values(resourcesMap).forEach((m) => {
|
|
428
|
+
if (m.combined_resource && m.combined_resource.status === 1) {
|
|
429
|
+
if (m.combined_resource.resource_ids.includes(n.id)) {
|
|
430
|
+
acc.push(m.id);
|
|
431
|
+
resourcesMap[m.id].capacity -= n.num;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
acc.push(n.id);
|
|
437
|
+
resourcesMap[n.id].capacity -= n.num;
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return acc;
|
|
442
|
+
}, []);
|
|
443
|
+
};
|
|
444
|
+
var formatDefaultCapacitys = ({
|
|
445
|
+
capacity,
|
|
446
|
+
product_bundle
|
|
447
|
+
}) => {
|
|
448
|
+
if ((capacity == null ? void 0 : capacity.type) === "package") {
|
|
449
|
+
return (product_bundle || []).map((d) => {
|
|
450
|
+
const id = d.bundle_product_id;
|
|
451
|
+
const item = ((capacity == null ? void 0 : capacity.package) || []).find(
|
|
452
|
+
(item2) => item2.product_id === id
|
|
453
|
+
);
|
|
454
|
+
return {
|
|
455
|
+
id,
|
|
456
|
+
value: item ? d.num || 0 : 0,
|
|
457
|
+
name: (item == null ? void 0 : item.name) || (d == null ? void 0 : d.title)
|
|
458
|
+
};
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
if ((capacity == null ? void 0 : capacity.type) === "custom") {
|
|
462
|
+
return ((capacity == null ? void 0 : capacity.custom) || []).map((d) => {
|
|
463
|
+
return {
|
|
464
|
+
id: d.id,
|
|
465
|
+
value: d.min,
|
|
466
|
+
name: d.name
|
|
467
|
+
};
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
return [{ id: 0, value: 1, name: "" }];
|
|
471
|
+
};
|
|
472
|
+
var getSumCapacity = ({ capacity }) => {
|
|
473
|
+
let sum = 0;
|
|
474
|
+
for (let item of capacity || []) {
|
|
475
|
+
sum += item.value;
|
|
476
|
+
}
|
|
477
|
+
return sum;
|
|
478
|
+
};
|
|
479
|
+
var checkSubResourcesCapacity = (resource) => {
|
|
480
|
+
if (resource.children && resource.children.length) {
|
|
481
|
+
let countCapacity = resource.capacity;
|
|
482
|
+
resource.children.forEach((child, index) => {
|
|
483
|
+
if (index === resource.children.length - 1) {
|
|
484
|
+
child.capacity = countCapacity;
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
if (child.capacity <= countCapacity) {
|
|
488
|
+
countCapacity -= child.capacity;
|
|
489
|
+
} else {
|
|
490
|
+
child.capacity = countCapacity;
|
|
491
|
+
countCapacity = 0;
|
|
492
|
+
}
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
};
|
|
268
496
|
// Annotate the CommonJS export names for ESM import in node:
|
|
269
497
|
0 && (module.exports = {
|
|
498
|
+
checkSubResourcesCapacity,
|
|
499
|
+
formatDefaultCapacitys,
|
|
270
500
|
formatResources,
|
|
271
501
|
getIsUsableByTimeItem,
|
|
502
|
+
getOthersCartSelectedResources,
|
|
503
|
+
getOthersSelectedResources,
|
|
272
504
|
getResourcesByIds,
|
|
273
505
|
getResourcesByProduct,
|
|
274
506
|
getSumCapacity,
|