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.
138 lines
4.4 KiB
138 lines
4.4 KiB
import cookies from './util.cookies' |
|
import {_local,_session} from './util.db' |
|
import { Message } from 'element-ui' |
|
|
|
const util = { |
|
cookies, |
|
local: _local, |
|
session: _session, |
|
// 传入身份证获取生日 |
|
getBirth(idCard) { |
|
var birthday = ""; |
|
if(idCard != null && idCard != ""){ |
|
if(idCard.length == 15){ |
|
birthday = "19"+idCard.slice(6,12); |
|
} else if(idCard.length == 18){ |
|
birthday = idCard.slice(6,14); |
|
} |
|
birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-"); |
|
//通过正则表达式来指定输出格式为:1990-01-01 |
|
} |
|
return birthday; |
|
}, |
|
// new Date('2020-11-12 00:00:00') 在IE下失效,因此把-替换成/ |
|
dateCompatible(date) { |
|
return date.replace(/\-/g, '/') |
|
}, |
|
// 日期时间前面补零 |
|
formateTime(num) { |
|
return num < 10 ? `0${num}` : num |
|
}, |
|
//返回格式化时间,传参例如:"yyyy-MM-dd hh:mm:ss" |
|
formatDate(fmt,date) { |
|
var date = date ? date : new Date() |
|
var o = { |
|
"M+" : date.getMonth()+1, //月份 |
|
"d+" : date.getDate(), //日 |
|
"h+" : date.getHours(), //小时 |
|
"m+" : date.getMinutes(), //分 |
|
"s+" : date.getSeconds(), //秒 |
|
"q+" : Math.floor((date.getMonth()+3)/3), //季度 |
|
"S" : date.getMilliseconds() //毫秒 |
|
}; |
|
if(/(y+)/.test(fmt)) { |
|
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); |
|
} |
|
for(var k in o) { |
|
if(new RegExp("("+ k +")").test(fmt)){ |
|
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); |
|
} |
|
} |
|
return fmt; |
|
}, |
|
// 移除数组中指定值 |
|
removeByValue(arr, val) { |
|
let index = arr.indexOf(val) |
|
index>0?arr.splice(i, 1):'' |
|
// for(var i=0; i<arr.length; i++) { |
|
// if(arr[i] == val) { |
|
// arr.splice(i, 1); |
|
// break; |
|
// } |
|
// } |
|
}, |
|
// 传入文件后缀判断是否是视频 |
|
isVideo(ext) { |
|
if('mp4,3gp,mov,m4v,avi,dat,mkv,flv,vob,rmvb,rm,qlv'.includes(ext)) return true |
|
return false |
|
}, |
|
// 传入文件后缀判断是否是音频 |
|
isAudio(ext) { |
|
if('mp3,aac,ape,flac,wav,wma,amr,mid'.includes(ext)) return true |
|
return false |
|
}, |
|
// 传入文件后缀判断是否是图片 |
|
isImg(ext) { |
|
if('jpg,jpeg,png,gif,svg,psd'.includes(ext)) return true |
|
return false |
|
}, |
|
// 传入文件后缀判断是否是pdf以外的文档 |
|
isDoc(ext) { |
|
if(!util.isVideo(ext) && !util.isAudio(ext) && !util.isImg(ext) && ext != 'pdf') return true |
|
return false |
|
}, |
|
// 循环去除html标签 |
|
removeHtmlTag(list,attr) { |
|
list.map(n => { |
|
n[attr] = n[attr].replace(/<\/?.+?>/gi,'') |
|
}) |
|
return list |
|
}, |
|
// 传入文件名获取文件后缀 |
|
getFileExt(fileName) { |
|
return fileName.substring(fileName.lastIndexOf('.') + 1) |
|
}, |
|
// 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域 |
|
downloadFile(fileName,url) { |
|
var x = new XMLHttpRequest() |
|
x.open("GET", url, true) |
|
x.responseType = 'blob' |
|
x.onload=function(e) { |
|
var url = window.URL.createObjectURL(x.response) |
|
var a = document.createElement('a') |
|
a.href = url |
|
a.download = fileName |
|
a.click() |
|
} |
|
x.send() |
|
}, |
|
// 传入文件名和数据,下载文件 |
|
downloadFileDirect(fileName,data) { |
|
if ('download' in document.createElement('a')) { // 非IE下载 |
|
const elink = document.createElement('a') |
|
elink.download = fileName |
|
elink.style.display = 'none' |
|
elink.href = URL.createObjectURL(data) |
|
document.body.appendChild(elink) |
|
elink.click() |
|
URL.revokeObjectURL(elink.href) // 释放URL 对象 |
|
document.body.removeChild(elink) |
|
} else { // IE10+下载 |
|
navigator.msSaveBlob(data, fileName) |
|
} |
|
}, |
|
// 成功提示 |
|
successMsg(message,duration = 3000) { |
|
return Message.success({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration}) |
|
}, |
|
// 警告提示 |
|
warningMsg(message,duration = 3000) { |
|
return Message.warning({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration}) |
|
}, |
|
// 错误提示 |
|
errorMsg(message,duration = 3000) { |
|
return Message.error({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration}) |
|
}, |
|
} |
|
|
|
export default util |