@pisell/pisellos 3.0.4 → 3.0.6

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.
Files changed (189) hide show
  1. package/dist/modules/Account/index.d.ts +2 -6
  2. package/dist/modules/Account/index.js +21 -103
  3. package/dist/modules/Account/types.d.ts +12 -1
  4. package/dist/modules/AccountList/index.d.ts +20 -1
  5. package/dist/modules/AccountList/index.js +243 -75
  6. package/dist/modules/AccountList/types.d.ts +33 -1
  7. package/dist/modules/AccountList/types.js +8 -0
  8. package/dist/modules/AccountList/utils.d.ts +9 -0
  9. package/dist/modules/AccountList/utils.js +25 -0
  10. package/dist/modules/BaseModule.d.ts +2 -2
  11. package/dist/modules/BaseModule.js +1 -1
  12. package/dist/modules/Cart/index.d.ts +8 -5
  13. package/dist/modules/Cart/index.js +101 -25
  14. package/dist/modules/Cart/types.d.ts +82 -5
  15. package/dist/modules/Cart/types.js +22 -0
  16. package/dist/modules/Cart/utils.d.ts +106 -13
  17. package/dist/modules/Cart/utils.js +289 -76
  18. package/dist/modules/Date/index.d.ts +6 -6
  19. package/dist/modules/Date/index.js +41 -58
  20. package/dist/modules/Date/types.d.ts +22 -6
  21. package/dist/modules/Date/utils.d.ts +4 -3
  22. package/dist/modules/Date/utils.js +81 -30
  23. package/dist/modules/Discount/index.d.ts +4 -4
  24. package/dist/modules/Discount/index.js +11 -11
  25. package/dist/modules/Order/index.d.ts +11 -5
  26. package/dist/modules/Order/index.js +47 -18
  27. package/dist/modules/Order/types.d.ts +10 -3
  28. package/dist/modules/Order/utils.d.ts +10 -0
  29. package/dist/modules/Order/utils.js +15 -0
  30. package/dist/modules/Product/index.d.ts +14 -1
  31. package/dist/modules/Product/index.js +35 -0
  32. package/dist/modules/Product/types.d.ts +27 -3
  33. package/dist/modules/ProductList/index.js +11 -5
  34. package/dist/modules/Resource/types.d.ts +1 -0
  35. package/dist/modules/Resource/utils.js +1 -1
  36. package/dist/modules/Rules/index.d.ts +3 -3
  37. package/dist/modules/Rules/index.js +121 -53
  38. package/dist/modules/Rules/types.d.ts +5 -1
  39. package/dist/modules/Schedule/index.d.ts +18 -0
  40. package/dist/modules/Schedule/index.js +111 -0
  41. package/dist/modules/Schedule/type.d.ts +157 -0
  42. package/dist/modules/Schedule/type.js +1 -0
  43. package/dist/modules/Schedule/types.d.ts +182 -0
  44. package/dist/modules/Schedule/types.js +1 -0
  45. package/dist/modules/Schedule/utils.d.ts +67 -0
  46. package/dist/modules/Schedule/utils.js +729 -0
  47. package/dist/modules/Step/index.d.ts +14 -3
  48. package/dist/modules/Step/index.js +54 -2
  49. package/dist/modules/Summary/index.d.ts +12 -5
  50. package/dist/modules/Summary/index.js +33 -7
  51. package/dist/modules/Summary/types.d.ts +23 -2
  52. package/dist/modules/Summary/utils.d.ts +14 -4
  53. package/dist/modules/Summary/utils.js +46 -4
  54. package/dist/modules/index.d.ts +10 -0
  55. package/dist/modules/index.js +11 -1
  56. package/dist/plugins/index.d.ts +3 -3
  57. package/dist/plugins/request.d.ts +3 -3
  58. package/dist/plugins/request.js +30 -30
  59. package/dist/plugins/shopStore.d.ts +1 -1
  60. package/dist/solution/BookingByStep/index.d.ts +97 -24
  61. package/dist/solution/BookingByStep/index.js +1024 -322
  62. package/dist/solution/BookingByStep/types.d.ts +3 -10
  63. package/dist/solution/BookingByStep/types.js +11 -15
  64. package/dist/solution/BookingByStep/utils/products.d.ts +1 -1
  65. package/dist/solution/BookingByStep/utils/products.js +3 -0
  66. package/dist/solution/BookingByStep/utils/resources.d.ts +60 -6
  67. package/dist/solution/BookingByStep/utils/resources.js +293 -52
  68. package/dist/solution/ShopDiscount/index.d.ts +4 -4
  69. package/dist/solution/ShopDiscount/index.js +16 -16
  70. package/dist/solution/ShopDiscount/types.d.ts +2 -2
  71. package/dist/solution/ShopDiscount/utils.js +1 -1
  72. package/lib/core/index.js +7 -2
  73. package/lib/modules/Account/index.d.ts +2 -6
  74. package/lib/modules/Account/index.js +15 -30
  75. package/lib/modules/Account/types.d.ts +12 -1
  76. package/lib/modules/AccountList/index.d.ts +20 -1
  77. package/lib/modules/AccountList/index.js +122 -13
  78. package/lib/modules/AccountList/types.d.ts +33 -1
  79. package/lib/modules/AccountList/utils.d.ts +9 -0
  80. package/lib/modules/AccountList/utils.js +39 -0
  81. package/lib/modules/BaseModule.d.ts +2 -2
  82. package/lib/modules/BaseModule.js +14 -3
  83. package/lib/modules/Cart/index.d.ts +8 -5
  84. package/lib/modules/Cart/index.js +81 -8
  85. package/lib/modules/Cart/types.d.ts +82 -5
  86. package/lib/modules/Cart/types.js +20 -2
  87. package/lib/modules/Cart/utils.d.ts +106 -13
  88. package/lib/modules/Cart/utils.js +188 -45
  89. package/lib/modules/Date/index.d.ts +6 -6
  90. package/lib/modules/Date/index.js +13 -28
  91. package/lib/modules/Date/types.d.ts +22 -6
  92. package/lib/modules/Date/utils.d.ts +4 -3
  93. package/lib/modules/Date/utils.js +47 -13
  94. package/lib/modules/Discount/index.d.ts +4 -4
  95. package/lib/modules/Discount/index.js +9 -2
  96. package/lib/modules/Guests/index.js +4 -1
  97. package/lib/modules/Order/index.d.ts +11 -5
  98. package/lib/modules/Order/index.js +24 -3
  99. package/lib/modules/Order/types.d.ts +10 -3
  100. package/lib/modules/Order/utils.d.ts +10 -0
  101. package/lib/modules/Order/utils.js +45 -0
  102. package/lib/modules/Payment/index.js +1 -6
  103. package/lib/modules/Product/index.d.ts +14 -1
  104. package/lib/modules/Product/index.js +19 -0
  105. package/lib/modules/Product/types.d.ts +27 -3
  106. package/lib/modules/ProductList/index.js +21 -7
  107. package/lib/modules/Resource/index.js +4 -1
  108. package/lib/modules/Resource/types.d.ts +1 -0
  109. package/lib/modules/Resource/utils.js +7 -4
  110. package/lib/modules/Rules/index.d.ts +3 -3
  111. package/lib/modules/Rules/index.js +118 -43
  112. package/lib/modules/Rules/types.d.ts +5 -1
  113. package/lib/modules/Schedule/index.d.ts +18 -0
  114. package/lib/modules/Schedule/index.js +81 -0
  115. package/lib/modules/Schedule/type.d.ts +157 -0
  116. package/lib/modules/Schedule/type.js +17 -0
  117. package/lib/modules/Schedule/types.d.ts +182 -0
  118. package/lib/modules/Schedule/types.js +17 -0
  119. package/lib/modules/Schedule/utils.d.ts +67 -0
  120. package/lib/modules/Schedule/utils.js +600 -0
  121. package/lib/modules/Step/index.d.ts +14 -3
  122. package/lib/modules/Step/index.js +38 -1
  123. package/lib/modules/Summary/index.d.ts +12 -5
  124. package/lib/modules/Summary/index.js +15 -1
  125. package/lib/modules/Summary/types.d.ts +23 -2
  126. package/lib/modules/Summary/utils.d.ts +14 -4
  127. package/lib/modules/Summary/utils.js +30 -1
  128. package/lib/modules/index.d.ts +10 -0
  129. package/lib/modules/index.js +21 -1
  130. package/lib/plugins/index.d.ts +3 -3
  131. package/lib/plugins/request.d.ts +3 -3
  132. package/lib/plugins/request.js +48 -11
  133. package/lib/plugins/shopStore.d.ts +1 -1
  134. package/lib/solution/BookingByStep/index.d.ts +97 -24
  135. package/lib/solution/BookingByStep/index.js +693 -145
  136. package/lib/solution/BookingByStep/types.d.ts +3 -10
  137. package/lib/solution/BookingByStep/types.js +37 -14
  138. package/lib/solution/BookingByStep/utils/products.d.ts +1 -1
  139. package/lib/solution/BookingByStep/utils/products.js +3 -0
  140. package/lib/solution/BookingByStep/utils/resources.d.ts +60 -6
  141. package/lib/solution/BookingByStep/utils/resources.js +286 -54
  142. package/lib/solution/BuyTickets/index.js +34 -20
  143. package/lib/solution/ShopDiscount/index.d.ts +4 -4
  144. package/lib/solution/ShopDiscount/index.js +10 -2
  145. package/lib/solution/ShopDiscount/types.d.ts +2 -2
  146. package/package.json +4 -2
  147. package/dist/core/index.d.ts.map +0 -1
  148. package/dist/effects/index.d.ts.map +0 -1
  149. package/dist/index.d.ts.map +0 -1
  150. package/dist/modules/Account/index.d.ts.map +0 -1
  151. package/dist/modules/Account/types.d.ts.map +0 -1
  152. package/dist/modules/AccountList/types.d.ts.map +0 -1
  153. package/dist/modules/Cart/index.d.ts.map +0 -1
  154. package/dist/modules/Cart/types.d.ts.map +0 -1
  155. package/dist/modules/Date/types.d.ts.map +0 -1
  156. package/dist/modules/Date/utils.d.ts.map +0 -1
  157. package/dist/modules/Guests/index.d.ts.map +0 -1
  158. package/dist/modules/Guests/types.d.ts.map +0 -1
  159. package/dist/modules/Order/index.d.ts.map +0 -1
  160. package/dist/modules/Order/types.d.ts.map +0 -1
  161. package/dist/modules/Payment/index.d.ts.map +0 -1
  162. package/dist/modules/Payment/types.d.ts.map +0 -1
  163. package/dist/modules/Product/index.d.ts.map +0 -1
  164. package/dist/modules/Product/types.d.ts.map +0 -1
  165. package/dist/modules/ProductList/types.d.ts.map +0 -1
  166. package/dist/modules/Resource/index.d.ts.map +0 -1
  167. package/dist/modules/Resource/types.d.ts.map +0 -1
  168. package/dist/modules/Resource/utils.d.ts.map +0 -1
  169. package/dist/modules/Rules/types.d.ts.map +0 -1
  170. package/dist/modules/Step/index.d.ts.map +0 -1
  171. package/dist/modules/Step/tyeps.d.ts.map +0 -1
  172. package/dist/modules/Summary/index.d.ts.map +0 -1
  173. package/dist/modules/Summary/types.d.ts.map +0 -1
  174. package/dist/modules/Summary/utils.d.ts.map +0 -1
  175. package/dist/modules/index.d.ts.map +0 -1
  176. package/dist/plugins/index.d.ts.map +0 -1
  177. package/dist/plugins/request.d.ts.map +0 -1
  178. package/dist/plugins/shopStore.d.ts.map +0 -1
  179. package/dist/plugins/window.d.ts.map +0 -1
  180. package/dist/solution/BookingByStep/types.d.ts.map +0 -1
  181. package/dist/solution/BookingByStep/utils/products.d.ts.map +0 -1
  182. package/dist/solution/BuyTickets/index.d.ts.map +0 -1
  183. package/dist/solution/BuyTickets/types.d.ts.map +0 -1
  184. package/dist/solution/PlaceOrder/index.d.ts.map +0 -1
  185. package/dist/solution/ShopDiscount/types.d.ts.map +0 -1
  186. package/dist/solution/ShopDiscount/utils.d.ts.map +0 -1
  187. package/dist/solution/index.d.ts.map +0 -1
  188. package/dist/store/createStore.d.ts.map +0 -1
  189. package/dist/types/index.d.ts.map +0 -1
@@ -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
+ }