import router from "@/router"; var GetProperty = function (obj, prop) { if (!obj) return null; let res = obj; if (prop) { let props = prop.split("."); for (let i = 0; i < props.length; i++) { res = res[props[i]]; if (typeof res == "undefined" || res == null) { return null; } } } return res; }; var dateFormat = function (fmt, timestamp) { let date = new Date(timestamp); let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 时 "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString(), // 秒 // 有其他格式化字符需求可以继续添加,必须转化成字符串 }; for (let k in opt) { ret = new RegExp("(" + k + ")").exec(fmt); if (ret) { fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")); } } return fmt; }; var dateStringTransform = function (date) { /* input: 2020-06-12T16:38:11+08:00 output: 2020-06-12 16:38:11 */ if (String(date).indexOf("T") != -1) { let arr = date.split("T"); let t = arr[1]; let tarr = t.split(".000"); let marr = tarr[0].split(":"); let h = parseInt(marr[0]) >= 10 ? parseInt(marr[0]) : "0" + parseInt(marr[0]); let m = parseInt(marr[1]) >= 10 ? parseInt(marr[1]) : "0" + parseInt(marr[1]); let s = parseInt(marr[2]) >= 10 ? parseInt(marr[2]) : "0" + parseInt(marr[2]); let dd = arr[0] + " " + h + ":" + m + ":" + s; return dd; } else { return date; } }; var dateStringTransformChat = function (date) { /* input: 2020-06-12T16:38:11+08:00 output: 2020-06-12 16:38:11 */ if (String(date).indexOf("T") != -1) { let arr = date.split("T"); let t = arr[1]; let arr1 = arr[0].split("-"); let tarr = t.split(".000"); let marr = tarr[0].split(":"); let h = parseInt(marr[0]) >= 10 ? parseInt(marr[0]) : "0" + parseInt(marr[0]); let m = parseInt(marr[1]) >= 10 ? parseInt(marr[1]) : "0" + parseInt(marr[1]); let s = parseInt(marr[2]) >= 10 ? parseInt(marr[2]) : "0" + parseInt(marr[2]); let dd = arr1[1] + "-" + arr1[2] + " " + h + ":" + m; return dd; } else if (date) { let arr = date.split(" "); let t = arr[1]; let arr1 = arr[0].split("-"); let tarr = t.split(".000"); let marr = tarr[0].split(":"); let h = parseInt(marr[0]) >= 10 ? parseInt(marr[0]) : "0" + parseInt(marr[0]); let m = parseInt(marr[1]) >= 10 ? parseInt(marr[1]) : "0" + parseInt(marr[1]); let s = parseInt(marr[2]) >= 10 ? parseInt(marr[2]) : "0" + parseInt(marr[2]); let dd = arr1[1] + "-" + arr1[2] + " " + h + ":" + m; return dd; } }; var downloadFileFormat = function (fileUrl) { /* input: /apaas/static/docs/image/images/1234.png output: 1234.png */ if (fileUrl != "") { return fileUrl.substring(fileUrl.lastIndexOf("/") + 1); } else { return ""; } }; var downloadFileFormatNew = function (fileUrl) { /* input: /apaas/static/docs/image/images/1234_qq234ewr123.png output: 1234.png */ if (fileUrl != "") { var temp = fileUrl.split("/")[fileUrl.split("/").length - 1]; var name = temp.split("_")[0]; var type = temp.split("_")[temp.split("_").length - 1].split(".")[1]; if (temp.indexOf("_") == -1) { return name; } else { return name + "." + type; } } else { return ""; } }; var numberFormat = function (num, decimals) { /* input: 10000 1000 output: 10 1000 */ if (num > 10000) { let mathNum = num / 10000; let arr = mathNum.toString().split("."); let str = ""; if (arr.length == 2) { str += arr[0] + "."; if (arr[1].length == 1) { arr[1] = arr[1].toString() + "0"; str += arr[1]; } else { str += arr[1].substr(0, 2); } } else { return mathNum; } return str; } else { return num; } }; var CreationDateDesc = function (timestamp) { let date = new Date(timestamp); return date.toLocaleDateString("zh-CN", { timeZone: "Asia/Shanghai", }); }; var join_str = function (arr, str, sp) { let temp = ""; if (arr) { if (arr.length) { arr.forEach((e, idx) => { if (idx == arr.length - 1) { temp = temp + e[str]; } else { temp = temp + e[str] + sp; } }); return temp; } else { return ""; } } else { return arr; } }; var getQueryString = function (name, url) { let search = url.substr(url.indexOf("?")); let theRequest = new Object(); if (search.indexOf("?") != -1) { let str = search.substr(1); strs = str.split("&"); for (let i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } return theRequest[name]; }; var timeForMatReduce = function (count) { // 拼接时间 let time1 = new Date(); time1.setTime(time1.getTime() - 24 * 60 * 60 * 1000); let Y1 = time1.getFullYear(); let M1 = time1.getMonth() + 1 >= 10 ? time1.getMonth() + 1 : "0" + (time1.getMonth() + 1); let D1 = time1.getDate() >= 10 ? time1.getDate() : "0" + time1.getDate(); let timer1 = Y1 + "-" + M1 + "-" + D1; // 当前时间 let time2 = new Date(); time2.setTime(time2.getTime() - 24 * 60 * 60 * 1000 * count); let Y2 = time2.getFullYear(); let M2 = time2.getMonth() + 1 >= 10 ? time2.getMonth() + 1 : "0" + (time2.getMonth() + 1); let D2 = time2.getDate() >= 10 ? time2.getDate() : "0" + time2.getDate(); let timer2 = Y2 + "-" + M2 + "-" + D2; // 之前的7天或者30天 return { t1: timer1, t2: timer2, }; }; var timeForMatAdd = function (count) { // 拼接时间 let time1 = new Date(); time1.setTime(time1.getTime() - 24 * 60 * 60 * 1000); let Y1 = time1.getFullYear(); let M1 = time1.getMonth() + 1 >= 10 ? time1.getMonth() + 1 : "0" + (time1.getMonth() + 1); let D1 = time1.getDate() >= 10 ? time1.getDate() : "0" + time1.getDate(); let timer1 = Y1 + "-" + M1 + "-" + D1; // 当前时间 let time2 = new Date(); time2.setTime(time2.getTime() + 24 * 60 * 60 * 1000 * count); let Y2 = time2.getFullYear(); let M2 = time2.getMonth() + 1 >= 10 ? time2.getMonth() + 1 : "0" + (time2.getMonth() + 1); let D2 = time2.getDate() >= 10 ? time2.getDate() : "0" + time2.getDate(); let timer2 = Y2 + "-" + M2 + "-" + D2; // 之前的7天或者30天 return { t1: timer1, t2: timer2, }; }; //计算时间差 var timeDifference = function (startTime, endTime) { //可以传日期时间或时间戳 let start = typeof startTime == "number" ? startTime : new Date(startTime).getTime(), end = typeof endTime == "number" ? endTime : new Date(endTime).getTime(), difference = end - start, //时间差的毫秒数 days = Math.floor(difference / (24 * 3600 * 1000)), //计算出相差天数 leave1 = difference % (24 * 3600 * 1000), //计算天数后剩余的毫秒数 hours = Math.floor(leave1 / (3600 * 1000)), //计算相差小时数 leave2 = leave1 % (3600 * 1000), //计算小时数后剩余的毫秒数 minutes = Math.floor(leave2 / (60 * 1000)), //计算相差分钟数 leave3 = leave2 % (60 * 1000), //计算分钟数后剩余的毫秒数 seconds = Math.round(leave3 / 1000); return { days, hours, minutes, seconds }; }; var useConsole = function () { //改写console.log,防止打印数据泄露 window.isDebug = false; // 控制是否屏蔽全局console.log 日志;isDebug设为false即可屏蔽 //前面做一道筛选,满足则正常打印 //不满足则改写console.log,可以通过window.isDebug改变打印状态 //方便线上环境进行查看 if (window.isDebug || process.env.NODE_ENV === "development") { return; } console.log = (function (oldLogFunc) { return function () { if (window.isDebug || process.env.NODE_ENV === "development") { oldLogFunc.apply(this, arguments); } }; })(console.log); }; var getFirstChild = function (menuObj, path) { let parentPath = menuObj[path].parentPath; if (parentPath) { let temp = menuObj[parentPath].children || []; for (let index = 0; index < temp.length; index++) { const e = temp[index]; if (e.show) { pathToUrl(e.path); break; } } } }; var getImageUrl = function (name) { return new URL(`../assets/imgs/${name}`, import.meta.url).href; }; var pathToUrl = (path) => { if (path.includes("http")) { window.open(path, "_blank"); } else { router.push(path); } }; const downloadBlob = (blobData, type, fileName) => { const blob = new Blob([blobData], { type, }); const url = window.URL.createObjectURL(blob); const aLink = document.createElement("a"); aLink.style.display = "none"; aLink.href = url; //指定文件名,不指定就默认 if (fileName) aLink.setAttribute("download", fileName); document.body.appendChild(aLink); aLink.click(); /** 下载完成移除元素 */ document.body.removeChild(aLink); /** 释放掉blob对象 */ window.URL.revokeObjectURL(url); }; export { GetProperty, dateFormat, dateStringTransform, dateStringTransformChat, downloadFileFormat, downloadFileFormatNew, numberFormat, CreationDateDesc, join_str, getQueryString, timeForMatReduce, timeForMatAdd, timeDifference, useConsole, getFirstChild, getImageUrl, downloadBlob, };