@pisell/pisellos 0.0.567 → 0.0.568
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/evaluator.js +0 -2
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +0 -3
- 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 +1 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +14 -41
- package/dist/modules/Payment/index.js +142 -270
- package/dist/modules/Payment/walletpass.js +4 -5
- package/dist/modules/Rules/index.js +0 -7
- 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 +88 -121
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/products/index.js +29 -49
- 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 +32 -40
- package/dist/server/utils/product.js +0 -1
- 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.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +5 -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 -246
- 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.d.ts +5 -0
- package/dist/solution/VenueBooking/index.js +364 -327
- 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 +130 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +92 -53
- 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 +84 -63
- package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
- package/lib/model/strategy/adapter/promotion/examples.js +139 -159
- package/lib/model/strategy/adapter/promotion/index.js +1 -49
- package/lib/model/strategy/adapter/promotion/type.js +199 -35
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
- 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 +652 -402
- 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 +22 -45
- 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 +306 -241
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +72 -78
- package/lib/modules/Cart/utils/changePrice.js +26 -62
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +216 -153
- 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 +117 -113
- 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 +63 -74
- 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 +332 -320
- package/lib/modules/Order/types.js +24 -33
- package/lib/modules/Order/utils.js +350 -284
- 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 +566 -432
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +216 -107
- package/lib/modules/Payment/utils.js +50 -47
- package/lib/modules/Payment/walletpass.js +221 -203
- 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 +111 -110
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +60 -82
- 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/Rules/index.js +1172 -872
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +59 -68
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +176 -193
- 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 -167
- package/lib/modules/Schedule/index.js +97 -107
- 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 -70
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +782 -429
- package/lib/modules/index.js +212 -57
- 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 +882 -623
- package/lib/server/modules/index.js +85 -59
- 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 +195 -231
- package/lib/server/modules/order/types.js +107 -32
- package/lib/server/modules/order/utils/filterBookings.js +174 -140
- package/lib/server/modules/order/utils/filterOrders.js +89 -60
- package/lib/server/modules/products/index.js +430 -335
- package/lib/server/modules/products/types.js +41 -34
- package/lib/server/modules/quotation/index.js +76 -77
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +216 -187
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +134 -119
- 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/time.js +40 -49
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1530 -1343
- 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.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +147 -122
- package/lib/solution/BookingTicket/types.js +38 -64
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
- package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- 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 +227 -158
- 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 +218 -200
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +803 -840
- package/lib/solution/ScanOrder/types.js +34 -34
- package/lib/solution/ScanOrder/utils.js +372 -331
- package/lib/solution/ShopDiscount/index.js +230 -236
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +309 -172
- package/lib/solution/VenueBooking/index.d.ts +5 -0
- package/lib/solution/VenueBooking/index.js +886 -929
- package/lib/solution/VenueBooking/types.js +20 -40
- package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
- package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +102 -37
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,63 +1,44 @@
|
|
|
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;
|
|
46
26
|
constructor(name, version) {
|
|
47
27
|
super(name, version);
|
|
48
|
-
this.defaultName = "schedule";
|
|
49
|
-
this.defaultVersion = "1.0.0";
|
|
50
|
-
this.store = {};
|
|
51
|
-
this.openCache = false;
|
|
52
28
|
}
|
|
53
29
|
async initialize(core, options) {
|
|
54
|
-
var _a, _b;
|
|
55
30
|
this.core = core;
|
|
56
|
-
|
|
31
|
+
|
|
32
|
+
// 获取依赖的插件
|
|
33
|
+
this.request = core.getPlugin('request');
|
|
57
34
|
if (!this.request) {
|
|
58
|
-
throw new Error(
|
|
35
|
+
throw new Error('ScheduleModule 需要 request 插件支持');
|
|
59
36
|
}
|
|
60
|
-
|
|
37
|
+
|
|
38
|
+
// if (options?.initialState) {
|
|
39
|
+
// this.state = { ...this.state, ...options.initialState }
|
|
40
|
+
// }
|
|
41
|
+
this.store = options?.store;
|
|
61
42
|
if (options.initialState) {
|
|
62
43
|
this.store.scheduleList = options.initialState.scheduleList;
|
|
63
44
|
this.store.availabilityDateList = options.initialState.availabilityDateList;
|
|
@@ -65,27 +46,27 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
65
46
|
this.store.scheduleList = [];
|
|
66
47
|
this.store.availabilityDateList = [];
|
|
67
48
|
}
|
|
68
|
-
if (
|
|
49
|
+
if (options.otherParams?.cacheId) {
|
|
69
50
|
this.openCache = options.otherParams.openCache;
|
|
70
51
|
this.cacheId = options.otherParams.cacheId;
|
|
71
52
|
}
|
|
72
|
-
if (
|
|
53
|
+
if (options.otherParams?.fatherModule) {
|
|
73
54
|
this.fatherModule = options.otherParams.fatherModule;
|
|
74
55
|
}
|
|
75
56
|
}
|
|
57
|
+
|
|
76
58
|
/**
|
|
77
59
|
* 加载当前店铺下所有 schedule
|
|
78
60
|
*
|
|
79
61
|
* @memberof ScheduleModule
|
|
80
62
|
*/
|
|
81
63
|
async loadAllSchedule() {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
);
|
|
88
|
-
this.setScheduleList(((_a = scheduleList.data) == null ? void 0 : _a.list) || []);
|
|
64
|
+
const scheduleList = await this.request.get(`/schedule`, {
|
|
65
|
+
num: 999
|
|
66
|
+
}, {
|
|
67
|
+
useCache: true
|
|
68
|
+
});
|
|
69
|
+
this.setScheduleList(scheduleList.data?.list || []);
|
|
89
70
|
}
|
|
90
71
|
setScheduleList(list) {
|
|
91
72
|
this.store.scheduleList = list;
|
|
@@ -96,46 +77,47 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
96
77
|
custom_page_id,
|
|
97
78
|
channel
|
|
98
79
|
}) {
|
|
99
|
-
|
|
100
|
-
if ((0,
|
|
101
|
-
startDate = (0,
|
|
80
|
+
// 前端传递的 startDate,可能是今天之前的,如果 startDate 小于今天,需要把 startDate 置为今天
|
|
81
|
+
if ((0, _dayjs.default)(startDate).isBefore((0, _dayjs.default)(), 'day')) {
|
|
82
|
+
startDate = (0, _dayjs.default)().format('YYYY-MM-DD');
|
|
102
83
|
}
|
|
103
|
-
|
|
104
|
-
dates = (0,
|
|
105
|
-
|
|
84
|
+
// 1.生成当前月份的所有日期,默认都不可用
|
|
85
|
+
let dates = (0, _utils.generateMonthDates)(startDate, endDate);
|
|
86
|
+
dates = (0, _utils.disableAllDates)(dates);
|
|
87
|
+
// 如果 endDate 在今天之前,则不用查接口,直接返回 dates
|
|
88
|
+
if ((0, _dayjs.default)(endDate).isBefore((0, _dayjs.default)(), 'day')) {
|
|
106
89
|
return dates;
|
|
107
90
|
}
|
|
108
|
-
const res = await this.request.get(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
channel
|
|
115
|
-
}
|
|
116
|
-
);
|
|
91
|
+
const res = await this.request.get(`/schedule/product/availability/v2`, {
|
|
92
|
+
start_date: startDate,
|
|
93
|
+
end_date: endDate,
|
|
94
|
+
custom_page_id,
|
|
95
|
+
channel
|
|
96
|
+
});
|
|
117
97
|
this.setAvailabilityScheduleDateList(res.data.date_list);
|
|
118
98
|
this.setOtherProductsIds(res.data.other_product_ids || []);
|
|
119
|
-
|
|
99
|
+
// 如果没有schedule或者结束日期在今天之前,则所有日期均不可用
|
|
100
|
+
if (!res.data.date_list?.length && !res.data.other_product_ids?.length || (0, _dayjs.default)(endDate).isBefore((0, _dayjs.default)(), 'day')) {
|
|
120
101
|
return dates;
|
|
121
102
|
}
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
|
|
103
|
+
if (res.data.other_product_ids?.length) {
|
|
104
|
+
// 如果后端有返回 other_product_ids ,意味着有 duration 商品,则今天以及今天以后的日期均可用
|
|
105
|
+
dates.forEach(n => {
|
|
106
|
+
n.status = 'available';
|
|
125
107
|
});
|
|
126
108
|
} else {
|
|
127
|
-
res.data.date_list.forEach(
|
|
128
|
-
const index = dates.findIndex(
|
|
109
|
+
res.data.date_list.forEach(n => {
|
|
110
|
+
const index = dates.findIndex(m => m.date === n.date);
|
|
129
111
|
if (index !== -1) {
|
|
130
|
-
dates[index].status =
|
|
112
|
+
dates[index].status = 'available';
|
|
131
113
|
}
|
|
132
114
|
});
|
|
133
115
|
}
|
|
134
|
-
dates = (0,
|
|
116
|
+
dates = (0, _utils.disableDatesBeforeOneDay)(dates);
|
|
135
117
|
return dates;
|
|
136
118
|
}
|
|
137
119
|
getScheduleListByIds(ids) {
|
|
138
|
-
return (this.store.scheduleList || []).filter(
|
|
120
|
+
return (this.store.scheduleList || []).filter(n => ids.includes(n.id));
|
|
139
121
|
}
|
|
140
122
|
setAvailabilityScheduleDateList(list) {
|
|
141
123
|
this.store.availabilityDateList = list;
|
|
@@ -151,15 +133,17 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
151
133
|
}
|
|
152
134
|
storeChange() {
|
|
153
135
|
if (this.openCache) {
|
|
154
|
-
const store = (0,
|
|
136
|
+
const store = (0, _lodashEs.cloneDeep)(this.store);
|
|
137
|
+
// store里的 list 要主动基于 id 做下去重,避免重复写入
|
|
155
138
|
this.checkSaveCache({
|
|
156
139
|
cacheId: this.cacheId,
|
|
157
140
|
fatherModule: this.fatherModule,
|
|
158
141
|
store,
|
|
159
|
-
cacheKey: [
|
|
142
|
+
cacheKey: ['scheduleList', 'availabilityDateList', 'otherProductsIds']
|
|
160
143
|
});
|
|
161
144
|
}
|
|
162
145
|
}
|
|
146
|
+
|
|
163
147
|
/**
|
|
164
148
|
* 传入一个时间, 判断改时间是否在schedule 内
|
|
165
149
|
* @param param0 { date: string, schedule: any } date: 日期, schedule: schedule
|
|
@@ -169,8 +153,9 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
169
153
|
date,
|
|
170
154
|
schedule
|
|
171
155
|
}) {
|
|
172
|
-
return (0,
|
|
156
|
+
return (0, _getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
|
|
173
157
|
}
|
|
158
|
+
|
|
174
159
|
/**
|
|
175
160
|
* 传入一个时间, 判断改时间是否在schedule 内
|
|
176
161
|
* @param param0 { date: string, schedule: any } date: 日期, schedule: schedule
|
|
@@ -180,37 +165,41 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
180
165
|
date,
|
|
181
166
|
schedule
|
|
182
167
|
}) {
|
|
183
|
-
|
|
184
|
-
return (0, import_getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
|
|
168
|
+
return (0, _getDateIsInSchedule.getDateIsInSchedule)(date, [schedule]);
|
|
185
169
|
if (schedule.start_time && schedule.end_time) {
|
|
186
|
-
const isBeforeStartTime = (0,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
const isAfterEndTime = (0, import_dayjs.default)(date).isAfter((0, import_dayjs.default)(schedule.end_time));
|
|
170
|
+
const isBeforeStartTime = (0, _dayjs.default)(date).isBefore((0, _dayjs.default)(schedule.start_time));
|
|
171
|
+
const isAfterEndTime = (0, _dayjs.default)(date).isAfter((0, _dayjs.default)(schedule.end_time));
|
|
172
|
+
// 如果不在 schedule 日期区间内直接返回false
|
|
190
173
|
if (isBeforeStartTime || isAfterEndTime) {
|
|
191
174
|
return false;
|
|
192
175
|
}
|
|
193
176
|
}
|
|
177
|
+
|
|
178
|
+
// 节约性能, 强制将schedule的时间范围改为前后一天,避免大量计算.
|
|
194
179
|
let _schedule = {
|
|
195
180
|
...schedule,
|
|
196
181
|
// 开始时间向前推一天
|
|
197
|
-
start_time: (0,
|
|
198
|
-
end_time: (0,
|
|
182
|
+
start_time: (0, _dayjs.default)(date).subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
|
|
183
|
+
end_time: (0, _dayjs.default)(date).add(1, 'day').format('YYYY-MM-DD HH:mm:ss')
|
|
199
184
|
};
|
|
200
|
-
|
|
185
|
+
|
|
186
|
+
// 不限制的 改为后一天
|
|
187
|
+
if (_schedule.repeat_rule?.end?.type === 'never') {
|
|
201
188
|
_schedule = {
|
|
202
189
|
..._schedule,
|
|
203
190
|
repeat_rule: {
|
|
204
191
|
..._schedule.repeat_rule,
|
|
205
192
|
end: {
|
|
206
|
-
type:
|
|
193
|
+
type: 'date',
|
|
207
194
|
end_date: _schedule.end_time,
|
|
208
195
|
occurrence: null
|
|
209
196
|
}
|
|
210
197
|
}
|
|
211
198
|
};
|
|
212
199
|
}
|
|
213
|
-
|
|
200
|
+
|
|
201
|
+
// 限制结束日期的也改为后一天
|
|
202
|
+
if (_schedule.repeat_rule?.end?.type === 'date') {
|
|
214
203
|
_schedule = {
|
|
215
204
|
..._schedule,
|
|
216
205
|
repeat_rule: {
|
|
@@ -222,17 +211,18 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
|
|
|
222
211
|
}
|
|
223
212
|
};
|
|
224
213
|
}
|
|
225
|
-
const dateRanges = (0,
|
|
214
|
+
const dateRanges = (0, _utils2.calcScheduleDateRange)({
|
|
215
|
+
..._schedule
|
|
216
|
+
});
|
|
226
217
|
for (const range of dateRanges) {
|
|
227
|
-
const startTime = (0,
|
|
228
|
-
const endTime = (0,
|
|
229
|
-
|
|
218
|
+
const startTime = (0, _dayjs.default)(range.start);
|
|
219
|
+
const endTime = (0, _dayjs.default)(range.end);
|
|
220
|
+
|
|
221
|
+
// 如果输入时间在这个范围内(包含边界)
|
|
222
|
+
if ((0, _dayjs.default)(date).isSameOrAfter(startTime) && (0, _dayjs.default)(date).isSameOrBefore(endTime)) {
|
|
230
223
|
return true;
|
|
231
224
|
}
|
|
232
225
|
}
|
|
233
226
|
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
0 && (module.exports = {
|
|
237
|
-
ScheduleModule
|
|
238
|
-
});
|
|
227
|
+
}
|
|
228
|
+
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
|
+
});
|