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