1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
import globalStore from "../stores/exampleStore"
import { resolve } from "path";
//防止多次重复点击 (函数节流)
export function throttle(fn, gapTime) {
if (gapTime == null || gapTime == undefined) {
gapTime = 1500;
}
let _lastTime = null;
return function () {
let _nowTime = new Date();
if (_nowTime - _lastTime > gapTime || !_lastTime) {
fn.apply(this, arguments); //将this和参数传给原函数
_lastTime = _nowTime;
}
};
}
export function debounce(fn, delay) {
let timeout = null;
return function () {
clearTimeout(timeout);
timeout = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
}
/*
返回时间补0
time 时间
format 格式 yyyyMMdd HH:mm:ss, yyyyMMdd, HH:mm:ss
Symbol 分隔符号
*/
export function getFormatDate(time, format, symbol) {
if (typeof time == 'string') {
time = new Date(time.replace(/-/g, '/'))
}
format = format ? format : "yyyyMMdd HH:mm:ss";
symbol = symbol ? symbol : "";
let year = time.getFullYear();
let month =
time.getMonth() < 9 ? "0" + (time.getMonth() + 1) : time.getMonth() + 1;
let day = time.getDate() < 10 ? "0" + time.getDate() : time.getDate();
let hour = time.getHours() < 10 ? "0" + time.getHours() : time.getHours();
let minutes =
time.getMinutes() < 10 ? "0" + time.getMinutes() : time.getMinutes();
let seconds =
time.getSeconds() < 10 ? "0" + time.getSeconds() : time.getSeconds();
if (format === "yyyyMMdd HH:mm:ss") {
return symbol
? `${year}${symbol}${month}${symbol}${day} ${hour}:${minutes}:${seconds}`
: `${year}/${month}/${day} ${hour}:${minutes}:${seconds}`;
} else if (format === "yyyyMMdd") {
return symbol
? `${year}${symbol}${month}${symbol}${day}`
: `${year}/${month}/${day}`;
} else if (format === "HH:mm:ss") {
return `${hour}:${minutes}:${seconds}`;
} else if (format === "HH:mm") {
return `${hour}:${minutes}`;
}
}
// 返回每个月的第一天
export function getCurrentMonthFirst(date) {
date.setDate(1);
var month = parseInt(date.getMonth() + 1);
var day = date.getDate();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
return date.getFullYear() + "-" + month + "-" + day;
}
// 返回每个月的最后一天
export function getCurrentMonthLast(date) {
var currentMonth = date.getMonth();
var nextMonth = ++currentMonth;
var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
var oneDay = 1000 * 60 * 60 * 24;
var lastTime = new Date(nextMonthFirstDay - oneDay);
var month = parseInt(lastTime.getMonth() + 1);
var day = lastTime.getDate();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
return date.getFullYear() + "-" + month + "-" + day;
}
//开始时间取整, 取5的倍数
export function getInterTime(time) {
let date = time;
if (typeof time == "string") {
date = new Date(time);
}
const min = date.getMinutes();
const addMin = Math.floor(min / 5) * 5 + 5;
date.setMinutes(addMin);
return date;
}
// 判断是刚刚 60分钟以内 23小时以内 正常时间年月日
export function getCreateShowTime(createdTime) {
let creatTime = createdTime;
if (typeof createdTime === 'string') {
creatTime = createdTime.replace(/\-/g, "/")
}
let timeResule = ''
const year = new Date().getFullYear()
const month = new Date().getMonth() + 1
const day = new Date().getDate()
const creatYear = new Date(creatTime).getFullYear()
const creatMonth = new Date(creatTime).getMonth() + 1
const creatDay = new Date(creatTime).getDate()
if (year == creatYear) {
if (month == creatMonth) {
if (day == creatDay) {
const letMin = (new Date().getTime() - new Date(creatTime).getTime()) / 1000 / 60;
if (letMin < 2) {
timeResule = '刚刚'
} else if (letMin < 60) {
timeResule = letMin.toFixed(0) + '分钟前'
} else {
timeResule = (letMin / 60).toFixed(0) + '小时前'
}
} else {
timeResule = day - creatDay + '天前'
}
} else {
const leftDay = (new Date().getTime() - new Date(creatTime).getTime()) / 1000 / 60 / 60 / 24;
if (leftDay < 28) {
if (leftDay < 1) {
timeResule = (leftDay * 24).toFixed(0) + '小时前'
} else {
timeResule = leftDay.toFixed(0) + '天前'
}
} else {
timeResule = `${creatTime.substring(5, 7)}月${creatTime.substring(8, 10)}日 ${creatTime.substring(11, 16)}`
}
}
} else {
timeResule = `${creatTime.substring(0, 4)}年${creatTime.substring(5, 7)}月${creatTime.substring(8, 10)}日 ${creatTime.substring(11, 16)}`
}
return timeResule
}
export function padZero(val) {
return ("00" + val).slice(-2);
}
/*
获取随机数
min = 0 区间范围 默认0
max = 100 区间范围 默认100
[min, max)
*/
export function getRndInteger(min = 0, max = 100) {
return Math.floor(Math.random() * (max - min)) + min;
}
/*
展示时间
startTime 开始时间
endTime 结束时间
*/
export function getShowTime(startTime, endTime) {
const weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
const weekIndex = new Date(startTime).getDay()
let isAcrossDay = false
if (startTime.substring(0, 10) !== endTime.substring(0, 10)) {
isAcrossDay = true
}
if (isAcrossDay) {
return `${startTime.substring(5, 7)}月${startTime.substring(8, 10)}日 ${startTime.substring(11, 16)}-${endTime.substring(5, 7)}月${endTime.substring(8, 10)}日 ${endTime.substring(11, 16)}`
}
return `${startTime.substring(5, 7)}月${startTime.substring(8, 10)}日 ${weekList[weekIndex]} ${startTime.substring(11, 16)}-${endTime.substring(11, 16)}`
}
/*
获取两年后的今天
*/
export function getTwoYearToday(startTime) {
let date = new Date(startTime)
date.setYear(date.getFullYear() + 2)
let year = date.getFullYear();
let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
return year + '-' + month + '-' + day
}
// 处理重复模型
export function dealRepeatModal(item) {
const repeatWeek = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA']
// 不重复
if (item.repeatable === 0) {
return {
repeatable: item.repeatable,
recurrenceModel: item.recurrenceModel
}
}
const initialTime = globalStore.data.startTime.replace(/\//g, "-").substring(0, 10)
const terminateTime = getTwoYearToday(globalStore.data.startTime)
const recurrenceModel = {
model: item.recurrenceModel.model,
initialTime: initialTime,
terminateTime: terminateTime,
interval: 1
}
// 每天重复
if (item.recurrenceModel.model === "daily") {
return {
repeatable: item.repeatable,
recurrenceModel: recurrenceModel,
selectRepeatId: item.id
}
}
// 每月重复
if (item.recurrenceModel.model === "absolute_Monthly") {
recurrenceModel.daysOfMonth = [new Date(globalStore.data.startTime).getDate()]
return {
repeatable: item.repeatable,
recurrenceModel: recurrenceModel,
selectRepeatId: item.id
}
}
// 每周重复
if (item.recurrenceModel.weekDayList && item.recurrenceModel.weekDayList.length > 4) {
recurrenceModel.weekDayList = item.recurrenceModel.weekDayList
return {
repeatable: item.repeatable,
recurrenceModel: recurrenceModel,
selectRepeatId: item.id
}
}
// 每周的一天重复
recurrenceModel.weekDayList = [repeatWeek[new Date(globalStore.data.startTime).getDay()]]
return {
repeatable: item.repeatable,
recurrenceModel: recurrenceModel,
selectRepeatId: item.id
}
}
// 修改时间修改重复模型
export function modifyTimeImpactRepeat(recurrenceModel) {
const repeatWeek = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA']
const initialTime = globalStore.data.startTime.replace(/\//g, "-").substring(0, 10)
const terminateTime = getTwoYearToday(globalStore.data.startTime)
recurrenceModel.initialTime = initialTime
recurrenceModel.terminateTime = terminateTime
if (recurrenceModel.model === 'weekly' && recurrenceModel.weekDayList.length === 1) {
recurrenceModel.weekDayList = [repeatWeek[new Date(globalStore.data.startTime).getDay()]]
}
if (recurrenceModel.model === 'absolute_Monthly') {
recurrenceModel.daysOfMonth = [new Date(globalStore.data.startTime).getDate()]
}
return recurrenceModel
}
// 添加参会人
export function selectPeople(select, require) {
const _that = this
return new Promise((resolve) => {
dd.complexChoose({
title: "选择参会人", //标题
multiple: true, //是否多选
pickedUsers: select, //已选用户 s
requiredUsers: require, //必选用户(不可取消选中状态)
responseUserOnly: true, //返回人,或者返回人和部门
success: function (res) {
resolve(res)
},
fail: function (err) {
}
})
})
}
// 可选中去掉必选人
export function selectedelRequired(select, require) {
return select.filter(it => {
return !require.includes(it)
})
}
// 文件格式化
export function renderSize(value) {
if (null == value || value == '' || value == 0) {
return "";
}
var unitArr = new Array("B", "K", "M", "G", "T", "P", "E", "Z", "Y");
var index = 0;
var srcsize = parseFloat(value);
index = Math.floor(Math.log(srcsize) / Math.log(1024));
var size = srcsize / Math.pow(1024, index);
size = size.toFixed(2);//保留的小数位数
return size + unitArr[index];
}
export function isJSON(str) {
if (typeof str == 'string') {
try {
var obj = JSON.parse(str);
if (typeof obj == 'object' && obj) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
return false;
}
export function removeHtml(str) { return str.replace(/<\/?.+?>/g, "") }