@pisell/pisellos 0.10.14 → 0.10.16
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 -9
- 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 +5 -1
- package/dist/modules/Order/utils/virtualSettlement.d.ts +8 -1
- package/dist/modules/Order/utils/virtualSettlement.js +15 -2
- package/dist/modules/Order/utils.js +7 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Product/types.d.ts +2 -0
- 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 +107 -76
- package/dist/solution/BaseSales/types.d.ts +2 -0
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +3 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -1
- package/dist/solution/BaseSales/utils.js +6 -3
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- 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 +8 -4
- package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -1
- 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/ScanOrder/types.d.ts +2 -0
- package/dist/solution/ScanOrder/utils.js +6 -3
- 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 +131 -131
- 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 +209 -315
- 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 +43 -48
- 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 +133 -143
- 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 +1810 -2238
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +5 -1
- package/lib/modules/Order/types.js +87 -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/virtualSettlement.d.ts +8 -1
- package/lib/modules/Order/utils/virtualSettlement.js +126 -164
- package/lib/modules/Order/utils.js +834 -668
- 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.d.ts +2 -0
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +138 -161
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +66 -100
- 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 +591 -772
- 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 +78 -89
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +359 -442
- 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 +3027 -2655
- package/lib/server/modules/floor-plan/index.js +102 -123
- 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 +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +758 -956
- 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 +575 -459
- 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 +213 -184
- 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 +1276 -1485
- package/lib/solution/BaseSales/types.d.ts +2 -0
- 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.d.ts +3 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +138 -180
- package/lib/solution/BaseSales/utils.js +161 -143
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- 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 +598 -514
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +229 -190
- 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 +822 -852
- package/lib/solution/ScanOrder/types.d.ts +2 -0
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +412 -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 +1052 -1213
- 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,63 +1,51 @@
|
|
|
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
29
2
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
__export(ProductList_exports, {
|
|
33
|
-
ProductList: () => ProductList
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
34
5
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
ProductList: true
|
|
8
|
+
};
|
|
9
|
+
exports.ProductList = void 0;
|
|
10
|
+
var _BaseModule = require("../BaseModule");
|
|
11
|
+
var _lodashEs = require("lodash-es");
|
|
12
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
13
|
+
var _types = require("./types");
|
|
14
|
+
Object.keys(_types).forEach(function (key) {
|
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
18
|
+
Object.defineProperty(exports, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _types[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
class ProductList extends _BaseModule.BaseModule {
|
|
27
|
+
defaultName = 'productList';
|
|
28
|
+
defaultVersion = '1.0.0';
|
|
29
|
+
store;
|
|
30
|
+
request;
|
|
31
|
+
otherParams = {};
|
|
41
32
|
constructor(name, version) {
|
|
42
33
|
super(name, version);
|
|
43
|
-
this.defaultName = "productList";
|
|
44
|
-
this.defaultVersion = "1.0.0";
|
|
45
|
-
this.otherParams = {};
|
|
46
34
|
}
|
|
47
35
|
async initialize(core, options) {
|
|
48
|
-
var _a;
|
|
49
36
|
this.core = core;
|
|
50
37
|
this.store = options.store;
|
|
51
38
|
this.otherParams = options.otherParams || {};
|
|
52
|
-
if (Array.isArray(
|
|
39
|
+
if (Array.isArray(options.initialState?.list)) {
|
|
53
40
|
this.store.list = options.initialState.list.slice().sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
54
41
|
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
55
42
|
} else {
|
|
56
43
|
this.store.list = [];
|
|
57
44
|
this.store.selectProducts = [];
|
|
58
45
|
}
|
|
59
|
-
this.request = core.getPlugin(
|
|
46
|
+
this.request = core.getPlugin('request');
|
|
60
47
|
}
|
|
48
|
+
|
|
61
49
|
/**
|
|
62
50
|
* 更新运行态参数,供父级解决方案 setOtherParams 后同步查询上下文。
|
|
63
51
|
*
|
|
@@ -67,6 +55,7 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
67
55
|
updateOtherParams(params) {
|
|
68
56
|
this.otherParams = params || {};
|
|
69
57
|
}
|
|
58
|
+
|
|
70
59
|
/**
|
|
71
60
|
* 判断当前商品查询是否会被本地 OS Server 接管。
|
|
72
61
|
*
|
|
@@ -75,39 +64,34 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
75
64
|
* Data Variant 评估。
|
|
76
65
|
*/
|
|
77
66
|
isProductQueryHandledByOsServer() {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return false;
|
|
82
|
-
const requestBaseUrl = String(
|
|
83
|
-
((_b = this.request) == null ? void 0 : _b.baseUrl) || "/shop"
|
|
84
|
-
).replace(/\/+$/, "");
|
|
67
|
+
const server = this.core?.server;
|
|
68
|
+
if (!server || typeof server.hasRoute !== 'function') return false;
|
|
69
|
+
const requestBaseUrl = String(this.request?.baseUrl || '/shop').replace(/\/+$/, '');
|
|
85
70
|
const routePath = `${requestBaseUrl}/product/query`;
|
|
86
|
-
return server.hasRoute(
|
|
71
|
+
return server.hasRoute('post', routePath) === true;
|
|
87
72
|
}
|
|
73
|
+
|
|
88
74
|
/**
|
|
89
75
|
* 未启用商品 OS 路由时,在客户端补做 Data Variant 解析。
|
|
90
76
|
* OS Server 已接管时直接信任服务端结果,确保同一批商品只评估一次。
|
|
91
77
|
*/
|
|
92
78
|
resolveClientDataVariants(products, queryPayload, handledByOsServer) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const evaluator = (_b = (_a = this.core) == null ? void 0 : _a.context) == null ? void 0 : _b.dataVariantEvaluator;
|
|
97
|
-
if (!evaluator || typeof evaluator.resolveProducts !== "function") {
|
|
79
|
+
if (handledByOsServer || products.length === 0) return products;
|
|
80
|
+
const evaluator = this.core?.context?.dataVariantEvaluator;
|
|
81
|
+
if (!evaluator || typeof evaluator.resolveProducts !== 'function') {
|
|
98
82
|
return products;
|
|
99
83
|
}
|
|
100
|
-
const strategyContext = queryPayload.strategy_context && typeof queryPayload.strategy_context ===
|
|
101
|
-
const fatherModule = String(
|
|
102
|
-
const scheduleModule = (fatherModule ? this.core.getModule(`${fatherModule}_schedule`) : null) || this.core.getModule(
|
|
103
|
-
const scheduleList =
|
|
104
|
-
const contextScheduleList =
|
|
105
|
-
const contextMenuList =
|
|
84
|
+
const strategyContext = queryPayload.strategy_context && typeof queryPayload.strategy_context === 'object' ? queryPayload.strategy_context : {};
|
|
85
|
+
const fatherModule = String(this.otherParams?.fatherModule || '').trim();
|
|
86
|
+
const scheduleModule = (fatherModule ? this.core.getModule(`${fatherModule}_schedule`) : null) || this.core.getModule('schedule');
|
|
87
|
+
const scheduleList = scheduleModule?.getScheduleList?.();
|
|
88
|
+
const contextScheduleList = this.core?.context?.scheduleList;
|
|
89
|
+
const contextMenuList = this.core?.context?.menuList;
|
|
106
90
|
const businessData = {
|
|
107
91
|
products,
|
|
108
92
|
scheduleDateTime: queryPayload.schedule_datetime || queryPayload.schedule_date,
|
|
109
93
|
scheduleList: Array.isArray(scheduleList) ? scheduleList : Array.isArray(contextScheduleList) ? contextScheduleList : [],
|
|
110
|
-
menuList: Array.isArray(
|
|
94
|
+
menuList: Array.isArray(this.otherParams?.menuList) ? this.otherParams.menuList : Array.isArray(contextMenuList) ? contextMenuList : [],
|
|
111
95
|
customerId: queryPayload.customer_id,
|
|
112
96
|
channel: strategyContext.channel,
|
|
113
97
|
orderType: strategyContext.orderType || strategyContext.order_type,
|
|
@@ -117,14 +101,16 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
117
101
|
};
|
|
118
102
|
try {
|
|
119
103
|
const result = evaluator.resolveProducts(businessData);
|
|
120
|
-
return Array.isArray(result
|
|
104
|
+
return Array.isArray(result?.products) ? result.products : products;
|
|
121
105
|
} catch (error) {
|
|
122
|
-
console.error(
|
|
106
|
+
console.error('[ProductList] Data Variant 客户端解析失败', error);
|
|
123
107
|
return products;
|
|
124
108
|
}
|
|
125
109
|
}
|
|
126
110
|
async storeChange(path, value) {
|
|
111
|
+
// No longer needed - products are stored as plain objects instead of Product instances
|
|
127
112
|
}
|
|
113
|
+
|
|
128
114
|
/**
|
|
129
115
|
* 获取加时商品列表。
|
|
130
116
|
*
|
|
@@ -133,10 +119,10 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
133
119
|
*/
|
|
134
120
|
async getAddTimeProducts(params = {}) {
|
|
135
121
|
return this.loadProducts({
|
|
136
|
-
schedule_date: (0,
|
|
137
|
-
status:
|
|
122
|
+
schedule_date: (0, _dayjs.default)().format('YYYY-MM-DD'),
|
|
123
|
+
status: 'published',
|
|
138
124
|
...params,
|
|
139
|
-
extension_type: [
|
|
125
|
+
extension_type: ['product_add_time']
|
|
140
126
|
});
|
|
141
127
|
}
|
|
142
128
|
async loadProducts({
|
|
@@ -151,55 +137,60 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
151
137
|
cacheId,
|
|
152
138
|
with_schedule,
|
|
153
139
|
extension_type,
|
|
154
|
-
status =
|
|
140
|
+
status = 'published',
|
|
155
141
|
strategy_context
|
|
156
142
|
} = {}, options) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
143
|
+
// // 如果 schedule_ids 为空,则需要尝试从 schedule 模块里获取
|
|
144
|
+
// if (!schedule_ids?.length) {
|
|
145
|
+
// const schedule_ids_data = this.store.schedule
|
|
146
|
+
// .getScheduleListByIds(schedule_ids)
|
|
147
|
+
// .map((n) => n.id);
|
|
148
|
+
// if (schedule_ids_data.length) {
|
|
149
|
+
// schedule_ids = schedule_ids_data;
|
|
150
|
+
// } else if (schedule_date) {
|
|
151
|
+
// // 后端说如果 schedule_ids 如果为空,需要给[0]
|
|
152
|
+
// schedule_ids = [0];
|
|
153
|
+
// }
|
|
154
|
+
// }
|
|
155
|
+
let userPlugin = this.core.getPlugin('user');
|
|
156
|
+
let customer_id = undefined;
|
|
160
157
|
try {
|
|
161
|
-
customer_id = paramsCustomerId ||
|
|
158
|
+
customer_id = paramsCustomerId || userPlugin?.get()?.id;
|
|
162
159
|
} catch (error) {
|
|
163
160
|
console.error(error);
|
|
164
161
|
}
|
|
162
|
+
// 如果没传schedule_date,则从
|
|
165
163
|
const channelMap = {
|
|
166
|
-
online_store:
|
|
167
|
-
scan_to_order:
|
|
168
|
-
|
|
169
|
-
scan_to_order_2:
|
|
170
|
-
scan_to_order_3:
|
|
164
|
+
online_store: 'online-store',
|
|
165
|
+
scan_to_order: 'online-store',
|
|
166
|
+
'scan-to-order': 'online-store',
|
|
167
|
+
scan_to_order_2: 'mobile_order',
|
|
168
|
+
scan_to_order_3: 'scantoorder3'
|
|
171
169
|
};
|
|
172
|
-
const rawApplicationCode =
|
|
173
|
-
const mappedApplicationCode = typeof rawApplicationCode ===
|
|
170
|
+
const rawApplicationCode = this.otherParams?.channel;
|
|
171
|
+
const mappedApplicationCode = typeof rawApplicationCode === 'string' ? channelMap[rawApplicationCode] || rawApplicationCode : rawApplicationCode;
|
|
174
172
|
const queryPayload = {
|
|
175
173
|
open_quotation: 1,
|
|
176
174
|
open_bundle: 0,
|
|
177
|
-
exclude_extension_type: [
|
|
178
|
-
|
|
179
|
-
"product_event",
|
|
180
|
-
"product_series_event",
|
|
181
|
-
"product_package_ticket",
|
|
182
|
-
"ticket",
|
|
183
|
-
"event_item"
|
|
184
|
-
],
|
|
185
|
-
with: [
|
|
186
|
-
"category",
|
|
187
|
-
"collection",
|
|
188
|
-
"resourceRelation",
|
|
189
|
-
"bundleGroup.bundleItem",
|
|
190
|
-
"optionGroup.optionItem",
|
|
191
|
-
"variantGroup.variantItem",
|
|
192
|
-
"dataVariants"
|
|
193
|
-
],
|
|
175
|
+
exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item'],
|
|
176
|
+
with: ['category', 'collection', 'resourceRelation', 'bundleGroup.bundleItem', 'optionGroup.optionItem', 'variantGroup.variantItem', 'dataVariants'],
|
|
194
177
|
status,
|
|
195
178
|
num: 500,
|
|
196
179
|
skip: 1,
|
|
197
180
|
customer_id,
|
|
198
|
-
...Array.isArray(category_ids) && category_ids.length ? {
|
|
199
|
-
|
|
200
|
-
|
|
181
|
+
...(Array.isArray(category_ids) && category_ids.length ? {
|
|
182
|
+
category_ids
|
|
183
|
+
} : {}),
|
|
184
|
+
...(Array.isArray(product_ids) && product_ids.length ? {
|
|
185
|
+
ids: product_ids
|
|
186
|
+
} : {}),
|
|
187
|
+
...(Array.isArray(collection) && collection.length ? {
|
|
188
|
+
collection
|
|
189
|
+
} : {}),
|
|
201
190
|
front_end_cache_id: cacheId,
|
|
202
|
-
...Array.isArray(menu_list_ids) && menu_list_ids.length ? {
|
|
191
|
+
...(Array.isArray(menu_list_ids) && menu_list_ids.length ? {
|
|
192
|
+
menu_list_ids
|
|
193
|
+
} : {}),
|
|
203
194
|
with_count,
|
|
204
195
|
// client_schedule_ids: schedule_ids,
|
|
205
196
|
schedule_date,
|
|
@@ -211,37 +202,35 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
211
202
|
strategy_context
|
|
212
203
|
};
|
|
213
204
|
const handledByOsServer = this.isProductQueryHandledByOsServer();
|
|
214
|
-
const callback = !handledByOsServer && typeof
|
|
215
|
-
|
|
216
|
-
const callbackList = (_a2 = result == null ? void 0 : result.data) == null ? void 0 : _a2.list;
|
|
205
|
+
const callback = !handledByOsServer && typeof options?.callback === 'function' ? result => {
|
|
206
|
+
const callbackList = result?.data?.list;
|
|
217
207
|
if (!Array.isArray(callbackList)) {
|
|
218
|
-
|
|
208
|
+
options.callback?.(result);
|
|
219
209
|
return;
|
|
220
210
|
}
|
|
221
|
-
|
|
211
|
+
options.callback?.({
|
|
222
212
|
...result,
|
|
223
213
|
data: {
|
|
224
214
|
...result.data,
|
|
225
|
-
list: this.resolveClientDataVariants(
|
|
226
|
-
callbackList,
|
|
227
|
-
queryPayload,
|
|
228
|
-
false
|
|
229
|
-
)
|
|
215
|
+
list: this.resolveClientDataVariants(callbackList, queryPayload, false)
|
|
230
216
|
}
|
|
231
217
|
});
|
|
232
|
-
} : options
|
|
233
|
-
const productsData = await this.request.post(
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
);
|
|
239
|
-
const resolvedList = this.resolveClientDataVariants(
|
|
240
|
-
productsData.data.list || [],
|
|
241
|
-
queryPayload,
|
|
242
|
-
handledByOsServer
|
|
243
|
-
);
|
|
218
|
+
} : options?.callback;
|
|
219
|
+
const productsData = await this.request.post(`/product/query`, queryPayload, {
|
|
220
|
+
osServer: true,
|
|
221
|
+
callback,
|
|
222
|
+
subscriberId: options?.subscriberId,
|
|
223
|
+
customToast: () => {}
|
|
224
|
+
});
|
|
225
|
+
const resolvedList = this.resolveClientDataVariants(productsData.data.list || [], queryPayload, handledByOsServer);
|
|
244
226
|
const sortedList = resolvedList.slice().sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
227
|
+
// if (sortedList.length) {
|
|
228
|
+
// sortedList.forEach((n: any) => {
|
|
229
|
+
// if (n.is_eject !== 1 && n['schedule.ids'] && n['schedule.ids'].length) {
|
|
230
|
+
// n.is_eject = 1
|
|
231
|
+
// }
|
|
232
|
+
// })
|
|
233
|
+
// }
|
|
245
234
|
this.addProduct(sortedList);
|
|
246
235
|
return sortedList;
|
|
247
236
|
}
|
|
@@ -251,80 +240,68 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
251
240
|
schedule_date,
|
|
252
241
|
channel
|
|
253
242
|
}) {
|
|
254
|
-
const productsData = await this.request.post(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
{ useCache: true }
|
|
263
|
-
);
|
|
243
|
+
const productsData = await this.request.post(`/product/query/price`, {
|
|
244
|
+
ids,
|
|
245
|
+
customer_id,
|
|
246
|
+
schedule_date,
|
|
247
|
+
channel
|
|
248
|
+
}, {
|
|
249
|
+
useCache: true
|
|
250
|
+
});
|
|
264
251
|
return productsData.data;
|
|
265
252
|
}
|
|
266
253
|
async getProducts() {
|
|
267
|
-
await this.core.effects.emit(
|
|
268
|
-
|
|
269
|
-
this.store.list
|
|
270
|
-
);
|
|
271
|
-
return (0, import_lodash_es.cloneDeep)(this.store.list);
|
|
254
|
+
await this.core.effects.emit(`${this.name}:onGetProducts`, this.store.list);
|
|
255
|
+
return (0, _lodashEs.cloneDeep)(this.store.list);
|
|
272
256
|
}
|
|
273
257
|
async getProduct(id) {
|
|
274
|
-
await this.core.effects.emit(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
);
|
|
278
|
-
const product = this.store.list.find((product2) => product2.id === id);
|
|
279
|
-
return product ? (0, import_lodash_es.cloneDeep)(product) : void 0;
|
|
258
|
+
await this.core.effects.emit(`${this.name}:onGetProduct`, this.store.list);
|
|
259
|
+
const product = this.store.list.find(product => product.id === id);
|
|
260
|
+
return product ? (0, _lodashEs.cloneDeep)(product) : undefined;
|
|
280
261
|
}
|
|
281
262
|
async getProductByIds(ids) {
|
|
282
|
-
await this.core.effects.emit(
|
|
283
|
-
|
|
284
|
-
this.store.list
|
|
285
|
-
);
|
|
286
|
-
const products = this.store.list.filter((product) => ids.includes(product.id));
|
|
263
|
+
await this.core.effects.emit(`${this.name}:onGetProductByIds`, this.store.list);
|
|
264
|
+
const products = this.store.list.filter(product => ids.includes(product.id));
|
|
287
265
|
return products;
|
|
288
266
|
}
|
|
289
267
|
async addProduct(products) {
|
|
268
|
+
// list 需要根据 id 去重
|
|
290
269
|
if (!this.store.list) {
|
|
291
270
|
this.store.list = [];
|
|
292
271
|
}
|
|
293
|
-
products.forEach(
|
|
294
|
-
const index = this.store.list.findIndex(
|
|
272
|
+
products.forEach(n => {
|
|
273
|
+
const index = this.store.list.findIndex(m => m.id === n.id);
|
|
295
274
|
if (index === -1) {
|
|
296
275
|
this.store.list.push(n);
|
|
297
276
|
} else {
|
|
298
277
|
this.store.list[index] = n;
|
|
299
278
|
}
|
|
300
279
|
});
|
|
280
|
+
// 根据 sort 值做降序排序(数字越大越靠前)
|
|
301
281
|
this.store.list.sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
302
282
|
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
303
283
|
}
|
|
304
284
|
async selectProducts(products) {
|
|
305
285
|
this.store.selectProducts = products;
|
|
306
286
|
}
|
|
287
|
+
|
|
307
288
|
/**
|
|
308
289
|
* 根据商品编码或条码搜索商品
|
|
309
290
|
* @param code 商品编码或条码
|
|
310
291
|
* @returns 匹配的商品列表,如果没有匹配则返回空数组
|
|
311
292
|
*/
|
|
312
293
|
findProductsByCodeOrBarcode(code) {
|
|
313
|
-
if (!code || typeof code !==
|
|
294
|
+
if (!code || typeof code !== 'string') {
|
|
314
295
|
return [];
|
|
315
296
|
}
|
|
316
297
|
const trimmedCode = code.trim();
|
|
317
298
|
if (!trimmedCode) {
|
|
318
299
|
return [];
|
|
319
300
|
}
|
|
320
|
-
const matchingProducts = this.store.list.filter(
|
|
301
|
+
const matchingProducts = this.store.list.filter(product => {
|
|
321
302
|
return product.code && product.code.trim() === trimmedCode || product.barcode && product.barcode.trim() === trimmedCode;
|
|
322
303
|
});
|
|
323
|
-
return (0,
|
|
304
|
+
return (0, _lodashEs.cloneDeep)(matchingProducts);
|
|
324
305
|
}
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
0 && (module.exports = {
|
|
328
|
-
ProductList,
|
|
329
|
-
...require("./types")
|
|
330
|
-
});
|
|
306
|
+
}
|
|
307
|
+
exports.ProductList = ProductList;
|
|
@@ -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
|
-
ProductListHooks: () => ProductListHooks
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var ProductListHooks = /* @__PURE__ */ ((ProductListHooks2) => {
|
|
26
|
-
ProductListHooks2["onGetProducts"] = "productList:onGetProducts";
|
|
27
|
-
ProductListHooks2["onGetProduct"] = "productList:onGetProduct";
|
|
28
|
-
return ProductListHooks2;
|
|
29
|
-
})(ProductListHooks || {});
|
|
30
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
-
0 && (module.exports = {
|
|
32
|
-
ProductListHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
6
|
+
exports.ProductListHooks = void 0;
|
|
7
|
+
let ProductListHooks = exports.ProductListHooks = /*#__PURE__*/function (ProductListHooks) {
|
|
8
|
+
ProductListHooks["onGetProducts"] = "productList:onGetProducts";
|
|
9
|
+
ProductListHooks["onGetProduct"] = "productList:onGetProduct";
|
|
10
|
+
return ProductListHooks;
|
|
11
|
+
}({});
|