| 
					
				 | 
			
			
				@@ -1,55 +1,59 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import axios from 'axios'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { logType } from './logEnum.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { getBrowser } from '../utils/help'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { getBrowser, getUserInfo, appVersionCode } from '../utils/help'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const logApi = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	prod: 'https://log.weiqumeta.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	pre: 'https://prelog.weiqumeta.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	test: 'https://testlog.weiqumeta.com' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	test: 'https://testlog.weiqumeta.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const logAPIUrl = logApi[process.env.NUXT_ENV.MODE] + '/log-center' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const logAPIUrl = logApi[process.env.NUXT_ENV.MODE] + '/log-center'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @eventData 以键值对存储,会在最终上报里解开的参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @extParams 最终上报到阿里云以json字符串存储的参数,如果extparams传入的不是obj会转换成obj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export function reportLog(params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    paramsPretreatmentAndRequest(logType.denet, params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	paramsPretreatmentAndRequest(logType.denet, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function paramsPretreatmentAndRequest(logType, params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let {eventData = {}, extParams = {}} = params.params ||  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        params: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let platform = isMobile ? `mobile` : `pc`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let browser = getBrowser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let extData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        url: location.href, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        browser, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        platform, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ...eventData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    eventData = wrapObject(extData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    params.params.logType = logType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    params.params.eventData = JSON.stringify(eventData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    params.params.extParams  = JSON.stringify(extParams) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    axios.post(`${logAPIUrl}/statistics/uploadLogFromFrontend`, params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let { eventData = {}, extParams = {} } = params.params || { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		params: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	const userInfo = getUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (userInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		params.baseInfo.loginUid = userInfo.uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	params.baseInfo.appVersionCode = appVersionCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let platform = isMobile ? `mobile` : `pc`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let browser = getBrowser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let extData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		url: location.href, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		browser, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		platform, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		...eventData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	eventData = wrapObject(extData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	params.params.logType = logType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	params.params.eventData = JSON.stringify(eventData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	params.params.extParams = JSON.stringify(extParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	axios.post(`${logAPIUrl}/statistics/uploadLogFromFrontend`, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function wrapObject(extParams) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (typeDecide(extParams, 'Object')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return extParams 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return { 'defaultExt': extParams } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (typeDecide(extParams, 'Object')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return extParams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return { defaultExt: extParams }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 检测对象类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function typeDecide(o, type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return Object.prototype.toString.call(o) === `[object ${type}]`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return Object.prototype.toString.call(o) === `[object ${type}]`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |