import store from "@/js/store"; import JSEncrypt from "jsencrypt"; //引入加密 /** * 获取字典数据列表 * @param dictType 字典类型 */ export function getDictDataList(dictType) { const type = window.SITE_CONFIG["dictList"].find( (element) => element.dictType === dictType ); if (type) { return type.dataList; } else { return []; } } /** * 获取字典名称 * @param dictType 字典类型 * @param dictValue 字典值 */ export function getDictLabel(dictType, dictValue) { const type = window.SITE_CONFIG["dictList"].find( (element) => element.dictType === dictType ); if (type) { const val = type.dataList.find( (element) => element.dictValue === dictValue.toString() ); if (val) { return val.dictLabel; } else { return dictValue; } } else { return dictValue; } } /** * 清除登录信息 */ export function clearLoginInfo() { console.log('==========clearLoginInfo') store.commit("resetStore"); localStorage.removeItem("token"); localStorage.setItem('thePageAtExit', location.href); window.SITE_CONFIG["dynamicMenuRoutesHasAdded"] = false; } /** * 获取uuid */ export function getUUID() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => { return (c === "x" ? (Math.random() * 16) | 0 : "r&0x3" | "0x8").toString( 16 ); }); } /** * 获取svg图标(id)列表 */ export function getIconList() { var res = []; document.querySelectorAll("svg symbol").forEach((item) => { res.push(item.id); }); return res; } /** * 树形数据转换 * @param {*} data * @param {*} id * @param {*} pid */ export function treeDataTranslate(data, id = "id", pid = "pid") { var res = []; var temp = {}; for (var i = 0; i < data.length; i++) { temp[data[i][id]] = data[i]; } for (var k = 0; k < data.length; k++) { if (!temp[data[k][pid]] || data[k][id] === data[k][pid]) { res.push(data[k]); continue; } if (!temp[data[k][pid]]["children"]) { temp[data[k][pid]]["children"] = []; } temp[data[k][pid]]["children"].push(data[k]); data[k]["_level"] = (temp[data[k][pid]]._level || 0) + 1; } return res; } // 时间格式化 export function dateFormats(fmt, date) { let ret; const _date = new Date(date); 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 (const 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; } // 根据身份证计算出生日期,性别,年龄 export function computedCard(idCard) { let sex = null; let birth = null; let myDate = new Date(); let month = myDate.getMonth() + 1; let day = myDate.getDate(); let age = 0; if (idCard.length === 18) { age = myDate.getFullYear() - idCard.substring(6, 10) - 1; sex = idCard.substring(16, 17); birth = idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14); if ( idCard.substring(10, 12) < month || (idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day) ) age++; } if (idCard.length === 15) { age = myDate.getFullYear() - idCard.substring(6, 8) - 1901; sex = idCard.substring(13, 14); birth = "19" + idCard.substring(6, 8) + "-" + idCard.substring(8, 10) + "-" + idCard.substring(10, 12); if ( idCard.substring(8, 10) < month || (idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day) ) age++; } if (sex % 2 === 0) sex = "0"; // 性别代码 1代表男,0代表女,暂时不涉及其他类型性别 else sex = "1"; return { age, sex, birth }; } // 将数组分成小块数组的集合 export function spliceIntoChunks(arr, chunkSize) { const res = []; while (arr.length > 0) { const chunk = arr.splice(0, chunkSize); res.push(chunk); } return res; } // 获取当前时间 如果有指定time则按指定的来 export function getCurrentDate(hour, min, sec) { console.log(hour, min, sec); let date = new Date(); if (hour) { date.setHours(hour); console.log(hour); } if (min !== undefined) { date.setMinutes(min); console.log(min); } if (sec !== undefined) { date.setSeconds(sec); console.log(sec); } return date; } // 加密 export function encryptedData(key, data) { // 新建JSEncrypt对象 let encryptor = new JSEncrypt(); // 设置公钥 encryptor.setPublicKey(key); // 加密数据 return encryptor.encrypt(data); }