@pisell/pisellos 0.0.37 → 0.0.39
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/Cart/utils.d.ts +0 -1
- package/dist/modules/Cart/utils.js +8 -5
- package/dist/modules/Schedule/index.d.ts +4 -1
- package/dist/modules/Schedule/index.js +15 -0
- package/dist/modules/Schedule/types.d.ts +5 -0
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.js +2 -1
- package/dist/solution/BookingByStep/index.d.ts +4 -3
- package/dist/solution/BookingByStep/index.js +20 -4
- package/dist/solution/BookingByStep/types.d.ts +2 -1
- package/dist/solution/BookingByStep/types.js +3 -1
- package/dist/solution/BookingByStep/utils/resources.js +14 -1
- package/lib/modules/Cart/utils.d.ts +0 -1
- package/lib/modules/Cart/utils.js +8 -5
- package/lib/modules/Schedule/index.d.ts +4 -1
- package/lib/modules/Schedule/index.js +9 -0
- package/lib/modules/Schedule/types.d.ts +5 -0
- package/lib/modules/index.d.ts +1 -0
- package/lib/modules/index.js +3 -1
- package/lib/solution/BookingByStep/index.d.ts +4 -3
- package/lib/solution/BookingByStep/index.js +8 -2
- package/lib/solution/BookingByStep/types.d.ts +2 -1
- package/lib/solution/BookingByStep/types.js +2 -0
- package/lib/solution/BookingByStep/utils/resources.js +14 -1
- package/package.json +1 -1
|
@@ -38,8 +38,8 @@ export var createCartItemOrigin = function createCartItemOrigin() {
|
|
|
38
38
|
// 资源相关
|
|
39
39
|
// 资源状态 -固定
|
|
40
40
|
like_status: "common",
|
|
41
|
-
// 资源类型 -
|
|
42
|
-
relation_type: "form",
|
|
41
|
+
// 资源类型 - 固定--谭景琳备注:马天宇说现在平行资源是不传这个的
|
|
42
|
+
// relation_type: "form",
|
|
43
43
|
// 所选资源
|
|
44
44
|
resources: null,
|
|
45
45
|
// 日程id - 固定
|
|
@@ -233,7 +233,7 @@ export var formatResourceToCartItemOrigin = function formatResourceToCartItemOri
|
|
|
233
233
|
if (resource !== null && resource !== void 0 && (_resource$children = resource.children) !== null && _resource$children !== void 0 && _resource$children.length) {
|
|
234
234
|
checkResourcesFormat(resource.children, childArr);
|
|
235
235
|
}
|
|
236
|
-
|
|
236
|
+
var obj = {
|
|
237
237
|
relation_type: "form",
|
|
238
238
|
like_status: "common",
|
|
239
239
|
id: resource.id,
|
|
@@ -242,9 +242,12 @@ export var formatResourceToCartItemOrigin = function formatResourceToCartItemOri
|
|
|
242
242
|
form_id: resource.form_id,
|
|
243
243
|
relation_id: resource.id,
|
|
244
244
|
capacity: (resource === null || resource === void 0 ? void 0 : resource.capacity) || 0,
|
|
245
|
-
children: childArr,
|
|
246
245
|
metadata: (resource === null || resource === void 0 ? void 0 : resource.metadata) || {} // 后端可以在这里挂一个前端用于计算的数据
|
|
247
|
-
}
|
|
246
|
+
};
|
|
247
|
+
if (childArr.length) {
|
|
248
|
+
obj.children = childArr;
|
|
249
|
+
}
|
|
250
|
+
arr.push(obj);
|
|
248
251
|
});
|
|
249
252
|
};
|
|
250
253
|
checkResourcesFormat(resources, origin.resources);
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { ScheduleModuleAPI } from './types';
|
|
3
|
+
import { ScheduleModuleAPI, ScheduleAvailabilityDateItem, ScheduleItem } from './types';
|
|
4
4
|
export declare class ScheduleModule extends BaseModule implements Module, ScheduleModuleAPI {
|
|
5
5
|
protected defaultName: string;
|
|
6
6
|
protected defaultVersion: string;
|
|
7
7
|
private store;
|
|
8
8
|
constructor(name?: string, version?: string);
|
|
9
9
|
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
|
|
10
|
+
setScheduleList(list: ScheduleItem[]): void;
|
|
11
|
+
setAvailabilityDateList(list: ScheduleAvailabilityDateItem[]): void;
|
|
12
|
+
getAvailabilityDateList(): ScheduleAvailabilityDateItem[];
|
|
10
13
|
}
|
|
@@ -51,6 +51,21 @@ export var ScheduleModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
51
51
|
}
|
|
52
52
|
return initialize;
|
|
53
53
|
}()
|
|
54
|
+
}, {
|
|
55
|
+
key: "setScheduleList",
|
|
56
|
+
value: function setScheduleList(list) {
|
|
57
|
+
this.store.scheduleList = list;
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
key: "setAvailabilityDateList",
|
|
61
|
+
value: function setAvailabilityDateList(list) {
|
|
62
|
+
this.store.availabilityDateList = list;
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
key: "getAvailabilityDateList",
|
|
66
|
+
value: function getAvailabilityDateList() {
|
|
67
|
+
return this.store.availabilityDateList;
|
|
68
|
+
}
|
|
54
69
|
}]);
|
|
55
70
|
return ScheduleModule;
|
|
56
71
|
}(BaseModule);
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import dayjs from "dayjs";
|
|
2
2
|
export interface ScheduleState {
|
|
3
3
|
scheduleList: ScheduleItem[];
|
|
4
|
+
availabilityDateList: ScheduleAvailabilityDateItem[];
|
|
4
5
|
}
|
|
6
|
+
export type ScheduleAvailabilityDateItem = {
|
|
7
|
+
date: string;
|
|
8
|
+
schedule_id: number[];
|
|
9
|
+
};
|
|
5
10
|
export interface ScheduleModuleAPI {
|
|
6
11
|
}
|
|
7
12
|
export type ScheduleItem = {
|
package/dist/modules/index.d.ts
CHANGED
package/dist/modules/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { BookingByStepState } from "./types";
|
|
|
5
5
|
import { CartItem, IUpdateItemParams, ProductData } from "../../modules";
|
|
6
6
|
import { Account } from "../../modules/Account/types";
|
|
7
7
|
import { IStep } from "../../modules/Step/tyeps";
|
|
8
|
-
import { TimeSliceItem
|
|
8
|
+
import { TimeSliceItem } from "./utils/resources";
|
|
9
9
|
import { ITime } from "../../modules/Date/types";
|
|
10
10
|
export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
11
11
|
protected defaultName: string;
|
|
@@ -33,12 +33,13 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
33
33
|
collection?: number | string[];
|
|
34
34
|
schedule_ids?: number[];
|
|
35
35
|
}): Promise<any>;
|
|
36
|
+
loadProductByScheduleDate(date: string): void;
|
|
36
37
|
loadAllSchedule(): Promise<void>;
|
|
37
38
|
loadAvailableDate({ startDate, endDate, custom_page_id }: {
|
|
38
39
|
startDate: string;
|
|
39
40
|
endDate: string;
|
|
40
41
|
custom_page_id?: number;
|
|
41
|
-
}): Promise<
|
|
42
|
+
}): Promise<void>;
|
|
42
43
|
storeProduct(productData: ProductData): Promise<void>;
|
|
43
44
|
addAccount(accounts: Account[]): Promise<void>;
|
|
44
45
|
getAccounts(): Promise<(Account | null)[]>;
|
|
@@ -94,7 +95,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
94
95
|
id: number | undefined;
|
|
95
96
|
_id: string;
|
|
96
97
|
product: ProductData | undefined;
|
|
97
|
-
resources: ResourceItem[];
|
|
98
|
+
resources: import("./utils/resources").ResourceItem[];
|
|
98
99
|
holder_id: string | number;
|
|
99
100
|
holder_name: string | undefined;
|
|
100
101
|
} | undefined;
|
|
@@ -89,7 +89,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
89
89
|
targetCacheData = data[this.otherParams.cacheId];
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
moduleArr = ["accountList", "cart", "summary", "step", "products", "date", "order", "payment"];
|
|
92
|
+
moduleArr = ["accountList", "cart", "schedule", "summary", "step", "products", "date", "order", "payment"];
|
|
93
93
|
moduleArr.forEach(function (step) {
|
|
94
94
|
var targetModule = createModule(step, _this2.name);
|
|
95
95
|
if (targetModule) {
|
|
@@ -207,7 +207,22 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
207
207
|
return _loadProducts.apply(this, arguments);
|
|
208
208
|
}
|
|
209
209
|
return loadProducts;
|
|
210
|
-
}()
|
|
210
|
+
}()
|
|
211
|
+
}, {
|
|
212
|
+
key: "loadProductByScheduleDate",
|
|
213
|
+
value: function loadProductByScheduleDate(date) {
|
|
214
|
+
var scheduleList = this.store.schedule.getAvailabilityDateList();
|
|
215
|
+
var scheduleIds = scheduleList.filter(function (n) {
|
|
216
|
+
return n.date === date;
|
|
217
|
+
}).flatMap(function (n) {
|
|
218
|
+
return n.schedule_id;
|
|
219
|
+
});
|
|
220
|
+
this.loadProducts({
|
|
221
|
+
schedule_ids: scheduleIds
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// 加载当前店铺下所有 schedule
|
|
211
226
|
}, {
|
|
212
227
|
key: "loadAllSchedule",
|
|
213
228
|
value: function () {
|
|
@@ -220,7 +235,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
220
235
|
return this.request.get("/schedule");
|
|
221
236
|
case 2:
|
|
222
237
|
scheduleList = _context3.sent;
|
|
223
|
-
|
|
238
|
+
this.store.schedule.setScheduleList(scheduleList.data);
|
|
239
|
+
case 4:
|
|
224
240
|
case "end":
|
|
225
241
|
return _context3.stop();
|
|
226
242
|
}
|
|
@@ -248,7 +264,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
248
264
|
});
|
|
249
265
|
case 3:
|
|
250
266
|
res = _context4.sent;
|
|
251
|
-
|
|
267
|
+
this.store.schedule.setAvailabilityDateList(res.data.date_list);
|
|
252
268
|
case 5:
|
|
253
269
|
case "end":
|
|
254
270
|
return _context4.stop();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProductList, CartModule, Product, AccountModule, AccountListModule, DateModule, GuestListModule, OrderModule, PaymentModule, ResourceListModule, StepModule, SummaryModule } from "../../modules";
|
|
1
|
+
import { ProductList, CartModule, Product, AccountModule, AccountListModule, DateModule, GuestListModule, OrderModule, PaymentModule, ResourceListModule, StepModule, SummaryModule, ScheduleModule } from "../../modules";
|
|
2
2
|
export interface BookingByStepState {
|
|
3
3
|
cart: CartModule;
|
|
4
4
|
summary: SummaryModule;
|
|
@@ -12,6 +12,7 @@ export interface BookingByStepState {
|
|
|
12
12
|
order: OrderModule;
|
|
13
13
|
payment: PaymentModule;
|
|
14
14
|
currentProduct: Product;
|
|
15
|
+
schedule: ScheduleModule;
|
|
15
16
|
}
|
|
16
17
|
export declare function createModule<T extends keyof BookingByStepState>(moduleName: T, solutionName: string, name?: string, version?: string): BookingByStepState[T];
|
|
17
18
|
export declare enum BookingByStepHooks {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProductList, CartModule, AccountListModule, DateModule, OrderModule, PaymentModule, StepModule, SummaryModule } from "../../modules";
|
|
1
|
+
import { ProductList, CartModule, AccountListModule, DateModule, OrderModule, PaymentModule, StepModule, SummaryModule, ScheduleModule } from "../../modules";
|
|
2
2
|
export function createModule(moduleName, solutionName, name, version) {
|
|
3
3
|
switch (moduleName) {
|
|
4
4
|
case "cart":
|
|
@@ -17,6 +17,8 @@ export function createModule(moduleName, solutionName, name, version) {
|
|
|
17
17
|
return new OrderModule("".concat(solutionName, "_").concat(name || moduleName), version);
|
|
18
18
|
case "payment":
|
|
19
19
|
return new PaymentModule("".concat(solutionName, "_").concat(name || moduleName), version);
|
|
20
|
+
case "schedule":
|
|
21
|
+
return new ScheduleModule("".concat(solutionName, "_").concat(name || moduleName), version);
|
|
20
22
|
default:
|
|
21
23
|
throw new Error("Unknown module type: ".concat(moduleName));
|
|
22
24
|
}
|
|
@@ -224,10 +224,23 @@ export var getResourcesByProduct = function getResourcesByProduct(resourcesMap,
|
|
|
224
224
|
}, []);
|
|
225
225
|
var default_resource = item.default_resource.reduce(function (childAcc, d) {
|
|
226
226
|
if (resourcesMap[d] && !selectedResources.includes(resourcesMap[d].id) && capacity <= resourcesMap[d].capacity) {
|
|
227
|
+
// 拼装组合资源的数据
|
|
228
|
+
var combiningResources = [];
|
|
229
|
+
if (resourcesMap[d].combined_resource && resourcesMap[d].combined_resource.status === 1) {
|
|
230
|
+
resourcesMap[d].combined_resource.resource_ids.forEach(function (id) {
|
|
231
|
+
if (resourcesMap[id]) {
|
|
232
|
+
combiningResources.push(resourcesMap[id]);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
227
236
|
childAcc.push(Object.assign({}, resourcesMap[d], {
|
|
228
237
|
form_id: form_id,
|
|
229
238
|
resourceType: item.type,
|
|
230
|
-
is_default: 1
|
|
239
|
+
is_default: 1,
|
|
240
|
+
children: combiningResources,
|
|
241
|
+
metadata: _objectSpread(_objectSpread({}, resourcesMap[d].metadata), {}, {
|
|
242
|
+
combined_resource: resourcesMap[d].combined_resource
|
|
243
|
+
})
|
|
231
244
|
}));
|
|
232
245
|
}
|
|
233
246
|
return childAcc;
|
|
@@ -77,8 +77,8 @@ var createCartItemOrigin = () => {
|
|
|
77
77
|
// 资源相关
|
|
78
78
|
// 资源状态 -固定
|
|
79
79
|
like_status: "common",
|
|
80
|
-
// 资源类型 -
|
|
81
|
-
relation_type: "form",
|
|
80
|
+
// 资源类型 - 固定--谭景琳备注:马天宇说现在平行资源是不传这个的
|
|
81
|
+
// relation_type: "form",
|
|
82
82
|
// 所选资源
|
|
83
83
|
resources: null,
|
|
84
84
|
// 日程id - 固定
|
|
@@ -220,7 +220,7 @@ var formatResourceToCartItemOrigin = (params) => {
|
|
|
220
220
|
if ((_a = resource == null ? void 0 : resource.children) == null ? void 0 : _a.length) {
|
|
221
221
|
checkResourcesFormat(resource.children, childArr);
|
|
222
222
|
}
|
|
223
|
-
|
|
223
|
+
const obj = {
|
|
224
224
|
relation_type: "form",
|
|
225
225
|
like_status: "common",
|
|
226
226
|
id: resource.id,
|
|
@@ -229,10 +229,13 @@ var formatResourceToCartItemOrigin = (params) => {
|
|
|
229
229
|
form_id: resource.form_id,
|
|
230
230
|
relation_id: resource.id,
|
|
231
231
|
capacity: (resource == null ? void 0 : resource.capacity) || 0,
|
|
232
|
-
children: childArr,
|
|
233
232
|
metadata: (resource == null ? void 0 : resource.metadata) || {}
|
|
234
233
|
// 后端可以在这里挂一个前端用于计算的数据
|
|
235
|
-
}
|
|
234
|
+
};
|
|
235
|
+
if (childArr.length) {
|
|
236
|
+
obj.children = childArr;
|
|
237
|
+
}
|
|
238
|
+
arr.push(obj);
|
|
236
239
|
});
|
|
237
240
|
};
|
|
238
241
|
checkResourcesFormat(resources, origin.resources);
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { ScheduleModuleAPI } from './types';
|
|
3
|
+
import { ScheduleModuleAPI, ScheduleAvailabilityDateItem, ScheduleItem } from './types';
|
|
4
4
|
export declare class ScheduleModule extends BaseModule implements Module, ScheduleModuleAPI {
|
|
5
5
|
protected defaultName: string;
|
|
6
6
|
protected defaultVersion: string;
|
|
7
7
|
private store;
|
|
8
8
|
constructor(name?: string, version?: string);
|
|
9
9
|
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
|
|
10
|
+
setScheduleList(list: ScheduleItem[]): void;
|
|
11
|
+
setAvailabilityDateList(list: ScheduleAvailabilityDateItem[]): void;
|
|
12
|
+
getAvailabilityDateList(): ScheduleAvailabilityDateItem[];
|
|
10
13
|
}
|
|
@@ -34,6 +34,15 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
34
34
|
this.core = core;
|
|
35
35
|
this.store = options == null ? void 0 : options.store;
|
|
36
36
|
}
|
|
37
|
+
setScheduleList(list) {
|
|
38
|
+
this.store.scheduleList = list;
|
|
39
|
+
}
|
|
40
|
+
setAvailabilityDateList(list) {
|
|
41
|
+
this.store.availabilityDateList = list;
|
|
42
|
+
}
|
|
43
|
+
getAvailabilityDateList() {
|
|
44
|
+
return this.store.availabilityDateList;
|
|
45
|
+
}
|
|
37
46
|
};
|
|
38
47
|
// Annotate the CommonJS export names for ESM import in node:
|
|
39
48
|
0 && (module.exports = {
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import dayjs from "dayjs";
|
|
2
2
|
export interface ScheduleState {
|
|
3
3
|
scheduleList: ScheduleItem[];
|
|
4
|
+
availabilityDateList: ScheduleAvailabilityDateItem[];
|
|
4
5
|
}
|
|
6
|
+
export type ScheduleAvailabilityDateItem = {
|
|
7
|
+
date: string;
|
|
8
|
+
schedule_id: number[];
|
|
9
|
+
};
|
|
5
10
|
export interface ScheduleModuleAPI {
|
|
6
11
|
}
|
|
7
12
|
export type ScheduleItem = {
|
package/lib/modules/index.d.ts
CHANGED
package/lib/modules/index.js
CHANGED
|
@@ -28,6 +28,7 @@ __reExport(modules_exports, require("./Payment"), module.exports);
|
|
|
28
28
|
__reExport(modules_exports, require("./Resource"), module.exports);
|
|
29
29
|
__reExport(modules_exports, require("./Step"), module.exports);
|
|
30
30
|
__reExport(modules_exports, require("./Summary"), module.exports);
|
|
31
|
+
__reExport(modules_exports, require("./Schedule"), module.exports);
|
|
31
32
|
// Annotate the CommonJS export names for ESM import in node:
|
|
32
33
|
0 && (module.exports = {
|
|
33
34
|
...require("./Product"),
|
|
@@ -41,5 +42,6 @@ __reExport(modules_exports, require("./Summary"), module.exports);
|
|
|
41
42
|
...require("./Payment"),
|
|
42
43
|
...require("./Resource"),
|
|
43
44
|
...require("./Step"),
|
|
44
|
-
...require("./Summary")
|
|
45
|
+
...require("./Summary"),
|
|
46
|
+
...require("./Schedule")
|
|
45
47
|
});
|
|
@@ -5,7 +5,7 @@ import { BookingByStepState } from "./types";
|
|
|
5
5
|
import { CartItem, IUpdateItemParams, ProductData } from "../../modules";
|
|
6
6
|
import { Account } from "../../modules/Account/types";
|
|
7
7
|
import { IStep } from "../../modules/Step/tyeps";
|
|
8
|
-
import { TimeSliceItem
|
|
8
|
+
import { TimeSliceItem } from "./utils/resources";
|
|
9
9
|
import { ITime } from "../../modules/Date/types";
|
|
10
10
|
export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
11
11
|
protected defaultName: string;
|
|
@@ -33,12 +33,13 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
33
33
|
collection?: number | string[];
|
|
34
34
|
schedule_ids?: number[];
|
|
35
35
|
}): Promise<any>;
|
|
36
|
+
loadProductByScheduleDate(date: string): void;
|
|
36
37
|
loadAllSchedule(): Promise<void>;
|
|
37
38
|
loadAvailableDate({ startDate, endDate, custom_page_id }: {
|
|
38
39
|
startDate: string;
|
|
39
40
|
endDate: string;
|
|
40
41
|
custom_page_id?: number;
|
|
41
|
-
}): Promise<
|
|
42
|
+
}): Promise<void>;
|
|
42
43
|
storeProduct(productData: ProductData): Promise<void>;
|
|
43
44
|
addAccount(accounts: Account[]): Promise<void>;
|
|
44
45
|
getAccounts(): Promise<(Account | null)[]>;
|
|
@@ -94,7 +95,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
94
95
|
id: number | undefined;
|
|
95
96
|
_id: string;
|
|
96
97
|
product: ProductData | undefined;
|
|
97
|
-
resources: ResourceItem[];
|
|
98
|
+
resources: import("./utils/resources").ResourceItem[];
|
|
98
99
|
holder_id: string | number;
|
|
99
100
|
holder_name: string | undefined;
|
|
100
101
|
} | undefined;
|
|
@@ -68,7 +68,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
68
68
|
targetCacheData = data[this.otherParams.cacheId];
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
const moduleArr = ["accountList", "cart", "summary", "step", "products", "date", "order", "payment"];
|
|
71
|
+
const moduleArr = ["accountList", "cart", "schedule", "summary", "step", "products", "date", "order", "payment"];
|
|
72
72
|
moduleArr.forEach((step) => {
|
|
73
73
|
var _a2, _b2;
|
|
74
74
|
const targetModule = (0, import_types.createModule)(step, this.name);
|
|
@@ -148,9 +148,15 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
148
148
|
this.store.products.addProduct(productsData.data.list);
|
|
149
149
|
return productsData.data.list;
|
|
150
150
|
}
|
|
151
|
+
loadProductByScheduleDate(date) {
|
|
152
|
+
const scheduleList = this.store.schedule.getAvailabilityDateList();
|
|
153
|
+
const scheduleIds = scheduleList.filter((n) => n.date === date).flatMap((n) => n.schedule_id);
|
|
154
|
+
this.loadProducts({ schedule_ids: scheduleIds });
|
|
155
|
+
}
|
|
151
156
|
// 加载当前店铺下所有 schedule
|
|
152
157
|
async loadAllSchedule() {
|
|
153
158
|
const scheduleList = await this.request.get(`/schedule`);
|
|
159
|
+
this.store.schedule.setScheduleList(scheduleList.data);
|
|
154
160
|
}
|
|
155
161
|
// ui 层提供日期的起始范围,返回一个起始范围内日期的可用情况
|
|
156
162
|
async loadAvailableDate({ startDate, endDate, custom_page_id }) {
|
|
@@ -159,7 +165,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
159
165
|
end_date: endDate,
|
|
160
166
|
custom_page_id
|
|
161
167
|
});
|
|
162
|
-
|
|
168
|
+
this.store.schedule.setAvailabilityDateList(res.data.date_list);
|
|
163
169
|
}
|
|
164
170
|
async storeProduct(productData) {
|
|
165
171
|
const activeAccount = this.getActiveAccount();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProductList, CartModule, Product, AccountModule, AccountListModule, DateModule, GuestListModule, OrderModule, PaymentModule, ResourceListModule, StepModule, SummaryModule } from "../../modules";
|
|
1
|
+
import { ProductList, CartModule, Product, AccountModule, AccountListModule, DateModule, GuestListModule, OrderModule, PaymentModule, ResourceListModule, StepModule, SummaryModule, ScheduleModule } from "../../modules";
|
|
2
2
|
export interface BookingByStepState {
|
|
3
3
|
cart: CartModule;
|
|
4
4
|
summary: SummaryModule;
|
|
@@ -12,6 +12,7 @@ export interface BookingByStepState {
|
|
|
12
12
|
order: OrderModule;
|
|
13
13
|
payment: PaymentModule;
|
|
14
14
|
currentProduct: Product;
|
|
15
|
+
schedule: ScheduleModule;
|
|
15
16
|
}
|
|
16
17
|
export declare function createModule<T extends keyof BookingByStepState>(moduleName: T, solutionName: string, name?: string, version?: string): BookingByStepState[T];
|
|
17
18
|
export declare enum BookingByStepHooks {
|
|
@@ -42,6 +42,8 @@ function createModule(moduleName, solutionName, name, version) {
|
|
|
42
42
|
return new import_modules.OrderModule(`${solutionName}_${name || moduleName}`, version);
|
|
43
43
|
case "payment":
|
|
44
44
|
return new import_modules.PaymentModule(`${solutionName}_${name || moduleName}`, version);
|
|
45
|
+
case "schedule":
|
|
46
|
+
return new import_modules.ScheduleModule(`${solutionName}_${name || moduleName}`, version);
|
|
45
47
|
default:
|
|
46
48
|
throw new Error(`Unknown module type: ${moduleName}`);
|
|
47
49
|
}
|
|
@@ -145,10 +145,23 @@ var getResourcesByProduct = (resourcesMap, resources, selectedResources, capacit
|
|
|
145
145
|
}, []);
|
|
146
146
|
let default_resource = item.default_resource.reduce((childAcc, d) => {
|
|
147
147
|
if (resourcesMap[d] && !selectedResources.includes(resourcesMap[d].id) && capacity <= resourcesMap[d].capacity) {
|
|
148
|
+
const combiningResources = [];
|
|
149
|
+
if (resourcesMap[d].combined_resource && resourcesMap[d].combined_resource.status === 1) {
|
|
150
|
+
resourcesMap[d].combined_resource.resource_ids.forEach((id) => {
|
|
151
|
+
if (resourcesMap[id]) {
|
|
152
|
+
combiningResources.push(resourcesMap[id]);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
148
156
|
childAcc.push(Object.assign({}, resourcesMap[d], {
|
|
149
157
|
form_id,
|
|
150
158
|
resourceType: item.type,
|
|
151
|
-
is_default: 1
|
|
159
|
+
is_default: 1,
|
|
160
|
+
children: combiningResources,
|
|
161
|
+
metadata: {
|
|
162
|
+
...resourcesMap[d].metadata,
|
|
163
|
+
combined_resource: resourcesMap[d].combined_resource
|
|
164
|
+
}
|
|
152
165
|
}));
|
|
153
166
|
}
|
|
154
167
|
return childAcc;
|