/* 去重 */ 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 }