import crypto from "crypto"; //个位数字补零 export function numberB0(n) { return n < 10 ? "0" + n : n; } // 得到 2019-07-27 格式的日期数组,区间为7天 export function getSevenDays() { var date = new Date(); let nowDate = date.getFullYear() + "-" + numberB0(date.getMonth() + 1) + "-" + numberB0(date.getDate()); let oldDate = new Date(date.setTime(date.getTime() - 3600 * 1000 * 24 * 6)).toJSON(); let oldDates = oldDate.split("T"); oldDate = oldDates[0]; return [oldDate, nowDate]; } // 同上,但不包括今日 export function getSevenDays2() { var date = new Date(); let nowDate = new Date(date.setTime(date.getTime() - 3600 * 1000 * 24 * 1)).toJSON(); let nowDates = nowDate.split("T"); nowDate = nowDates[0]; let oldDate = new Date(date.setTime(date.getTime() - 3600 * 1000 * 24 * 6)).toJSON(); let oldDates = oldDate.split("T"); oldDate = oldDates[0]; return [oldDate, nowDate]; } /** * 将接口返回的日期(12344518976156)转换成(2019-10-10) * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(2019-10-10) * */ export function dateChange(date) { let d = new Date(date); return d.getFullYear() + "-" + numberB0(d.getMonth() + 1) + "-" + numberB0(d.getDate()); } /** * 将接口返回的日期(12344518976156)转换成(23:59:59) * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(23:59:59) * */ export function monthChange(date) { let d = new Date(date); return d.getFullYear() + "-" + numberB0(d.getMonth() + 1); } /** * 将接口返回的日期(12344518976156)转换成(23:59:59) * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(23:59:59) * */ export function timeChange(date) { let d = new Date(date); return ( numberB0(d.getHours()) + ":" + numberB0(d.getMinutes()) + ":" + numberB0(d.getSeconds()) ); } export function timeHMChange(date) { let d = new Date(date); return numberB0(d.getHours()) + ":" + numberB0(d.getMinutes()); } /** * 将接口返回的日期时间(12344518976156)转换成(2020-10-14 23:59:59) * 将接口返回的标准格式日期(Wed Oct 14 2020 10:26:34 GMT+0800 (中国标准时间))转换成(2020-10-14 23:59:59) * */ export function dateTimeChange(date) { if (date === "" || date === null) return date; let d = new Date(date); return ( d.getFullYear() + "-" + numberB0(d.getMonth() + 1) + "-" + numberB0(d.getDate()) + " " + numberB0(d.getHours()) + ":" + numberB0(d.getMinutes()) + ":" + numberB0(d.getSeconds()) ); } /** * getNowTime - 获取当前日期时间:2019-10-10 10:10:20 * axios.js在用 * */ export function getNowTime() { var date = new Date(); return ( date.getFullYear() + "-" + numberB0(date.getMonth() + 1) + "-" + numberB0(date.getDate()) + " " + numberB0(date.getHours()) + ":" + numberB0(date.getMinutes()) + ":" + numberB0(date.getSeconds()) ); } /** * 传入[开始日期, 结束日期] * 返回格式[2020-10-01 00:00:00, 2020-10-01 23:59:59] * tag: 1,补时分秒 * 2,补分秒 * 3,补秒 * */ export function dateQjChange(list, tag) { if (list[0] === "" || list[0] === null) return list; let d1 = new Date(list[0]); let d2 = new Date(list[1]); if (tag === undefined) { tag = 1; } switch (tag) { case 1: return [ d1.getFullYear() + "-" + numberB0(d1.getMonth() + 1) + "-" + numberB0(d1.getDate()) + " 00:00:00", d2.getFullYear() + "-" + numberB0(d2.getMonth() + 1) + "-" + numberB0(d2.getDate()) + " 23:59:59", ]; case 2: return [ d1.getFullYear() + "-" + numberB0(d1.getMonth() + 1) + "-" + numberB0(d1.getDate()) + " " + numberB0(d1.getHours()) + ":00:00", d2.getFullYear() + "-" + numberB0(d2.getMonth() + 1) + "-" + numberB0(d2.getDate()) + " " + numberB0(d2.getHours()) + ":59:59", ]; break; case 3: return [ d1.getFullYear() + "-" + numberB0(d1.getMonth() + 1) + "-" + numberB0(d1.getDate()) + " " + numberB0(d1.getHours()) + ":" + numberB0(d1.getMinutes()) + ":00", d2.getFullYear() + "-" + numberB0(d2.getMonth() + 1) + "-" + numberB0(d2.getDate()) + " " + numberB0(d2.getHours()) + ":" + numberB0(d2.getMinutes()) + ":59", ]; break; } } /** * getNowTime2 - 获取当前日期时间:2019年10月10日 10:10:20 星期一 * 地图版在用 * */ export function getNowTime2() { var date = new Date(); var weekday = new Array(7); weekday[0] = "星期日"; weekday[1] = "星期一"; weekday[2] = "星期二"; weekday[3] = "星期三"; weekday[4] = "星期四"; weekday[5] = "星期五"; weekday[6] = "星期六"; var n = weekday[date.getDay()]; return ( date.getFullYear() + "年" + numberB0(date.getMonth() + 1) + "月" + numberB0(date.getDate()) + "日 " + numberB0(date.getHours()) + ":" + numberB0(date.getMinutes()) + ":" + numberB0(date.getSeconds()) + " " + n ); } //金额分割符,4位分割(仅数字) export function getNewNum(nStr) { nStr += ""; var x = nStr.split("."); var x1 = x[0]; var x2 = x.length > 1 ? "." + x[1] : ""; var rgx = /(\d+)(\d{4})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, "$1" + "," + "$2"); } return x1 + x2; } /** * 提供获取内容页面的高度,便于处理两种不同显示滚动条的兼容问题。默认页面高度自然,框架提供了滚动条无需处理;特殊情况,页面高度需保持一屏,内部页面的高度需要自己计算,因此提供该方法,便于开发者开发内部页面。 * type:midd居中模式;full全屏模式; * */ export function getPageHeight(type) { let h = document.documentElement.clientHeight; type = type === undefined ? "midd" : type; if (type === "midd") { h = h - 48; } return h; } /** * 提供获取内容页面的宽度。 * type:midd居中模式;full全屏模式; * 全屏模式无需计算宽度是否小于1600 * */ export function getPageWidth(type) { let w = document.documentElement.clientWidth; type = type === undefined ? "midd" : type; if (type === "midd") { if (w < 1600) { return 1200; } else { return 1500; } } else { return w; } } /* * Ant和element-ui 级联相同bug - 底层存在children的时候会显示空模块的问题,此方法可以完成任意级别的递归找children。 * data:原型数据 * */ export function cascaderBugRepair(data) { if (data == null) return false; let nums = data.length; for (var i = 0; i < nums; i++) { if (data[i].children.length <= 0) { delete data[i].children; } else { if (data[i].children.length > 0) { data[i].children = cascaderBugRepair(data[i].children); } } } return data; } /* * ant - 级联 - 显示名字为:宝通运维/总中心/分中心 * 修改为:分中心 * */ export function cascaderShowName({ labels }) { return labels[labels.length - 1]; } /* * MD5加密方法 * */ export function getMd5(data) { const md5 = crypto.createHash("md5"); md5.update(data); let md5password = md5.digest("hex"); return md5password.toString().toUpperCase(); } export default { getMd5, cascaderBugRepair, cascaderShowName, getPageWidth, getPageHeight, getNewNum, dateChange, timeHMChange, timeChange, getNowTime, getNowTime2, dateQjChange, getSevenDays, getSevenDays2, dateTimeChange, numberB0, monthChange, };