市北互联平台前端仓库
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.
 
 
 
 

148 lines
3.8 KiB

import Cookies from 'js-cookie'
import store from '@/store'
/**
* 获取字典数据列表
* @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() {
store.commit('resetStore')
Cookies.remove('token')
localStorage.setItem("token", '');
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}
}