@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,90 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
CartModule: true,
|
|
8
|
+
getProductDeposit: true
|
|
8
9
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
exports.CartModule = void 0;
|
|
11
|
+
Object.defineProperty(exports, "getProductDeposit", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () {
|
|
14
|
+
return _utils.getProductDeposit;
|
|
14
15
|
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/modules/Cart/index.ts
|
|
21
|
-
var Cart_exports = {};
|
|
22
|
-
__export(Cart_exports, {
|
|
23
|
-
CartModule: () => CartModule,
|
|
24
|
-
getProductDeposit: () => import_utils3.getProductDeposit
|
|
25
16
|
});
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
17
|
+
var _BaseModule = require("../BaseModule");
|
|
18
|
+
var _types = require("./types");
|
|
19
|
+
Object.keys(_types).forEach(function (key) {
|
|
20
|
+
if (key === "default" || key === "__esModule") return;
|
|
21
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
22
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
23
|
+
Object.defineProperty(exports, key, {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () {
|
|
26
|
+
return _types[key];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
var _utils = require("./utils");
|
|
31
|
+
var _lodashEs = require("lodash-es");
|
|
32
|
+
var _utils2 = require("../Product/utils");
|
|
33
|
+
/**
|
|
34
|
+
* 购物车模块实现
|
|
35
|
+
*/
|
|
36
|
+
class CartModule extends _BaseModule.BaseModule {
|
|
37
|
+
// 提供给 baseModule 用的默认名称 和 默认版本
|
|
38
|
+
defaultName = 'cart';
|
|
39
|
+
defaultVersion = '1.0.0';
|
|
40
|
+
request;
|
|
41
|
+
window;
|
|
42
|
+
store;
|
|
43
|
+
cacheId;
|
|
44
|
+
openCache = false;
|
|
45
|
+
fatherModule;
|
|
35
46
|
constructor(name, version) {
|
|
36
|
-
super(name ||
|
|
37
|
-
// 提供给 baseModule 用的默认名称 和 默认版本
|
|
38
|
-
this.defaultName = "cart";
|
|
39
|
-
this.defaultVersion = "1.0.0";
|
|
40
|
-
this.openCache = false;
|
|
47
|
+
super(name || 'cart', version || '1.0.0');
|
|
41
48
|
}
|
|
49
|
+
|
|
42
50
|
/**
|
|
43
51
|
* 初始化购物车模块
|
|
44
52
|
*/
|
|
45
53
|
async initialize(core, options) {
|
|
46
|
-
var _a, _b, _c;
|
|
47
54
|
this.core = core;
|
|
48
55
|
this.store = options.store;
|
|
49
|
-
if (Array.isArray(
|
|
56
|
+
if (Array.isArray(options.initialState?.list)) {
|
|
50
57
|
this.store.list = options.initialState.list;
|
|
51
58
|
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
52
59
|
} else {
|
|
53
60
|
this.store.list = [];
|
|
54
61
|
}
|
|
55
|
-
if (
|
|
62
|
+
if (options.otherParams?.cacheId) {
|
|
56
63
|
this.openCache = options.otherParams.openCache;
|
|
57
64
|
this.cacheId = options.otherParams.cacheId;
|
|
58
65
|
}
|
|
59
|
-
if (
|
|
66
|
+
if (options.otherParams?.fatherModule) {
|
|
60
67
|
this.fatherModule = options.otherParams.fatherModule;
|
|
61
68
|
}
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
|
|
70
|
+
// 获取依赖的插件
|
|
71
|
+
this.request = core.getPlugin('request');
|
|
72
|
+
this.window = core.getPlugin('window');
|
|
64
73
|
if (!this.request) {
|
|
65
|
-
throw new Error(
|
|
74
|
+
throw new Error('购物车模块需要 request 插件支持');
|
|
66
75
|
}
|
|
67
76
|
if (!this.window) {
|
|
68
|
-
throw new Error(
|
|
77
|
+
throw new Error('购物车模块需要 window 插件支持');
|
|
69
78
|
}
|
|
70
|
-
|
|
79
|
+
// this.store.temp = {};
|
|
71
80
|
}
|
|
81
|
+
|
|
72
82
|
/**
|
|
73
83
|
* 添加商品到购物车
|
|
74
84
|
*/
|
|
75
85
|
async addItem(params) {
|
|
76
|
-
const {
|
|
86
|
+
const {
|
|
87
|
+
account,
|
|
88
|
+
product,
|
|
89
|
+
bundle,
|
|
90
|
+
options,
|
|
91
|
+
date,
|
|
92
|
+
quantity = 1
|
|
93
|
+
} = params;
|
|
94
|
+
// 生成一个唯一的 ID
|
|
77
95
|
let cartItem = {
|
|
78
|
-
_id: (0,
|
|
79
|
-
_origin: (0,
|
|
96
|
+
_id: (0, _utils.getUniqueId)(),
|
|
97
|
+
_origin: (0, _utils.createCartItemOrigin)()
|
|
80
98
|
};
|
|
81
99
|
if (product) {
|
|
82
|
-
const newProduct = (0,
|
|
83
|
-
cartItem._productOrigin = (0,
|
|
84
|
-
cartItem._productInit = (0,
|
|
85
|
-
cartItem._bundleOrigin = (0,
|
|
86
|
-
cartItem._optionsOrigin = (0,
|
|
87
|
-
cartItem = (0,
|
|
100
|
+
const newProduct = (0, _utils.handleVariantProduct)(product);
|
|
101
|
+
cartItem._productOrigin = (0, _lodashEs.cloneDeep)(newProduct);
|
|
102
|
+
cartItem._productInit = (0, _lodashEs.cloneDeep)(newProduct);
|
|
103
|
+
cartItem._bundleOrigin = (0, _lodashEs.cloneDeep)(bundle);
|
|
104
|
+
cartItem._optionsOrigin = (0, _lodashEs.cloneDeep)(options);
|
|
105
|
+
cartItem = (0, _utils.formatProductToCartItem)({
|
|
88
106
|
cartItem,
|
|
89
107
|
product: newProduct,
|
|
90
108
|
bundle,
|
|
@@ -94,43 +112,61 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
94
112
|
});
|
|
95
113
|
}
|
|
96
114
|
if (account) {
|
|
97
|
-
cartItem = (0,
|
|
115
|
+
cartItem = (0, _utils.formatAccountToCartItem)({
|
|
116
|
+
cartItem,
|
|
117
|
+
account
|
|
118
|
+
});
|
|
98
119
|
}
|
|
99
120
|
if (date) {
|
|
100
|
-
cartItem = (0,
|
|
121
|
+
cartItem = (0, _utils.formatDateToCartItem)({
|
|
122
|
+
cartItem,
|
|
123
|
+
date
|
|
124
|
+
});
|
|
101
125
|
}
|
|
126
|
+
|
|
127
|
+
// 更新购物车数据
|
|
102
128
|
const items = [...this.store.list, cartItem];
|
|
103
129
|
this.store.list = items;
|
|
130
|
+
|
|
131
|
+
// 触发事件
|
|
104
132
|
await this.core.effects.emit(`${this.name}:onAddItem`, cartItem);
|
|
105
133
|
}
|
|
134
|
+
|
|
106
135
|
/**
|
|
107
136
|
* 更新购物车信息
|
|
108
137
|
*/
|
|
109
138
|
async updateItem(params) {
|
|
110
139
|
try {
|
|
111
140
|
const tempCartItem = this.formatCartItem(params);
|
|
112
|
-
|
|
113
|
-
|
|
141
|
+
// 更新购物车数据
|
|
142
|
+
const items = this.store.list.map(item => {
|
|
143
|
+
if (item._id === tempCartItem?._id) {
|
|
114
144
|
return tempCartItem;
|
|
115
145
|
}
|
|
116
146
|
return item;
|
|
117
147
|
});
|
|
118
148
|
this.store.list = [...items];
|
|
149
|
+
// 触发事件
|
|
119
150
|
await this.core.effects.emit(`${this.name}:onUpdateItem`, tempCartItem);
|
|
120
151
|
} catch (error) {
|
|
121
|
-
console.error(
|
|
152
|
+
console.error('[CartModule] 更新购物车商品失败', error);
|
|
122
153
|
}
|
|
123
154
|
}
|
|
155
|
+
|
|
124
156
|
// 更新购物车中商品的初始信息
|
|
125
157
|
// 为什么会有这个操作,主要服务于报价单和商品券
|
|
126
158
|
// 商品券那边会使用 init 的 price 做计算,而报价单那边就需要修改 init 的 price 来辅助商品计算
|
|
127
159
|
async updateItemInitInfo(params) {
|
|
128
|
-
const {
|
|
129
|
-
|
|
160
|
+
const {
|
|
161
|
+
_id,
|
|
162
|
+
product
|
|
163
|
+
} = params;
|
|
164
|
+
const cartItem = this.store.list.find(i => i._id === _id);
|
|
130
165
|
if (cartItem) {
|
|
131
|
-
cartItem._productInit = (0,
|
|
166
|
+
cartItem._productInit = (0, _lodashEs.cloneDeep)(product);
|
|
132
167
|
}
|
|
133
168
|
}
|
|
169
|
+
|
|
134
170
|
/**
|
|
135
171
|
* 格式化数据到购物车
|
|
136
172
|
*/
|
|
@@ -150,22 +186,22 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
150
186
|
osWarnTips
|
|
151
187
|
} = params;
|
|
152
188
|
let quantity = params.quantity;
|
|
153
|
-
let tempCartItem = this.store.list.find(
|
|
154
|
-
if (!quantity &&
|
|
155
|
-
quantity =
|
|
189
|
+
let tempCartItem = this.store.list.find(i => i._id === _id);
|
|
190
|
+
if (!quantity && tempCartItem?.num) {
|
|
191
|
+
quantity = tempCartItem?.num || 1;
|
|
156
192
|
}
|
|
157
193
|
if (!tempCartItem) {
|
|
158
|
-
throw new Error(
|
|
194
|
+
throw new Error('[CartModule] 格式化数据到购物车失败,商品不存在');
|
|
159
195
|
}
|
|
160
196
|
if (cartItem) {
|
|
161
197
|
tempCartItem = cartItem;
|
|
162
198
|
}
|
|
163
199
|
if (product) {
|
|
164
|
-
const newProduct = (0,
|
|
165
|
-
tempCartItem._productOrigin = (0,
|
|
166
|
-
tempCartItem._bundleOrigin = (0,
|
|
167
|
-
tempCartItem._optionsOrigin = (0,
|
|
168
|
-
tempCartItem = (0,
|
|
200
|
+
const newProduct = (0, _utils.handleVariantProduct)(product);
|
|
201
|
+
tempCartItem._productOrigin = (0, _lodashEs.cloneDeep)(newProduct);
|
|
202
|
+
tempCartItem._bundleOrigin = (0, _lodashEs.cloneDeep)(bundle);
|
|
203
|
+
tempCartItem._optionsOrigin = (0, _lodashEs.cloneDeep)(options);
|
|
204
|
+
tempCartItem = (0, _utils.formatProductToCartItem)({
|
|
169
205
|
cartItem: tempCartItem,
|
|
170
206
|
product: newProduct,
|
|
171
207
|
bundle,
|
|
@@ -176,112 +212,128 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
176
212
|
});
|
|
177
213
|
}
|
|
178
214
|
if (discounts) {
|
|
179
|
-
tempCartItem = (0,
|
|
215
|
+
tempCartItem = (0, _utils.formatDiscountToCartItem)({
|
|
180
216
|
cartItem: tempCartItem,
|
|
181
217
|
discounts
|
|
182
218
|
});
|
|
183
219
|
}
|
|
184
220
|
if (account) {
|
|
185
|
-
tempCartItem = (0,
|
|
221
|
+
tempCartItem = (0, _utils.formatAccountToCartItem)({
|
|
186
222
|
cartItem: tempCartItem,
|
|
187
223
|
account
|
|
188
224
|
});
|
|
189
225
|
}
|
|
190
226
|
if (resources) {
|
|
191
|
-
tempCartItem = (0,
|
|
227
|
+
tempCartItem = (0, _utils.formatResourceToCartItem)({
|
|
192
228
|
cartItem: tempCartItem,
|
|
193
229
|
resources
|
|
194
230
|
});
|
|
195
231
|
}
|
|
196
232
|
if (relationForms) {
|
|
197
|
-
tempCartItem = (0,
|
|
233
|
+
tempCartItem = (0, _utils.formatRelationFormsToCartItem)({
|
|
198
234
|
cartItem: tempCartItem,
|
|
199
235
|
relationForms
|
|
200
236
|
});
|
|
201
237
|
}
|
|
202
238
|
if (date) {
|
|
203
|
-
tempCartItem = (0,
|
|
239
|
+
tempCartItem = (0, _utils.formatDateToCartItem)({
|
|
240
|
+
cartItem: tempCartItem,
|
|
241
|
+
date
|
|
242
|
+
});
|
|
204
243
|
}
|
|
205
244
|
if (note) {
|
|
206
|
-
tempCartItem = (0,
|
|
245
|
+
tempCartItem = (0, _utils.formatNoteToCartItem)({
|
|
246
|
+
cartItem: tempCartItem,
|
|
247
|
+
note
|
|
248
|
+
});
|
|
207
249
|
}
|
|
208
250
|
if (osWarnTips) {
|
|
209
251
|
tempCartItem.osWarnTips = osWarnTips;
|
|
210
252
|
}
|
|
211
253
|
return tempCartItem;
|
|
212
254
|
}
|
|
255
|
+
|
|
213
256
|
/**
|
|
214
257
|
* 批量设置购物车数据
|
|
215
258
|
*/
|
|
216
259
|
async batchSetItems(items) {
|
|
217
|
-
this.store.list = [...items || []];
|
|
260
|
+
this.store.list = [...(items || [])];
|
|
218
261
|
}
|
|
262
|
+
|
|
219
263
|
/**
|
|
220
264
|
* 获取购物车商品
|
|
221
265
|
*/
|
|
222
266
|
getItems() {
|
|
223
267
|
return this.store.list;
|
|
224
268
|
}
|
|
269
|
+
|
|
225
270
|
/**
|
|
226
271
|
* 获取购物车商品--通过购物车 id 获取单条
|
|
227
272
|
*/
|
|
228
273
|
getItem(id) {
|
|
229
|
-
return this.store.list.find(
|
|
274
|
+
return this.store.list.find(item => item._id === id);
|
|
230
275
|
}
|
|
276
|
+
|
|
231
277
|
/**
|
|
232
278
|
* 根据账户ID获取购物车
|
|
233
279
|
*/
|
|
234
280
|
getCartByAccount(account_id) {
|
|
235
|
-
return this.store.list.filter(
|
|
236
|
-
(item) => item.holder_id === account_id
|
|
237
|
-
);
|
|
281
|
+
return this.store.list.filter(item => item.holder_id === account_id);
|
|
238
282
|
}
|
|
283
|
+
|
|
239
284
|
/**
|
|
240
285
|
* 移除购物车商品
|
|
241
286
|
*/
|
|
242
287
|
async removeItem(id) {
|
|
243
|
-
const items = this.store.list.filter(
|
|
288
|
+
const items = this.store.list.filter(i => i._id !== id);
|
|
244
289
|
this.store.list = items;
|
|
245
290
|
await this.core.effects.emit(`${this.name}:onRemoveItem`, items);
|
|
246
291
|
}
|
|
292
|
+
|
|
247
293
|
/**
|
|
248
294
|
* 根据账户ID清除购物车
|
|
249
295
|
*/
|
|
250
296
|
clearCartByAccount(account_id) {
|
|
251
|
-
const items = this.store.list.filter(
|
|
252
|
-
|
|
253
|
-
);
|
|
254
|
-
this.store.list = [...items || []];
|
|
297
|
+
const items = this.store.list.filter(item => item.holder_id !== account_id);
|
|
298
|
+
this.store.list = [...(items || [])];
|
|
255
299
|
}
|
|
300
|
+
|
|
256
301
|
/**
|
|
257
302
|
* 清除购物车商品中的信息
|
|
258
303
|
* @param type 清除购物车商品中的信息类型
|
|
259
304
|
* @param _id 购物车商品ID
|
|
260
305
|
*/
|
|
261
306
|
deleteCartItemInfo(type, _id) {
|
|
262
|
-
const list = this.store.list.map(
|
|
307
|
+
const list = this.store.list.map(item => {
|
|
263
308
|
const needDelete = _id ? item._id === _id : true;
|
|
309
|
+
|
|
310
|
+
// 如果存在_id,则只需要操作对应的购物车数据,否则操作所有
|
|
264
311
|
if (!needDelete) {
|
|
265
312
|
return item;
|
|
266
313
|
}
|
|
267
314
|
switch (type) {
|
|
268
|
-
case
|
|
269
|
-
|
|
315
|
+
case _types.ECartItemInfoType.Resource:
|
|
316
|
+
// 清除购物车商品中的资源信息
|
|
317
|
+
item = (0, _utils.deleteResourceFromCartItem)(item);
|
|
270
318
|
break;
|
|
271
|
-
case
|
|
272
|
-
|
|
319
|
+
case _types.ECartItemInfoType.Time:
|
|
320
|
+
// 清除购物车商品中的时间信息
|
|
321
|
+
item = (0, _utils.deleteTimeFromCartItem)(item);
|
|
273
322
|
break;
|
|
274
|
-
case
|
|
275
|
-
|
|
323
|
+
case _types.ECartItemInfoType.RelationForms:
|
|
324
|
+
// 清除购物车商品中的关联表单信息
|
|
325
|
+
item = (0, _utils.deleteRelationFormsFromCartItem)(item);
|
|
276
326
|
break;
|
|
277
|
-
case
|
|
278
|
-
|
|
327
|
+
case _types.ECartItemInfoType.Holder:
|
|
328
|
+
// 清除购物车商品中的账户信息
|
|
329
|
+
item = (0, _utils.deleteHolderFromCartItem)(item);
|
|
279
330
|
break;
|
|
280
331
|
}
|
|
281
332
|
return item;
|
|
282
333
|
});
|
|
283
334
|
this.store.list = [...list];
|
|
284
335
|
}
|
|
336
|
+
|
|
285
337
|
/**
|
|
286
338
|
* 清除购物车
|
|
287
339
|
*/
|
|
@@ -290,15 +342,14 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
290
342
|
}
|
|
291
343
|
storeChange() {
|
|
292
344
|
if (this.openCache) {
|
|
293
|
-
const store = (0,
|
|
294
|
-
store
|
|
295
|
-
|
|
296
|
-
);
|
|
345
|
+
const store = (0, _lodashEs.cloneDeep)(this.store);
|
|
346
|
+
// store里的 list 要主动基于 id 做下去重,避免重复写入
|
|
347
|
+
store.list = store.list.filter((item, index, self) => index === self.findIndex(t => t._id === item._id));
|
|
297
348
|
this.checkSaveCache({
|
|
298
349
|
cacheId: this.cacheId,
|
|
299
350
|
fatherModule: this.fatherModule,
|
|
300
351
|
store,
|
|
301
|
-
cacheKey: [
|
|
352
|
+
cacheKey: ['list']
|
|
302
353
|
});
|
|
303
354
|
}
|
|
304
355
|
}
|
|
@@ -313,21 +364,22 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
313
364
|
relation_forms
|
|
314
365
|
} = cartItem._origin || {};
|
|
315
366
|
switch (type) {
|
|
316
|
-
case
|
|
317
|
-
result = !!holder || !!
|
|
367
|
+
case _types.ECartItemCheckType.Account:
|
|
368
|
+
result = !!holder || !!metadata?.account;
|
|
318
369
|
break;
|
|
319
|
-
case
|
|
320
|
-
result = !!
|
|
370
|
+
case _types.ECartItemCheckType.Resources:
|
|
371
|
+
result = !!resources?.length;
|
|
321
372
|
break;
|
|
322
|
-
case
|
|
373
|
+
case _types.ECartItemCheckType.Date:
|
|
323
374
|
result = !!start_date && !!end_date;
|
|
324
375
|
break;
|
|
325
|
-
case
|
|
326
|
-
result = !!
|
|
376
|
+
case _types.ECartItemCheckType.RelationForms:
|
|
377
|
+
result = !!relation_forms?.length;
|
|
327
378
|
break;
|
|
328
379
|
}
|
|
329
380
|
return result;
|
|
330
381
|
}
|
|
382
|
+
|
|
331
383
|
/**
|
|
332
384
|
* 基于rowkey 合并商品,目前只有普通商品需要合并
|
|
333
385
|
*
|
|
@@ -337,17 +389,16 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
337
389
|
* @memberof CartModule
|
|
338
390
|
*/
|
|
339
391
|
mergeCartItemByRowKey(params) {
|
|
340
|
-
const {
|
|
392
|
+
const {
|
|
393
|
+
rowKey,
|
|
394
|
+
quantity,
|
|
395
|
+
account
|
|
396
|
+
} = params;
|
|
341
397
|
let flag = false;
|
|
342
398
|
const cartItems = this.getItems();
|
|
343
|
-
const targetCartItem = cartItems.find(
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
return ((_a = n._productOrigin) == null ? void 0 : _a.rowKey) === rowKey;
|
|
347
|
-
}
|
|
348
|
-
);
|
|
349
|
-
const isSameAccount = (account == null ? void 0 : account.id) === (targetCartItem == null ? void 0 : targetCartItem.holder_id);
|
|
350
|
-
if (rowKey && targetCartItem && (0, import_utils2.isNormalProduct)(targetCartItem._productOrigin) && isSameAccount) {
|
|
399
|
+
const targetCartItem = cartItems.find(n => n._productOrigin?.rowKey === rowKey);
|
|
400
|
+
const isSameAccount = account?.id === targetCartItem?.holder_id;
|
|
401
|
+
if (rowKey && targetCartItem && (0, _utils2.isNormalProduct)(targetCartItem._productOrigin) && isSameAccount) {
|
|
351
402
|
this.updateItem({
|
|
352
403
|
_id: targetCartItem._id,
|
|
353
404
|
product: {
|
|
@@ -359,10 +410,5 @@ var CartModule = class extends import_BaseModule.BaseModule {
|
|
|
359
410
|
}
|
|
360
411
|
return flag;
|
|
361
412
|
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
0 && (module.exports = {
|
|
365
|
-
CartModule,
|
|
366
|
-
getProductDeposit,
|
|
367
|
-
...require("./types")
|
|
368
|
-
});
|
|
413
|
+
}
|
|
414
|
+
exports.CartModule = CartModule;
|
|
@@ -1,53 +1,48 @@
|
|
|
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
|
-
CartHooks: () => CartHooks,
|
|
23
|
-
ECartItemCheckType: () => ECartItemCheckType,
|
|
24
|
-
ECartItemInfoType: () => ECartItemInfoType
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(types_exports);
|
|
27
|
-
var CartHooks = /* @__PURE__ */ ((CartHooks2) => {
|
|
28
|
-
CartHooks2["OnAddItem"] = "card:onAddItem";
|
|
29
|
-
CartHooks2["OnCartChange"] = "card:onCartChange";
|
|
30
|
-
CartHooks2["OnCartUpdateItem"] = "card:onCartUpdateItem";
|
|
31
|
-
CartHooks2["OnCartRemove"] = "card:onCartRemove";
|
|
32
|
-
return CartHooks2;
|
|
33
|
-
})(CartHooks || {});
|
|
34
|
-
var ECartItemInfoType = /* @__PURE__ */ ((ECartItemInfoType2) => {
|
|
35
|
-
ECartItemInfoType2["Resource"] = "resource";
|
|
36
|
-
ECartItemInfoType2["Time"] = "time";
|
|
37
|
-
ECartItemInfoType2["RelationForms"] = "relationForms";
|
|
38
|
-
ECartItemInfoType2["Holder"] = "holder";
|
|
39
|
-
return ECartItemInfoType2;
|
|
40
|
-
})(ECartItemInfoType || {});
|
|
41
|
-
var ECartItemCheckType = /* @__PURE__ */ ((ECartItemCheckType2) => {
|
|
42
|
-
ECartItemCheckType2["Account"] = "account";
|
|
43
|
-
ECartItemCheckType2["Resources"] = "resources";
|
|
44
|
-
ECartItemCheckType2["Date"] = "date";
|
|
45
|
-
ECartItemCheckType2["RelationForms"] = "relationForms";
|
|
46
|
-
return ECartItemCheckType2;
|
|
47
|
-
})(ECartItemCheckType || {});
|
|
48
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
-
0 && (module.exports = {
|
|
50
|
-
CartHooks,
|
|
51
|
-
ECartItemCheckType,
|
|
52
|
-
ECartItemInfoType
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
53
5
|
});
|
|
6
|
+
exports.ECartItemInfoType = exports.ECartItemCheckType = exports.CartHooks = void 0;
|
|
7
|
+
let CartHooks = exports.CartHooks = /*#__PURE__*/function (CartHooks) {
|
|
8
|
+
CartHooks["OnAddItem"] = "card:onAddItem";
|
|
9
|
+
CartHooks["OnCartChange"] = "card:onCartChange";
|
|
10
|
+
CartHooks["OnCartUpdateItem"] = "card:onCartUpdateItem";
|
|
11
|
+
CartHooks["OnCartRemove"] = "card:onCartRemove";
|
|
12
|
+
return CartHooks;
|
|
13
|
+
}({});
|
|
14
|
+
/**
|
|
15
|
+
* 购物车商品信息类型
|
|
16
|
+
*/
|
|
17
|
+
let ECartItemInfoType = exports.ECartItemInfoType = /*#__PURE__*/function (ECartItemInfoType) {
|
|
18
|
+
ECartItemInfoType["Resource"] = "resource";
|
|
19
|
+
ECartItemInfoType["Time"] = "time";
|
|
20
|
+
ECartItemInfoType["RelationForms"] = "relationForms";
|
|
21
|
+
ECartItemInfoType["Holder"] = "holder";
|
|
22
|
+
return ECartItemInfoType;
|
|
23
|
+
}({});
|
|
24
|
+
/**
|
|
25
|
+
* 购物车商品检查类型
|
|
26
|
+
*/
|
|
27
|
+
let ECartItemCheckType = exports.ECartItemCheckType = /*#__PURE__*/function (ECartItemCheckType) {
|
|
28
|
+
ECartItemCheckType["Account"] = "account";
|
|
29
|
+
ECartItemCheckType["Resources"] = "resources";
|
|
30
|
+
ECartItemCheckType["Date"] = "date";
|
|
31
|
+
ECartItemCheckType["RelationForms"] = "relationForms";
|
|
32
|
+
return ECartItemCheckType;
|
|
33
|
+
}({});
|
|
34
|
+
/**
|
|
35
|
+
* 购物车商品接口
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* 购物车状态接口
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* 添加商品到购物车参数
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* 更新购物车信息参数
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* 折扣
|
|
48
|
+
*/
|