@pisell/pisellos 0.0.225 → 0.0.227
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/changePrice.d.ts +2 -2
- package/dist/modules/Cart/utils/changePrice.js +1 -1
- package/dist/modules/ProductList/index.d.ts +2 -2
- package/dist/modules/ProductList/index.js +35 -44
- package/dist/modules/ProductList/types.d.ts +0 -1
- package/dist/solution/BookingByStep/index.js +50 -34
- package/dist/solution/BookingByStep/types.d.ts +3 -2
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BuyTickets/index.d.ts +2 -2
- package/dist/solution/BuyTickets/index.js +1 -1
- package/lib/modules/Cart/utils/changePrice.d.ts +2 -2
- package/lib/modules/Cart/utils/changePrice.js +1 -1
- package/lib/modules/ProductList/index.d.ts +2 -2
- package/lib/modules/ProductList/index.js +14 -26
- package/lib/modules/ProductList/types.d.ts +0 -1
- package/lib/solution/BookingByStep/index.js +39 -27
- package/lib/solution/BookingByStep/types.d.ts +3 -2
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BuyTickets/index.d.ts +2 -2
- package/lib/solution/BuyTickets/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ProductData } from "../../Product";
|
|
2
2
|
import { CartItem, IUpdateItemParams } from "../types";
|
|
3
|
-
export declare function updateAllCartItemPrice(cartItems: CartItem[], priceData: any, getProduct: (id: number) => Promise<
|
|
3
|
+
export declare function updateAllCartItemPrice(cartItems: CartItem[], priceData: any, getProduct: (id: number) => Promise<ProductData | undefined>, updateCart: (item: IUpdateItemParams) => void, updateItemInitInfo: (item: IUpdateItemParams) => void): Promise<void>;
|
|
@@ -36,7 +36,7 @@ function _updateAllCartItemPrice() {
|
|
|
36
36
|
return getProduct(item.id);
|
|
37
37
|
case 4:
|
|
38
38
|
cartProduct = _context.sent;
|
|
39
|
-
productInfo = cartProduct
|
|
39
|
+
productInfo = cartProduct;
|
|
40
40
|
if (!productInfo) {
|
|
41
41
|
productInfo = item._productOrigin;
|
|
42
42
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Module, PisellCore } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { Product } from '../Product';
|
|
4
3
|
import { ProductData } from '../Product/types';
|
|
5
4
|
export * from './types';
|
|
6
5
|
export declare class ProductList extends BaseModule implements Module {
|
|
@@ -8,6 +7,7 @@ export declare class ProductList extends BaseModule implements Module {
|
|
|
8
7
|
protected defaultVersion: string;
|
|
9
8
|
private store;
|
|
10
9
|
private request;
|
|
10
|
+
private otherParams;
|
|
11
11
|
constructor(name?: string, version?: string);
|
|
12
12
|
initialize(core: PisellCore, options: any): Promise<void>;
|
|
13
13
|
storeChange(path?: string, value?: any): Promise<void>;
|
|
@@ -30,7 +30,7 @@ export declare class ProductList extends BaseModule implements Module {
|
|
|
30
30
|
channel?: string;
|
|
31
31
|
}): Promise<any>;
|
|
32
32
|
getProducts(): Promise<ProductData[]>;
|
|
33
|
-
getProduct(id: number): Promise<
|
|
33
|
+
getProduct(id: number): Promise<ProductData | undefined>;
|
|
34
34
|
addProduct(products: ProductData[]): Promise<void>;
|
|
35
35
|
selectProducts(products: ProductData[]): Promise<void>;
|
|
36
36
|
/**
|
|
@@ -16,7 +16,6 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
16
16
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
17
17
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
18
|
import { BaseModule } from "../BaseModule";
|
|
19
|
-
import { Product } from "../Product";
|
|
20
19
|
import { ProductListHooks } from "./types";
|
|
21
20
|
import { cloneDeep } from 'lodash-es';
|
|
22
21
|
export * from "./types";
|
|
@@ -31,6 +30,7 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
31
30
|
_defineProperty(_assertThisInitialized(_this), "defaultVersion", '1.0.0');
|
|
32
31
|
_defineProperty(_assertThisInitialized(_this), "store", void 0);
|
|
33
32
|
_defineProperty(_assertThisInitialized(_this), "request", void 0);
|
|
33
|
+
_defineProperty(_assertThisInitialized(_this), "otherParams", {});
|
|
34
34
|
return _this;
|
|
35
35
|
}
|
|
36
36
|
_createClass(ProductList, [{
|
|
@@ -43,17 +43,18 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
43
43
|
case 0:
|
|
44
44
|
this.core = core;
|
|
45
45
|
this.store = options.store;
|
|
46
|
+
this.otherParams = options.otherParams || {};
|
|
46
47
|
if (Array.isArray((_options$initialState = options.initialState) === null || _options$initialState === void 0 ? void 0 : _options$initialState.list)) {
|
|
47
|
-
this.store.list = options.initialState.list
|
|
48
|
+
this.store.list = options.initialState.list.slice().sort(function (a, b) {
|
|
49
|
+
return Number(b.sort) - Number(a.sort);
|
|
50
|
+
});
|
|
48
51
|
this.core.effects.emit("".concat(this.name, ":changed"), this.store.list);
|
|
49
|
-
this.storeChange();
|
|
50
52
|
} else {
|
|
51
53
|
this.store.list = [];
|
|
52
|
-
this.store.productMap = new Map();
|
|
53
54
|
this.store.selectProducts = [];
|
|
54
55
|
}
|
|
55
56
|
this.request = core.getPlugin('request');
|
|
56
|
-
case
|
|
57
|
+
case 5:
|
|
57
58
|
case "end":
|
|
58
59
|
return _context.stop();
|
|
59
60
|
}
|
|
@@ -68,28 +69,13 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
68
69
|
key: "storeChange",
|
|
69
70
|
value: function () {
|
|
70
71
|
var _storeChange = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(path, value) {
|
|
71
|
-
var _this$store$list,
|
|
72
|
-
_this2 = this;
|
|
73
72
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
74
73
|
while (1) switch (_context2.prev = _context2.next) {
|
|
75
74
|
case 0:
|
|
76
|
-
(_this$store$list = this.store.list) === null || _this$store$list === void 0 || _this$store$list.forEach(function (product) {
|
|
77
|
-
var productModule = _this2.store.productMap.get("product-".concat(product.id));
|
|
78
|
-
if (!productModule) {
|
|
79
|
-
var newProductModule = new Product("product_".concat(product.id.toString()));
|
|
80
|
-
_this2.core.registerModule(newProductModule, {
|
|
81
|
-
initialState: product
|
|
82
|
-
});
|
|
83
|
-
_this2.store.productMap.set(product.id.toString(), newProductModule);
|
|
84
|
-
} else {
|
|
85
|
-
productModule.updateData(product);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
case 1:
|
|
89
75
|
case "end":
|
|
90
76
|
return _context2.stop();
|
|
91
77
|
}
|
|
92
|
-
}, _callee2
|
|
78
|
+
}, _callee2);
|
|
93
79
|
}));
|
|
94
80
|
function storeChange(_x3, _x4) {
|
|
95
81
|
return _storeChange.apply(this, arguments);
|
|
@@ -100,7 +86,8 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
100
86
|
key: "loadProducts",
|
|
101
87
|
value: function () {
|
|
102
88
|
var _loadProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref) {
|
|
103
|
-
var
|
|
89
|
+
var _this$otherParams;
|
|
90
|
+
var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, _ref$menu_list_ids, menu_list_ids, paramsCustomerId, _ref$with_count, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, userPlugin, customer_id, _userPlugin$get, productsData, sortedList;
|
|
104
91
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
105
92
|
while (1) switch (_context3.prev = _context3.next) {
|
|
106
93
|
case 0:
|
|
@@ -124,8 +111,9 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
124
111
|
} catch (error) {
|
|
125
112
|
console.error(error);
|
|
126
113
|
}
|
|
114
|
+
debugger;
|
|
127
115
|
// 如果没传schedule_date,则从
|
|
128
|
-
_context3.next =
|
|
116
|
+
_context3.next = 7;
|
|
129
117
|
return this.request.post("/product/query", {
|
|
130
118
|
open_quotation: 1,
|
|
131
119
|
open_bundle: 0,
|
|
@@ -144,15 +132,19 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
144
132
|
// client_schedule_ids: schedule_ids,
|
|
145
133
|
schedule_date: schedule_date,
|
|
146
134
|
with_schedule: with_schedule,
|
|
147
|
-
schedule_datetime: schedule_datetime
|
|
135
|
+
schedule_datetime: schedule_datetime,
|
|
136
|
+
application_code: (_this$otherParams = this.otherParams) === null || _this$otherParams === void 0 ? void 0 : _this$otherParams.channel
|
|
148
137
|
}, {
|
|
149
138
|
useCache: true
|
|
150
139
|
});
|
|
151
|
-
case
|
|
140
|
+
case 7:
|
|
152
141
|
productsData = _context3.sent;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
142
|
+
sortedList = (productsData.data.list || []).slice().sort(function (a, b) {
|
|
143
|
+
return Number(b.sort) - Number(a.sort);
|
|
144
|
+
});
|
|
145
|
+
this.addProduct(sortedList);
|
|
146
|
+
return _context3.abrupt("return", sortedList);
|
|
147
|
+
case 11:
|
|
156
148
|
case "end":
|
|
157
149
|
return _context3.stop();
|
|
158
150
|
}
|
|
@@ -228,15 +220,11 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
228
220
|
_context6.next = 2;
|
|
229
221
|
return this.core.effects.emit(ProductListHooks.onGetProduct, this.store.list);
|
|
230
222
|
case 2:
|
|
231
|
-
product = this.store.
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
return _context6.abrupt("return", product);
|
|
237
|
-
case 5:
|
|
238
|
-
return _context6.abrupt("return", undefined);
|
|
239
|
-
case 6:
|
|
223
|
+
product = this.store.list.find(function (product) {
|
|
224
|
+
return product.id === id;
|
|
225
|
+
});
|
|
226
|
+
return _context6.abrupt("return", product ? cloneDeep(product) : undefined);
|
|
227
|
+
case 4:
|
|
240
228
|
case "end":
|
|
241
229
|
return _context6.stop();
|
|
242
230
|
}
|
|
@@ -251,27 +239,30 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
251
239
|
key: "addProduct",
|
|
252
240
|
value: function () {
|
|
253
241
|
var _addProduct = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(products) {
|
|
254
|
-
var
|
|
242
|
+
var _this2 = this;
|
|
255
243
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
256
244
|
while (1) switch (_context7.prev = _context7.next) {
|
|
257
245
|
case 0:
|
|
258
|
-
// 加到 list 以后上面的storeChange 会自动初始化商品详情的 module 实例
|
|
259
246
|
// list 需要根据 id 去重
|
|
260
247
|
if (!this.store.list) {
|
|
261
248
|
this.store.list = [];
|
|
262
249
|
}
|
|
263
250
|
products.forEach(function (n) {
|
|
264
|
-
var index =
|
|
251
|
+
var index = _this2.store.list.findIndex(function (m) {
|
|
265
252
|
return m.id === n.id;
|
|
266
253
|
});
|
|
267
254
|
if (index === -1) {
|
|
268
|
-
|
|
255
|
+
_this2.store.list.push(n);
|
|
269
256
|
} else {
|
|
270
|
-
|
|
257
|
+
_this2.store.list[index] = n;
|
|
271
258
|
}
|
|
272
259
|
});
|
|
273
|
-
|
|
274
|
-
|
|
260
|
+
// 根据 sort 值做降序排序(数字越大越靠前)
|
|
261
|
+
this.store.list.sort(function (a, b) {
|
|
262
|
+
return Number(b.sort) - Number(a.sort);
|
|
263
|
+
});
|
|
264
|
+
this.core.effects.emit("".concat(this.name, ":changed"), this.store.list);
|
|
265
|
+
case 4:
|
|
275
266
|
case "end":
|
|
276
267
|
return _context7.stop();
|
|
277
268
|
}
|
|
@@ -701,6 +701,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
701
701
|
_params$useCache,
|
|
702
702
|
useCache,
|
|
703
703
|
tempProducts,
|
|
704
|
+
_this$store$currentPr,
|
|
704
705
|
dateRange,
|
|
705
706
|
tempStartDate,
|
|
706
707
|
tempEndDate,
|
|
@@ -732,8 +733,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
732
733
|
}
|
|
733
734
|
// 如果当前打开了某个的商品详情弹窗,则应该默认用这个商品
|
|
734
735
|
if (this.store.currentProduct) {
|
|
735
|
-
tempProducts = [_objectSpread(_objectSpread({}, this.store.currentProduct
|
|
736
|
-
_schedule: this.store.
|
|
736
|
+
tempProducts = [_objectSpread(_objectSpread({}, this.store.currentProduct), {}, {
|
|
737
|
+
_schedule: (_this$store$currentPr = this.store.currentProductMeta) === null || _this$store$currentPr === void 0 ? void 0 : _this$store$currentPr['schedule']
|
|
737
738
|
})];
|
|
738
739
|
}
|
|
739
740
|
dateRange = this.store.date.getDateRange();
|
|
@@ -2286,41 +2287,42 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2286
2287
|
key: "openProductDetail",
|
|
2287
2288
|
value: function () {
|
|
2288
2289
|
var _openProductDetail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25(productId) {
|
|
2289
|
-
var
|
|
2290
|
+
var targetProductData, newScheduleArr, dateRange;
|
|
2290
2291
|
return _regeneratorRuntime().wrap(function _callee25$(_context25) {
|
|
2291
2292
|
while (1) switch (_context25.prev = _context25.next) {
|
|
2292
2293
|
case 0:
|
|
2293
2294
|
_context25.next = 2;
|
|
2294
2295
|
return this.store.products.getProduct(productId);
|
|
2295
2296
|
case 2:
|
|
2296
|
-
|
|
2297
|
-
if (!
|
|
2298
|
-
_context25.next =
|
|
2297
|
+
targetProductData = _context25.sent;
|
|
2298
|
+
if (!targetProductData) {
|
|
2299
|
+
_context25.next = 17;
|
|
2299
2300
|
break;
|
|
2300
2301
|
}
|
|
2301
|
-
|
|
2302
|
-
this.store.
|
|
2302
|
+
this.store.currentProduct = targetProductData;
|
|
2303
|
+
this.store.currentProductMeta = {};
|
|
2303
2304
|
// 资源预加载,如果是 duration 类型的商品,且是先选日期的流程,在这里预拉取资源数据
|
|
2304
2305
|
if (!targetProductData['schedule.ids']) {
|
|
2305
|
-
_context25.next =
|
|
2306
|
+
_context25.next = 12;
|
|
2306
2307
|
break;
|
|
2307
2308
|
}
|
|
2308
2309
|
newScheduleArr = this.getScheduleDataByIds(targetProductData['schedule.ids']);
|
|
2309
|
-
|
|
2310
|
-
|
|
2310
|
+
if (!this.store.currentProductMeta) this.store.currentProductMeta = {};
|
|
2311
|
+
this.store.currentProductMeta.schedule = newScheduleArr;
|
|
2312
|
+
_context25.next = 17;
|
|
2311
2313
|
break;
|
|
2312
|
-
case
|
|
2314
|
+
case 12:
|
|
2313
2315
|
if (!targetProductData.duration) {
|
|
2314
|
-
_context25.next =
|
|
2316
|
+
_context25.next = 17;
|
|
2315
2317
|
break;
|
|
2316
2318
|
}
|
|
2317
2319
|
dateRange = this.store.date.getDateRange(); // 如果不是先选日期的流程 duration 商品就啥也不做
|
|
2318
2320
|
if (dateRange !== null && dateRange !== void 0 && dateRange.length) {
|
|
2319
|
-
_context25.next =
|
|
2321
|
+
_context25.next = 16;
|
|
2320
2322
|
break;
|
|
2321
2323
|
}
|
|
2322
2324
|
return _context25.abrupt("return");
|
|
2323
|
-
case
|
|
2325
|
+
case 16:
|
|
2324
2326
|
// this.store.date.getResourceDates({
|
|
2325
2327
|
// query: {
|
|
2326
2328
|
// start_date: dateRange[0].date,
|
|
@@ -2333,7 +2335,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2333
2335
|
endDate: dateRange[dateRange.length - 1].date,
|
|
2334
2336
|
products: [targetProductData]
|
|
2335
2337
|
});
|
|
2336
|
-
case
|
|
2338
|
+
case 17:
|
|
2337
2339
|
case "end":
|
|
2338
2340
|
return _context25.stop();
|
|
2339
2341
|
}
|
|
@@ -2347,8 +2349,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2347
2349
|
}, {
|
|
2348
2350
|
key: "closeProductDetail",
|
|
2349
2351
|
value: function closeProductDetail() {
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
+
if (this.store.currentProductMeta) {
|
|
2353
|
+
this.store.currentProductMeta.schedule = [];
|
|
2354
|
+
}
|
|
2352
2355
|
this.store.currentProduct = undefined;
|
|
2353
2356
|
}
|
|
2354
2357
|
}, {
|
|
@@ -2361,7 +2364,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2361
2364
|
product = _ref10.product;
|
|
2362
2365
|
var targetProduct = this.store.currentProduct;
|
|
2363
2366
|
// 如果外面传递了product 优先用外面的
|
|
2364
|
-
var targetProductData = product ||
|
|
2367
|
+
var targetProductData = product || targetProduct;
|
|
2365
2368
|
var targetSchedules = [];
|
|
2366
2369
|
// 如果外面传递了 scheduleIds,优先取入参
|
|
2367
2370
|
if (scheduleIds !== null && scheduleIds !== void 0 && scheduleIds.length) {
|
|
@@ -2376,7 +2379,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2376
2379
|
var cartItems = cloneDeep(this.store.cart.getItems());
|
|
2377
2380
|
var resourcesMap = getResourcesMap((targetResourceDate === null || targetResourceDate === void 0 ? void 0 : targetResourceDate.resource) || []);
|
|
2378
2381
|
var selectedResources = getOthersSelectedResources(cartItems, '', resourcesMap);
|
|
2379
|
-
var productResources = getResourcesByProduct(resourcesMap, resources || ((_this$store$currentPr2 = this.store.currentProduct) === null || _this$store$currentPr2 === void 0 || (_this$store$currentPr2 = _this$store$currentPr2.
|
|
2382
|
+
var productResources = getResourcesByProduct(resourcesMap, resources || ((_this$store$currentPr2 = this.store.currentProduct) === null || _this$store$currentPr2 === void 0 || (_this$store$currentPr2 = _this$store$currentPr2.product_resource) === null || _this$store$currentPr2 === void 0 ? void 0 : _this$store$currentPr2.resources) || [], selectedResources, 1);
|
|
2380
2383
|
var minTimeMaxTime = calcMinTimeMaxTimeBySchedules(targetSchedules, {}, date);
|
|
2381
2384
|
var scheduleTimeSlots = getAllSortedDateRanges(minTimeMaxTime);
|
|
2382
2385
|
// 当前所有待选择资源的集合,先提出来,提升性能
|
|
@@ -2496,22 +2499,34 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2496
2499
|
key: "getProductTypeById",
|
|
2497
2500
|
value: function () {
|
|
2498
2501
|
var _getProductTypeById = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26(id) {
|
|
2499
|
-
var
|
|
2502
|
+
var productData, _productData$schedule;
|
|
2500
2503
|
return _regeneratorRuntime().wrap(function _callee26$(_context26) {
|
|
2501
2504
|
while (1) switch (_context26.prev = _context26.next) {
|
|
2502
2505
|
case 0:
|
|
2503
2506
|
_context26.next = 2;
|
|
2504
2507
|
return this.store.products.getProduct(id);
|
|
2505
2508
|
case 2:
|
|
2506
|
-
|
|
2507
|
-
if (!
|
|
2508
|
-
_context26.next =
|
|
2509
|
+
productData = _context26.sent;
|
|
2510
|
+
if (!productData) {
|
|
2511
|
+
_context26.next = 9;
|
|
2509
2512
|
break;
|
|
2510
2513
|
}
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
+
if (!productData.duration) {
|
|
2515
|
+
_context26.next = 6;
|
|
2516
|
+
break;
|
|
2517
|
+
}
|
|
2518
|
+
return _context26.abrupt("return", 'duration');
|
|
2514
2519
|
case 6:
|
|
2520
|
+
if (!((_productData$schedule = productData['schedule.ids']) !== null && _productData$schedule !== void 0 && _productData$schedule.length)) {
|
|
2521
|
+
_context26.next = 8;
|
|
2522
|
+
break;
|
|
2523
|
+
}
|
|
2524
|
+
return _context26.abrupt("return", 'session');
|
|
2525
|
+
case 8:
|
|
2526
|
+
return _context26.abrupt("return", 'normal');
|
|
2527
|
+
case 9:
|
|
2528
|
+
return _context26.abrupt("return", 'normal');
|
|
2529
|
+
case 10:
|
|
2515
2530
|
case "end":
|
|
2516
2531
|
return _context26.stop();
|
|
2517
2532
|
}
|
|
@@ -2683,7 +2698,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2683
2698
|
key: "getAvailableDateForSessionOptimize",
|
|
2684
2699
|
value: function () {
|
|
2685
2700
|
var _getAvailableDateForSessionOptimize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {
|
|
2686
|
-
var _this$store$currentPr3, _this$store$currentPr4,
|
|
2701
|
+
var _this$store$currentPr3, _this$store$currentPr4, _tempProducts;
|
|
2687
2702
|
var params,
|
|
2688
2703
|
startDate,
|
|
2689
2704
|
endDate,
|
|
@@ -2729,7 +2744,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2729
2744
|
endDate = tempEndDate;
|
|
2730
2745
|
|
|
2731
2746
|
// 先去读缓存结果,因为正常 UI 调用的是 7 天,而下面我会直接计算 30 天(最少也是 14 天),所以先去读缓存结果,如果缓存结果存在,则直接返回
|
|
2732
|
-
cache = (_this$store$currentPr3 = this.store.
|
|
2747
|
+
cache = (_this$store$currentPr3 = this.store.currentProductMeta) === null || _this$store$currentPr3 === void 0 ? void 0 : _this$store$currentPr3['timeSlotBySchedule'];
|
|
2733
2748
|
if (!cache) {
|
|
2734
2749
|
_context29.next = 13;
|
|
2735
2750
|
break;
|
|
@@ -2745,8 +2760,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2745
2760
|
});
|
|
2746
2761
|
case 13:
|
|
2747
2762
|
// 如果当前打开了某个的商品详情弹窗,则应该默认用这个商品
|
|
2748
|
-
tempProducts =
|
|
2749
|
-
schedule = (_this$store$
|
|
2763
|
+
tempProducts = this.store.currentProduct;
|
|
2764
|
+
schedule = (_this$store$currentPr4 = this.store.currentProductMeta) === null || _this$store$currentPr4 === void 0 ? void 0 : _this$store$currentPr4['schedule'];
|
|
2750
2765
|
filteredSchedule = filterScheduleByDateRange(schedule, startDate || '', endDate || ''); // 1.后端返回的数据,确定资源在每一天的可用和使用情况
|
|
2751
2766
|
tempResourceIds = getResourcesIdsByProduct(tempProducts);
|
|
2752
2767
|
_context29.next = 19;
|
|
@@ -2906,17 +2921,18 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2906
2921
|
this.store.date.setDateList(dates);
|
|
2907
2922
|
|
|
2908
2923
|
// 缓存这次结果,以防后面他小幅度范围内去修改天数
|
|
2909
|
-
(
|
|
2924
|
+
if (!this.store.currentProductMeta) this.store.currentProductMeta = {};
|
|
2925
|
+
this.store.currentProductMeta.timeSlotBySchedule = {
|
|
2910
2926
|
dateList: dates,
|
|
2911
2927
|
firstAvailableDate: firstAvailableDate,
|
|
2912
2928
|
startDate: startDate,
|
|
2913
2929
|
endDate: dayjs(currentDate).format('YYYY-MM-DD')
|
|
2914
|
-
}
|
|
2930
|
+
};
|
|
2915
2931
|
return _context29.abrupt("return", {
|
|
2916
2932
|
dateList: dates,
|
|
2917
2933
|
firstAvailableDate: firstAvailableDate
|
|
2918
2934
|
});
|
|
2919
|
-
case
|
|
2935
|
+
case 39:
|
|
2920
2936
|
case "end":
|
|
2921
2937
|
return _context29.stop();
|
|
2922
2938
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProductList, CartModule,
|
|
1
|
+
import { ProductList, CartModule, ProductData, 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;
|
|
@@ -11,7 +11,8 @@ export interface BookingByStepState {
|
|
|
11
11
|
accountList: AccountListModule;
|
|
12
12
|
order: OrderModule;
|
|
13
13
|
payment: PaymentModule;
|
|
14
|
-
currentProduct?:
|
|
14
|
+
currentProduct?: ProductData;
|
|
15
|
+
currentProductMeta?: Record<string, any>;
|
|
15
16
|
schedule: ScheduleModule;
|
|
16
17
|
}
|
|
17
18
|
export declare function createModule<T extends keyof BookingByStepState>(moduleName: T, solutionName: string, name?: string, version?: string): BookingByStepState[T];
|
|
@@ -111,7 +111,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
111
111
|
* 获取当前的客户搜索条件
|
|
112
112
|
* @returns 当前搜索条件
|
|
113
113
|
*/
|
|
114
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
114
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
|
|
115
115
|
/**
|
|
116
116
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
117
117
|
* @returns 客户状态
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Module, PisellCore } from '../../types';
|
|
2
|
-
import {
|
|
2
|
+
import { ProductData } from '../../modules/';
|
|
3
3
|
import { BaseModule } from '../../modules/BaseModule';
|
|
4
4
|
export * from './types';
|
|
5
5
|
export declare class BuyTicketsImpl extends BaseModule implements Module {
|
|
@@ -16,7 +16,7 @@ export declare class BuyTicketsImpl extends BaseModule implements Module {
|
|
|
16
16
|
loadProductsByCategory(categoryId: number): Promise<void>;
|
|
17
17
|
destroy(): Promise<void>;
|
|
18
18
|
getProducts(): Promise<ProductData[]>;
|
|
19
|
-
getProduct(id: number): Promise<
|
|
19
|
+
getProduct(id: number): Promise<ProductData>;
|
|
20
20
|
listSubmit(data: Record<string, any>): Promise<{
|
|
21
21
|
status: boolean;
|
|
22
22
|
data: any;
|
|
@@ -238,7 +238,7 @@ export var BuyTicketsImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
238
238
|
}
|
|
239
239
|
return _context6.abrupt("return", otherProduct);
|
|
240
240
|
case 10:
|
|
241
|
-
|
|
241
|
+
throw new Error("Product not found: ".concat(id));
|
|
242
242
|
case 11:
|
|
243
243
|
case "end":
|
|
244
244
|
return _context6.stop();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ProductData } from "../../Product";
|
|
2
2
|
import { CartItem, IUpdateItemParams } from "../types";
|
|
3
|
-
export declare function updateAllCartItemPrice(cartItems: CartItem[], priceData: any, getProduct: (id: number) => Promise<
|
|
3
|
+
export declare function updateAllCartItemPrice(cartItems: CartItem[], priceData: any, getProduct: (id: number) => Promise<ProductData | undefined>, updateCart: (item: IUpdateItemParams) => void, updateItemInitInfo: (item: IUpdateItemParams) => void): Promise<void>;
|
|
@@ -40,7 +40,7 @@ async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCa
|
|
|
40
40
|
const cartProduct = await getProduct(
|
|
41
41
|
item.id
|
|
42
42
|
);
|
|
43
|
-
let productInfo = cartProduct
|
|
43
|
+
let productInfo = cartProduct;
|
|
44
44
|
if (!productInfo) {
|
|
45
45
|
productInfo = item._productOrigin;
|
|
46
46
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Module, PisellCore } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { Product } from '../Product';
|
|
4
3
|
import { ProductData } from '../Product/types';
|
|
5
4
|
export * from './types';
|
|
6
5
|
export declare class ProductList extends BaseModule implements Module {
|
|
@@ -8,6 +7,7 @@ export declare class ProductList extends BaseModule implements Module {
|
|
|
8
7
|
protected defaultVersion: string;
|
|
9
8
|
private store;
|
|
10
9
|
private request;
|
|
10
|
+
private otherParams;
|
|
11
11
|
constructor(name?: string, version?: string);
|
|
12
12
|
initialize(core: PisellCore, options: any): Promise<void>;
|
|
13
13
|
storeChange(path?: string, value?: any): Promise<void>;
|
|
@@ -30,7 +30,7 @@ export declare class ProductList extends BaseModule implements Module {
|
|
|
30
30
|
channel?: string;
|
|
31
31
|
}): Promise<any>;
|
|
32
32
|
getProducts(): Promise<ProductData[]>;
|
|
33
|
-
getProduct(id: number): Promise<
|
|
33
|
+
getProduct(id: number): Promise<ProductData | undefined>;
|
|
34
34
|
addProduct(products: ProductData[]): Promise<void>;
|
|
35
35
|
selectProducts(products: ProductData[]): Promise<void>;
|
|
36
36
|
/**
|
|
@@ -24,7 +24,6 @@ __export(ProductList_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(ProductList_exports);
|
|
26
26
|
var import_BaseModule = require("../BaseModule");
|
|
27
|
-
var import_Product = require("../Product");
|
|
28
27
|
var import_types = require("./types");
|
|
29
28
|
var import_lodash_es = require("lodash-es");
|
|
30
29
|
__reExport(ProductList_exports, require("./types"), module.exports);
|
|
@@ -33,36 +32,23 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
33
32
|
super(name, version);
|
|
34
33
|
this.defaultName = "productList";
|
|
35
34
|
this.defaultVersion = "1.0.0";
|
|
35
|
+
this.otherParams = {};
|
|
36
36
|
}
|
|
37
37
|
async initialize(core, options) {
|
|
38
38
|
var _a;
|
|
39
39
|
this.core = core;
|
|
40
40
|
this.store = options.store;
|
|
41
|
+
this.otherParams = options.otherParams || {};
|
|
41
42
|
if (Array.isArray((_a = options.initialState) == null ? void 0 : _a.list)) {
|
|
42
|
-
this.store.list = options.initialState.list;
|
|
43
|
+
this.store.list = options.initialState.list.slice().sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
43
44
|
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
44
|
-
this.storeChange();
|
|
45
45
|
} else {
|
|
46
46
|
this.store.list = [];
|
|
47
|
-
this.store.productMap = /* @__PURE__ */ new Map();
|
|
48
47
|
this.store.selectProducts = [];
|
|
49
48
|
}
|
|
50
49
|
this.request = core.getPlugin("request");
|
|
51
50
|
}
|
|
52
51
|
async storeChange(path, value) {
|
|
53
|
-
var _a;
|
|
54
|
-
(_a = this.store.list) == null ? void 0 : _a.forEach((product) => {
|
|
55
|
-
const productModule = this.store.productMap.get(`product-${product.id}`);
|
|
56
|
-
if (!productModule) {
|
|
57
|
-
const newProductModule = new import_Product.Product(
|
|
58
|
-
`product_${product.id.toString()}`
|
|
59
|
-
);
|
|
60
|
-
this.core.registerModule(newProductModule, { initialState: product });
|
|
61
|
-
this.store.productMap.set(product.id.toString(), newProductModule);
|
|
62
|
-
} else {
|
|
63
|
-
productModule.updateData(product);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
52
|
}
|
|
67
53
|
async loadProducts({
|
|
68
54
|
category_ids = [],
|
|
@@ -76,7 +62,7 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
76
62
|
cacheId,
|
|
77
63
|
with_schedule
|
|
78
64
|
}) {
|
|
79
|
-
var _a;
|
|
65
|
+
var _a, _b;
|
|
80
66
|
let userPlugin = this.core.getPlugin("user");
|
|
81
67
|
let customer_id = void 0;
|
|
82
68
|
try {
|
|
@@ -84,6 +70,7 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
84
70
|
} catch (error) {
|
|
85
71
|
console.error(error);
|
|
86
72
|
}
|
|
73
|
+
debugger;
|
|
87
74
|
const productsData = await this.request.post(
|
|
88
75
|
`/product/query`,
|
|
89
76
|
{
|
|
@@ -111,12 +98,14 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
111
98
|
// client_schedule_ids: schedule_ids,
|
|
112
99
|
schedule_date,
|
|
113
100
|
with_schedule,
|
|
114
|
-
schedule_datetime
|
|
101
|
+
schedule_datetime,
|
|
102
|
+
application_code: (_b = this.otherParams) == null ? void 0 : _b.channel
|
|
115
103
|
},
|
|
116
104
|
{ useCache: true }
|
|
117
105
|
);
|
|
118
|
-
|
|
119
|
-
|
|
106
|
+
const sortedList = (productsData.data.list || []).slice().sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
107
|
+
this.addProduct(sortedList);
|
|
108
|
+
return sortedList;
|
|
120
109
|
}
|
|
121
110
|
async loadProductsPrice({
|
|
122
111
|
ids = [],
|
|
@@ -148,10 +137,8 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
148
137
|
import_types.ProductListHooks.onGetProduct,
|
|
149
138
|
this.store.list
|
|
150
139
|
);
|
|
151
|
-
const product = this.store.
|
|
152
|
-
|
|
153
|
-
return product;
|
|
154
|
-
return void 0;
|
|
140
|
+
const product = this.store.list.find((product2) => product2.id === id);
|
|
141
|
+
return product ? (0, import_lodash_es.cloneDeep)(product) : void 0;
|
|
155
142
|
}
|
|
156
143
|
async addProduct(products) {
|
|
157
144
|
if (!this.store.list) {
|
|
@@ -165,7 +152,8 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
165
152
|
this.store.list[index] = n;
|
|
166
153
|
}
|
|
167
154
|
});
|
|
168
|
-
this.
|
|
155
|
+
this.store.list.sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
156
|
+
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
169
157
|
}
|
|
170
158
|
async selectProducts(products) {
|
|
171
159
|
this.store.selectProducts = products;
|
|
@@ -389,7 +389,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
389
389
|
}
|
|
390
390
|
// 获取商品/服务的可用日期
|
|
391
391
|
async getAvailableDate(params = {}) {
|
|
392
|
-
var _a, _b, _c;
|
|
392
|
+
var _a, _b, _c, _d;
|
|
393
393
|
let { products, startDate, endDate, type, useCache = true } = params;
|
|
394
394
|
if ((0, import_dayjs.default)(startDate).isBefore((0, import_dayjs.default)(), "day") && ((0, import_dayjs.default)(endDate).isAfter((0, import_dayjs.default)(), "day") || (0, import_dayjs.default)(endDate).isSame((0, import_dayjs.default)(), "day"))) {
|
|
395
395
|
startDate = (0, import_dayjs.default)().format("YYYY-MM-DD");
|
|
@@ -406,14 +406,14 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
406
406
|
if (this.store.currentProduct) {
|
|
407
407
|
tempProducts = [
|
|
408
408
|
{
|
|
409
|
-
...this.store.currentProduct
|
|
410
|
-
_schedule: this.store.
|
|
409
|
+
...this.store.currentProduct,
|
|
410
|
+
_schedule: (_a = this.store.currentProductMeta) == null ? void 0 : _a["schedule"]
|
|
411
411
|
}
|
|
412
412
|
];
|
|
413
413
|
}
|
|
414
414
|
let dateRange = this.store.date.getDateRange();
|
|
415
|
-
const tempStartDate = startDate || ((
|
|
416
|
-
const tempEndDate = endDate || ((
|
|
415
|
+
const tempStartDate = startDate || ((_b = dateRange == null ? void 0 : dateRange[0]) == null ? void 0 : _b.date);
|
|
416
|
+
const tempEndDate = endDate || ((_c = dateRange == null ? void 0 : dateRange[1]) == null ? void 0 : _c.date) || ((_d = dateRange == null ? void 0 : dateRange[0]) == null ? void 0 : _d.date);
|
|
417
417
|
if (!tempProducts.length) {
|
|
418
418
|
return [];
|
|
419
419
|
}
|
|
@@ -1595,15 +1595,17 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
// 打开某个商品详情的弹窗,OS 层这边会记录当前选中的商品,适用于 session 类商品预约
|
|
1597
1597
|
async openProductDetail(productId) {
|
|
1598
|
-
const
|
|
1599
|
-
if (
|
|
1600
|
-
|
|
1601
|
-
this.store.
|
|
1598
|
+
const targetProductData = await this.store.products.getProduct(productId);
|
|
1599
|
+
if (targetProductData) {
|
|
1600
|
+
this.store.currentProduct = targetProductData;
|
|
1601
|
+
this.store.currentProductMeta = {};
|
|
1602
1602
|
if (targetProductData["schedule.ids"]) {
|
|
1603
1603
|
const newScheduleArr = this.getScheduleDataByIds(
|
|
1604
1604
|
targetProductData["schedule.ids"]
|
|
1605
1605
|
);
|
|
1606
|
-
|
|
1606
|
+
if (!this.store.currentProductMeta)
|
|
1607
|
+
this.store.currentProductMeta = {};
|
|
1608
|
+
this.store.currentProductMeta.schedule = newScheduleArr;
|
|
1607
1609
|
} else if (targetProductData.duration) {
|
|
1608
1610
|
const dateRange = this.store.date.getDateRange();
|
|
1609
1611
|
if (!(dateRange == null ? void 0 : dateRange.length))
|
|
@@ -1617,8 +1619,9 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1617
1619
|
}
|
|
1618
1620
|
}
|
|
1619
1621
|
closeProductDetail() {
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
+
if (this.store.currentProductMeta) {
|
|
1623
|
+
this.store.currentProductMeta.schedule = [];
|
|
1624
|
+
}
|
|
1622
1625
|
this.store.currentProduct = void 0;
|
|
1623
1626
|
}
|
|
1624
1627
|
getTimeslotBySchedule({
|
|
@@ -1627,9 +1630,9 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1627
1630
|
resources,
|
|
1628
1631
|
product
|
|
1629
1632
|
}) {
|
|
1630
|
-
var _a, _b, _c, _d, _e
|
|
1633
|
+
var _a, _b, _c, _d, _e;
|
|
1631
1634
|
const targetProduct = this.store.currentProduct;
|
|
1632
|
-
const targetProductData = product ||
|
|
1635
|
+
const targetProductData = product || targetProduct;
|
|
1633
1636
|
let targetSchedules = [];
|
|
1634
1637
|
if (scheduleIds == null ? void 0 : scheduleIds.length) {
|
|
1635
1638
|
targetSchedules = this.store.schedule.getScheduleListByIds(scheduleIds);
|
|
@@ -1649,7 +1652,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1649
1652
|
);
|
|
1650
1653
|
const productResources = (0, import_resources.getResourcesByProduct)(
|
|
1651
1654
|
resourcesMap,
|
|
1652
|
-
resources || ((
|
|
1655
|
+
resources || ((_b = (_a = this.store.currentProduct) == null ? void 0 : _a.product_resource) == null ? void 0 : _b.resources) || [],
|
|
1653
1656
|
selectedResources,
|
|
1654
1657
|
1
|
|
1655
1658
|
);
|
|
@@ -1670,9 +1673,9 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1670
1673
|
return -1;
|
|
1671
1674
|
return 0;
|
|
1672
1675
|
});
|
|
1673
|
-
const firstEnabledResourceId = (
|
|
1676
|
+
const firstEnabledResourceId = (_e = (_d = (_c = targetProductData == null ? void 0 : targetProductData.product_resource) == null ? void 0 : _c.resources) == null ? void 0 : _d.find(
|
|
1674
1677
|
(n) => n.status === 1
|
|
1675
|
-
)) == null ? void 0 :
|
|
1678
|
+
)) == null ? void 0 : _e.id;
|
|
1676
1679
|
const formatScheduleTimeSlots = scheduleTimeSlots.map((item) => {
|
|
1677
1680
|
const resourcesUseableMap = {};
|
|
1678
1681
|
let count = 0;
|
|
@@ -1746,9 +1749,16 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1746
1749
|
return this.otherData[key];
|
|
1747
1750
|
}
|
|
1748
1751
|
async getProductTypeById(id) {
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
+
var _a;
|
|
1753
|
+
const productData = await this.store.products.getProduct(id);
|
|
1754
|
+
if (productData) {
|
|
1755
|
+
if (productData.duration) {
|
|
1756
|
+
return "duration";
|
|
1757
|
+
}
|
|
1758
|
+
if ((_a = productData["schedule.ids"]) == null ? void 0 : _a.length) {
|
|
1759
|
+
return "session";
|
|
1760
|
+
}
|
|
1761
|
+
return "normal";
|
|
1752
1762
|
}
|
|
1753
1763
|
return "normal";
|
|
1754
1764
|
}
|
|
@@ -1909,7 +1919,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1909
1919
|
return results;
|
|
1910
1920
|
}
|
|
1911
1921
|
async getAvailableDateForSessionOptimize(params = {}) {
|
|
1912
|
-
var _a, _b, _c, _d
|
|
1922
|
+
var _a, _b, _c, _d;
|
|
1913
1923
|
let { startDate, endDate } = params;
|
|
1914
1924
|
if ((0, import_dayjs.default)(startDate).isBefore((0, import_dayjs.default)(), "day") && ((0, import_dayjs.default)(endDate).isAfter((0, import_dayjs.default)(), "day") || (0, import_dayjs.default)(endDate).isSame((0, import_dayjs.default)(), "day"))) {
|
|
1915
1925
|
startDate = (0, import_dayjs.default)().format("YYYY-MM-DD");
|
|
@@ -1925,7 +1935,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1925
1935
|
tempEndDate = endDate || "";
|
|
1926
1936
|
}
|
|
1927
1937
|
endDate = tempEndDate;
|
|
1928
|
-
const cache = (_a = this.store.
|
|
1938
|
+
const cache = (_a = this.store.currentProductMeta) == null ? void 0 : _a["timeSlotBySchedule"];
|
|
1929
1939
|
if (cache) {
|
|
1930
1940
|
if ((0, import_dayjs.default)(params.startDate).isSameOrAfter((0, import_dayjs.default)(cache.startDate), "day") && (0, import_dayjs.default)(params.endDate).isSameOrBefore((0, import_dayjs.default)(cache.endDate), "day")) {
|
|
1931
1941
|
this.store.date.setDateList(cache.dateList);
|
|
@@ -1936,8 +1946,8 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1936
1946
|
}
|
|
1937
1947
|
}
|
|
1938
1948
|
let tempProducts;
|
|
1939
|
-
tempProducts =
|
|
1940
|
-
const schedule = (
|
|
1949
|
+
tempProducts = this.store.currentProduct;
|
|
1950
|
+
const schedule = (_b = this.store.currentProductMeta) == null ? void 0 : _b["schedule"];
|
|
1941
1951
|
const filteredSchedule = (0, import_resources.filterScheduleByDateRange)(
|
|
1942
1952
|
schedule,
|
|
1943
1953
|
startDate || "",
|
|
@@ -1954,7 +1964,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
1954
1964
|
let dates = [];
|
|
1955
1965
|
let currentDate = (0, import_dayjs.default)(startDate);
|
|
1956
1966
|
let firstAvailableDate = "";
|
|
1957
|
-
const openResources = ((
|
|
1967
|
+
const openResources = ((_d = (_c = tempProducts == null ? void 0 : tempProducts.product_resource) == null ? void 0 : _c.resources) == null ? void 0 : _d.filter(
|
|
1958
1968
|
(m) => m.status === 1
|
|
1959
1969
|
)) || [];
|
|
1960
1970
|
const allProductResources = (0, import_resources.sortCombinedResources)(res.data);
|
|
@@ -2055,12 +2065,14 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
|
|
|
2055
2065
|
}
|
|
2056
2066
|
dates = (0, import_utils3.handleAvailableDateByResource)(res.data, dates);
|
|
2057
2067
|
this.store.date.setDateList(dates);
|
|
2058
|
-
(
|
|
2068
|
+
if (!this.store.currentProductMeta)
|
|
2069
|
+
this.store.currentProductMeta = {};
|
|
2070
|
+
this.store.currentProductMeta.timeSlotBySchedule = {
|
|
2059
2071
|
dateList: dates,
|
|
2060
2072
|
firstAvailableDate,
|
|
2061
2073
|
startDate,
|
|
2062
2074
|
endDate: (0, import_dayjs.default)(currentDate).format("YYYY-MM-DD")
|
|
2063
|
-
}
|
|
2075
|
+
};
|
|
2064
2076
|
return {
|
|
2065
2077
|
dateList: dates,
|
|
2066
2078
|
firstAvailableDate
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProductList, CartModule,
|
|
1
|
+
import { ProductList, CartModule, ProductData, 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;
|
|
@@ -11,7 +11,8 @@ export interface BookingByStepState {
|
|
|
11
11
|
accountList: AccountListModule;
|
|
12
12
|
order: OrderModule;
|
|
13
13
|
payment: PaymentModule;
|
|
14
|
-
currentProduct?:
|
|
14
|
+
currentProduct?: ProductData;
|
|
15
|
+
currentProductMeta?: Record<string, any>;
|
|
15
16
|
schedule: ScheduleModule;
|
|
16
17
|
}
|
|
17
18
|
export declare function createModule<T extends keyof BookingByStepState>(moduleName: T, solutionName: string, name?: string, version?: string): BookingByStepState[T];
|
|
@@ -111,7 +111,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
111
111
|
* 获取当前的客户搜索条件
|
|
112
112
|
* @returns 当前搜索条件
|
|
113
113
|
*/
|
|
114
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
114
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
|
|
115
115
|
/**
|
|
116
116
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
117
117
|
* @returns 客户状态
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Module, PisellCore } from '../../types';
|
|
2
|
-
import {
|
|
2
|
+
import { ProductData } from '../../modules/';
|
|
3
3
|
import { BaseModule } from '../../modules/BaseModule';
|
|
4
4
|
export * from './types';
|
|
5
5
|
export declare class BuyTicketsImpl extends BaseModule implements Module {
|
|
@@ -16,7 +16,7 @@ export declare class BuyTicketsImpl extends BaseModule implements Module {
|
|
|
16
16
|
loadProductsByCategory(categoryId: number): Promise<void>;
|
|
17
17
|
destroy(): Promise<void>;
|
|
18
18
|
getProducts(): Promise<ProductData[]>;
|
|
19
|
-
getProduct(id: number): Promise<
|
|
19
|
+
getProduct(id: number): Promise<ProductData>;
|
|
20
20
|
listSubmit(data: Record<string, any>): Promise<{
|
|
21
21
|
status: boolean;
|
|
22
22
|
data: any;
|
|
@@ -98,7 +98,7 @@ var BuyTicketsImpl = class extends import_BaseModule.BaseModule {
|
|
|
98
98
|
return mainProduct;
|
|
99
99
|
if (otherProduct)
|
|
100
100
|
return otherProduct;
|
|
101
|
-
|
|
101
|
+
throw new Error(`Product not found: ${id}`);
|
|
102
102
|
}
|
|
103
103
|
// 商品列表页提交
|
|
104
104
|
async listSubmit(data) {
|