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.
 
 
 
 

99 lines
2.9 KiB

/**
* 判断终端以及浏览器
* userAgent string User-Agent信息
*/
export const readUserAgent = ua => {
const data = {
terminal: '',
browser: '',
terminalType: {}
}
data.terminalType = {
trident: ua.indexOf('Trident') > -1, // IE内核
presto: ua.indexOf('Presto') > -1, // opera内核
webKit: ua.indexOf('AppleWebKit') > -1, // 苹果、谷歌内核
gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1, // 火狐内核
mobile: !!ua.match(/AppleWebKit.*Mobile.*/), // 是否为移动终端
ios: !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
android: ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1, // android终端
iPhone: ua.indexOf('iPhone') > -1, // 是否为iPhone或者QQHD浏览器
iPad: ua.indexOf('iPad') > -1, // 是否iPad
webApp: ua.indexOf('Safari') === -1, // 是否web应该程序,没有头部与底部
weixin: ua.indexOf('MicroMessenger') > -1, // 是否微信 (2015-01-22新增)
qq: ua.match(/\sQQ/i) === ' qq' // 是否QQ
}
if (
data.terminalType.ios ||
data.terminalType.iPhone ||
data.terminalType.iPad
) {
data.terminal = '苹果'
} else if (data.terminalType.android) {
data.terminal = '安卓'
} else {
data.terminal = 'PC'
}
if (/msie/i.test(ua) && !/opera/.test(ua)) {
data.browser = 'IE'
} else if (/firefox/i.test(ua)) {
data.browser = 'Firefox'
} else if (/chrome/i.test(ua) && /webkit/i.test(ua) && /mozilla/i.test(ua)) {
data.browser = 'Chrome'
} else if (/opera/i.test(ua)) {
data.browser = 'Opera'
} else if (/iPad/i.test(ua)) {
data.browser = 'iPad'
} else if (
/webkit/i.test(ua) &&
!(/chrome/i.test(ua) && /webkit/i.test(ua) && /mozilla/i.test(ua))
) {
data.browser = 'Safari'
} else {
data.browser = '未知'
}
return data
}
// 格式化文件大小 单位:B、KB、MB、GB
const renderSize = value => {
if (value == null || value == '') {
return "0 B"
}
var unitArr = new Array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
var index = 0
var srcsize = parseFloat(value)
index = Math.floor(Math.log(srcsize) / Math.log(1024))
var size = srcsize / Math.pow(1024, index)
size = size.toFixed(2)
if (unitArr[index]) {
return size + unitArr[index]
}
return '文件太大'
}
const convertEnum = obj => {
const list = []
if (obj) {
for (const key in obj) {
list.push({
text: obj[key],
value: key
})
}
}
return list
}
const copy = msg => {
if (msg) {
const oInput = document.createElement('input') // 创建一个隐藏input(重要!)
oInput.value = msg // 赋值
document.body.appendChild(oInput)
oInput.select() // 选择对象
document.execCommand("Copy") // 执行浏览器复制命令
oInput.className = 'oInput'
oInput.style.display = 'none'
}
}
export { renderSize, convertEnum, copy }