|
|
|
|
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);
|
|
|
|
|
}
|