yyzone
Version:
yyzone vue components and utils
112 lines (107 loc) • 3.5 kB
JavaScript
import axios from 'axios'
function getOS() {
const sUserAgent = navigator.userAgent
const isWin = navigator.platform == 'Win32' || navigator.platform == 'Windows'
const isMac =
navigator.platform == 'Mac68K' || navigator.platform == 'MacPPC' || navigator.platform == 'Macintosh' || navigator.platform == 'MacIntel'
if (isMac) return 'Mac'
const isUnix = navigator.platform == 'X11' && !isWin && !isMac
if (isUnix) return 'Unix'
const isLinux = String(navigator.platform).indexOf('Linux') > -1
if (isLinux) return 'Linux'
if (isWin) {
const isWin2K = sUserAgent.indexOf('Windows NT 5.0') > -1 || sUserAgent.indexOf('Windows 2000') > -1
if (isWin2K) return 'Win2000'
const isWinXP = sUserAgent.indexOf('Windows NT 5.1') > -1 || sUserAgent.indexOf('Windows XP') > -1
if (isWinXP) return 'WinXP'
const isWin2003 = sUserAgent.indexOf('Windows NT 5.2') > -1 || sUserAgent.indexOf('Windows 2003') > -1
if (isWin2003) return 'Win2003'
const isWinVista = sUserAgent.indexOf('Windows NT 6.0') > -1 || sUserAgent.indexOf('Windows Vista') > -1
if (isWinVista) return 'WinVista'
const isWin7 = sUserAgent.indexOf('Windows NT 6.1') > -1 || sUserAgent.indexOf('Windows 7') > -1
if (isWin7) return 'Win7'
const isWin10 = sUserAgent.indexOf('Windows NT 10') > -1 || sUserAgent.indexOf('Windows 10') > -1
if (isWin10) return 'Win10'
}
return 'other'
}
function IEVersion() {
const userAgent = navigator.userAgent
const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1
const isEdge = userAgent.indexOf('Edge') > -1 && !isIE
const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1
if (isIE) {
const reIE = new RegExp('MSIE (\\d+\\.\\d+);')
reIE.test(userAgent)
const fIEVersion = parseFloat(RegExp['$1'])
if (fIEVersion == 7) {
return 7
} else if (fIEVersion == 8) {
return 8
} else if (fIEVersion == 9) {
return 9
} else if (fIEVersion == 10) {
return 10
} else {
return 6
}
} else if (isEdge) {
return 'edge'
} else if (isIE11) {
return 11
} else {
return 0
}
}
function getBrowse() {
const browser = {}
const userAgent = navigator.userAgent.toLowerCase()
let s
s = (s = userAgent.match(/firefox\/([\d.]+)/))
? (browser.firefox = s[1])
: (s = userAgent.match(/chrome\/([\d.]+)/))
? (browser.chrome = s[1])
: (s = userAgent.match(/opera.([\d.]+)/))
? (browser.opera = s[1])
: (s = userAgent.match(/version\/([\d.]+).*safari/))
? (browser.safari = s[1])
: 0
let version = ''
const isIE = IEVersion()
if (isIE) {
version = 'IE ' + isIE
} else {
if (browser.firefox) {
version = 'firefox ' + browser.firefox
} else {
if (browser.chrome) {
version = 'chrome ' + browser.chrome
} else {
if (browser.opera) {
version = 'opera ' + browser.opera
} else {
if (browser.safari) {
version = 'safari ' + browser.safari
} else {
version = '未知浏览器'
}
}
}
}
}
return version
}
export default function sendOperationLog(host, data = {}) {
axios({
url: `${host}/rest/v1/log/operation/save`,
method: "POST",
data: {
OS: getOS(),
browser: getBrowse(),
operDate: new Date().getTime(),
device: 1,
...data
},
withCredentials: true
})
}