exportconstfindParent=(menu, id)=>{for(let i =0; i < menu.length; i++){if(menu[i].children.length !=0){for(let j =0; j < menu[i].children.length; j++){if(menu[i].children[j].id == id){return menu[i]}else{if(menu[i].children[j].children.length !=0){returnfindParent(menu[i].children[j].children, id)}}}}}}
动态插入css
exportconstloadStyle=url=>{const link = document.createElement('link')
link.type ='text/css'
link.rel ='stylesheet'
link.href = url
const head = document.getElementsByTagName('head')[0]
head.appendChild(link)}
复制代码
根据字典的value查找对应的index
exportconstfindArray=(dic, value)=>{for(let i =0; i < dic.length; i++){if(dic[i].value == value){return i
}}return-1}
根据字典的value显示label
exportconstfindByvalue=(dic, value)=>{let result =''if(validatenull(dic))return value
if(typeof(value)==='string'||typeof(value)==='number'||typeof(value)==='boolean'){let index =0
index =findArray(dic, value)if(index !=-1){
result = dic[index].label
}else{
result = value
}}elseif(value instanceofArray){
result =[]let index =0
value.forEach(ele=>{
index =findArray(dic, ele)if(index !=-1){
result.push(dic[index].label)}else{
result.push(value)}})
result = result.toString()}return result
}
生成随机len位数字
exportconstrandomLenNum=(len, date)=>{let random =''
random = Math.ceil(Math.random()*100000000000000).toString().substr(0, len ||4)if(date) random = random + Date.now()return random
}
/**
* 获取距离当前时间多久的时间
* @param type year年/month月/week周/day日
* @param number -为之前/+为之后
*/exportconstgetBeforAfterTime=function(type=null,number=0){var nowdate =newDate();switch(type){case"day"://取number天前、后的时间
nowdate.setTime(nowdate.getTime()+(24*3600*1000)* number);var y = nowdate.getFullYear();var m = nowdate.getMonth()+1;var d = nowdate.getDate();var retrundate = y +'/'+ m +'/'+ d;break;case"week"://取number周前、后的时间
nowdate.setTime(nowdate.getTime()+(7*24*3600*1000)* number);var y = nowdate.getFullYear();var m = nowdate.getMonth()+1;var d = nowdate.getDate();var retrundate = y +'/'+ m +'/'+ d;break;case"month"://取number月前、后的时间
nowdate.setMonth(nowdate.getMonth()+ number);var y = nowdate.getFullYear();var m = nowdate.getMonth()+1;var d = nowdate.getDate();var retrundate = y +'/'+ m +'/'+ d;break;case"year"://取number年前、后的时间
nowdate.setFullYear(nowdate.getFullYear()+ number);var y = nowdate.getFullYear();var m = nowdate.getMonth()+1;var d = nowdate.getDate();var retrundate = y +'/'+ m +'/'+ d;break;default://取当前时间var y = nowdate.getFullYear();var m = nowdate.getMonth()+1;var d = nowdate.getDate();var retrundate = y +'/'+ m +'/'+ d;}return retrundate;}
exportconstvaildatePc=function(){const userAgentInfo = navigator.userAgent
const Agents =['Android','iPhone','SymbianOS','Windows Phone','iPad','iPod']let flag =truefor(var v =0; v < Agents.length; v++){if(userAgentInfo.indexOf(Agents[v])>0){
flag =falsebreak}}return flag
}
exportfunctionvalidatenull(val){if(typeof val ==='boolean'){returnfalse}if(typeof val ==='number'){returnfalse}if(val instanceofArray){if(val.length ==0)returntrue}elseif(val instanceofObject){if(JSON.stringify(val)==='{}')returntrue}else{if(val =='null'|| val ==null|| val =='undefined'|| val ==undefined|| val =='')returntruereturnfalse}returnfalse}
判断身份证号码
exportfunctioncardid(code){let list =[]let result =truelet msg =''var city ={11:'北京',12:'天津',13:'河北',14:'山西',15:'内蒙古',21:'辽宁',22:'吉林',23:'黑龙江 ',31:'上海',32:'江苏',33:'浙江',34:'安徽',35:'福建',36:'江西',37:'山东',41:'河南',42:'湖北 ',43:'湖南',44:'广东',45:'广西',46:'海南',50:'重庆',51:'四川',52:'贵州',53:'云南',54:'西藏 ',61:'陕西',62:'甘肃',63:'青海',64:'宁夏',65:'新疆',71:'台湾',81:'香港',82:'澳门',91:'国外 '}if(!validatenull(code)){if(code.length ==18){if(!code ||!/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)){
msg ='证件号码格式错误'}elseif(!city[code.substr(0,2)]){
msg ='地址编码错误'}else{// 18位身份证需要验证最后一位校验位
code = code.split('')// ∑(ai×Wi)(mod 11)// 加权因子var factor =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]// 校验位var parity =[1,0,'X',9,8,7,6,5,4,3,2,'x']var sum =0var ai =0var wi =0for(var i =0; i <17; i++){
ai = code[i]
wi = factor[i]
sum += ai * wi
}if(parity[sum %11]!= code[17]){
msg ='证件号码校验位错误'}else{
result =false}}}else{
msg ='证件号码长度不为18位'}}else{
msg ='证件号码不能为空'}
list.push(result)
list.push(msg)return list
}