@pisell/pisellos 2.1.166 → 2.1.168
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/index.d.ts +0 -1
- package/dist/index.js +0 -3
- package/dist/model/strategy/adapter/index.d.ts +0 -4
- package/dist/model/strategy/adapter/index.js +1 -5
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/modules/Cart/utils/changePrice.js +16 -9
- package/dist/modules/Discount/index.d.ts +2 -5
- package/dist/modules/Discount/index.js +1 -21
- package/dist/modules/Discount/types.d.ts +0 -4
- package/dist/modules/Order/index.d.ts +0 -1
- package/dist/modules/Order/index.js +6 -18
- package/dist/modules/Order/types.d.ts +0 -2
- package/dist/modules/ProductList/index.d.ts +1 -3
- package/dist/modules/ProductList/index.js +11 -22
- package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- package/dist/solution/ScanOrder/index.js +1 -1
- package/dist/solution/ShopDiscount/index.js +15 -16
- package/dist/solution/VenueBooking/index.d.ts +3 -40
- package/dist/solution/VenueBooking/index.js +261 -394
- package/dist/solution/VenueBooking/types.d.ts +1 -3
- package/dist/solution/VenueBooking/types.js +0 -1
- package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
- package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
- package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -3
- package/lib/model/strategy/adapter/index.d.ts +0 -4
- package/lib/model/strategy/adapter/index.js +2 -13
- package/lib/model/strategy/adapter/promotion/index.js +0 -49
- package/lib/modules/Cart/utils/changePrice.js +13 -9
- package/lib/modules/Discount/index.d.ts +2 -5
- package/lib/modules/Discount/index.js +1 -11
- package/lib/modules/Discount/types.d.ts +0 -4
- package/lib/modules/Order/index.d.ts +0 -1
- package/lib/modules/Order/index.js +1 -11
- package/lib/modules/Order/types.d.ts +0 -2
- package/lib/modules/ProductList/index.d.ts +1 -3
- package/lib/modules/ProductList/index.js +39 -45
- package/lib/modules/Schedule/getDateIsInSchedule.js +0 -4
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- package/lib/solution/ScanOrder/index.js +1 -1
- package/lib/solution/ShopDiscount/index.js +2 -3
- package/lib/solution/VenueBooking/index.d.ts +3 -40
- package/lib/solution/VenueBooking/index.js +111 -257
- package/lib/solution/VenueBooking/types.d.ts +1 -3
- package/lib/solution/VenueBooking/types.js +0 -1
- package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/lib/solution/VenueBooking/utils/dateSummary.js +10 -5
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
- package/lib/solution/VenueBooking/utils/slotMerge.js +4 -3
- package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/lib/solution/VenueBooking/utils/timeSlot.js +3 -7
- package/package.json +1 -1
- package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
- package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
- package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
- package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
- package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
- package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
- package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
- package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
- package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
- package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
- package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
- package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
- package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
- package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
- package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
- package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
- package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
- package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
- package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
- package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
- package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/lib/solution/VenueBooking/utils/smartPricing.js +0 -180
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,5 @@ export * from './modules';
|
|
|
7
7
|
export * from './plugins';
|
|
8
8
|
export * from './solution';
|
|
9
9
|
export { PisellOSCore } from './core';
|
|
10
|
-
export { DataVariantEvaluator } from './model/strategy/adapter/dataVariant/evaluator';
|
|
11
10
|
import PisellOSCore from './core';
|
|
12
11
|
export default PisellOSCore;
|
package/dist/index.js
CHANGED
|
@@ -12,9 +12,6 @@ export * from "./solution";
|
|
|
12
12
|
// 导出核心实现
|
|
13
13
|
export { PisellOSCore } from "./core";
|
|
14
14
|
|
|
15
|
-
// 策略评估器(宿主注入 smart pricing / promotion 等场景使用)
|
|
16
|
-
export { DataVariantEvaluator } from "./model/strategy/adapter/dataVariant/evaluator";
|
|
17
|
-
|
|
18
15
|
// 导出框架主类
|
|
19
16
|
import PisellOSCore from "./core";
|
|
20
17
|
export default PisellOSCore;
|
|
@@ -5,7 +5,3 @@ export { PromotionEvaluator } from './promotion/evaluator';
|
|
|
5
5
|
export { PromotionAdapter } from './promotion/adapter';
|
|
6
6
|
export { ItemRuleEvaluator } from './itemRule/evaluator';
|
|
7
7
|
export { ItemRuleAdapter } from './itemRule/adapter';
|
|
8
|
-
export { DataVariantEvaluator } from './dataVariant/evaluator';
|
|
9
|
-
export { DataVariantAdapter } from './dataVariant/adapter';
|
|
10
|
-
export { runDataVariantDemo } from './dataVariant/examples';
|
|
11
|
-
export * from './dataVariant/type';
|
|
@@ -4,8 +4,4 @@ export { WalletPassEvaluator } from "./walletPass/evaluator";
|
|
|
4
4
|
export { PromotionEvaluator } from "./promotion/evaluator";
|
|
5
5
|
export { PromotionAdapter } from "./promotion/adapter";
|
|
6
6
|
export { ItemRuleEvaluator } from "./itemRule/evaluator";
|
|
7
|
-
export { ItemRuleAdapter } from "./itemRule/adapter";
|
|
8
|
-
export { DataVariantEvaluator } from "./dataVariant/evaluator";
|
|
9
|
-
export { DataVariantAdapter } from "./dataVariant/adapter";
|
|
10
|
-
export { runDataVariantDemo } from "./dataVariant/examples";
|
|
11
|
-
export * from "./dataVariant/type";
|
|
7
|
+
export { ItemRuleAdapter } from "./itemRule/adapter";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// 导出评估器
|
|
2
|
+
export { PromotionEvaluator } from "./evaluator";
|
|
3
|
+
|
|
4
|
+
// 导出适配器
|
|
5
|
+
export { PromotionAdapter } from "./adapter";
|
|
6
|
+
export { default } from "./adapter";
|
|
7
|
+
|
|
8
|
+
// 导出策略配置示例常量
|
|
9
|
+
export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY } from "./examples";
|
|
@@ -23,8 +23,8 @@ function _updateAllCartItemPrice() {
|
|
|
23
23
|
_iterator = _createForOfIteratorHelper(cartItems);
|
|
24
24
|
_context2.prev = 1;
|
|
25
25
|
_loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
|
|
26
|
-
var _item$_productOrigin, _bundle;
|
|
27
|
-
var item, targetProduct, cartProduct, productInfo, bundle, _productInfo$variant;
|
|
26
|
+
var _item$_productOrigin$, _item$_productOrigin, _item$_origin, _targetProduct$varian, _ref, _targetVariant$price, _ref2, _targetVariant$base_p, _item$_productOrigin2, _bundle;
|
|
27
|
+
var item, targetProduct, cartProduct, productInfo, variantId, targetVariant, bundle, _productInfo$variant;
|
|
28
28
|
return _regeneratorRuntime().wrap(function _loop$(_context) {
|
|
29
29
|
while (1) switch (_context.prev = _context.next) {
|
|
30
30
|
case 0:
|
|
@@ -40,10 +40,17 @@ function _updateAllCartItemPrice() {
|
|
|
40
40
|
if (!productInfo) {
|
|
41
41
|
productInfo = item._productOrigin;
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
|
|
44
|
+
// 查找选择的规格id
|
|
45
|
+
variantId = (_item$_productOrigin$ = item === null || item === void 0 || (_item$_productOrigin = item._productOrigin) === null || _item$_productOrigin === void 0 ? void 0 : _item$_productOrigin.product_variant_id) !== null && _item$_productOrigin$ !== void 0 ? _item$_productOrigin$ : item === null || item === void 0 || (_item$_origin = item._origin) === null || _item$_origin === void 0 || (_item$_origin = _item$_origin.product) === null || _item$_origin === void 0 ? void 0 : _item$_origin.product_variant_id;
|
|
46
|
+
targetVariant = targetProduct === null || targetProduct === void 0 || (_targetProduct$varian = targetProduct.variant) === null || _targetProduct$varian === void 0 ? void 0 : _targetProduct$varian.find(function (variant) {
|
|
47
|
+
return Number(variant.id) === Number(variantId);
|
|
48
|
+
});
|
|
49
|
+
bundle = item._bundleOrigin; // productInfo.price = targetProduct?.price;
|
|
50
|
+
// productInfo.base_price = targetProduct?.base_price;
|
|
51
|
+
productInfo.price = (_ref = (_targetVariant$price = targetVariant === null || targetVariant === void 0 ? void 0 : targetVariant.price) !== null && _targetVariant$price !== void 0 ? _targetVariant$price : targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.price) !== null && _ref !== void 0 ? _ref : productInfo.price;
|
|
52
|
+
productInfo.base_price = (_ref2 = (_targetVariant$base_p = targetVariant === null || targetVariant === void 0 ? void 0 : targetVariant.base_price) !== null && _targetVariant$base_p !== void 0 ? _targetVariant$base_p : targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.base_price) !== null && _ref2 !== void 0 ? _ref2 : productInfo.base_price;
|
|
53
|
+
productInfo.product_variant_id = (_item$_productOrigin2 = item._productOrigin) === null || _item$_productOrigin2 === void 0 ? void 0 : _item$_productOrigin2.product_variant_id;
|
|
47
54
|
bundle = (_bundle = bundle) === null || _bundle === void 0 ? void 0 : _bundle.map(function (n) {
|
|
48
55
|
var _targetProduct$bundle;
|
|
49
56
|
// 更新 bundle 的价格
|
|
@@ -75,8 +82,8 @@ function _updateAllCartItemPrice() {
|
|
|
75
82
|
// 如果有返回variant,则把对应variant的数据也补充进去
|
|
76
83
|
if (targetProduct !== null && targetProduct !== void 0 && targetProduct.variant) {
|
|
77
84
|
productInfo.variant = (_productInfo$variant = productInfo.variant) === null || _productInfo$variant === void 0 ? void 0 : _productInfo$variant.map(function (n) {
|
|
78
|
-
var _targetProduct$
|
|
79
|
-
var targetVariant = (_targetProduct$
|
|
85
|
+
var _targetProduct$varian2;
|
|
86
|
+
var targetVariant = (_targetProduct$varian2 = targetProduct.variant) === null || _targetProduct$varian2 === void 0 ? void 0 : _targetProduct$varian2.find(function (m) {
|
|
80
87
|
return m.id === n.id;
|
|
81
88
|
});
|
|
82
89
|
if (targetVariant) {
|
|
@@ -99,7 +106,7 @@ function _updateAllCartItemPrice() {
|
|
|
99
106
|
bundle: bundle,
|
|
100
107
|
options: item._optionsOrigin
|
|
101
108
|
});
|
|
102
|
-
case
|
|
109
|
+
case 17:
|
|
103
110
|
case "end":
|
|
104
111
|
return _context.stop();
|
|
105
112
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { Discount, DiscountModuleAPI, DiscountWithReason
|
|
3
|
+
import { Discount, DiscountModuleAPI, DiscountWithReason } from './types';
|
|
4
4
|
export declare class DiscountModule extends BaseModule implements Module, DiscountModuleAPI {
|
|
5
5
|
protected defaultName: string;
|
|
6
6
|
protected defaultVersion: string;
|
|
@@ -22,12 +22,9 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
|
|
|
22
22
|
with_discount_card: 0 | 1;
|
|
23
23
|
customer_id: number;
|
|
24
24
|
with_wallet_pass_holder: 0 | 1;
|
|
25
|
-
with_available_wallet_flag?: 0 | 1;
|
|
26
|
-
with_available_wallet_pass_flag?: 0 | 1;
|
|
27
25
|
request_timezone: string;
|
|
28
26
|
order_id?: number;
|
|
29
|
-
}): Promise<
|
|
30
|
-
private extractAvailableWalletIds;
|
|
27
|
+
}): Promise<Discount[]>;
|
|
31
28
|
batchSearch(code: string, options?: {
|
|
32
29
|
customerId?: number;
|
|
33
30
|
orderId?: number;
|
|
@@ -163,10 +163,7 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
163
163
|
case 2:
|
|
164
164
|
prepareConfig = _context4.sent;
|
|
165
165
|
goodPassList = this.filterEnabledDiscountList([].concat(_toConsumableArray((prepareConfig === null || prepareConfig === void 0 || (_prepareConfig$data = prepareConfig.data) === null || _prepareConfig$data === void 0 ? void 0 : _prepareConfig$data.good_pass_list) || []), _toConsumableArray((prepareConfig === null || prepareConfig === void 0 || (_prepareConfig$data2 = prepareConfig.data) === null || _prepareConfig$data2 === void 0 ? void 0 : _prepareConfig$data2.discount_card_list) || []))) || []; // this.setDiscountList(goodPassList);
|
|
166
|
-
return _context4.abrupt("return",
|
|
167
|
-
discountList: goodPassList,
|
|
168
|
-
availableWalletIds: this.extractAvailableWalletIds(prepareConfig === null || prepareConfig === void 0 ? void 0 : prepareConfig.data)
|
|
169
|
-
});
|
|
166
|
+
return _context4.abrupt("return", goodPassList);
|
|
170
167
|
case 5:
|
|
171
168
|
case "end":
|
|
172
169
|
return _context4.stop();
|
|
@@ -178,23 +175,6 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
178
175
|
}
|
|
179
176
|
return loadPrepareConfig;
|
|
180
177
|
}()
|
|
181
|
-
}, {
|
|
182
|
-
key: "extractAvailableWalletIds",
|
|
183
|
-
value: function extractAvailableWalletIds(data) {
|
|
184
|
-
var availableWalletList = Array.isArray(data === null || data === void 0 ? void 0 : data.avaiable_wallet_list) ? data.avaiable_wallet_list : Array.isArray(data === null || data === void 0 ? void 0 : data.available_wallet_list) ? data.available_wallet_list : [];
|
|
185
|
-
var availableWalletPassList = Array.isArray(data === null || data === void 0 ? void 0 : data.available_wallet_pass_list) ? data.available_wallet_pass_list : [];
|
|
186
|
-
var walletIds = availableWalletList.map(function (item) {
|
|
187
|
-
return Number(item === null || item === void 0 ? void 0 : item.wallet_id);
|
|
188
|
-
}).filter(function (id) {
|
|
189
|
-
return Number.isFinite(id) && id > 0;
|
|
190
|
-
});
|
|
191
|
-
var walletPassProductIds = availableWalletPassList.map(function (item) {
|
|
192
|
-
return Number(item === null || item === void 0 ? void 0 : item.product_id);
|
|
193
|
-
}).filter(function (id) {
|
|
194
|
-
return Number.isFinite(id) && id > 0;
|
|
195
|
-
});
|
|
196
|
-
return Array.from(new Set([].concat(_toConsumableArray(walletIds), _toConsumableArray(walletPassProductIds))));
|
|
197
|
-
}
|
|
198
178
|
}, {
|
|
199
179
|
key: "batchSearch",
|
|
200
180
|
value: function () {
|
|
@@ -68,10 +68,6 @@ export interface DiscountWithReason {
|
|
|
68
68
|
discountList: Discount[];
|
|
69
69
|
unavailableReasonKey: DiscountFilterRejectKey | null;
|
|
70
70
|
}
|
|
71
|
-
export interface DiscountPrepareConfigResult {
|
|
72
|
-
discountList: Discount[];
|
|
73
|
-
availableWalletIds: number[];
|
|
74
|
-
}
|
|
75
71
|
interface ExtensionData {
|
|
76
72
|
id: number;
|
|
77
73
|
shop_id: number;
|
|
@@ -42,7 +42,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
42
42
|
action?: 'create';
|
|
43
43
|
}): Promise<void>;
|
|
44
44
|
getDiscountList(): Discount[];
|
|
45
|
-
getAvailableWalletIds(): number[];
|
|
46
45
|
scanCode(code: string, customerId?: number): Promise<{
|
|
47
46
|
isAvailable: boolean;
|
|
48
47
|
discountList: Discount[];
|
|
@@ -66,9 +66,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
66
66
|
if (!this.store.tempOrder) {
|
|
67
67
|
this.store.tempOrder = null;
|
|
68
68
|
}
|
|
69
|
-
if (!Array.isArray(this.store.availableWalletIds)) {
|
|
70
|
-
this.store.availableWalletIds = [];
|
|
71
|
-
}
|
|
72
69
|
this.request = this.core.getPlugin('request');
|
|
73
70
|
this.window = this.core.getPlugin('window');
|
|
74
71
|
otherParams = options.otherParams || {};
|
|
@@ -79,15 +76,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
79
76
|
this.restoreTempOrderFromStorage();
|
|
80
77
|
appPlugin = this.core.getPlugin('app');
|
|
81
78
|
if (appPlugin) {
|
|
82
|
-
_context.next =
|
|
79
|
+
_context.next = 14;
|
|
83
80
|
break;
|
|
84
81
|
}
|
|
85
82
|
throw new Error('Order 模块需要 app 插件支持');
|
|
86
|
-
case
|
|
83
|
+
case 14:
|
|
87
84
|
app = appPlugin.getApp();
|
|
88
85
|
this.logger = app.logger;
|
|
89
86
|
this.logInfo('OrderModule initialized successfully');
|
|
90
|
-
case
|
|
87
|
+
case 17:
|
|
91
88
|
case "end":
|
|
92
89
|
return _context.stop();
|
|
93
90
|
}
|
|
@@ -188,7 +185,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
188
185
|
value: function () {
|
|
189
186
|
var _loadDiscountConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params) {
|
|
190
187
|
var _this$store$discount, _this$store$tempOrder;
|
|
191
|
-
var
|
|
188
|
+
var discountList, _this$store$discount2;
|
|
192
189
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
193
190
|
while (1) switch (_context2.prev = _context2.next) {
|
|
194
191
|
case 0:
|
|
@@ -199,21 +196,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
199
196
|
with_good_pass: 1,
|
|
200
197
|
with_discount_card: 1,
|
|
201
198
|
with_wallet_pass_holder: 1,
|
|
202
|
-
with_available_wallet_flag: 1,
|
|
203
|
-
with_available_wallet_pass_flag: 1,
|
|
204
199
|
request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
205
200
|
});
|
|
206
201
|
case 2:
|
|
207
|
-
|
|
208
|
-
discountList = prepareConfig === null || prepareConfig === void 0 ? void 0 : prepareConfig.discountList;
|
|
209
|
-
this.store.availableWalletIds = (prepareConfig === null || prepareConfig === void 0 ? void 0 : prepareConfig.availableWalletIds) || [];
|
|
202
|
+
discountList = _context2.sent;
|
|
210
203
|
if (discountList) {
|
|
211
204
|
(_this$store$discount2 = this.store.discount) === null || _this$store$discount2 === void 0 || _this$store$discount2.setDiscountList(discountList);
|
|
212
205
|
}
|
|
213
206
|
if ((_this$store$tempOrder = this.store.tempOrder) !== null && _this$store$tempOrder !== void 0 && (_this$store$tempOrder = _this$store$tempOrder.products) !== null && _this$store$tempOrder !== void 0 && _this$store$tempOrder.length) {
|
|
214
207
|
this.applyDiscount();
|
|
215
208
|
}
|
|
216
|
-
case
|
|
209
|
+
case 5:
|
|
217
210
|
case "end":
|
|
218
211
|
return _context2.stop();
|
|
219
212
|
}
|
|
@@ -230,11 +223,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
230
223
|
var _this$store$discount3;
|
|
231
224
|
return ((_this$store$discount3 = this.store.discount) === null || _this$store$discount3 === void 0 ? void 0 : _this$store$discount3.getDiscountList()) || [];
|
|
232
225
|
}
|
|
233
|
-
}, {
|
|
234
|
-
key: "getAvailableWalletIds",
|
|
235
|
-
value: function getAvailableWalletIds() {
|
|
236
|
-
return this.store.availableWalletIds || [];
|
|
237
|
-
}
|
|
238
226
|
}, {
|
|
239
227
|
key: "scanCode",
|
|
240
228
|
value: function () {
|
|
@@ -15,7 +15,6 @@ export interface OrderState {
|
|
|
15
15
|
discountList: any[];
|
|
16
16
|
discount: DiscountModule | null;
|
|
17
17
|
rules: RulesModule | null;
|
|
18
|
-
availableWalletIds?: number[];
|
|
19
18
|
}
|
|
20
19
|
/** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 identity_key / 选项指纹等 */
|
|
21
20
|
export interface UpdateProductInOrderParams {
|
|
@@ -249,6 +248,5 @@ export interface OrderModuleAPI {
|
|
|
249
248
|
action?: 'create';
|
|
250
249
|
}) => Promise<void>;
|
|
251
250
|
getDiscountList: () => Discount[];
|
|
252
|
-
getAvailableWalletIds: () => number[];
|
|
253
251
|
applyDiscount: () => void;
|
|
254
252
|
}
|
|
@@ -11,7 +11,7 @@ export declare class ProductList extends BaseModule implements Module {
|
|
|
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>;
|
|
14
|
-
loadProducts({ category_ids, product_ids, collection, menu_list_ids, customer_id: paramsCustomerId, with_count, schedule_datetime, schedule_date, cacheId, with_schedule,
|
|
14
|
+
loadProducts({ category_ids, product_ids, collection, menu_list_ids, customer_id: paramsCustomerId, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, }: {
|
|
15
15
|
category_ids?: number[];
|
|
16
16
|
product_ids?: number[];
|
|
17
17
|
collection?: number | string[];
|
|
@@ -22,8 +22,6 @@ export declare class ProductList extends BaseModule implements Module {
|
|
|
22
22
|
menu_list_ids?: number[];
|
|
23
23
|
with_count?: string[];
|
|
24
24
|
with_schedule?: number;
|
|
25
|
-
/** 追加到默认 with 字段(如 dataVariants) */
|
|
26
|
-
with_extra?: string[];
|
|
27
25
|
}): Promise<any>;
|
|
28
26
|
loadProductsPrice({ ids, customer_id, schedule_date, channel, }: {
|
|
29
27
|
ids?: number[];
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
2
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
9
3
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
10
4
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
@@ -91,11 +85,11 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
91
85
|
key: "loadProducts",
|
|
92
86
|
value: function () {
|
|
93
87
|
var _loadProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref) {
|
|
94
|
-
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,
|
|
88
|
+
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;
|
|
95
89
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
96
90
|
while (1) switch (_context3.prev = _context3.next) {
|
|
97
91
|
case 0:
|
|
98
|
-
_ref$category_ids = _ref.category_ids, category_ids = _ref$category_ids === void 0 ? [] : _ref$category_ids, _ref$product_ids = _ref.product_ids, product_ids = _ref$product_ids === void 0 ? [] : _ref$product_ids, _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? [] : _ref$collection, _ref$menu_list_ids = _ref.menu_list_ids, menu_list_ids = _ref$menu_list_ids === void 0 ? [] : _ref$menu_list_ids, paramsCustomerId = _ref.customer_id, _ref$with_count = _ref.with_count, with_count = _ref$with_count === void 0 ? [] : _ref$with_count, schedule_datetime = _ref.schedule_datetime, schedule_date = _ref.schedule_date, cacheId = _ref.cacheId, with_schedule = _ref.with_schedule
|
|
92
|
+
_ref$category_ids = _ref.category_ids, category_ids = _ref$category_ids === void 0 ? [] : _ref$category_ids, _ref$product_ids = _ref.product_ids, product_ids = _ref$product_ids === void 0 ? [] : _ref$product_ids, _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? [] : _ref$collection, _ref$menu_list_ids = _ref.menu_list_ids, menu_list_ids = _ref$menu_list_ids === void 0 ? [] : _ref$menu_list_ids, paramsCustomerId = _ref.customer_id, _ref$with_count = _ref.with_count, with_count = _ref$with_count === void 0 ? [] : _ref$with_count, schedule_datetime = _ref.schedule_datetime, schedule_date = _ref.schedule_date, cacheId = _ref.cacheId, with_schedule = _ref.with_schedule;
|
|
99
93
|
// // 如果 schedule_ids 为空,则需要尝试从 schedule 模块里获取
|
|
100
94
|
// if (!schedule_ids?.length) {
|
|
101
95
|
// const schedule_ids_data = this.store.schedule
|
|
@@ -115,13 +109,13 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
115
109
|
} catch (error) {
|
|
116
110
|
console.error(error);
|
|
117
111
|
}
|
|
118
|
-
|
|
119
|
-
_context3.next =
|
|
112
|
+
// 如果没传schedule_date,则从
|
|
113
|
+
_context3.next = 6;
|
|
120
114
|
return this.request.post("/product/query", {
|
|
121
115
|
open_quotation: 1,
|
|
122
116
|
open_bundle: 0,
|
|
123
117
|
exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item'],
|
|
124
|
-
with: ['category', 'collection', 'resourceRelation']
|
|
118
|
+
with: ['category', 'collection', 'resourceRelation'],
|
|
125
119
|
status: 'published',
|
|
126
120
|
num: 500,
|
|
127
121
|
skip: 1,
|
|
@@ -130,21 +124,20 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
130
124
|
ids: product_ids,
|
|
131
125
|
collection: collection,
|
|
132
126
|
front_end_cache_id: cacheId,
|
|
127
|
+
menu_list_ids: menu_list_ids,
|
|
133
128
|
with_count: with_count,
|
|
134
129
|
// client_schedule_ids: schedule_ids,
|
|
135
130
|
schedule_date: schedule_date,
|
|
136
|
-
schedule_datetime: schedule_datetime,
|
|
137
131
|
// application_code: this.otherParams?.channel === 'online_store' ? 'online-store' : this.otherParams?.channel,
|
|
138
132
|
application_code: 'online-store',
|
|
139
133
|
with_schedule: with_schedule,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
open_deposit: 1
|
|
134
|
+
schedule_datetime: schedule_datetime,
|
|
135
|
+
is_eject: 1
|
|
143
136
|
}, {
|
|
144
137
|
useCache: true,
|
|
145
138
|
customToast: function customToast() {}
|
|
146
139
|
});
|
|
147
|
-
case
|
|
140
|
+
case 6:
|
|
148
141
|
productsData = _context3.sent;
|
|
149
142
|
sortedList = (productsData.data.list || []).slice().sort(function (a, b) {
|
|
150
143
|
return Number(b.sort) - Number(a.sort);
|
|
@@ -157,15 +150,11 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
157
150
|
// }
|
|
158
151
|
this.addProduct(sortedList);
|
|
159
152
|
return _context3.abrupt("return", sortedList);
|
|
160
|
-
case
|
|
161
|
-
_context3.prev = 13;
|
|
162
|
-
_context3.t0 = _context3["catch"](4);
|
|
163
|
-
return _context3.abrupt("return", _context3.t0);
|
|
164
|
-
case 16:
|
|
153
|
+
case 10:
|
|
165
154
|
case "end":
|
|
166
155
|
return _context3.stop();
|
|
167
156
|
}
|
|
168
|
-
}, _callee3, this
|
|
157
|
+
}, _callee3, this);
|
|
169
158
|
}));
|
|
170
159
|
function loadProducts(_x5) {
|
|
171
160
|
return _loadProducts.apply(this, arguments);
|
|
@@ -6,11 +6,6 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
|
|
|
6
6
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
7
7
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
8
|
import dayjs from "dayjs";
|
|
9
|
-
import isSameOrAfter from "dayjs/plugin/isSameOrAfter";
|
|
10
|
-
import isSameOrBefore from "dayjs/plugin/isSameOrBefore";
|
|
11
|
-
dayjs.extend(isSameOrAfter);
|
|
12
|
-
dayjs.extend(isSameOrBefore);
|
|
13
|
-
|
|
14
9
|
// 获取时间是否在日程范围内
|
|
15
10
|
export var getDateIsInSchedule = function getDateIsInSchedule(dateTime, scheduleList) {
|
|
16
11
|
if (!dateTime || !scheduleList || scheduleList.length === 0) {
|
|
@@ -310,7 +310,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
310
310
|
date: string;
|
|
311
311
|
status: string;
|
|
312
312
|
week: string;
|
|
313
|
-
weekNum: 0 | 1 | 5 | 4 |
|
|
313
|
+
weekNum: 0 | 2 | 1 | 5 | 4 | 3 | 6;
|
|
314
314
|
}[]>;
|
|
315
315
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
316
316
|
private getScheduleDataByIds;
|
|
@@ -329,7 +329,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
329
329
|
count: number;
|
|
330
330
|
left: number;
|
|
331
331
|
summaryCount: number;
|
|
332
|
-
status: "
|
|
332
|
+
status: "lots_of_space" | "filling_up_fast" | "sold_out";
|
|
333
333
|
}[];
|
|
334
334
|
/**
|
|
335
335
|
* 找到多个资源的公共可用时间段
|
|
@@ -857,7 +857,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
857
857
|
var tempOrder = this.store.order.ensureTempOrder();
|
|
858
858
|
tempOrder.metadata = _objectSpread(_objectSpread({}, tempOrder.metadata || {}), {}, {
|
|
859
859
|
shop_service_data: _objectSpread(_objectSpread({}, (tempOrder.metadata || {}).shop_service_data || {}), {}, {
|
|
860
|
-
service_type: ((_this$otherParams4 = this.otherParams) === null || _this$otherParams4 === void 0 ? void 0 : _this$otherParams4.businessCode) === 'dine_in' ? 'dine_in' : '',
|
|
860
|
+
service_type: ((_this$otherParams4 = this.otherParams) === null || _this$otherParams4 === void 0 ? void 0 : _this$otherParams4.businessCode) === 'dine_in' ? 'dine_in' : 'take_away',
|
|
861
861
|
pickup_reference_mode: mode
|
|
862
862
|
})
|
|
863
863
|
});
|
|
@@ -783,7 +783,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
783
783
|
key: "loadPrepareConfig",
|
|
784
784
|
value: function () {
|
|
785
785
|
var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(params) {
|
|
786
|
-
var _this$getCustomer2, _this$store$discount8, _this$getDiscountList, _this$store$discount9, _this$store$productLi2, orderId, customerId,
|
|
786
|
+
var _this$getCustomer2, _this$store$discount8, _this$getDiscountList, _this$store$discount9, _this$store$productLi2, orderId, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, _result3;
|
|
787
787
|
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
788
788
|
while (1) switch (_context10.prev = _context10.next) {
|
|
789
789
|
case 0:
|
|
@@ -804,48 +804,47 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
804
804
|
order_id: orderId
|
|
805
805
|
} : {}));
|
|
806
806
|
case 5:
|
|
807
|
-
|
|
808
|
-
goodPassList = (prepareConfig === null || prepareConfig === void 0 ? void 0 : prepareConfig.discountList) || [];
|
|
807
|
+
goodPassList = _context10.sent;
|
|
809
808
|
scanDiscount = (_this$getDiscountList = this.getDiscountList()) === null || _this$getDiscountList === void 0 ? void 0 : _this$getDiscountList.filter(function (item) {
|
|
810
809
|
return item.isScan;
|
|
811
810
|
}); // goodPassList 里可能有 scanDiscount 重合的部分,goodPassList 需要剔除
|
|
812
811
|
scanDiscountIds = scanDiscount.map(function (n) {
|
|
813
812
|
return n.id;
|
|
814
813
|
});
|
|
815
|
-
newGoodPassList = goodPassList.filter(function (n) {
|
|
814
|
+
newGoodPassList = goodPassList === null || goodPassList === void 0 ? void 0 : goodPassList.filter(function (n) {
|
|
816
815
|
return !scanDiscountIds.includes(n.id);
|
|
817
816
|
});
|
|
818
817
|
newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || [])); // 存储原始优惠券列表
|
|
819
818
|
this.store.originalDiscountList = newDiscountList;
|
|
820
|
-
_context10.next =
|
|
819
|
+
_context10.next = 13;
|
|
821
820
|
return (_this$store$discount9 = this.store.discount) === null || _this$store$discount9 === void 0 ? void 0 : _this$store$discount9.setOriginalDiscountList(newDiscountList);
|
|
822
|
-
case
|
|
821
|
+
case 13:
|
|
823
822
|
// 根据当前预约时间过滤优惠券列表
|
|
824
823
|
filteredDiscountList = this.filterDiscountListByBookingTime(newDiscountList, this.store.currentBookingTime);
|
|
825
824
|
this.store.filteredDiscountList = filteredDiscountList;
|
|
826
825
|
this.setDiscountList(filteredDiscountList || []);
|
|
827
826
|
if (!((_this$store$productLi2 = this.store.productList) !== null && _this$store$productLi2 !== void 0 && _this$store$productLi2.length)) {
|
|
828
|
-
_context10.next =
|
|
827
|
+
_context10.next = 20;
|
|
829
828
|
break;
|
|
830
829
|
}
|
|
831
830
|
_result3 = this.calcDiscount(this.store.productList);
|
|
832
|
-
_context10.next =
|
|
831
|
+
_context10.next = 20;
|
|
833
832
|
return this.core.effects.emit("".concat(this.name, ":onLoadPrepareCalcResult"), _result3);
|
|
834
|
-
case
|
|
835
|
-
_context10.next =
|
|
833
|
+
case 20:
|
|
834
|
+
_context10.next = 22;
|
|
836
835
|
return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), filteredDiscountList);
|
|
837
|
-
case
|
|
838
|
-
_context10.next =
|
|
836
|
+
case 22:
|
|
837
|
+
_context10.next = 27;
|
|
839
838
|
break;
|
|
840
|
-
case
|
|
841
|
-
_context10.prev =
|
|
839
|
+
case 24:
|
|
840
|
+
_context10.prev = 24;
|
|
842
841
|
_context10.t0 = _context10["catch"](0);
|
|
843
842
|
console.error('[ShopDiscount] 加载准备配置出错:', _context10.t0);
|
|
844
|
-
case
|
|
843
|
+
case 27:
|
|
845
844
|
case "end":
|
|
846
845
|
return _context10.stop();
|
|
847
846
|
}
|
|
848
|
-
}, _callee10, this, [[0,
|
|
847
|
+
}, _callee10, this, [[0, 24]]);
|
|
849
848
|
}));
|
|
850
849
|
function loadPrepareConfig(_x10) {
|
|
851
850
|
return _loadPrepareConfig.apply(this, arguments);
|
|
@@ -3,7 +3,6 @@ import { BaseModule } from '../../modules/BaseModule';
|
|
|
3
3
|
import { VenueBookingAddLogParams, VenueBookingSlotConfig, VenueDateSummaryItem, VenueSlotSelection, VenueTimeSlotGrid } from './types';
|
|
4
4
|
import type { ScanOrderOrderProduct, ScanOrderOrderProductIdentity } from '../ScanOrder/types';
|
|
5
5
|
import type { UpdateProductInOrderParams } from '../../modules/Order/types';
|
|
6
|
-
import type { ScheduleItem } from '../../modules/Schedule/types';
|
|
7
6
|
import type { OpenDataAvailabilityResult } from '../../modules/OpenData';
|
|
8
7
|
import type { ProductData } from '../../modules/Product/types';
|
|
9
8
|
import { type CartItemSummary, type PaxInfo, type QuantityCheckResult, type QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
|
|
@@ -37,17 +36,10 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
|
|
|
37
36
|
private loginEffectDisposers;
|
|
38
37
|
private customerLoginRefreshInFlight;
|
|
39
38
|
private customerLoginRefreshIdInFlight;
|
|
40
|
-
/** 最近一次确认登录的客户;登录事件与 user 插件更新之间可能存在时序差。 */
|
|
41
|
-
private smartPricingCustomerId;
|
|
42
39
|
private loadAllProductsInFlight;
|
|
43
40
|
private productsLoaded;
|
|
44
41
|
private loadOpenDataConfigInFlight;
|
|
45
42
|
private static readonly OPEN_DATA_CACHE_TTL;
|
|
46
|
-
/** 按日期缓存 slot 智能定价 Map,避免同周重复 resolveProducts */
|
|
47
|
-
private slotPriceMapCache;
|
|
48
|
-
/** loadProducts 后缓存的全量商品(venue + addon),供分段算价复用 */
|
|
49
|
-
private smartPricingProductCatalog;
|
|
50
|
-
private static readonly PISELL1_LOGIN_SUCCESS;
|
|
51
43
|
private getLoggerContext;
|
|
52
44
|
private safeStringify;
|
|
53
45
|
private pickErrorMessage;
|
|
@@ -76,22 +68,6 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
|
|
|
76
68
|
passed: boolean | null;
|
|
77
69
|
failures: QuantityCheckResult[];
|
|
78
70
|
};
|
|
79
|
-
/** 清除 slot 价格分段缓存(商品重载 / 登录后 customerId 变化时调用) */
|
|
80
|
-
private clearSlotPriceMapCache;
|
|
81
|
-
/** 读取当前登录 customerId */
|
|
82
|
-
private resolveCustomerIdForSmartPricing;
|
|
83
|
-
private resolveAvailableWalletIdsForSmartPricing;
|
|
84
|
-
/** 读取 schedule 全量列表,供智能定价 schedule_match 使用 */
|
|
85
|
-
private getScheduleListForSmartPricing;
|
|
86
|
-
/** 构建智能定价上下文,对齐 OS Server buildProductFormatterContext */
|
|
87
|
-
private buildSmartPricingContext;
|
|
88
|
-
/** venue + addon 全量商品,供智能定价评估 */
|
|
89
|
-
private getAllProductsForSmartPricing;
|
|
90
|
-
private getSlotPriceMapCacheKey;
|
|
91
|
-
/**
|
|
92
|
-
* 按 schedule 分段构建 slot 价格 Map,带实例级缓存。
|
|
93
|
-
*/
|
|
94
|
-
private buildSlotPriceMapForDate;
|
|
95
71
|
loadAllProducts(): Promise<{
|
|
96
72
|
venueProducts: ProductData[];
|
|
97
73
|
addonProducts: ProductData[];
|
|
@@ -164,7 +140,8 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
|
|
|
164
140
|
setSlotConfig(config: Partial<VenueBookingSlotConfig>): void;
|
|
165
141
|
getSlotConfig(): VenueBookingSlotConfig;
|
|
166
142
|
loadSchedules(): Promise<void>;
|
|
167
|
-
|
|
143
|
+
private injectScheduleResolverToQuotation;
|
|
144
|
+
getScheduleListByIds(ids: number[]): import("../../modules/Schedule/types").ScheduleItem[];
|
|
168
145
|
getTempOrder(): import("./types").ScanOrderTempOrder | null;
|
|
169
146
|
updateTempOrderNote(note: string): string;
|
|
170
147
|
updateTempOrderContactsInfo(contactsInfo: any[]): any[];
|
|
@@ -172,12 +149,7 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
|
|
|
172
149
|
onCustomerLogin(params: {
|
|
173
150
|
customerId: number;
|
|
174
151
|
}): Promise<void>;
|
|
175
|
-
private
|
|
176
|
-
/**
|
|
177
|
-
* DataVariant 重算价格后,同步刷新订单展示、Rules 与 Summary 共用的价格口径。
|
|
178
|
-
* Rules 会在本轮结束后根据当前客户的 discountList 重新写入实际折扣。
|
|
179
|
-
*/
|
|
180
|
-
private resetProductPriceForSmartPricing;
|
|
152
|
+
private recalculateOrderPricesFromQuotation;
|
|
181
153
|
scanCode(code: string, customerId?: number): Promise<{
|
|
182
154
|
isAvailable: boolean;
|
|
183
155
|
discountList: import("../../modules/Discount").Discount[];
|
|
@@ -192,15 +164,6 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
|
|
|
192
164
|
discountId: number;
|
|
193
165
|
isSelected: boolean;
|
|
194
166
|
}): Promise<import("../../modules/Discount").Discount[]>;
|
|
195
|
-
/**
|
|
196
|
-
* 统一 VenueBooking 折扣后的订单行价。
|
|
197
|
-
*
|
|
198
|
-
* Rules 的 `discount_list.amount` 是已经按适用规则计算出的每件优惠额;它是这里唯一
|
|
199
|
-
* 的折扣金额来源。使用智能定价写入的 source_product_price 减去该金额,再同步
|
|
200
|
-
* selling_price 与 Summary 使用的 main_product_selling_price,避免 UI 的购物车行价、
|
|
201
|
-
* 小计和提交订单各自读取到不同的价格字段。
|
|
202
|
-
*/
|
|
203
|
-
private normalizeDiscountedOrderPrices;
|
|
204
167
|
addNewOrder(): Promise<import("./types").ScanOrderTempOrder>;
|
|
205
168
|
getOrderProducts(): ScanOrderOrderProduct[];
|
|
206
169
|
getSummary(): Promise<import("./types").ScanOrderSummary>;
|