|
@@ -1,22 +1,95 @@
|
|
|
-import { useRoute } from 'vue-router';
|
|
|
+import { state } from '@/state';
|
|
|
+import dayjs from 'dayjs';
|
|
|
+import request from '@/helpers/request';
|
|
|
+
|
|
|
+/** 错误信息列表 */
|
|
|
+export const api_sysExceptionLogSave = (params: any): Promise<any> => {
|
|
|
+ return request.post('/edu-app/sysExceptionLog/save', {
|
|
|
+ data: params
|
|
|
+ });
|
|
|
+};
|
|
|
|
|
|
/**
|
|
|
* 页面有报错时上传错误日志
|
|
|
* @params
|
|
|
*/
|
|
|
export default function useErrorLog() {
|
|
|
- const _whiteBlanks = [];
|
|
|
+ const _whiteBlanks = [
|
|
|
+ '/student-register',
|
|
|
+ '/register-new',
|
|
|
+ '/school-register',
|
|
|
+ '/teaher-register',
|
|
|
+ '/instrumentDetail',
|
|
|
+ '/famousMusicDetail',
|
|
|
+ '/musicianDetail',
|
|
|
+ '/tempo-practice',
|
|
|
+ '/order-detail',
|
|
|
+ '/member-center',
|
|
|
+ '/unit-detail',
|
|
|
+ '/practice-mode',
|
|
|
+ '/error-question-mode',
|
|
|
+ '/examination-mode',
|
|
|
+ '/courseware-list',
|
|
|
+ '/co-ai',
|
|
|
+ '/co-ai-detail',
|
|
|
+ '/courseware-play',
|
|
|
+ '/creation'
|
|
|
+ ];
|
|
|
+
|
|
|
+ const _uploadErrorLog = async (event: any) => {
|
|
|
+ try {
|
|
|
+ state.user.data.phone;
|
|
|
+
|
|
|
+ /**
|
|
|
+ 日志上报:1.手机号、应用端 iOS|安卓 App类型(老师端|学生端|web)、App版本、系统信息(系统版本|web userAgent)、错误信息(什么位置出现,错误内容) 错误时间 上报类型(错误、埋点)
|
|
|
+ Phone、 type 、content
|
|
|
+ 手机号|上报类型 (error、record)|content 内容jsonString (应用端 iOS|安卓 App类型(老师端|学生端|web)、App版本、系统信息(系统版本|web userAgent)、错误信息(什么位置出现,错误内容) 错误时间)
|
|
|
+
|
|
|
+ 手机号 |上报类型 |业务平台|应用端(iOS|安卓)|
|
|
|
+ */
|
|
|
+ console.log(state.user, window.location.href);
|
|
|
+ const href = window.location.href;
|
|
|
+ const index = _whiteBlanks.findIndex(
|
|
|
+ (item: string) => href.indexOf(item) !== -1
|
|
|
+ );
|
|
|
|
|
|
- const _uploadErrorLog = async (e: any) => {
|
|
|
- const route = useRoute();
|
|
|
+ if (window.location.hash === '#/' || index !== -1) {
|
|
|
+ }
|
|
|
+ // 错误信息
|
|
|
+ // 资源加载失败,可以在这里处理错误
|
|
|
+ const contentError = `Error message: ${event.target.tagName || ''},${
|
|
|
+ event.target.src || event.target.href || ''
|
|
|
+ }、lineno: ${event.target.lineno || ''}、message: ${
|
|
|
+ event.target.message || ''
|
|
|
+ }、filename: ${event.target.filename || ''}、fileUrl: ${
|
|
|
+ window.location.href
|
|
|
+ }`;
|
|
|
+ // }
|
|
|
|
|
|
- console.log(route, e);
|
|
|
+ const params = [
|
|
|
+ {
|
|
|
+ clientType: 'STUDENT',
|
|
|
+ phone: state.user.data?.phone,
|
|
|
+ userAgent: window.navigator.userAgent,
|
|
|
+ appType: 'WEB',
|
|
|
+ content: contentError,
|
|
|
+ exceptionType: 'ERROR',
|
|
|
+ exceptionTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
|
|
+ deviceType: null,
|
|
|
+ deviceVersion: null
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ console.log('errorLog', params);
|
|
|
+ // await api_sysExceptionLogSave(params);
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
};
|
|
|
/**
|
|
|
* 开始监听错误日志并上传
|
|
|
*/
|
|
|
const startListenErrorLog = () => {
|
|
|
- // console.log('mount useErrorLog');
|
|
|
+ console.log('mount useErrorLog');
|
|
|
window.addEventListener('error', _uploadErrorLog);
|
|
|
};
|
|
|
|