134 lines
3.4 KiB
JavaScript
134 lines
3.4 KiB
JavaScript
/* 去重 */
|
|
export function deWeightThree(data, key) {
|
|
let map = new Map()
|
|
for (let item of data) {
|
|
if (!map.has(item[key])) {
|
|
map.set(item[key], item)
|
|
}
|
|
}
|
|
return [...map.values()]
|
|
}
|
|
|
|
/* uuid生成器 */
|
|
export function uuid(len, radix) {
|
|
var chars =
|
|
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
|
|
var uuid = [],
|
|
i
|
|
radix = radix || chars.length
|
|
|
|
if (len) {
|
|
// Compact form
|
|
for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]
|
|
} else {
|
|
// rfc4122, version 4 form
|
|
var r
|
|
|
|
// rfc4122 requires these characters
|
|
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
|
|
uuid[14] = '4'
|
|
|
|
// Fill in random data. At i==19 set the high bits of clock sequence as
|
|
// per rfc4122, sec. 4.1.5
|
|
for (i = 0; i < 36; i++) {
|
|
if (!uuid[i]) {
|
|
r = 0 | (Math.random() * 16)
|
|
uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r]
|
|
}
|
|
}
|
|
}
|
|
|
|
return uuid.join('')
|
|
}
|
|
|
|
//计算两个时间差 返回天
|
|
export function timeDiff(begin_time, end_time) {
|
|
//年月日时分秒转换为时间戳
|
|
let beginTime = new Date(begin_time).getTime() / 1000
|
|
let endTime = new Date(end_time).getTime() / 1000
|
|
var starttime = ''
|
|
var endtime = ''
|
|
if (beginTime < endTime) {
|
|
starttime = beginTime
|
|
endtime = endTime
|
|
} else {
|
|
starttime = endTime
|
|
endtime = beginTime
|
|
}
|
|
//计算天数
|
|
var timediff = endtime - starttime
|
|
var days = parseInt(timediff / 86400)
|
|
//计算小时数
|
|
var remain = timediff % 86400
|
|
var hours = parseInt(remain / 3600)
|
|
//计算分钟数
|
|
var remain = remain % 3600
|
|
var mins = parseInt(remain / 60)
|
|
var res = Number(days + 1)
|
|
return res
|
|
}
|
|
|
|
export function getNowTime() {
|
|
var now = new Date()
|
|
var year = now.getFullYear()
|
|
var month =
|
|
now.getMonth() + 1 <= 9 ? '0' + (now.getMonth() + 1) : now.getMonth() + 1
|
|
var day = now.getDate() <= 9 ? '0' + now.getDate() : now.getDate()
|
|
var tt = now.getHours() <= 9 ? '0' + now.getHours() : now.getHours()
|
|
var mm = now.getMinutes() <= 9 ? '0' + now.getMinutes() : now.getMinutes()
|
|
var ss = now.getSeconds() <= 9 ? '0' + now.getSeconds() : now.getSeconds()
|
|
let datelist = [year, month, day, tt, mm, ss]
|
|
return datelist.join('')
|
|
}
|
|
|
|
/* 周天排序 */
|
|
export function sortWeeks(weeks) {
|
|
const staticWeeks = [
|
|
{ id: 1, name: '周一' },
|
|
{ id: 2, name: '周二' },
|
|
{ id: 3, name: '周三' },
|
|
{ id: 4, name: '周四' },
|
|
{ id: 5, name: '周五' },
|
|
{ id: 6, name: '周六' },
|
|
{ id: 7, name: '周日' }
|
|
]
|
|
|
|
var _weeks = weeks
|
|
.map((item) => staticWeeks.filter((item1) => item1.name === item))
|
|
.flat(Infinity)
|
|
.sort((a, b) => a.id - b.id)
|
|
|
|
//将weeks清空并将排序好的值赋给weeks
|
|
const weeksData = []
|
|
if (isContinuityNum(_weeks.map((item) => item.id)) && _weeks.length > 1) {
|
|
weeksData.push(`${_weeks[0].name} 至 ${_weeks.slice(-1)[0].name}`)
|
|
} else {
|
|
for (var i = 0; i < _weeks.length; i++) {
|
|
weeksData.push(_weeks[i].name)
|
|
}
|
|
}
|
|
|
|
return weeksData
|
|
}
|
|
|
|
//判断一串数字是否是连续的
|
|
function isContinuityNum(num) {
|
|
let array = []
|
|
if (num instanceof Array) {
|
|
array = [...num]
|
|
} else {
|
|
array = Array.from(num.toString()) //转换为数组
|
|
}
|
|
|
|
var i = array[0]
|
|
var isContinuation = true
|
|
for (var e in array) {
|
|
if (array[e] != i) {
|
|
isContinuation = false
|
|
break
|
|
}
|
|
i++
|
|
}
|
|
return isContinuation
|
|
}
|