UNPKG

yyzone

Version:

yyzone vue components and utils

112 lines (107 loc) 3.5 kB
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 }) }