城阳pc工作端前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

212 lines
4.9 KiB

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