Pārlūkot izejas kodu

[edit][错误页]

zhangwei 2 gadi atpakaļ
vecāks
revīzija
30257bc470

+ 33 - 0
layouts/error.vue

@@ -0,0 +1,33 @@
+<template>
+	<div v-if="error.statusCode == 500">{{ error.message || 'error' }}</div>
+</template>
+
+<script>
+import Report from '@/log-center/log';
+import { getMid, appVersionCode } from '@/utils/help';
+export default {
+	name: 'error',
+	props: ['error'],
+	data() {
+		return {
+			mid: getMid(),
+		};
+	},
+	mounted() {
+		// 埋点
+		Report.reportLog({
+			baseInfo: {
+				appVersionCode: appVersionCode,
+				mid: this.mid,
+				pageSource: Report.pageSource.error_landing_page,
+				machineCode: this.mid,
+			},
+			params: {
+				url: window.location.href,
+			},
+		});
+	},
+};
+</script>
+
+<style lang="scss"></style>

+ 1 - 0
log-center/logEnum.js

@@ -28,6 +28,7 @@ export const objectType = {
 };
 
 export const pageSource = {
+	error_landing_page: 'error-landing-page',
 	newUserLandingPage: 'pc-landing-page',
 	mobileLandingPage: 'mobile-landing-page',
 	tutorialPage: 'tutorial-page',

+ 2 - 2
nuxt.config.js

@@ -123,12 +123,12 @@ export default {
 				{
 					name: 'HealthCheck',
 					path: '/healthcheck',
-					component: resolve(__dirname, 'pages/healthcheck.vue'),
+					component: resolve(__dirname, 'pages/_system/healthcheck.vue'),
 				},
 				{
 					name: 'custom',
 					path: '*',
-					component: resolve(__dirname, 'pages/404.vue'),
+					component: resolve(__dirname, 'pages/_system/404.vue'),
 				}
 			);
 		},

+ 0 - 10
pages/404.vue

@@ -1,10 +0,0 @@
-<template>
-    <div>404</div>
-</template>
-
-<script>
-
-</script>
-
-<style lang="scss" >
-</style>

+ 7 - 0
pages/_system/404.vue

@@ -0,0 +1,7 @@
+<template>
+	<div>404</div>
+</template>
+
+<script></script>
+
+<style lang="scss"></style>

+ 0 - 0
pages/healthcheck.vue → pages/_system/healthcheck.vue


+ 6 - 1
pages/course/index.vue

@@ -120,7 +120,7 @@ export default {
 		},
 	},
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			url: `${baseURL}/denet/base/guide/getAllMobilePageGuide`,
@@ -131,6 +131,11 @@ export default {
 				playType: route.query.playType,
 				course: route.query.useful === UsefulType.unUseful || route.query.playType === PlayType.NFT ? result.data.withoutRewardGuideImages : result.data.withRewardGuideImages,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	mounted() {

+ 10 - 6
pages/index.vue

@@ -210,12 +210,12 @@
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { isBrowser, appType, getDetailSSR } from '@/utils/help.js';
-import Report from '../log-center/log';
+import Report from '@/log-center/log';
 import { Toast } from 'vant';
-import FontAmount from '../components/FontAmount.vue';
-import MobileGuidePage from '../components/MobileGuidePage.vue';
+import FontAmount from '@/components/FontAmount.vue';
+import MobileGuidePage from '@/components/MobileGuidePage.vue';
 // eslint-disable-next-line no-unused-vars
-import { RewardType, PlayType } from '../types';
+import { RewardType, PlayType } from '@/types';
 
 var moment = require('moment');
 var ClipboardJS = require('clipboard');
@@ -597,7 +597,7 @@ export default {
 	},
 
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			params: {
@@ -605,7 +605,6 @@ export default {
 			},
 			url: `${baseURL}/denet/post/getDetail`,
 		});
-
 		if (result.code == 0) {
 			if (result.data && result.data.postBizData && typeof result.data.postBizData == 'string') {
 				result.data.postBizData = JSON.parse(result.data.postBizData);
@@ -620,6 +619,11 @@ export default {
 				customCover: result.data.postBizData && result.data.postBizData.posterType == 2 ? 1 : 0,
 				customGiveaway: result.data.postBizData && result.data.postBizData.rewardType == 2 ? 1 : 0,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 

+ 11 - 6
pages/luckdraw.vue

@@ -179,11 +179,11 @@ import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
 import { isBrowser, appType, appVersionCode, formatSecondsAsDaysOrTime, getDetailSSR } from '@/utils/help.js';
-import FontAmount from '../components/FontAmount.vue';
-import CustomCardCover from '../components/CustomCardCover.vue';
-import Report from '../log-center/log';
-import { RewardType, PlayType } from '../types';
-import MobileGuidePage from '../components/MobileGuidePage.vue';
+import FontAmount from '@/components/FontAmount.vue';
+import CustomCardCover from '@/components/CustomCardCover.vue';
+import Report from '@/log-center/log';
+import { RewardType, PlayType } from '@/types';
+import MobileGuidePage from '@/components/MobileGuidePage.vue';
 
 var moment = require('moment');
 var ClipboardJS = require('clipboard');
@@ -303,7 +303,7 @@ export default {
 		});
 	},
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			params: {
@@ -325,6 +325,11 @@ export default {
 				customCover: result.data.postBizData && result.data.postBizData.posterType == 2 ? 1 : 0,
 				customGiveaway: result.data.postBizData && result.data.postBizData.rewardType == 2 ? 1 : 0,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	methods: {

+ 6 - 1
pages/nft/group.vue

@@ -137,7 +137,7 @@ export default {
 		};
 	},
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			params: {
@@ -150,6 +150,11 @@ export default {
 				detail: result.data,
 				postBizData: JSON.parse(result.data.postBizData),
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	created() {

+ 6 - 1
pages/nft/index.vue

@@ -114,7 +114,7 @@ export default {
 		};
 	},
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			params: {
@@ -128,6 +128,11 @@ export default {
 			return {
 				detail: result.data,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	created() {

+ 6 - 1
pages/toolbox/index.vue

@@ -105,7 +105,7 @@ export default {
 		InstallExtension,
 	},
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			params: {
@@ -127,6 +127,11 @@ export default {
 			return {
 				detail: result.data,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	mounted() {

+ 6 - 1
pages/treasure/index.vue

@@ -122,7 +122,7 @@ export default {
 		};
 	},
 	async asyncData(context) {
-		let { route } = context;
+		let { route, error } = context;
 		let result = await getDetailSSR({
 			context,
 			params: {
@@ -137,6 +137,11 @@ export default {
 				detail: result.data,
 				pageLink: `${jumpUrl}treasure/${route.params.id}`,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	created() {

+ 6 - 1
pages/treasure/invite.vue

@@ -133,7 +133,7 @@ export default {
 		};
 	},
 	async asyncData(context) {
-		const { route } = context;
+		const { route, error } = context;
 
 		let result = await getDetailSSR({
 			context,
@@ -153,6 +153,11 @@ export default {
 				detail: result.data,
 				pageLink,
 			};
+		} else {
+			return error({
+				message: result.msg,
+				statusCode: 500,
+			});
 		}
 	},
 	created() {