@steedos/filters 2.3.1 → 2.3.2-beta.2
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/lib/date.formatter.js +15 -36
- package/lib/default_date_names.js +3 -9
- package/lib/filter.js +14 -56
- package/lib/format.js +13 -65
- package/lib/formula.js +2 -5
- package/lib/graphql.js +4 -18
- package/lib/index.js +0 -13
- package/lib/utils.js +28 -90
- package/package.json +2 -2
package/lib/utils.js
CHANGED
|
@@ -1,43 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.isBetweenFilterOperation = exports.getQuarterStartMonth = exports.getNextQuarterFirstDay = exports.getMonthDays = exports.getLastQuarterFirstDay = exports.getLastMonthFirstDay = exports.getBetweenTimeBuiltinValueItem = exports.getBetweenBuiltinValueItem = void 0;
|
|
9
|
-
|
|
10
8
|
var _moment = _interopRequireDefault(require("moment"));
|
|
11
|
-
|
|
12
9
|
var t = function t(key) {
|
|
13
10
|
return key;
|
|
14
11
|
};
|
|
15
|
-
|
|
16
12
|
var getMonthDays = function getMonthDays(year, month) {
|
|
17
13
|
var days, endDate, millisecond, startDate;
|
|
18
|
-
|
|
19
14
|
if (month === 11) {
|
|
20
15
|
return 31;
|
|
21
16
|
}
|
|
22
|
-
|
|
23
17
|
millisecond = 1000 * 60 * 60 * 24;
|
|
24
18
|
startDate = new Date(year, month, 1);
|
|
25
19
|
endDate = new Date(year, month + 1, 1);
|
|
26
20
|
days = (endDate - startDate) / millisecond;
|
|
27
21
|
return days;
|
|
28
22
|
};
|
|
29
|
-
|
|
30
23
|
exports.getMonthDays = getMonthDays;
|
|
31
|
-
|
|
32
24
|
var getNextQuarterFirstDay = function getNextQuarterFirstDay(year, month) {
|
|
33
25
|
if (!year) {
|
|
34
26
|
year = new Date().getFullYear();
|
|
35
27
|
}
|
|
36
|
-
|
|
37
28
|
if (!month) {
|
|
38
29
|
month = new Date().getMonth();
|
|
39
30
|
}
|
|
40
|
-
|
|
41
31
|
if (month < 3) {
|
|
42
32
|
month = 3;
|
|
43
33
|
} else if (month < 6) {
|
|
@@ -48,40 +38,31 @@ var getNextQuarterFirstDay = function getNextQuarterFirstDay(year, month) {
|
|
|
48
38
|
year++;
|
|
49
39
|
month = 0;
|
|
50
40
|
}
|
|
51
|
-
|
|
52
41
|
return new Date(year, month, 1);
|
|
53
42
|
};
|
|
54
|
-
|
|
55
43
|
exports.getNextQuarterFirstDay = getNextQuarterFirstDay;
|
|
56
|
-
|
|
57
44
|
var getLastMonthFirstDay = function getLastMonthFirstDay(year, month) {
|
|
58
45
|
if (!year) {
|
|
59
46
|
year = new Date().getFullYear();
|
|
60
47
|
}
|
|
61
|
-
|
|
62
48
|
if (!month) {
|
|
63
49
|
month = new Date().getMonth();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
50
|
+
}
|
|
51
|
+
// 月份为0代表本年的第一月
|
|
67
52
|
if (month === 0) {
|
|
68
53
|
month = 11;
|
|
69
54
|
year--;
|
|
70
55
|
return new Date(year, month, 1);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
56
|
+
}
|
|
57
|
+
// 否则,只减去月份
|
|
74
58
|
month--;
|
|
75
59
|
return new Date(year, month, 1);
|
|
76
60
|
};
|
|
77
|
-
|
|
78
61
|
exports.getLastMonthFirstDay = getLastMonthFirstDay;
|
|
79
|
-
|
|
80
62
|
var getQuarterStartMonth = function getQuarterStartMonth(month) {
|
|
81
63
|
if (!month) {
|
|
82
64
|
month = new Date().getMonth();
|
|
83
65
|
}
|
|
84
|
-
|
|
85
66
|
if (month < 3) {
|
|
86
67
|
return 0;
|
|
87
68
|
} else if (month < 6) {
|
|
@@ -89,21 +70,16 @@ var getQuarterStartMonth = function getQuarterStartMonth(month) {
|
|
|
89
70
|
} else if (month < 9) {
|
|
90
71
|
return 6;
|
|
91
72
|
}
|
|
92
|
-
|
|
93
73
|
return 9;
|
|
94
74
|
};
|
|
95
|
-
|
|
96
75
|
exports.getQuarterStartMonth = getQuarterStartMonth;
|
|
97
|
-
|
|
98
76
|
var getLastQuarterFirstDay = function getLastQuarterFirstDay(year, month) {
|
|
99
77
|
if (!year) {
|
|
100
78
|
year = new Date().getFullYear();
|
|
101
79
|
}
|
|
102
|
-
|
|
103
80
|
if (!month) {
|
|
104
81
|
month = new Date().getMonth();
|
|
105
82
|
}
|
|
106
|
-
|
|
107
83
|
if (month < 3) {
|
|
108
84
|
year--;
|
|
109
85
|
month = 9;
|
|
@@ -114,53 +90,49 @@ var getLastQuarterFirstDay = function getLastQuarterFirstDay(year, month) {
|
|
|
114
90
|
} else {
|
|
115
91
|
month = 6;
|
|
116
92
|
}
|
|
117
|
-
|
|
118
93
|
return new Date(year, month, 1);
|
|
119
94
|
};
|
|
120
|
-
|
|
121
95
|
exports.getLastQuarterFirstDay = getLastQuarterFirstDay;
|
|
122
|
-
|
|
123
96
|
var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key, utcOffset) {
|
|
124
97
|
// 过滤器between运算符,现算日期/日期时间类型字段的values值
|
|
125
98
|
var currentMonth, currentYear, endValue, firstDay, label, lastDay, lastMonday, lastMonthFinalDay, lastMonthFirstDay, lastQuarterEndDay, lastQuarterStartDay, lastSunday, last_120_days, last_30_days, last_60_days, last_7_days, last_90_days, millisecond, minusDay, monday, month, nextMonday, nextMonthFinalDay, nextMonthFirstDay, nextQuarterEndDay, nextQuarterStartDay, nextSunday, nextYear, next_120_days, next_30_days, next_60_days, next_7_days, next_90_days, now, previousYear, startValue, strEndDay, strFirstDay, strLastDay, strMonday, strStartDay, strSunday, strToday, strTomorrow, strYestday, sunday, thisQuarterEndDay, thisQuarterStartDay, tomorrow, values, week, year, yestday;
|
|
126
|
-
now = new Date();
|
|
127
|
-
|
|
99
|
+
now = new Date();
|
|
100
|
+
// 一天的毫秒数
|
|
128
101
|
millisecond = 1000 * 60 * 60 * 24;
|
|
129
102
|
yestday = new Date(now.getTime() - millisecond);
|
|
130
|
-
tomorrow = new Date(now.getTime() + millisecond);
|
|
131
|
-
|
|
132
|
-
week = now.getDay();
|
|
133
|
-
|
|
103
|
+
tomorrow = new Date(now.getTime() + millisecond);
|
|
104
|
+
// 一周中的某一天
|
|
105
|
+
week = now.getDay();
|
|
106
|
+
// 减去的天数
|
|
134
107
|
minusDay = week !== 0 ? week - 1 : 6;
|
|
135
108
|
monday = new Date(now.getTime() - minusDay * millisecond);
|
|
136
|
-
sunday = new Date(monday.getTime() + 6 * millisecond);
|
|
137
|
-
|
|
138
|
-
lastSunday = new Date(monday.getTime() - millisecond);
|
|
139
|
-
|
|
140
|
-
lastMonday = new Date(lastSunday.getTime() - millisecond * 6);
|
|
141
|
-
|
|
142
|
-
nextMonday = new Date(sunday.getTime() + millisecond);
|
|
143
|
-
|
|
109
|
+
sunday = new Date(monday.getTime() + 6 * millisecond);
|
|
110
|
+
// 上周日
|
|
111
|
+
lastSunday = new Date(monday.getTime() - millisecond);
|
|
112
|
+
// 上周一
|
|
113
|
+
lastMonday = new Date(lastSunday.getTime() - millisecond * 6);
|
|
114
|
+
// 下周一
|
|
115
|
+
nextMonday = new Date(sunday.getTime() + millisecond);
|
|
116
|
+
// 下周日
|
|
144
117
|
nextSunday = new Date(nextMonday.getTime() + millisecond * 6);
|
|
145
118
|
currentYear = now.getFullYear();
|
|
146
119
|
previousYear = currentYear - 1;
|
|
147
|
-
nextYear = currentYear + 1;
|
|
148
|
-
|
|
149
|
-
currentMonth = now.getMonth();
|
|
150
|
-
|
|
120
|
+
nextYear = currentYear + 1;
|
|
121
|
+
// 当前月份
|
|
122
|
+
currentMonth = now.getMonth();
|
|
123
|
+
// 计数年、月
|
|
151
124
|
year = now.getFullYear();
|
|
152
|
-
month = now.getMonth();
|
|
153
|
-
|
|
154
|
-
firstDay = new Date(currentYear, currentMonth, 1);
|
|
125
|
+
month = now.getMonth();
|
|
126
|
+
// 本月第一天
|
|
127
|
+
firstDay = new Date(currentYear, currentMonth, 1);
|
|
128
|
+
// 当为12月的时候年份需要加1
|
|
155
129
|
// 月份需要更新为0 也就是下一年的第一个月
|
|
156
|
-
|
|
157
130
|
if (currentMonth === 11) {
|
|
158
131
|
year++;
|
|
159
132
|
month++;
|
|
160
133
|
} else {
|
|
161
134
|
month++;
|
|
162
135
|
}
|
|
163
|
-
|
|
164
136
|
nextMonthFirstDay = new Date(year, month, 1);
|
|
165
137
|
nextMonthFinalDay = new Date(year, month, getMonthDays(year, month));
|
|
166
138
|
lastDay = new Date(nextMonthFirstDay.getTime() - millisecond);
|
|
@@ -182,7 +154,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
182
154
|
next_60_days = new Date(now.getTime() + 59 * millisecond);
|
|
183
155
|
next_90_days = new Date(now.getTime() + 89 * millisecond);
|
|
184
156
|
next_120_days = new Date(now.getTime() + 119 * millisecond);
|
|
185
|
-
|
|
186
157
|
switch (key) {
|
|
187
158
|
case "last_year":
|
|
188
159
|
// 去年
|
|
@@ -190,21 +161,18 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
190
161
|
startValue = new Date(previousYear + "-01-01T00:00:00Z");
|
|
191
162
|
endValue = new Date(previousYear + "-12-31T23:59:59Z");
|
|
192
163
|
break;
|
|
193
|
-
|
|
194
164
|
case "this_year":
|
|
195
165
|
// 今年
|
|
196
166
|
label = t("creator_filter_operation_between_this_year");
|
|
197
167
|
startValue = new Date(currentYear + "-01-01T00:00:00Z");
|
|
198
168
|
endValue = new Date(currentYear + "-12-31T23:59:59Z");
|
|
199
169
|
break;
|
|
200
|
-
|
|
201
170
|
case "next_year":
|
|
202
171
|
// 明年
|
|
203
172
|
label = t("creator_filter_operation_between_next_year");
|
|
204
173
|
startValue = new Date(nextYear + "-01-01T00:00:00Z");
|
|
205
174
|
endValue = new Date(nextYear + "-12-31T23:59:59Z");
|
|
206
175
|
break;
|
|
207
|
-
|
|
208
176
|
case "last_quarter":
|
|
209
177
|
// 上季度
|
|
210
178
|
strFirstDay = (0, _moment["default"])(lastQuarterStartDay).format("YYYY-MM-DD");
|
|
@@ -213,7 +181,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
213
181
|
startValue = new Date(strFirstDay + "T00:00:00Z");
|
|
214
182
|
endValue = new Date(strLastDay + "T23:59:59Z");
|
|
215
183
|
break;
|
|
216
|
-
|
|
217
184
|
case "this_quarter":
|
|
218
185
|
// 本季度
|
|
219
186
|
strFirstDay = (0, _moment["default"])(thisQuarterStartDay).format("YYYY-MM-DD");
|
|
@@ -222,7 +189,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
222
189
|
startValue = new Date(strFirstDay + "T00:00:00Z");
|
|
223
190
|
endValue = new Date(strLastDay + "T23:59:59Z");
|
|
224
191
|
break;
|
|
225
|
-
|
|
226
192
|
case "next_quarter":
|
|
227
193
|
// 下季度
|
|
228
194
|
strFirstDay = (0, _moment["default"])(nextQuarterStartDay).format("YYYY-MM-DD");
|
|
@@ -231,7 +197,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
231
197
|
startValue = new Date(strFirstDay + "T00:00:00Z");
|
|
232
198
|
endValue = new Date(strLastDay + "T23:59:59Z");
|
|
233
199
|
break;
|
|
234
|
-
|
|
235
200
|
case "last_month":
|
|
236
201
|
// 上月
|
|
237
202
|
strFirstDay = (0, _moment["default"])(lastMonthFirstDay).format("YYYY-MM-DD");
|
|
@@ -240,7 +205,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
240
205
|
startValue = new Date(strFirstDay + "T00:00:00Z");
|
|
241
206
|
endValue = new Date(strLastDay + "T23:59:59Z");
|
|
242
207
|
break;
|
|
243
|
-
|
|
244
208
|
case "this_month":
|
|
245
209
|
// 本月
|
|
246
210
|
strFirstDay = (0, _moment["default"])(firstDay).format("YYYY-MM-DD");
|
|
@@ -249,7 +213,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
249
213
|
startValue = new Date(strFirstDay + "T00:00:00Z");
|
|
250
214
|
endValue = new Date(strLastDay + "T23:59:59Z");
|
|
251
215
|
break;
|
|
252
|
-
|
|
253
216
|
case "next_month":
|
|
254
217
|
// 下月
|
|
255
218
|
strFirstDay = (0, _moment["default"])(nextMonthFirstDay).format("YYYY-MM-DD");
|
|
@@ -258,7 +221,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
258
221
|
startValue = new Date(strFirstDay + "T00:00:00Z");
|
|
259
222
|
endValue = new Date(strLastDay + "T23:59:59Z");
|
|
260
223
|
break;
|
|
261
|
-
|
|
262
224
|
case "last_week":
|
|
263
225
|
// 上周
|
|
264
226
|
strMonday = (0, _moment["default"])(lastMonday).format("YYYY-MM-DD");
|
|
@@ -267,7 +229,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
267
229
|
startValue = new Date(strMonday + "T00:00:00Z");
|
|
268
230
|
endValue = new Date(strSunday + "T23:59:59Z");
|
|
269
231
|
break;
|
|
270
|
-
|
|
271
232
|
case "this_week":
|
|
272
233
|
// 本周
|
|
273
234
|
strMonday = (0, _moment["default"])(monday).format("YYYY-MM-DD");
|
|
@@ -276,7 +237,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
276
237
|
startValue = new Date(strMonday + "T00:00:00Z");
|
|
277
238
|
endValue = new Date(strSunday + "T23:59:59Z");
|
|
278
239
|
break;
|
|
279
|
-
|
|
280
240
|
case "next_week":
|
|
281
241
|
// 下周
|
|
282
242
|
strMonday = (0, _moment["default"])(nextMonday).format("YYYY-MM-DD");
|
|
@@ -285,7 +245,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
285
245
|
startValue = new Date(strMonday + "T00:00:00Z");
|
|
286
246
|
endValue = new Date(strSunday + "T23:59:59Z");
|
|
287
247
|
break;
|
|
288
|
-
|
|
289
248
|
case "yestday":
|
|
290
249
|
// 昨天
|
|
291
250
|
strYestday = (0, _moment["default"])(yestday).format("YYYY-MM-DD");
|
|
@@ -293,7 +252,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
293
252
|
startValue = new Date(strYestday + "T00:00:00Z");
|
|
294
253
|
endValue = new Date(strYestday + "T23:59:59Z");
|
|
295
254
|
break;
|
|
296
|
-
|
|
297
255
|
case "today":
|
|
298
256
|
// 今天
|
|
299
257
|
strToday = (0, _moment["default"])(now).format("YYYY-MM-DD");
|
|
@@ -301,7 +259,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
301
259
|
startValue = new Date(strToday + "T00:00:00Z");
|
|
302
260
|
endValue = new Date(strToday + "T23:59:59Z");
|
|
303
261
|
break;
|
|
304
|
-
|
|
305
262
|
case "tomorrow":
|
|
306
263
|
// 明天
|
|
307
264
|
strTomorrow = (0, _moment["default"])(tomorrow).format("YYYY-MM-DD");
|
|
@@ -309,7 +266,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
309
266
|
startValue = new Date(strTomorrow + "T00:00:00Z");
|
|
310
267
|
endValue = new Date(strTomorrow + "T23:59:59Z");
|
|
311
268
|
break;
|
|
312
|
-
|
|
313
269
|
case "last_7_days":
|
|
314
270
|
// 过去7天
|
|
315
271
|
strStartDay = (0, _moment["default"])(last_7_days).format("YYYY-MM-DD");
|
|
@@ -318,7 +274,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
318
274
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
319
275
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
320
276
|
break;
|
|
321
|
-
|
|
322
277
|
case "last_30_days":
|
|
323
278
|
// 过去30天
|
|
324
279
|
strStartDay = (0, _moment["default"])(last_30_days).format("YYYY-MM-DD");
|
|
@@ -327,7 +282,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
327
282
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
328
283
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
329
284
|
break;
|
|
330
|
-
|
|
331
285
|
case "last_60_days":
|
|
332
286
|
// 过去60天
|
|
333
287
|
strStartDay = (0, _moment["default"])(last_60_days).format("YYYY-MM-DD");
|
|
@@ -336,7 +290,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
336
290
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
337
291
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
338
292
|
break;
|
|
339
|
-
|
|
340
293
|
case "last_90_days":
|
|
341
294
|
// 过去90天
|
|
342
295
|
strStartDay = (0, _moment["default"])(last_90_days).format("YYYY-MM-DD");
|
|
@@ -345,7 +298,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
345
298
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
346
299
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
347
300
|
break;
|
|
348
|
-
|
|
349
301
|
case "last_120_days":
|
|
350
302
|
// 过去120天
|
|
351
303
|
strStartDay = (0, _moment["default"])(last_120_days).format("YYYY-MM-DD");
|
|
@@ -354,7 +306,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
354
306
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
355
307
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
356
308
|
break;
|
|
357
|
-
|
|
358
309
|
case "next_7_days":
|
|
359
310
|
// 未来7天
|
|
360
311
|
strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
|
|
@@ -363,7 +314,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
363
314
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
364
315
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
365
316
|
break;
|
|
366
|
-
|
|
367
317
|
case "next_30_days":
|
|
368
318
|
// 未来30天
|
|
369
319
|
strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
|
|
@@ -372,7 +322,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
372
322
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
373
323
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
374
324
|
break;
|
|
375
|
-
|
|
376
325
|
case "next_60_days":
|
|
377
326
|
// 未来60天
|
|
378
327
|
strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
|
|
@@ -381,7 +330,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
381
330
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
382
331
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
383
332
|
break;
|
|
384
|
-
|
|
385
333
|
case "next_90_days":
|
|
386
334
|
// 未来90天
|
|
387
335
|
strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
|
|
@@ -390,7 +338,6 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
390
338
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
391
339
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
392
340
|
break;
|
|
393
|
-
|
|
394
341
|
case "next_120_days":
|
|
395
342
|
// 未来120天
|
|
396
343
|
strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
|
|
@@ -399,45 +346,36 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
|
|
|
399
346
|
startValue = new Date(strStartDay + "T00:00:00Z");
|
|
400
347
|
endValue = new Date(strEndDay + "T23:59:59Z");
|
|
401
348
|
}
|
|
402
|
-
|
|
403
|
-
|
|
349
|
+
values = [startValue, endValue];
|
|
350
|
+
// 时间类型字段,应该考虑偏移时区值,否则过滤数据存在偏差
|
|
404
351
|
// 日期类型字段,数据库本来就存的是UTC的0点;
|
|
405
352
|
// 日期类型字段,目前creator代码(2019年08月07号存的)存的是UTC的16点,见:https://github.com/steedos/creator/issues/1271;
|
|
406
353
|
// 比如用户想搜索2019-08-07的数据,请求会是:((created ge 2019-08-06T16:00:00Z) and (created le 2019-08-07T15:59:59Z)) ,
|
|
407
354
|
// 如果数据库中存储的是2019-08-07T16:00:00Z而不是2019-08-07T00:00:00Z,那么就搜索不到数据。
|
|
408
355
|
// 所以,日期类型字段,要求存储的是UTC的0点,而不可以是16点,否则可能搜索不到数据。
|
|
409
|
-
|
|
410
356
|
if (utcOffset) {
|
|
411
357
|
values = values.map(function (fv) {
|
|
412
358
|
if (fv) {
|
|
413
359
|
// 注意这里取的值是moment().utcOffset() / 60得到的,不是new Date().getTimezoneOffset() / 60
|
|
414
360
|
// 它们的值正好为正负关系,北京时间前者为 +8,后者为 -8
|
|
415
361
|
fv = new Date(fv.getTime()); // clone fv的值以防止原来的值被更改
|
|
416
|
-
|
|
417
362
|
fv.setHours(fv.getHours() - utcOffset);
|
|
418
363
|
}
|
|
419
|
-
|
|
420
364
|
return fv;
|
|
421
365
|
});
|
|
422
366
|
}
|
|
423
|
-
|
|
424
367
|
return {
|
|
425
368
|
label: label,
|
|
426
369
|
key: key,
|
|
427
370
|
values: values
|
|
428
371
|
};
|
|
429
372
|
};
|
|
430
|
-
|
|
431
373
|
exports.getBetweenTimeBuiltinValueItem = getBetweenTimeBuiltinValueItem;
|
|
432
|
-
|
|
433
374
|
var getBetweenBuiltinValueItem = function getBetweenBuiltinValueItem(key, utcOffset) {
|
|
434
375
|
return getBetweenTimeBuiltinValueItem(key, utcOffset);
|
|
435
376
|
};
|
|
436
|
-
|
|
437
377
|
exports.getBetweenBuiltinValueItem = getBetweenBuiltinValueItem;
|
|
438
|
-
|
|
439
378
|
var isBetweenFilterOperation = function isBetweenFilterOperation(operation) {
|
|
440
379
|
return operation === "between";
|
|
441
380
|
};
|
|
442
|
-
|
|
443
381
|
exports.isBetweenFilterOperation = isBetweenFilterOperation;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/filters",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.3.
|
|
4
|
+
"version": "2.3.2-beta.2",
|
|
5
5
|
"description": "filters lib for steedos",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"files": [
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "2e469778c682ec784fbfb93f5e83d2f5f9671ea5"
|
|
40
40
|
}
|