@pisell/pisellos 2.3.73 → 2.3.75
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.d.ts +7 -0
- package/dist/core/index.js +111 -71
- 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 +36 -64
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Quotation/index.d.ts +6 -0
- package/dist/modules/Quotation/index.js +75 -19
- 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.d.ts +1 -0
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.d.ts +8 -2
- package/dist/server/index.js +303 -269
- package/dist/server/modules/floor-plan/index.d.ts +4 -0
- package/dist/server/modules/floor-plan/index.js +240 -98
- package/dist/server/modules/menu/index.js +75 -59
- package/dist/server/modules/order/index.d.ts +17 -7
- package/dist/server/modules/order/index.js +421 -211
- package/dist/server/modules/products/index.d.ts +8 -2
- package/dist/server/modules/products/index.js +191 -117
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +24 -17
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +38 -41
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- 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.d.ts +7 -0
- package/lib/core/index.js +149 -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 +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 +1713 -2118
- package/lib/modules/Order/payment-utils.js +77 -120
- 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.d.ts +6 -0
- package/lib/modules/Quotation/index.js +110 -103
- 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.d.ts +1 -0
- 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.d.ts +8 -2
- package/lib/server/index.js +3083 -2663
- package/lib/server/modules/floor-plan/index.d.ts +4 -0
- package/lib/server/modules/floor-plan/index.js +159 -127
- 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 +170 -124
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.d.ts +17 -7
- package/lib/server/modules/order/index.js +916 -977
- 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.d.ts +8 -2
- package/lib/server/modules/products/index.js +656 -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 +225 -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 +1186 -1410
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.js +642 -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.d.ts +1 -1
- 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,64 +1,45 @@
|
|
|
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(Schedule_exports, {
|
|
32
|
-
ScheduleModule: () => ScheduleModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
6
|
+
exports.ScheduleModule = void 0;
|
|
7
|
+
var _lodashEs = require("lodash-es");
|
|
8
|
+
var _BaseModule = require("../BaseModule");
|
|
9
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
10
|
+
var _isSameOrBefore = _interopRequireDefault(require("dayjs/plugin/isSameOrBefore"));
|
|
11
|
+
var _isSameOrAfter = _interopRequireDefault(require("dayjs/plugin/isSameOrAfter"));
|
|
12
|
+
var _utils = require("../Date/utils");
|
|
13
|
+
var _utils2 = require("./utils");
|
|
14
|
+
var _getDateIsInSchedule = require("./getDateIsInSchedule");
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
_dayjs.default.extend(_isSameOrBefore.default);
|
|
17
|
+
_dayjs.default.extend(_isSameOrAfter.default);
|
|
18
|
+
class ScheduleModule extends _BaseModule.BaseModule {
|
|
19
|
+
defaultName = 'schedule';
|
|
20
|
+
defaultVersion = '1.0.0';
|
|
21
|
+
request;
|
|
22
|
+
store = {};
|
|
23
|
+
cacheId;
|
|
24
|
+
openCache = false;
|
|
25
|
+
fatherModule;
|
|
26
|
+
hasLoadedScheduleList = false;
|
|
46
27
|
constructor(name, version) {
|
|
47
28
|
super(name, version);
|
|
48
|
-
this.defaultName = "schedule";
|
|
49
|
-
this.defaultVersion = "1.0.0";
|
|
50
|
-
this.store = {};
|
|
51
|
-
this.openCache = false;
|
|
52
|
-
this.hasLoadedScheduleList = false;
|
|
53
29
|
}
|
|
54
30
|
async initialize(core, options) {
|
|
55
|
-
var _a, _b;
|
|
56
31
|
this.core = core;
|
|
57
|
-
|
|
32
|
+
|
|
33
|
+
// 获取依赖的插件
|
|
34
|
+
this.request = core.getPlugin('request');
|
|
58
35
|
if (!this.request) {
|
|
59
|
-
throw new Error(
|
|
36
|
+
throw new Error('ScheduleModule 需要 request 插件支持');
|
|
60
37
|
}
|
|
61
|
-
|
|
38
|
+
|
|
39
|
+
// if (options?.initialState) {
|
|
40
|
+
// this.state = { ...this.state, ...options.initialState }
|
|
41
|
+
// }
|
|
42
|
+
this.store = options?.store;
|
|
62
43
|
if (options.initialState) {
|
|
63
44
|
this.store.scheduleList = options.initialState.scheduleList;
|
|
64
45
|
this.syncScheduleMap();
|
|
@@ -66,18 +47,19 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
66
47
|
this.hasLoadedScheduleList = Array.isArray(options.initialState.scheduleList);
|
|
67
48
|
} else {
|
|
68
49
|
this.store.scheduleList = [];
|
|
69
|
-
this.store.map =
|
|
50
|
+
this.store.map = new Map();
|
|
70
51
|
this.store.availabilityDateList = [];
|
|
71
52
|
this.hasLoadedScheduleList = false;
|
|
72
53
|
}
|
|
73
|
-
if (
|
|
54
|
+
if (options.otherParams?.cacheId) {
|
|
74
55
|
this.openCache = options.otherParams.openCache;
|
|
75
56
|
this.cacheId = options.otherParams.cacheId;
|
|
76
57
|
}
|
|
77
|
-
if (
|
|
58
|
+
if (options.otherParams?.fatherModule) {
|
|
78
59
|
this.fatherModule = options.otherParams.fatherModule;
|
|
79
60
|
}
|
|
80
61
|
}
|
|
62
|
+
|
|
81
63
|
/**
|
|
82
64
|
* 更新父级解决方案透传的运行态参数,并刷新 schedule 缓存写入配置。
|
|
83
65
|
*
|
|
@@ -90,19 +72,19 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
90
72
|
this.cacheId = otherParams.cacheId;
|
|
91
73
|
this.fatherModule = otherParams.fatherModule;
|
|
92
74
|
}
|
|
75
|
+
|
|
93
76
|
/**
|
|
94
77
|
* 加载当前店铺下所有 schedule
|
|
95
78
|
*
|
|
96
79
|
* @memberof ScheduleModule
|
|
97
80
|
*/
|
|
98
81
|
async loadAllSchedule(options = {}) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
);
|
|
105
|
-
this.setScheduleList(((_a = scheduleList.data) == null ? void 0 : _a.list) || []);
|
|
82
|
+
const scheduleList = await this.request.get(`/schedule`, {
|
|
83
|
+
num: 999
|
|
84
|
+
}, {
|
|
85
|
+
useCache: options.useCache ?? true
|
|
86
|
+
});
|
|
87
|
+
this.setScheduleList(scheduleList.data?.list || []);
|
|
106
88
|
}
|
|
107
89
|
setScheduleList(list) {
|
|
108
90
|
this.store.scheduleList = list;
|
|
@@ -110,9 +92,7 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
110
92
|
this.hasLoadedScheduleList = true;
|
|
111
93
|
}
|
|
112
94
|
syncScheduleMap() {
|
|
113
|
-
this.store.map = new Map(
|
|
114
|
-
(this.store.scheduleList || []).map((schedule) => [Number(schedule.id), schedule])
|
|
115
|
-
);
|
|
95
|
+
this.store.map = new Map((this.store.scheduleList || []).map(schedule => [Number(schedule.id), schedule]));
|
|
116
96
|
}
|
|
117
97
|
getScheduleList() {
|
|
118
98
|
return this.store.scheduleList || [];
|
|
@@ -126,54 +106,54 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
126
106
|
custom_page_id,
|
|
127
107
|
channel
|
|
128
108
|
}) {
|
|
129
|
-
|
|
130
|
-
|
|
109
|
+
// 前端传递的 startDate,可能是今天之前的,如果 startDate 小于今天,需要把 startDate 置为今天
|
|
110
|
+
if ((0, _dayjs.default)(startDate).isBefore((0, _dayjs.default)(), 'day')) {
|
|
111
|
+
startDate = (0, _dayjs.default)().format('YYYY-MM-DD');
|
|
131
112
|
}
|
|
132
|
-
|
|
133
|
-
dates = (0,
|
|
134
|
-
|
|
113
|
+
// 1.生成当前月份的所有日期,默认都不可用
|
|
114
|
+
let dates = (0, _utils.generateMonthDates)(startDate, endDate);
|
|
115
|
+
dates = (0, _utils.disableAllDates)(dates);
|
|
116
|
+
// 如果 endDate 在今天之前,则不用查接口,直接返回 dates
|
|
117
|
+
if ((0, _dayjs.default)(endDate).isBefore((0, _dayjs.default)(), 'day')) {
|
|
135
118
|
return dates;
|
|
136
119
|
}
|
|
137
|
-
const res = await this.request.get(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
channel
|
|
144
|
-
}
|
|
145
|
-
);
|
|
120
|
+
const res = await this.request.get(`/schedule/product/availability/v2`, {
|
|
121
|
+
start_date: startDate,
|
|
122
|
+
end_date: endDate,
|
|
123
|
+
custom_page_id,
|
|
124
|
+
channel
|
|
125
|
+
});
|
|
146
126
|
const responseData = res.data || {};
|
|
147
127
|
const dateList = Array.isArray(responseData.date_list) ? responseData.date_list : [];
|
|
148
128
|
const otherProductIds = Array.isArray(responseData.other_product_ids) ? responseData.other_product_ids : [];
|
|
149
129
|
this.setAvailabilityScheduleDateList(dateList);
|
|
150
130
|
this.setOtherProductsIds(otherProductIds);
|
|
151
|
-
|
|
131
|
+
// 如果没有schedule或者结束日期在今天之前,则所有日期均不可用
|
|
132
|
+
if (!dateList.length && !otherProductIds.length || (0, _dayjs.default)(endDate).isBefore((0, _dayjs.default)(), 'day')) {
|
|
152
133
|
return dates;
|
|
153
134
|
}
|
|
154
135
|
if (otherProductIds.length) {
|
|
155
|
-
|
|
156
|
-
|
|
136
|
+
// 如果后端有返回 other_product_ids ,意味着有 duration 商品,则今天以及今天以后的日期均可用
|
|
137
|
+
dates.forEach(n => {
|
|
138
|
+
n.status = 'available';
|
|
157
139
|
});
|
|
158
140
|
} else {
|
|
159
|
-
dateList.forEach(
|
|
160
|
-
const index = dates.findIndex(
|
|
141
|
+
dateList.forEach(n => {
|
|
142
|
+
const index = dates.findIndex(m => m.date === n.date);
|
|
161
143
|
if (index !== -1) {
|
|
162
|
-
dates[index].status =
|
|
144
|
+
dates[index].status = 'available';
|
|
163
145
|
}
|
|
164
146
|
});
|
|
165
147
|
}
|
|
166
|
-
dates = (0,
|
|
148
|
+
dates = (0, _utils.disableDatesBeforeOneDay)(dates);
|
|
167
149
|
return dates;
|
|
168
150
|
}
|
|
169
151
|
getScheduleListByIds(ids) {
|
|
170
|
-
|
|
171
|
-
const idSet = new Set(ids.map((id) => String(id)));
|
|
172
|
-
console.log("getScheduleListByIds", this.store.scheduleList);
|
|
152
|
+
const idSet = new Set(ids.map(id => String(id)));
|
|
173
153
|
if (this.store.map instanceof Map && this.store.map.size > 0) {
|
|
174
|
-
return ids.map(
|
|
154
|
+
return ids.map(id => this.store.map.get(Number(id))).filter(Boolean);
|
|
175
155
|
}
|
|
176
|
-
const list =
|
|
156
|
+
const list = this.store.scheduleList?.filter(n => idSet.has(String(n.id)));
|
|
177
157
|
return list;
|
|
178
158
|
}
|
|
179
159
|
setAvailabilityScheduleDateList(list) {
|
|
@@ -190,12 +170,13 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
190
170
|
}
|
|
191
171
|
storeChange() {
|
|
192
172
|
if (this.openCache) {
|
|
193
|
-
const store = (0,
|
|
173
|
+
const store = (0, _lodashEs.cloneDeep)(this.store);
|
|
174
|
+
// store里的 list 要主动基于 id 做下去重,避免重复写入
|
|
194
175
|
this.checkSaveCache({
|
|
195
176
|
cacheId: this.cacheId,
|
|
196
177
|
fatherModule: this.fatherModule,
|
|
197
178
|
store,
|
|
198
|
-
cacheKey: [
|
|
179
|
+
cacheKey: ['scheduleList', 'availabilityDateList', 'otherProductsIds']
|
|
199
180
|
});
|
|
200
181
|
}
|
|
201
182
|
}
|
|
@@ -208,7 +189,7 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
208
189
|
date,
|
|
209
190
|
schedule
|
|
210
191
|
}) {
|
|
211
|
-
return (0,
|
|
192
|
+
return (0, _getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
|
|
212
193
|
}
|
|
213
194
|
/**
|
|
214
195
|
* 传入一个时间, 判断改时间是否在schedule 内
|
|
@@ -219,37 +200,41 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
219
200
|
date,
|
|
220
201
|
schedule
|
|
221
202
|
}) {
|
|
222
|
-
|
|
223
|
-
return (0, import_getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
|
|
203
|
+
return (0, _getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
|
|
224
204
|
if (schedule.start_time && schedule.end_time) {
|
|
225
|
-
const isBeforeStartTime = (0,
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const isAfterEndTime = (0, import_dayjs.default)(date).isAfter((0, import_dayjs.default)(schedule.end_time));
|
|
205
|
+
const isBeforeStartTime = (0, _dayjs.default)(date).isBefore((0, _dayjs.default)(schedule.start_time));
|
|
206
|
+
const isAfterEndTime = (0, _dayjs.default)(date).isAfter((0, _dayjs.default)(schedule.end_time));
|
|
207
|
+
// 如果不在 schedule 日期区间内直接返回false
|
|
229
208
|
if (isBeforeStartTime || isAfterEndTime) {
|
|
230
209
|
return false;
|
|
231
210
|
}
|
|
232
211
|
}
|
|
212
|
+
|
|
213
|
+
// 节约性能, 强制将schedule的时间范围改为前后一天,避免大量计算.
|
|
233
214
|
let _schedule = {
|
|
234
215
|
...schedule,
|
|
235
216
|
// 开始时间向前推一天
|
|
236
|
-
start_time: (0,
|
|
237
|
-
end_time: (0,
|
|
217
|
+
start_time: (0, _dayjs.default)(date).subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
|
|
218
|
+
end_time: (0, _dayjs.default)(date).add(1, 'day').format('YYYY-MM-DD HH:mm:ss')
|
|
238
219
|
};
|
|
239
|
-
|
|
220
|
+
|
|
221
|
+
// 不限制的 改为后一天
|
|
222
|
+
if (_schedule.repeat_rule?.end?.type === 'never') {
|
|
240
223
|
_schedule = {
|
|
241
224
|
..._schedule,
|
|
242
225
|
repeat_rule: {
|
|
243
226
|
..._schedule.repeat_rule,
|
|
244
227
|
end: {
|
|
245
|
-
type:
|
|
228
|
+
type: 'date',
|
|
246
229
|
end_date: _schedule.end_time,
|
|
247
230
|
occurrence: null
|
|
248
231
|
}
|
|
249
232
|
}
|
|
250
233
|
};
|
|
251
234
|
}
|
|
252
|
-
|
|
235
|
+
|
|
236
|
+
// 限制结束日期的也改为后一天
|
|
237
|
+
if (_schedule.repeat_rule?.end?.type === 'date') {
|
|
253
238
|
_schedule = {
|
|
254
239
|
..._schedule,
|
|
255
240
|
repeat_rule: {
|
|
@@ -261,17 +246,18 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
261
246
|
}
|
|
262
247
|
};
|
|
263
248
|
}
|
|
264
|
-
const dateRanges = (0,
|
|
249
|
+
const dateRanges = (0, _utils2.calcScheduleDateRange)({
|
|
250
|
+
..._schedule
|
|
251
|
+
});
|
|
265
252
|
for (const range of dateRanges) {
|
|
266
|
-
const startTime = (0,
|
|
267
|
-
const endTime = (0,
|
|
268
|
-
|
|
253
|
+
const startTime = (0, _dayjs.default)(range.start);
|
|
254
|
+
const endTime = (0, _dayjs.default)(range.end);
|
|
255
|
+
|
|
256
|
+
// 如果输入时间在这个范围内(包含边界)
|
|
257
|
+
if ((0, _dayjs.default)(date).isSameOrAfter(startTime) && (0, _dayjs.default)(date).isSameOrBefore(endTime)) {
|
|
269
258
|
return true;
|
|
270
259
|
}
|
|
271
260
|
}
|
|
272
261
|
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
0 && (module.exports = {
|
|
276
|
-
ScheduleModule
|
|
277
|
-
});
|
|
262
|
+
}
|
|
263
|
+
exports.ScheduleModule = ScheduleModule;
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
14
2
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
14
2
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|