@pisell/pisellos 3.0.5 → 3.0.7
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/modules/Account/index.d.ts +2 -6
- package/dist/modules/Account/index.js +21 -103
- package/dist/modules/Account/types.d.ts +12 -1
- package/dist/modules/AccountList/index.d.ts +20 -1
- package/dist/modules/AccountList/index.js +243 -75
- package/dist/modules/AccountList/types.d.ts +33 -1
- package/dist/modules/AccountList/types.js +8 -0
- package/dist/modules/AccountList/utils.d.ts +9 -0
- package/dist/modules/AccountList/utils.js +25 -0
- package/dist/modules/BaseModule.d.ts +2 -2
- package/dist/modules/BaseModule.js +1 -1
- package/dist/modules/Cart/index.d.ts +8 -5
- package/dist/modules/Cart/index.js +101 -25
- package/dist/modules/Cart/types.d.ts +82 -5
- package/dist/modules/Cart/types.js +22 -0
- package/dist/modules/Cart/utils.d.ts +106 -13
- package/dist/modules/Cart/utils.js +289 -76
- package/dist/modules/Date/index.d.ts +6 -6
- package/dist/modules/Date/index.js +41 -58
- package/dist/modules/Date/types.d.ts +22 -6
- package/dist/modules/Date/utils.d.ts +4 -3
- package/dist/modules/Date/utils.js +81 -30
- package/dist/modules/Discount/index.d.ts +4 -4
- package/dist/modules/Discount/index.js +11 -11
- package/dist/modules/Order/index.d.ts +11 -5
- package/dist/modules/Order/index.js +47 -18
- package/dist/modules/Order/types.d.ts +10 -3
- package/dist/modules/Order/utils.d.ts +10 -0
- package/dist/modules/Order/utils.js +15 -0
- package/dist/modules/Product/index.d.ts +14 -1
- package/dist/modules/Product/index.js +35 -0
- package/dist/modules/Product/types.d.ts +27 -3
- package/dist/modules/ProductList/index.js +11 -5
- package/dist/modules/Resource/types.d.ts +1 -0
- package/dist/modules/Resource/utils.js +1 -1
- package/dist/modules/Rules/index.d.ts +3 -3
- package/dist/modules/Rules/index.js +97 -29
- package/dist/modules/Rules/types.d.ts +5 -1
- package/dist/modules/Schedule/index.d.ts +18 -0
- package/dist/modules/Schedule/index.js +111 -0
- package/dist/modules/Schedule/type.d.ts +157 -0
- package/dist/modules/Schedule/type.js +1 -0
- package/dist/modules/Schedule/types.d.ts +182 -0
- package/dist/modules/Schedule/types.js +1 -0
- package/dist/modules/Schedule/utils.d.ts +67 -0
- package/dist/modules/Schedule/utils.js +729 -0
- package/dist/modules/Step/index.d.ts +14 -3
- package/dist/modules/Step/index.js +54 -2
- package/dist/modules/Summary/index.d.ts +12 -5
- package/dist/modules/Summary/index.js +33 -7
- package/dist/modules/Summary/types.d.ts +23 -2
- package/dist/modules/Summary/utils.d.ts +14 -4
- package/dist/modules/Summary/utils.js +46 -4
- package/dist/modules/index.d.ts +10 -0
- package/dist/modules/index.js +11 -1
- package/dist/plugins/index.d.ts +3 -3
- package/dist/plugins/request.d.ts +3 -3
- package/dist/plugins/request.js +30 -30
- package/dist/plugins/shopStore.d.ts +1 -1
- package/dist/solution/BookingByStep/index.d.ts +97 -24
- package/dist/solution/BookingByStep/index.js +1024 -322
- package/dist/solution/BookingByStep/types.d.ts +3 -10
- package/dist/solution/BookingByStep/types.js +11 -15
- package/dist/solution/BookingByStep/utils/products.d.ts +1 -1
- package/dist/solution/BookingByStep/utils/products.js +3 -0
- package/dist/solution/BookingByStep/utils/resources.d.ts +60 -6
- package/dist/solution/BookingByStep/utils/resources.js +293 -52
- package/dist/solution/ShopDiscount/index.d.ts +4 -4
- package/dist/solution/ShopDiscount/index.js +29 -24
- package/dist/solution/ShopDiscount/types.d.ts +3 -2
- package/dist/solution/ShopDiscount/types.js +1 -0
- package/dist/solution/ShopDiscount/utils.js +1 -1
- package/lib/core/index.js +7 -2
- package/lib/modules/Account/index.d.ts +2 -6
- package/lib/modules/Account/index.js +15 -30
- package/lib/modules/Account/types.d.ts +12 -1
- package/lib/modules/AccountList/index.d.ts +20 -1
- package/lib/modules/AccountList/index.js +122 -13
- package/lib/modules/AccountList/types.d.ts +33 -1
- package/lib/modules/AccountList/utils.d.ts +9 -0
- package/lib/modules/AccountList/utils.js +39 -0
- package/lib/modules/BaseModule.d.ts +2 -2
- package/lib/modules/BaseModule.js +14 -3
- package/lib/modules/Cart/index.d.ts +8 -5
- package/lib/modules/Cart/index.js +81 -8
- package/lib/modules/Cart/types.d.ts +82 -5
- package/lib/modules/Cart/types.js +20 -2
- package/lib/modules/Cart/utils.d.ts +106 -13
- package/lib/modules/Cart/utils.js +188 -45
- package/lib/modules/Date/index.d.ts +6 -6
- package/lib/modules/Date/index.js +13 -28
- package/lib/modules/Date/types.d.ts +22 -6
- package/lib/modules/Date/utils.d.ts +4 -3
- package/lib/modules/Date/utils.js +47 -13
- package/lib/modules/Discount/index.d.ts +4 -4
- package/lib/modules/Discount/index.js +9 -2
- package/lib/modules/Guests/index.js +4 -1
- package/lib/modules/Order/index.d.ts +11 -5
- package/lib/modules/Order/index.js +24 -3
- package/lib/modules/Order/types.d.ts +10 -3
- package/lib/modules/Order/utils.d.ts +10 -0
- package/lib/modules/Order/utils.js +45 -0
- package/lib/modules/Payment/index.js +1 -6
- package/lib/modules/Product/index.d.ts +14 -1
- package/lib/modules/Product/index.js +19 -0
- package/lib/modules/Product/types.d.ts +27 -3
- package/lib/modules/ProductList/index.js +21 -7
- package/lib/modules/Resource/index.js +4 -1
- package/lib/modules/Resource/types.d.ts +1 -0
- package/lib/modules/Resource/utils.js +7 -4
- package/lib/modules/Rules/index.d.ts +3 -3
- package/lib/modules/Rules/index.js +100 -25
- package/lib/modules/Rules/types.d.ts +5 -1
- package/lib/modules/Schedule/index.d.ts +18 -0
- package/lib/modules/Schedule/index.js +81 -0
- package/lib/modules/Schedule/type.d.ts +157 -0
- package/lib/modules/Schedule/type.js +17 -0
- package/lib/modules/Schedule/types.d.ts +182 -0
- package/lib/modules/Schedule/types.js +17 -0
- package/lib/modules/Schedule/utils.d.ts +67 -0
- package/lib/modules/Schedule/utils.js +600 -0
- package/lib/modules/Step/index.d.ts +14 -3
- package/lib/modules/Step/index.js +38 -1
- package/lib/modules/Summary/index.d.ts +12 -5
- package/lib/modules/Summary/index.js +15 -1
- package/lib/modules/Summary/types.d.ts +23 -2
- package/lib/modules/Summary/utils.d.ts +14 -4
- package/lib/modules/Summary/utils.js +30 -1
- package/lib/modules/index.d.ts +10 -0
- package/lib/modules/index.js +21 -1
- package/lib/plugins/index.d.ts +3 -3
- package/lib/plugins/request.d.ts +3 -3
- package/lib/plugins/request.js +48 -11
- package/lib/plugins/shopStore.d.ts +1 -1
- package/lib/solution/BookingByStep/index.d.ts +97 -24
- package/lib/solution/BookingByStep/index.js +693 -145
- package/lib/solution/BookingByStep/types.d.ts +3 -10
- package/lib/solution/BookingByStep/types.js +37 -14
- package/lib/solution/BookingByStep/utils/products.d.ts +1 -1
- package/lib/solution/BookingByStep/utils/products.js +3 -0
- package/lib/solution/BookingByStep/utils/resources.d.ts +60 -6
- package/lib/solution/BookingByStep/utils/resources.js +286 -54
- package/lib/solution/BuyTickets/index.js +34 -20
- package/lib/solution/ShopDiscount/index.d.ts +4 -4
- package/lib/solution/ShopDiscount/index.js +14 -2
- package/lib/solution/ShopDiscount/types.d.ts +3 -2
- package/lib/solution/ShopDiscount/types.js +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,729 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
11
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
12
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13
|
+
import dayjs from 'dayjs';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 根据日程配置生成日历数据
|
|
17
|
+
* @param values
|
|
18
|
+
* @param others
|
|
19
|
+
* @param type
|
|
20
|
+
*/
|
|
21
|
+
export var calcCalendarDataBySchedule = function calcCalendarDataBySchedule(values, others, type) {
|
|
22
|
+
if (type === 'time-slots') {
|
|
23
|
+
return calcCalendarDataByTimeSlots(values, others);
|
|
24
|
+
}
|
|
25
|
+
if (type === 'designation') {
|
|
26
|
+
return calcCalendarDataByDesignation(values, others);
|
|
27
|
+
}
|
|
28
|
+
return calcCalendarDataByStandard(values, others);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 获取开始时间和结束时间之间的所有日期
|
|
33
|
+
* @param startDate
|
|
34
|
+
* @param endDate
|
|
35
|
+
*/
|
|
36
|
+
export var getDaysByStartEnd = function getDaysByStartEnd(startDate, endDate) {
|
|
37
|
+
var start = dayjs(startDate);
|
|
38
|
+
var end = dayjs(endDate);
|
|
39
|
+
var daysArray = [];
|
|
40
|
+
while (start.isBefore(end, 'day') || start.isSame(end, 'day')) {
|
|
41
|
+
daysArray.push(start.format('YYYY-MM-DD'));
|
|
42
|
+
start = start.add(1, 'day');
|
|
43
|
+
}
|
|
44
|
+
return daysArray;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 合并日期和时间
|
|
49
|
+
* @param date
|
|
50
|
+
* @param time
|
|
51
|
+
*/
|
|
52
|
+
var mergeDateTime = function mergeDateTime(date, time) {
|
|
53
|
+
var dateStr = "".concat(dayjs(date).format('YYYY-MM-DD')).concat(time ? dayjs(time).format(' HH:MM') : '');
|
|
54
|
+
return dayjs(dateStr);
|
|
55
|
+
};
|
|
56
|
+
var getDataRange = function getDataRange(_ref) {
|
|
57
|
+
var start = _ref.start,
|
|
58
|
+
end = _ref.end,
|
|
59
|
+
type = _ref.type,
|
|
60
|
+
time_slot = _ref.time_slot;
|
|
61
|
+
if (type === 'time-slots') {
|
|
62
|
+
var dateRange = [];
|
|
63
|
+
var dateStr = getDaysByStartEnd(start, end);
|
|
64
|
+
dateStr.forEach(function (str) {
|
|
65
|
+
time_slot === null || time_slot === void 0 || time_slot.forEach(function (time) {
|
|
66
|
+
dateRange.push({
|
|
67
|
+
start: "".concat(str, " ").concat(time.start_time),
|
|
68
|
+
end: "".concat(str, " ").concat(time.end_time)
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
return dateRange;
|
|
73
|
+
}
|
|
74
|
+
return [{
|
|
75
|
+
start: start.format('YYYY-MM-DD HH:mm:ss'),
|
|
76
|
+
end: end.format('YYYY-MM-DD HH:mm:ss')
|
|
77
|
+
}];
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* 按天重复配置获取日期
|
|
82
|
+
* @param params
|
|
83
|
+
*/
|
|
84
|
+
var getDaysByRepeatDay = function getDaysByRepeatDay(params, isGetRange) {
|
|
85
|
+
var start = params.start,
|
|
86
|
+
end = params.end,
|
|
87
|
+
deadline = params.deadline,
|
|
88
|
+
frequency = params.frequency,
|
|
89
|
+
type = params.type,
|
|
90
|
+
time_slot = params.time_slot,
|
|
91
|
+
excludedDays = params.excludedDays;
|
|
92
|
+
var scheduleDiff = end.diff(start, 'second');
|
|
93
|
+
var excludedDaysMap = new Map(excludedDays.map(function (day) {
|
|
94
|
+
return [day, true];
|
|
95
|
+
}));
|
|
96
|
+
var startTmp = getMaxStart(start);
|
|
97
|
+
var daysArr = [];
|
|
98
|
+
while (startTmp.isBefore(deadline, 'day') || startTmp.isSame(deadline, 'day')) {
|
|
99
|
+
var e = startTmp.add(scheduleDiff, 'second');
|
|
100
|
+
if (isGetRange) {
|
|
101
|
+
if (excludedDaysMap.has(startTmp.format('YYYY-MM-DD'))) {
|
|
102
|
+
startTmp = startTmp.add(frequency, 'day');
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
var arr = getDataRange({
|
|
106
|
+
start: startTmp,
|
|
107
|
+
end: e,
|
|
108
|
+
type: type,
|
|
109
|
+
time_slot: time_slot
|
|
110
|
+
});
|
|
111
|
+
daysArr.push.apply(daysArr, _toConsumableArray(arr));
|
|
112
|
+
} else {
|
|
113
|
+
daysArr.push.apply(daysArr, _toConsumableArray(getDaysByStartEnd(startTmp, e)));
|
|
114
|
+
}
|
|
115
|
+
startTmp = startTmp.add(frequency, 'day');
|
|
116
|
+
}
|
|
117
|
+
return Array.from(new Set(daysArr));
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* 按周重复配置获取日期
|
|
122
|
+
* @param params
|
|
123
|
+
*/
|
|
124
|
+
var getDaysByRepeatWeek = function getDaysByRepeatWeek(params, isGetRange) {
|
|
125
|
+
var start = params.start,
|
|
126
|
+
end = params.end,
|
|
127
|
+
deadline = params.deadline,
|
|
128
|
+
frequency = params.frequency,
|
|
129
|
+
frequency_date = params.frequency_date,
|
|
130
|
+
type = params.type,
|
|
131
|
+
time_slot = params.time_slot,
|
|
132
|
+
excludedDays = params.excludedDays;
|
|
133
|
+
var scheduleDiff = end.diff(start, 'second');
|
|
134
|
+
var excludedDaysMap = new Map(excludedDays.map(function (day) {
|
|
135
|
+
return [day, true];
|
|
136
|
+
}));
|
|
137
|
+
var startTmp = getMaxStart(start);
|
|
138
|
+
var daysArr = [];
|
|
139
|
+
while (startTmp.isBefore(deadline, 'day') || startTmp.isSame(deadline, 'day')) {
|
|
140
|
+
for (var i = 0; i < frequency_date.length; i++) {
|
|
141
|
+
var item = frequency_date[i];
|
|
142
|
+
var _start = startTmp.day(item);
|
|
143
|
+
var _end = _start.add(scheduleDiff, 'second');
|
|
144
|
+
if (isGetRange) {
|
|
145
|
+
if (excludedDaysMap.has(_start.format('YYYY-MM-DD'))) {
|
|
146
|
+
startTmp = startTmp.day(1).add(frequency, 'week');
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
var arr = getDataRange({
|
|
150
|
+
start: _start,
|
|
151
|
+
end: _end,
|
|
152
|
+
type: type,
|
|
153
|
+
time_slot: time_slot
|
|
154
|
+
});
|
|
155
|
+
daysArr.push.apply(daysArr, _toConsumableArray(arr));
|
|
156
|
+
} else {
|
|
157
|
+
daysArr.push.apply(daysArr, _toConsumableArray(getDaysByStartEnd(_start, _end)));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
startTmp = startTmp.day(1).add(frequency, 'week');
|
|
161
|
+
}
|
|
162
|
+
return Array.from(new Set(daysArr));
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* 日期和排除日期格式化日历所需数据格式
|
|
167
|
+
* @param days
|
|
168
|
+
* @param color
|
|
169
|
+
* @param excludedDays
|
|
170
|
+
*/
|
|
171
|
+
var formatDayColor = function formatDayColor(_ref2) {
|
|
172
|
+
var days = _ref2.days,
|
|
173
|
+
color = _ref2.color,
|
|
174
|
+
excludedDays = _ref2.excludedDays;
|
|
175
|
+
var excludedDaysSet = new Set(excludedDays);
|
|
176
|
+
return days.map(function (item) {
|
|
177
|
+
return {
|
|
178
|
+
date: item,
|
|
179
|
+
color: [color],
|
|
180
|
+
isExcluded: excludedDaysSet.has(item)
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* 获取开始结束时间数组的所有日期
|
|
187
|
+
* @param arr
|
|
188
|
+
*/
|
|
189
|
+
var getDaysByStartEndArr = function getDaysByStartEndArr() {
|
|
190
|
+
var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
191
|
+
var daysArr = [];
|
|
192
|
+
arr.forEach(function (item) {
|
|
193
|
+
if (item && item.start && item.end) {
|
|
194
|
+
daysArr.push.apply(daysArr, _toConsumableArray(getDaysByStartEnd(item.start, item.end)));
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
return Array.from(new Set(daysArr));
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* 过滤排除日期
|
|
202
|
+
* @param daysArr
|
|
203
|
+
* @param excludedArr
|
|
204
|
+
*/
|
|
205
|
+
var filterExcludedDays = function filterExcludedDays(daysArr, excludedArr) {
|
|
206
|
+
var excludeSet = new Set(excludedArr);
|
|
207
|
+
if (!excludedArr.length) return daysArr;
|
|
208
|
+
return daysArr.filter(function (item) {
|
|
209
|
+
return !excludeSet.has(item);
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* 处理日期重复逻辑
|
|
215
|
+
* @param repeat_type
|
|
216
|
+
* @param start
|
|
217
|
+
* @param end
|
|
218
|
+
* @param color
|
|
219
|
+
* @param endRadio
|
|
220
|
+
* @param end_date
|
|
221
|
+
* @param excluded_date
|
|
222
|
+
* @param included_date
|
|
223
|
+
* @param frequency
|
|
224
|
+
* @param excludedStatus
|
|
225
|
+
* @param includeStatus
|
|
226
|
+
* @param frequency_date
|
|
227
|
+
*/
|
|
228
|
+
var processDateRange = function processDateRange(_ref3, isGetRange) {
|
|
229
|
+
var repeat_type = _ref3.repeat_type,
|
|
230
|
+
start = _ref3.start,
|
|
231
|
+
end = _ref3.end,
|
|
232
|
+
color = _ref3.color,
|
|
233
|
+
endRadio = _ref3.endRadio,
|
|
234
|
+
end_date = _ref3.end_date,
|
|
235
|
+
excluded_date = _ref3.excluded_date,
|
|
236
|
+
included_date = _ref3.included_date,
|
|
237
|
+
frequency = _ref3.frequency,
|
|
238
|
+
excludedStatus = _ref3.excludedStatus,
|
|
239
|
+
includeStatus = _ref3.includeStatus,
|
|
240
|
+
frequency_date = _ref3.frequency_date,
|
|
241
|
+
type = _ref3.type,
|
|
242
|
+
time_slot = _ref3.time_slot;
|
|
243
|
+
/** 时间范围或天 */
|
|
244
|
+
var days = [];
|
|
245
|
+
var excludedDays = getDaysByStartEndArr(excluded_date);
|
|
246
|
+
var includedDays = getDaysByStartEndArr(included_date);
|
|
247
|
+
|
|
248
|
+
// 不重复
|
|
249
|
+
if (repeat_type === '0') {
|
|
250
|
+
if (isGetRange) {
|
|
251
|
+
if (type === 'time-slots') {
|
|
252
|
+
days = (time_slot === null || time_slot === void 0 ? void 0 : time_slot.map(function (item) {
|
|
253
|
+
return {
|
|
254
|
+
start: start.format("YYYY-MM-DD ".concat(item.start_time)),
|
|
255
|
+
end: end.format("YYYY-MM-DD ".concat(item.end_time))
|
|
256
|
+
};
|
|
257
|
+
})) || [];
|
|
258
|
+
} else {
|
|
259
|
+
days = [{
|
|
260
|
+
start: start.format('YYYY-MM-DD HH:mm:ss'),
|
|
261
|
+
end: end.format('YYYY-MM-DD HH:mm:ss')
|
|
262
|
+
}];
|
|
263
|
+
}
|
|
264
|
+
} else {
|
|
265
|
+
days = getDaysByStartEnd(start, end);
|
|
266
|
+
}
|
|
267
|
+
} else {
|
|
268
|
+
var endDate = dayjs(end_date);
|
|
269
|
+
|
|
270
|
+
// 截止时间 如果永不截止取18个月截止
|
|
271
|
+
if (endRadio === 1) {
|
|
272
|
+
endDate = isGetRange ? dayjs().add(12, 'month') : dayjs().add(18, 'month');
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// 按天重复
|
|
276
|
+
if (repeat_type === '1') {
|
|
277
|
+
days = getDaysByRepeatDay({
|
|
278
|
+
start: start,
|
|
279
|
+
end: end,
|
|
280
|
+
deadline: endDate,
|
|
281
|
+
frequency: frequency,
|
|
282
|
+
type: type,
|
|
283
|
+
time_slot: time_slot,
|
|
284
|
+
excludedDays: excludedDays
|
|
285
|
+
}, isGetRange);
|
|
286
|
+
// 按周重复
|
|
287
|
+
} else if (repeat_type === '2') {
|
|
288
|
+
days = getDaysByRepeatWeek({
|
|
289
|
+
start: start,
|
|
290
|
+
end: end,
|
|
291
|
+
deadline: endDate,
|
|
292
|
+
frequency: frequency,
|
|
293
|
+
frequency_date: frequency_date,
|
|
294
|
+
type: type,
|
|
295
|
+
time_slot: time_slot,
|
|
296
|
+
excludedDays: excludedDays
|
|
297
|
+
}, isGetRange);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (isGetRange) {
|
|
301
|
+
// 如果有包含的天再把包含的天的时间段插入
|
|
302
|
+
if (includedDays.length) {
|
|
303
|
+
for (var i = 0; i < includedDays.length; i++) {
|
|
304
|
+
var _days;
|
|
305
|
+
var includedDay = includedDays[i];
|
|
306
|
+
(_days = days).push.apply(_days, _toConsumableArray(getDataRange({
|
|
307
|
+
start: dayjs(includedDay),
|
|
308
|
+
end: dayjs(includedDay),
|
|
309
|
+
type: type,
|
|
310
|
+
time_slot: time_slot
|
|
311
|
+
})));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return days;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// 开启了排除日期
|
|
318
|
+
// if (excludedStatus) {
|
|
319
|
+
// days = filterExcludedDays(days, excludedDays);
|
|
320
|
+
// }
|
|
321
|
+
|
|
322
|
+
// 开启了包含日期
|
|
323
|
+
if (includeStatus) {
|
|
324
|
+
days = days.concat(includedDays);
|
|
325
|
+
}
|
|
326
|
+
return formatDayColor({
|
|
327
|
+
days: days,
|
|
328
|
+
color: color,
|
|
329
|
+
excludedDays: excludedStatus ? excludedDays : []
|
|
330
|
+
});
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* 根据标准日程计算日历数据
|
|
335
|
+
* @param values
|
|
336
|
+
* @param others
|
|
337
|
+
*/
|
|
338
|
+
export var calcCalendarDataByStandard = function calcCalendarDataByStandard(values, others, isGetRange) {
|
|
339
|
+
var color = values.color,
|
|
340
|
+
excluded_date = values.excluded_date,
|
|
341
|
+
included_date = values.included_date,
|
|
342
|
+
end_date = values.end_date,
|
|
343
|
+
designation = values.designation,
|
|
344
|
+
repeat_type = values.repeat_type,
|
|
345
|
+
_values$frequency = values.frequency,
|
|
346
|
+
frequency = _values$frequency === void 0 ? 1 : _values$frequency,
|
|
347
|
+
_values$frequency_dat = values.frequency_date,
|
|
348
|
+
frequency_date = _values$frequency_dat === void 0 ? [] : _values$frequency_dat,
|
|
349
|
+
time_slot = values.time_slot,
|
|
350
|
+
start_time = values.start_time,
|
|
351
|
+
end_time = values.end_time;
|
|
352
|
+
var endRadio = others.endRadio,
|
|
353
|
+
isAllDay = others.isAllDay,
|
|
354
|
+
includeStatus = others.includeStatus,
|
|
355
|
+
excludedStatus = others.excludedStatus;
|
|
356
|
+
if (Array.isArray(designation)) {
|
|
357
|
+
return [];
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// 日程开始时间
|
|
361
|
+
var start = designation ? mergeDateTime(designation.start_date, isAllDay ? designation.start_time : '') : dayjs(start_time);
|
|
362
|
+
|
|
363
|
+
// 日程结束时间
|
|
364
|
+
var end = designation ? mergeDateTime(designation.end_date, isAllDay ? designation.end_time : '') : dayjs(end_time);
|
|
365
|
+
|
|
366
|
+
// // 不重复
|
|
367
|
+
// if (repeat_type === "0") {
|
|
368
|
+
// return formatDayColor(getDaysByStartEnd(start, end), color);
|
|
369
|
+
// }
|
|
370
|
+
// // 截止时间 如果永不截止取15个月截止
|
|
371
|
+
// const endDate = endRadio === 2 ? dayjs(end_date) : dayjs().add(15, "month");
|
|
372
|
+
//
|
|
373
|
+
// const excludedDays = getDaysByStartEndArr(excluded_date);
|
|
374
|
+
//
|
|
375
|
+
// const includedDays = getDaysByStartEndArr(included_date);
|
|
376
|
+
//
|
|
377
|
+
// // 按天重复
|
|
378
|
+
// if (repeat_type === "1") {
|
|
379
|
+
// let days = getDaysByRepeatDay({
|
|
380
|
+
// start,
|
|
381
|
+
// end,
|
|
382
|
+
// deadline: endDate,
|
|
383
|
+
// frequency,
|
|
384
|
+
// });
|
|
385
|
+
//
|
|
386
|
+
// // 开启了排除日期
|
|
387
|
+
// if (excludedStatus) {
|
|
388
|
+
// days = filterExcludedDays(days, excludedDays);
|
|
389
|
+
// }
|
|
390
|
+
//
|
|
391
|
+
// // 开启了包含日期
|
|
392
|
+
// if (includeStatus) {
|
|
393
|
+
// days = days.concat(includedDays);
|
|
394
|
+
// }
|
|
395
|
+
//
|
|
396
|
+
// return formatDayColor(days, color);
|
|
397
|
+
// }
|
|
398
|
+
//
|
|
399
|
+
// // 按周重复
|
|
400
|
+
// if (repeat_type === "2") {
|
|
401
|
+
// let days = getDaysByRepeatWeek({
|
|
402
|
+
// start,
|
|
403
|
+
// end,
|
|
404
|
+
// deadline: endDate,
|
|
405
|
+
// frequency,
|
|
406
|
+
// frequency_date,
|
|
407
|
+
// });
|
|
408
|
+
// }
|
|
409
|
+
//
|
|
410
|
+
// return [];
|
|
411
|
+
|
|
412
|
+
return processDateRange({
|
|
413
|
+
repeat_type: repeat_type,
|
|
414
|
+
start: start,
|
|
415
|
+
end: end,
|
|
416
|
+
color: color,
|
|
417
|
+
endRadio: endRadio,
|
|
418
|
+
end_date: end_date,
|
|
419
|
+
excluded_date: excluded_date,
|
|
420
|
+
excludedStatus: excludedStatus,
|
|
421
|
+
frequency: frequency,
|
|
422
|
+
frequency_date: frequency_date,
|
|
423
|
+
included_date: included_date,
|
|
424
|
+
includeStatus: includeStatus,
|
|
425
|
+
time_slot: time_slot,
|
|
426
|
+
type: 'standard'
|
|
427
|
+
}, isGetRange);
|
|
428
|
+
};
|
|
429
|
+
var getMaxStart = function getMaxStart(start_time) {
|
|
430
|
+
var valueStart = dayjs(start_time);
|
|
431
|
+
var currentYearStart = dayjs().startOf('year').set('hour', valueStart.get('hour')).set('minute', valueStart.get('minutes')).set('second', valueStart.get('second'));
|
|
432
|
+
var start = valueStart.isBefore(currentYearStart) ? currentYearStart : valueStart;
|
|
433
|
+
return start;
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* 根据多时间段计算日历数据
|
|
438
|
+
* @param values
|
|
439
|
+
* @param others
|
|
440
|
+
*/
|
|
441
|
+
export var calcCalendarDataByTimeSlots = function calcCalendarDataByTimeSlots(values, others, isGetRange) {
|
|
442
|
+
var color = values.color,
|
|
443
|
+
excluded_date = values.excluded_date,
|
|
444
|
+
included_date = values.included_date,
|
|
445
|
+
end_date = values.end_date,
|
|
446
|
+
repeat_type = values.repeat_type,
|
|
447
|
+
_values$frequency2 = values.frequency,
|
|
448
|
+
frequency = _values$frequency2 === void 0 ? 1 : _values$frequency2,
|
|
449
|
+
_values$frequency_dat2 = values.frequency_date,
|
|
450
|
+
frequency_date = _values$frequency_dat2 === void 0 ? [] : _values$frequency_dat2,
|
|
451
|
+
start_time = values.start_time,
|
|
452
|
+
time_slot = values.time_slot;
|
|
453
|
+
var endRadio = others.endRadio,
|
|
454
|
+
excludedStatus = others.excludedStatus,
|
|
455
|
+
includeStatus = others.includeStatus;
|
|
456
|
+
if (!start_time) return [];
|
|
457
|
+
var start = dayjs(start_time);
|
|
458
|
+
var end = dayjs(start_time);
|
|
459
|
+
return processDateRange({
|
|
460
|
+
repeat_type: repeat_type,
|
|
461
|
+
start: start,
|
|
462
|
+
end: end,
|
|
463
|
+
color: color,
|
|
464
|
+
endRadio: endRadio,
|
|
465
|
+
end_date: end_date,
|
|
466
|
+
excluded_date: excluded_date,
|
|
467
|
+
excludedStatus: excludedStatus,
|
|
468
|
+
frequency: frequency,
|
|
469
|
+
frequency_date: frequency_date,
|
|
470
|
+
included_date: included_date,
|
|
471
|
+
includeStatus: includeStatus,
|
|
472
|
+
time_slot: time_slot,
|
|
473
|
+
type: 'time-slots'
|
|
474
|
+
}, isGetRange);
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* 根据指定日期计算日历数据
|
|
479
|
+
* @param values
|
|
480
|
+
* @param others
|
|
481
|
+
*/
|
|
482
|
+
export var calcCalendarDataByDesignation = function calcCalendarDataByDesignation(values, others, isGetRange) {
|
|
483
|
+
var designation = values.designation,
|
|
484
|
+
color = values.color;
|
|
485
|
+
var days = [];
|
|
486
|
+
if (Array.isArray(designation)) {
|
|
487
|
+
designation.forEach(function (item) {
|
|
488
|
+
// 日程开始时间
|
|
489
|
+
var start = mergeDateTime(item.start_date, item.start_time);
|
|
490
|
+
|
|
491
|
+
// 日程结束时间
|
|
492
|
+
var end = mergeDateTime(item.end_date, item.end_time);
|
|
493
|
+
if (isGetRange) {
|
|
494
|
+
days.push({
|
|
495
|
+
start: "".concat(item.start_date, " ").concat(item.start_time),
|
|
496
|
+
end: "".concat(item.end_date, " ").concat(item.end_time)
|
|
497
|
+
});
|
|
498
|
+
} else {
|
|
499
|
+
days.push.apply(days, _toConsumableArray(getDaysByStartEnd(start, end)));
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
if (isGetRange) {
|
|
504
|
+
return days;
|
|
505
|
+
}
|
|
506
|
+
return formatDayColor({
|
|
507
|
+
days: days,
|
|
508
|
+
color: color,
|
|
509
|
+
excludedDays: []
|
|
510
|
+
});
|
|
511
|
+
};
|
|
512
|
+
export var isAllDay = function isAllDay(value) {
|
|
513
|
+
return dayjs(value.start_time).format('HH:mm:ss') === '00:00:00' && dayjs(value.end_time).format('HH:mm:ss') === '23:59:59';
|
|
514
|
+
};
|
|
515
|
+
var repeatTypeMap = {
|
|
516
|
+
none: '0',
|
|
517
|
+
daily: '1',
|
|
518
|
+
weekly: '2'
|
|
519
|
+
};
|
|
520
|
+
var endTypeMap = {
|
|
521
|
+
never: 1,
|
|
522
|
+
date: 2
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* 根据接口返回的Schedule计算日历数据
|
|
527
|
+
* @param schedule
|
|
528
|
+
*/
|
|
529
|
+
export var calcCalendarDataByScheduleResult = function calcCalendarDataByScheduleResult(schedule) {
|
|
530
|
+
var _formatScheduleResult = formatScheduleResult(schedule),
|
|
531
|
+
scheduleFormData = _formatScheduleResult.scheduleFormData,
|
|
532
|
+
scheduleFormOtherValue = _formatScheduleResult.scheduleFormOtherValue;
|
|
533
|
+
return calcCalendarDataBySchedule(scheduleFormData, scheduleFormOtherValue, schedule.type);
|
|
534
|
+
};
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* 接口返回schedule转换格式
|
|
538
|
+
* @param schedule
|
|
539
|
+
*/
|
|
540
|
+
export var formatScheduleResult = function formatScheduleResult(schedule) {
|
|
541
|
+
var color = schedule.color,
|
|
542
|
+
name = schedule.name,
|
|
543
|
+
repeat_type = schedule.repeat_type,
|
|
544
|
+
designation = schedule.designation,
|
|
545
|
+
repeat_rule = schedule.repeat_rule,
|
|
546
|
+
start_time = schedule.start_time,
|
|
547
|
+
end_time = schedule.end_time,
|
|
548
|
+
is_all = schedule.is_all,
|
|
549
|
+
type = schedule.type,
|
|
550
|
+
time_slot = schedule.time_slot;
|
|
551
|
+
var _ref4 = repeat_rule || {},
|
|
552
|
+
frequency = _ref4.frequency,
|
|
553
|
+
end = _ref4.end,
|
|
554
|
+
frequency_date = _ref4.frequency_date,
|
|
555
|
+
included_date = _ref4.included_date,
|
|
556
|
+
excluded_date = _ref4.excluded_date;
|
|
557
|
+
return {
|
|
558
|
+
scheduleFormData: {
|
|
559
|
+
color: color,
|
|
560
|
+
name: name,
|
|
561
|
+
repeat_type: repeatTypeMap[repeat_type],
|
|
562
|
+
designation: designation,
|
|
563
|
+
frequency: frequency,
|
|
564
|
+
frequency_date: frequency_date,
|
|
565
|
+
end_time: end_time,
|
|
566
|
+
start_time: start_time,
|
|
567
|
+
excluded_date: excluded_date,
|
|
568
|
+
included_date: included_date,
|
|
569
|
+
time_slot: time_slot,
|
|
570
|
+
end_date: end === null || end === void 0 ? void 0 : end.end_date
|
|
571
|
+
},
|
|
572
|
+
scheduleFormOtherValue: {
|
|
573
|
+
endRadio: endTypeMap[(end === null || end === void 0 ? void 0 : end.type) || 'never'],
|
|
574
|
+
isAllDay: !!is_all,
|
|
575
|
+
type: type,
|
|
576
|
+
excludedStatus: !!(excluded_date !== null && excluded_date !== void 0 && excluded_date.length),
|
|
577
|
+
includeStatus: !!(included_date !== null && included_date !== void 0 && included_date.length)
|
|
578
|
+
}
|
|
579
|
+
};
|
|
580
|
+
};
|
|
581
|
+
export var calcScheduleDateRange = function calcScheduleDateRange(schedule) {
|
|
582
|
+
var _formatScheduleResult2 = formatScheduleResult(schedule),
|
|
583
|
+
scheduleFormData = _formatScheduleResult2.scheduleFormData,
|
|
584
|
+
scheduleFormOtherValue = _formatScheduleResult2.scheduleFormOtherValue;
|
|
585
|
+
if (schedule.type === 'time-slots') {
|
|
586
|
+
return calcCalendarDataByTimeSlots(scheduleFormData, scheduleFormOtherValue, true);
|
|
587
|
+
}
|
|
588
|
+
if (schedule.type === 'designation') {
|
|
589
|
+
return calcCalendarDataByDesignation(scheduleFormData, scheduleFormOtherValue, true);
|
|
590
|
+
}
|
|
591
|
+
return calcCalendarDataByStandard(scheduleFormData, scheduleFormOtherValue, true);
|
|
592
|
+
};
|
|
593
|
+
export var calcCalendarDataBySchedules = function calcCalendarDataBySchedules(schedules) {
|
|
594
|
+
var allSchedules = [];
|
|
595
|
+
schedules.forEach(function (item) {
|
|
596
|
+
allSchedules.push.apply(allSchedules, _toConsumableArray(calcCalendarDataByScheduleResult(item)));
|
|
597
|
+
});
|
|
598
|
+
var dateMap = allSchedules.reduce(function (pre, cur) {
|
|
599
|
+
var _pre$cur$date, _pre$cur$date2;
|
|
600
|
+
return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, cur.date, _objectSpread(_objectSpread({}, cur), {}, {
|
|
601
|
+
color: [].concat(_toConsumableArray(((_pre$cur$date = pre[cur.date]) === null || _pre$cur$date === void 0 ? void 0 : _pre$cur$date.color) || []), _toConsumableArray(cur.color)),
|
|
602
|
+
isExcluded: ((_pre$cur$date2 = pre[cur.date]) === null || _pre$cur$date2 === void 0 ? void 0 : _pre$cur$date2.isExcluded) || cur.isExcluded
|
|
603
|
+
})));
|
|
604
|
+
}, {});
|
|
605
|
+
return Object.values(dateMap);
|
|
606
|
+
};
|
|
607
|
+
export var calcMinTimeMaxTimeBySchedules = function calcMinTimeMaxTimeBySchedules(schedules, scheduleAllMap, selectDate) {
|
|
608
|
+
return schedules.reduce(function (pre, cur) {
|
|
609
|
+
var _scheduleAllMap$cur$i, _minTime, _maxTime;
|
|
610
|
+
var dateRange = (scheduleAllMap === null || scheduleAllMap === void 0 || (_scheduleAllMap$cur$i = scheduleAllMap[cur.id]) === null || _scheduleAllMap$cur$i === void 0 ? void 0 : _scheduleAllMap$cur$i.dateRange) || calcScheduleDateRange(cur);
|
|
611
|
+
var dateRangeFormat = [];
|
|
612
|
+
if (selectDate) {
|
|
613
|
+
var dateRangeTmp = [];
|
|
614
|
+
var dateRangeFormatTmp = [];
|
|
615
|
+
for (var i = 0; i < dateRange.length; i++) {
|
|
616
|
+
var range = dateRange[i];
|
|
617
|
+
var start = dayjs(range.start);
|
|
618
|
+
var end = dayjs(range.end);
|
|
619
|
+
// includes 比 dayjs isSame方法会快一些
|
|
620
|
+
var isSameStart = range.start.includes(selectDate);
|
|
621
|
+
var isSameEnd = range.end.includes(selectDate);
|
|
622
|
+
if (isSameStart || isSameEnd) {
|
|
623
|
+
dateRangeTmp.push(range);
|
|
624
|
+
if (isSameStart && !isSameEnd) {
|
|
625
|
+
dateRangeFormatTmp.push({
|
|
626
|
+
start: range.start,
|
|
627
|
+
end: end.format('YYYY-MM-DD 23:59:59')
|
|
628
|
+
});
|
|
629
|
+
} else if (!isSameStart && isSameEnd) {
|
|
630
|
+
dateRangeFormatTmp.push({
|
|
631
|
+
start: start.format('YYYY-MM-DD 00:00:00'),
|
|
632
|
+
end: range.end
|
|
633
|
+
});
|
|
634
|
+
} else {
|
|
635
|
+
dateRangeFormatTmp.push(range);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
dateRange = dateRangeTmp;
|
|
640
|
+
dateRangeFormat = dateRangeFormatTmp;
|
|
641
|
+
}
|
|
642
|
+
var minTime = null;
|
|
643
|
+
var maxTime = null;
|
|
644
|
+
if (dateRange.length) {
|
|
645
|
+
// ({ minTime, maxTime } = getMinTimeRange(dateRange));
|
|
646
|
+
minTime = dayjs(dateRange[0].start);
|
|
647
|
+
maxTime = dayjs(dateRange[dateRange.length - 1].end);
|
|
648
|
+
}
|
|
649
|
+
return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, cur.id, {
|
|
650
|
+
minTime: minTime,
|
|
651
|
+
maxTime: maxTime,
|
|
652
|
+
minTimeStr: ((_minTime = minTime) === null || _minTime === void 0 ? void 0 : _minTime.format('YYYY-MM-DD HH:mm:ss')) || null,
|
|
653
|
+
maxTimeStr: ((_maxTime = maxTime) === null || _maxTime === void 0 ? void 0 : _maxTime.format('YYYY-MM-DD HH:mm:ss')) || null,
|
|
654
|
+
dateRange: dateRange,
|
|
655
|
+
dateRangeFormat: dateRangeFormat
|
|
656
|
+
}));
|
|
657
|
+
}, {});
|
|
658
|
+
};
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* @title: 格式化日程数据
|
|
662
|
+
* @description:
|
|
663
|
+
* @param {Array} relation 资源列表
|
|
664
|
+
* @param {string} table_type 关联表类型
|
|
665
|
+
* @param {string} item_type 资源类型
|
|
666
|
+
* @param {boolean} isExcluded 是否排除
|
|
667
|
+
* @return {*}
|
|
668
|
+
* @Author: WangHan
|
|
669
|
+
* @Date: 2024-09-04 11:54
|
|
670
|
+
*/
|
|
671
|
+
export var formatScheduleData = function formatScheduleData(relation, table_type, item_type, isExcluded) {
|
|
672
|
+
var _relation = relation || [];
|
|
673
|
+
// 有关联表类型和资源类型并且排除
|
|
674
|
+
if (table_type && item_type && isExcluded) {
|
|
675
|
+
return _relation.find(function (item) {
|
|
676
|
+
return (item === null || item === void 0 ? void 0 : item.relation_table_type) === table_type && (item === null || item === void 0 ? void 0 : item.item_type) !== item_type;
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
// 有关联表类型和资源类型
|
|
681
|
+
if (table_type && item_type) {
|
|
682
|
+
return _relation.find(function (item) {
|
|
683
|
+
return (item === null || item === void 0 ? void 0 : item.relation_table_type) === table_type && (item === null || item === void 0 ? void 0 : item.item_type) === item_type;
|
|
684
|
+
});
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
// 有关联表类型
|
|
688
|
+
if (table_type) {
|
|
689
|
+
return _relation.some(function (item) {
|
|
690
|
+
return (item === null || item === void 0 ? void 0 : item.relation_table_type) === table_type;
|
|
691
|
+
});
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
// 有关联资源类型
|
|
695
|
+
if (item_type) {
|
|
696
|
+
return _relation.find(function (item) {
|
|
697
|
+
return (item === null || item === void 0 ? void 0 : item.item_type) === item_type;
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
export function getAllSortedDateRanges(schedules) {
|
|
702
|
+
// 收集所有 dateRange
|
|
703
|
+
var allDateRanges = [];
|
|
704
|
+
|
|
705
|
+
// 遍历所有对象,收集 dateRange
|
|
706
|
+
Object.values(schedules).forEach(function (schedule) {
|
|
707
|
+
if (schedule.dateRange && Array.isArray(schedule.dateRange)) {
|
|
708
|
+
allDateRanges.push.apply(allDateRanges, _toConsumableArray(schedule.dateRange));
|
|
709
|
+
}
|
|
710
|
+
});
|
|
711
|
+
|
|
712
|
+
// 如果没有找到任何 dateRange,返回空数组
|
|
713
|
+
if (allDateRanges.length === 0) {
|
|
714
|
+
console.log('No dateRanges found in schedules:', schedules);
|
|
715
|
+
return [];
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
// 按照开始时间和时长排序
|
|
719
|
+
return allDateRanges.sort(function (a, b) {
|
|
720
|
+
// 首先按开始时间排序
|
|
721
|
+
var startTimeCompare = dayjs(a.start).valueOf() - dayjs(b.start).valueOf();
|
|
722
|
+
if (startTimeCompare !== 0) return startTimeCompare;
|
|
723
|
+
|
|
724
|
+
// 如果开始时间相同,按时长排序(结束时间 - 开始时间)
|
|
725
|
+
var durationA = dayjs(a.end).valueOf() - dayjs(a.start).valueOf();
|
|
726
|
+
var durationB = dayjs(b.end).valueOf() - dayjs(b.start).valueOf();
|
|
727
|
+
return durationA - durationB;
|
|
728
|
+
});
|
|
729
|
+
}
|