@pisell/pisellos 2.3.74 → 2.3.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.js +6 -10
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +75 -91
- package/dist/modules/Order/types.d.ts +3 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +100 -72
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -252
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.js +45 -55
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +134 -134
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +122 -127
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +70 -76
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +1733 -2121
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +3 -1
- package/lib/modules/Order/types.js +88 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +81 -118
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/ResourcePlanner/index.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +589 -770
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
- package/lib/modules/Schedule/index.js +100 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +3050 -2665
- package/lib/server/modules/floor-plan/index.js +118 -134
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +142 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +784 -1002
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.js +583 -471
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +220 -186
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1220 -1412
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.js +1527 -1340
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.js +607 -522
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -156
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,282 +1,282 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
28
2
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__export(Discount_exports, {
|
|
32
|
-
DiscountModule: () => DiscountModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
|
|
6
|
+
exports.DiscountModule = void 0;
|
|
7
|
+
var _utils = require("../../solution/ShopDiscount/utils");
|
|
8
|
+
var _BaseModule = require("../BaseModule");
|
|
9
|
+
var _types = require("./types");
|
|
10
|
+
var _decimal = _interopRequireDefault(require("decimal.js"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
class DiscountModule extends _BaseModule.BaseModule {
|
|
13
|
+
defaultName = 'discount';
|
|
14
|
+
defaultVersion = '1.0.0';
|
|
15
|
+
request;
|
|
16
|
+
window;
|
|
17
|
+
store;
|
|
18
|
+
cacheId;
|
|
19
|
+
openCache = false;
|
|
20
|
+
fatherModule;
|
|
40
21
|
constructor(name, version) {
|
|
41
22
|
super(name, version);
|
|
42
|
-
this.defaultName = "discount";
|
|
43
|
-
this.defaultVersion = "1.0.0";
|
|
44
|
-
this.openCache = false;
|
|
45
23
|
}
|
|
46
24
|
async initialize(core, options) {
|
|
47
|
-
var _a, _b, _c, _d;
|
|
48
25
|
this.core = core;
|
|
49
|
-
this.store = options
|
|
50
|
-
if (Array.isArray(
|
|
51
|
-
this.store.discountList = options
|
|
26
|
+
this.store = options?.store;
|
|
27
|
+
if (Array.isArray(options?.initialState?.discountList)) {
|
|
28
|
+
this.store.discountList = options?.initialState.discountList;
|
|
52
29
|
} else {
|
|
53
30
|
this.store.discountList = [];
|
|
54
31
|
}
|
|
55
|
-
if (Array.isArray(
|
|
56
|
-
this.store.originalDiscountList = options
|
|
32
|
+
if (Array.isArray(options?.initialState?.originalDiscountList)) {
|
|
33
|
+
this.store.originalDiscountList = options?.initialState.originalDiscountList;
|
|
57
34
|
} else {
|
|
58
35
|
this.store.originalDiscountList = [];
|
|
59
36
|
}
|
|
60
|
-
if (
|
|
37
|
+
if (options?.otherParams?.cacheId) {
|
|
61
38
|
this.openCache = options.otherParams.openCache;
|
|
62
39
|
this.cacheId = options.otherParams.cacheId;
|
|
63
40
|
}
|
|
64
|
-
if (
|
|
41
|
+
if (options?.otherParams?.fatherModule) {
|
|
65
42
|
this.fatherModule = options.otherParams.fatherModule;
|
|
66
43
|
}
|
|
67
|
-
|
|
68
|
-
|
|
44
|
+
|
|
45
|
+
// 获取依赖的插件
|
|
46
|
+
this.request = core.getPlugin('request');
|
|
47
|
+
this.window = core.getPlugin('window');
|
|
69
48
|
if (!this.request) {
|
|
70
|
-
throw new Error(
|
|
49
|
+
throw new Error('discount模块需要 request 插件支持');
|
|
71
50
|
}
|
|
72
51
|
if (!this.window) {
|
|
73
|
-
throw new Error(
|
|
52
|
+
throw new Error('discount模块需要 window 插件支持');
|
|
74
53
|
}
|
|
75
54
|
}
|
|
76
55
|
async setDiscountList(discountList) {
|
|
77
56
|
this.store.discountList = discountList;
|
|
78
|
-
await this.core.effects.emit(
|
|
79
|
-
import_types.DiscountHooks.OnDiscountListChange,
|
|
80
|
-
discountList
|
|
81
|
-
);
|
|
57
|
+
await this.core.effects.emit(_types.DiscountHooks.OnDiscountListChange, discountList);
|
|
82
58
|
}
|
|
83
59
|
getDiscountList() {
|
|
84
60
|
return this.store.discountList;
|
|
85
61
|
}
|
|
62
|
+
|
|
86
63
|
// 设置原始优惠券列表
|
|
87
64
|
async setOriginalDiscountList(originalDiscountList) {
|
|
88
65
|
this.store.originalDiscountList = originalDiscountList;
|
|
89
66
|
}
|
|
67
|
+
|
|
90
68
|
// 获取原始优惠券列表
|
|
91
69
|
getOriginalDiscountList() {
|
|
92
70
|
return this.store.originalDiscountList || [];
|
|
93
71
|
}
|
|
94
72
|
normalizePositiveNumberIds(values) {
|
|
95
|
-
const ids = values.map(
|
|
73
|
+
const ids = values.map(value => Number(value)).filter(value => Number.isFinite(value) && value > 0);
|
|
96
74
|
return Array.from(new Set(ids));
|
|
97
75
|
}
|
|
98
76
|
async loadPrepareConfig(params) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
params.order_id = void 0;
|
|
77
|
+
if (typeof params.order_id === 'string' && params.order_id.startsWith('LOCAL_')) {
|
|
78
|
+
params.order_id = undefined;
|
|
102
79
|
}
|
|
103
|
-
const prepareConfig = await this.request.post(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
...((_c = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _c.avaiable_wallet_list) || [],
|
|
117
|
-
...((_d = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _d.available_wallet_list) || []
|
|
118
|
-
];
|
|
119
|
-
const availableWalletPassList = ((_e = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _e.available_wallet_pass_list) || [];
|
|
120
|
-
const availableWalletIds = this.normalizePositiveNumberIds([
|
|
121
|
-
...availableWalletList.map((item) => item == null ? void 0 : item.wallet_id),
|
|
122
|
-
...availableWalletPassList.map((item) => item == null ? void 0 : item.product_id)
|
|
123
|
-
]);
|
|
124
|
-
const goodPassList = this.filterEnabledDiscountList(
|
|
125
|
-
rawDiscountList
|
|
126
|
-
) || [];
|
|
80
|
+
const prepareConfig = await this.request.post(`/order/prepare/config`, {
|
|
81
|
+
...params,
|
|
82
|
+
with_available_wallet_flag: params.with_available_wallet_flag ?? 1,
|
|
83
|
+
with_available_wallet_pass_flag: params.with_available_wallet_pass_flag ?? 1
|
|
84
|
+
});
|
|
85
|
+
const rawDiscountList = [...(prepareConfig?.data?.good_pass_list || []), ...(prepareConfig?.data?.discount_card_list || [])];
|
|
86
|
+
const availableWalletList = [...(prepareConfig?.data?.avaiable_wallet_list || []), ...(prepareConfig?.data?.available_wallet_list || [])];
|
|
87
|
+
const availableWalletPassList = prepareConfig?.data?.available_wallet_pass_list || [];
|
|
88
|
+
const availableWalletIds = this.normalizePositiveNumberIds([...availableWalletList.map(item => item?.wallet_id), ...availableWalletPassList.map(item => item?.product_id)]);
|
|
89
|
+
const goodPassList = this.filterEnabledDiscountList(rawDiscountList) || [];
|
|
90
|
+
|
|
91
|
+
// this.setDiscountList(goodPassList);
|
|
92
|
+
|
|
127
93
|
return {
|
|
128
94
|
discountList: goodPassList,
|
|
129
95
|
availableWalletIds
|
|
130
96
|
};
|
|
131
97
|
}
|
|
132
98
|
async batchSearch(code, options) {
|
|
133
|
-
const {
|
|
99
|
+
const {
|
|
100
|
+
customerId,
|
|
101
|
+
orderId
|
|
102
|
+
} = options || {};
|
|
134
103
|
const result = await this.request.get(`/machinecode/batch-search`, {
|
|
135
104
|
code,
|
|
136
105
|
translate_flag: 1,
|
|
137
|
-
tags: [
|
|
106
|
+
tags: ['good_pass', 'product_discount_card'],
|
|
138
107
|
// available: 1,
|
|
139
108
|
relation_product: 1,
|
|
140
|
-
with: [
|
|
109
|
+
with: ['extensionData', 'customScheduleSnapshot', 'holder.detail'],
|
|
141
110
|
order_behavior_count: 1,
|
|
142
111
|
order_behavior_count_customer_id: customerId || 1,
|
|
143
|
-
...orderId ? {
|
|
112
|
+
...(orderId ? {
|
|
113
|
+
order_behavior_count_order_id: orderId
|
|
114
|
+
} : {}),
|
|
144
115
|
unified_status_info_flag: 1,
|
|
145
116
|
request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
146
117
|
});
|
|
147
|
-
const resultDiscountWithReason = this.filterEnabledDiscountListWithReason(
|
|
118
|
+
const resultDiscountWithReason = this.filterEnabledDiscountListWithReason(result?.data || []) || [];
|
|
148
119
|
return resultDiscountWithReason;
|
|
149
120
|
}
|
|
150
121
|
async batchSearchByProductIds(productIds) {
|
|
151
122
|
const result = await this.request.get(`/machinecode/batch-search`, {
|
|
152
123
|
ids: productIds,
|
|
153
124
|
translate_flag: 1,
|
|
154
|
-
tags: [
|
|
125
|
+
tags: ['good_pass', 'product_discount_card'],
|
|
155
126
|
relation_product: 1
|
|
156
127
|
});
|
|
157
|
-
return
|
|
128
|
+
return result?.data || [];
|
|
158
129
|
}
|
|
159
130
|
filterEnabledDiscountList(discountList) {
|
|
160
|
-
return discountList.filter(
|
|
161
|
-
(discount) => discount.limit_status === "enable" && new import_decimal.default((discount == null ? void 0 : discount.par_value) || 0).minus(new import_decimal.default((discount == null ? void 0 : discount.used_par_value) || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount)
|
|
162
|
-
);
|
|
131
|
+
return discountList.filter(discount => discount.limit_status === 'enable' && new _decimal.default(discount?.par_value || 0).minus(new _decimal.default(discount?.used_par_value || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount));
|
|
163
132
|
}
|
|
133
|
+
|
|
164
134
|
// 检查使用次数限制
|
|
165
135
|
checkUsageCreditsLimit(discount) {
|
|
136
|
+
// 如果没有 extension_data,则不需要限制
|
|
166
137
|
if (!discount.extension_data || discount.extension_data.length === 0) {
|
|
167
138
|
return true;
|
|
168
139
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
);
|
|
140
|
+
|
|
141
|
+
// 查找 field_key 为 usage_credits 的数据
|
|
142
|
+
const usageCreditsData = discount.extension_data.find(data => data.field_key === 'usage_credits');
|
|
143
|
+
|
|
144
|
+
// 如果没有找到 usage_credits 数据,则不需要限制
|
|
172
145
|
if (!usageCreditsData) {
|
|
173
146
|
return true;
|
|
174
147
|
}
|
|
175
148
|
const value = usageCreditsData.value;
|
|
149
|
+
|
|
150
|
+
// 检查总次数限制
|
|
176
151
|
if (value.total_credits && value.total_credits > 0) {
|
|
177
152
|
if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
|
|
178
153
|
return false;
|
|
179
154
|
}
|
|
180
155
|
}
|
|
156
|
+
|
|
157
|
+
// 检查单用户限制
|
|
181
158
|
if (value.per_user_limit && value.per_user_limit > 0) {
|
|
182
159
|
if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
|
|
183
160
|
return false;
|
|
184
161
|
}
|
|
185
162
|
}
|
|
163
|
+
|
|
164
|
+
// 检查单日限制
|
|
186
165
|
if (value.max_per_day && value.max_per_day > 0) {
|
|
187
166
|
if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
|
|
188
167
|
return false;
|
|
189
168
|
}
|
|
190
169
|
}
|
|
170
|
+
|
|
171
|
+
// 检查单周限制
|
|
191
172
|
if (value.max_per_week && value.max_per_week > 0) {
|
|
192
173
|
if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
|
|
193
174
|
return false;
|
|
194
175
|
}
|
|
195
176
|
}
|
|
177
|
+
|
|
178
|
+
// 检查单月限制
|
|
196
179
|
if (value.max_per_month && value.max_per_month > 0) {
|
|
197
180
|
if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
|
|
198
181
|
return false;
|
|
199
182
|
}
|
|
200
183
|
}
|
|
184
|
+
|
|
185
|
+
// 所有检查都通过
|
|
201
186
|
return true;
|
|
202
187
|
}
|
|
188
|
+
|
|
203
189
|
// 过滤启用且可用的优惠券,并返回校验失败原因
|
|
204
190
|
filterEnabledDiscountListWithReason(discountList) {
|
|
205
|
-
let lists = discountList.filter(
|
|
206
|
-
const remaining = new
|
|
191
|
+
let lists = discountList.filter(discount => discount.limit_status === 'enable').filter(discount => {
|
|
192
|
+
const remaining = new _decimal.default(discount?.par_value || 0).minus(new _decimal.default(discount?.used_par_value || 0)).greaterThan(0);
|
|
207
193
|
return remaining;
|
|
208
|
-
}).map(
|
|
194
|
+
}).map(discount => {
|
|
209
195
|
const limitFailKey = this.checkUsageCreditsLimitWithFailKey(discount);
|
|
210
196
|
return {
|
|
211
197
|
...discount,
|
|
212
198
|
usageLimitFailKey: limitFailKey
|
|
213
199
|
};
|
|
214
200
|
});
|
|
215
|
-
|
|
216
|
-
|
|
201
|
+
|
|
202
|
+
// 可用的列表
|
|
203
|
+
const availableLists = lists.filter(item => !item.usageLimitFailKey && item.unified_available_status !== 0);
|
|
204
|
+
// 不可用数据
|
|
205
|
+
const currentFailDiscount = lists.find(item => item.usageLimitFailKey);
|
|
217
206
|
return {
|
|
218
207
|
discountList: availableLists,
|
|
219
|
-
unavailableReasonKey: currentFailDiscount
|
|
208
|
+
unavailableReasonKey: currentFailDiscount?.usageLimitFailKey
|
|
220
209
|
};
|
|
221
210
|
}
|
|
211
|
+
|
|
222
212
|
// 检查使用次数限制,并返回校验失败原因
|
|
223
213
|
checkUsageCreditsLimitWithFailKey(discount) {
|
|
224
214
|
if (!discount.extension_data || discount.extension_data.length === 0) {
|
|
225
215
|
return null;
|
|
226
216
|
}
|
|
227
|
-
const usageCreditsData = discount.extension_data.find(
|
|
228
|
-
(data) => data.field_key === "usage_credits"
|
|
229
|
-
);
|
|
217
|
+
const usageCreditsData = discount.extension_data.find(data => data.field_key === 'usage_credits');
|
|
230
218
|
if (!usageCreditsData) {
|
|
231
219
|
return null;
|
|
232
220
|
}
|
|
233
221
|
const value = usageCreditsData.value;
|
|
222
|
+
|
|
223
|
+
// 总次数限制
|
|
234
224
|
if (value.total_credits && value.total_credits > 0) {
|
|
235
225
|
if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
|
|
236
|
-
return
|
|
226
|
+
return 'total_credits';
|
|
237
227
|
}
|
|
238
228
|
}
|
|
229
|
+
|
|
230
|
+
// 单用户限制
|
|
239
231
|
if (value.per_user_limit && value.per_user_limit > 0) {
|
|
240
232
|
if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
|
|
241
|
-
return
|
|
233
|
+
return 'per_user_limit';
|
|
242
234
|
}
|
|
243
235
|
}
|
|
236
|
+
|
|
237
|
+
// 单日限制
|
|
244
238
|
if (value.max_per_day && value.max_per_day > 0) {
|
|
245
239
|
if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
|
|
246
|
-
return
|
|
240
|
+
return 'max_per_day';
|
|
247
241
|
}
|
|
248
242
|
}
|
|
243
|
+
|
|
244
|
+
// 单周限制
|
|
249
245
|
if (value.max_per_week && value.max_per_week > 0) {
|
|
250
246
|
if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
|
|
251
|
-
return
|
|
247
|
+
return 'max_per_week';
|
|
252
248
|
}
|
|
253
249
|
}
|
|
250
|
+
|
|
251
|
+
// 单月限制
|
|
254
252
|
if (value.max_per_month && value.max_per_month > 0) {
|
|
255
253
|
if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
|
|
256
|
-
return
|
|
254
|
+
return 'max_per_month';
|
|
257
255
|
}
|
|
258
256
|
}
|
|
257
|
+
|
|
258
|
+
// 全部通过
|
|
259
259
|
return null;
|
|
260
260
|
}
|
|
261
|
+
|
|
261
262
|
// 根据productIds去重
|
|
262
263
|
uniqueByProductId(discountList) {
|
|
263
|
-
return (0,
|
|
264
|
+
return (0, _utils.uniqueById)(discountList, 'product_id');
|
|
264
265
|
}
|
|
265
266
|
filterDiscountListByProductIds(discountList, productIds) {
|
|
266
|
-
return discountList.filter(
|
|
267
|
+
return discountList.filter(discount => {
|
|
267
268
|
const applicableProductIds = discount.applicableProductIds || [];
|
|
268
|
-
return applicableProductIds.some(
|
|
269
|
+
return applicableProductIds.some(id => productIds.includes(id));
|
|
269
270
|
});
|
|
270
271
|
}
|
|
271
272
|
calcDiscountApplicableProductTotalPrice(discount) {
|
|
272
|
-
if (discount
|
|
273
|
-
return
|
|
273
|
+
if (discount?.savedAmount) {
|
|
274
|
+
return discount?.savedAmount || 0;
|
|
274
275
|
}
|
|
275
276
|
if (discount.appliedProductDetails) {
|
|
276
277
|
return discount.appliedProductDetails.reduce((total, product) => {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return new import_decimal.default(total).plus(price).add(((_b = product == null ? void 0 : product.metadata) == null ? void 0 : _b.product_discount_difference) || 0).toNumber();
|
|
278
|
+
const price = new _decimal.default(product?.discount?.fixed_amount || 0).mul(product?._num || 1);
|
|
279
|
+
return new _decimal.default(total).plus(price).add(product?.metadata?.product_discount_difference || 0).toNumber();
|
|
280
280
|
}, 0);
|
|
281
281
|
}
|
|
282
282
|
}
|
|
@@ -284,13 +284,11 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
284
284
|
this.store.discountList = [];
|
|
285
285
|
this.core.effects.offByModuleDestroy(this.name);
|
|
286
286
|
await this.core.effects.emit(`${this.name}:onDestroy`, {});
|
|
287
|
-
console.log("[Discount] 已销毁");
|
|
288
287
|
super.destroy();
|
|
289
288
|
}
|
|
290
289
|
async clear() {
|
|
291
290
|
this.store.discountList = [];
|
|
292
291
|
this.store.originalDiscountList = [];
|
|
293
|
-
console.log("[Discount] clear");
|
|
294
292
|
}
|
|
295
293
|
storeChange() {
|
|
296
294
|
if (this.openCache) {
|
|
@@ -298,12 +296,9 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
298
296
|
cacheId: this.cacheId,
|
|
299
297
|
fatherModule: this.fatherModule,
|
|
300
298
|
store: this.store,
|
|
301
|
-
cacheKey: [
|
|
299
|
+
cacheKey: ['discountList']
|
|
302
300
|
});
|
|
303
301
|
}
|
|
304
302
|
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
0 && (module.exports = {
|
|
308
|
-
DiscountModule
|
|
309
|
-
});
|
|
303
|
+
}
|
|
304
|
+
exports.DiscountModule = DiscountModule;
|
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(types_exports, {
|
|
22
|
-
DiscountHooks: () => DiscountHooks
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var DiscountHooks = /* @__PURE__ */ ((DiscountHooks2) => {
|
|
26
|
-
DiscountHooks2["OnDiscountListChange"] = "discount:onDiscountListChange";
|
|
27
|
-
DiscountHooks2["OnDestroy"] = "discount:onDestroy";
|
|
28
|
-
return DiscountHooks2;
|
|
29
|
-
})(DiscountHooks || {});
|
|
30
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
-
0 && (module.exports = {
|
|
32
|
-
DiscountHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
6
|
+
exports.DiscountHooks = void 0;
|
|
7
|
+
let DiscountHooks = exports.DiscountHooks = /*#__PURE__*/function (DiscountHooks) {
|
|
8
|
+
DiscountHooks["OnDiscountListChange"] = "discount:onDiscountListChange";
|
|
9
|
+
DiscountHooks["OnDestroy"] = "discount:onDestroy";
|
|
10
|
+
return DiscountHooks;
|
|
11
|
+
}({});
|
|
@@ -1,42 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(Guests_exports, {
|
|
22
|
-
GuestListModule: () => GuestListModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
23
5
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
6
|
+
exports.GuestListModule = void 0;
|
|
7
|
+
var _BaseModule = require("../BaseModule");
|
|
8
|
+
var _types = require("./types");
|
|
9
|
+
class GuestListModule extends _BaseModule.BaseModule {
|
|
10
|
+
defaultName = 'guestList';
|
|
11
|
+
defaultVersion = '1.0.0';
|
|
12
|
+
state = {
|
|
13
|
+
list: []
|
|
14
|
+
};
|
|
28
15
|
constructor(name, version) {
|
|
29
16
|
super(name, version);
|
|
30
|
-
this.defaultName = "guestList";
|
|
31
|
-
this.defaultVersion = "1.0.0";
|
|
32
|
-
this.state = {
|
|
33
|
-
list: []
|
|
34
|
-
};
|
|
35
17
|
}
|
|
36
18
|
async initialize(core, options) {
|
|
37
19
|
this.core = core;
|
|
38
|
-
if (options
|
|
39
|
-
this.state = {
|
|
20
|
+
if (options?.initialState) {
|
|
21
|
+
this.state = {
|
|
22
|
+
...this.state,
|
|
23
|
+
...options.initialState
|
|
24
|
+
};
|
|
40
25
|
}
|
|
41
26
|
}
|
|
42
27
|
async addGuest(guest) {
|
|
@@ -45,23 +30,18 @@ var GuestListModule = class extends import_BaseModule.BaseModule {
|
|
|
45
30
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
46
31
|
}
|
|
47
32
|
async updateGuest(id, updates) {
|
|
48
|
-
const index = this.state.list.findIndex(
|
|
49
|
-
if (index === -1)
|
|
50
|
-
return;
|
|
33
|
+
const index = this.state.list.findIndex(g => g.id === id);
|
|
34
|
+
if (index === -1) return;
|
|
51
35
|
this.state.list[index] = {
|
|
52
36
|
...this.state.list[index],
|
|
53
37
|
...updates
|
|
54
38
|
};
|
|
55
|
-
await this.core.effects.emit(
|
|
56
|
-
import_types.GuestHooks.OnGuestUpdate,
|
|
57
|
-
this.state.list[index]
|
|
58
|
-
);
|
|
39
|
+
await this.core.effects.emit(_types.GuestHooks.OnGuestUpdate, this.state.list[index]);
|
|
59
40
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
60
41
|
}
|
|
61
42
|
async removeGuest(id) {
|
|
62
|
-
const index = this.state.list.findIndex(
|
|
63
|
-
if (index === -1)
|
|
64
|
-
return;
|
|
43
|
+
const index = this.state.list.findIndex(g => g.id === id);
|
|
44
|
+
if (index === -1) return;
|
|
65
45
|
const [removed] = this.state.list.splice(index, 1);
|
|
66
46
|
await this.core.effects.emit(`${this.name}:onGuestRemove`, removed);
|
|
67
47
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
@@ -73,26 +53,20 @@ var GuestListModule = class extends import_BaseModule.BaseModule {
|
|
|
73
53
|
return this.state.list.length;
|
|
74
54
|
}
|
|
75
55
|
async addItemToGuest(guestId, item) {
|
|
76
|
-
const guest = this.state.list.find(
|
|
77
|
-
if (!guest)
|
|
78
|
-
return;
|
|
56
|
+
const guest = this.state.list.find(g => g.id === guestId);
|
|
57
|
+
if (!guest) return;
|
|
79
58
|
guest.items.push(item);
|
|
80
59
|
await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
|
|
81
60
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
82
61
|
}
|
|
83
62
|
async removeItemFromGuest(guestId, itemId) {
|
|
84
|
-
const guest = this.state.list.find(
|
|
85
|
-
if (!guest)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (index === -1)
|
|
89
|
-
return;
|
|
63
|
+
const guest = this.state.list.find(g => g.id === guestId);
|
|
64
|
+
if (!guest) return;
|
|
65
|
+
const index = guest.items.findIndex(i => i.id === itemId);
|
|
66
|
+
if (index === -1) return;
|
|
90
67
|
guest.items.splice(index, 1);
|
|
91
68
|
await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
|
|
92
69
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
93
70
|
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
0 && (module.exports = {
|
|
97
|
-
GuestListModule
|
|
98
|
-
});
|
|
71
|
+
}
|
|
72
|
+
exports.GuestListModule = GuestListModule;
|
|
@@ -1,35 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(types_exports, {
|
|
22
|
-
GuestHooks: () => GuestHooks
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var GuestHooks = /* @__PURE__ */ ((GuestHooks2) => {
|
|
26
|
-
GuestHooks2["OnGuestAdd"] = "guest:onGuestAdd";
|
|
27
|
-
GuestHooks2["OnGuestUpdate"] = "guest:onGuestUpdate";
|
|
28
|
-
GuestHooks2["OnGuestRemove"] = "guest:onGuestRemove";
|
|
29
|
-
GuestHooks2["OnGuestChange"] = "guest:onGuestChange";
|
|
30
|
-
return GuestHooks2;
|
|
31
|
-
})(GuestHooks || {});
|
|
32
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
-
0 && (module.exports = {
|
|
34
|
-
GuestHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
35
5
|
});
|
|
6
|
+
exports.GuestHooks = void 0;
|
|
7
|
+
let GuestHooks = exports.GuestHooks = /*#__PURE__*/function (GuestHooks) {
|
|
8
|
+
GuestHooks["OnGuestAdd"] = "guest:onGuestAdd";
|
|
9
|
+
GuestHooks["OnGuestUpdate"] = "guest:onGuestUpdate";
|
|
10
|
+
GuestHooks["OnGuestRemove"] = "guest:onGuestRemove";
|
|
11
|
+
GuestHooks["OnGuestChange"] = "guest:onGuestChange";
|
|
12
|
+
return GuestHooks;
|
|
13
|
+
}({});
|
|
14
|
+
/**
|
|
15
|
+
* 预约人选择的商品/服务
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* 预约人信息
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* 预约人列表状态
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* 预约人列表模块 API
|
|
25
|
+
*/
|