Ver código fonte

[edit][增加ip]

zhangwei 2 anos atrás
pai
commit
43e177a85d
9 arquivos alterados com 152 adições e 132 exclusões
  1. 22 11
      pages/course/index.vue
  2. 15 16
      pages/index.vue
  3. 14 16
      pages/luckdraw.vue
  4. 9 11
      pages/nft/group.vue
  5. 10 11
      pages/nft/index.vue
  6. 13 15
      pages/toolbox/index.vue
  7. 10 11
      pages/treasure/index.vue
  8. 10 13
      pages/treasure/invite.vue
  9. 49 28
      utils/help.js

+ 22 - 11
pages/course/index.vue

@@ -23,9 +23,8 @@
 
 <script>
 import { PlayType, UsefulType } from '../../types';
-import axios from 'axios';
 import Report from '../../log-center/log';
-import { getQueryString, baseURL, appVersionCode, getMid, getStorage, removeStorage } from '../../utils/help';
+import { getQueryString, baseURL, getMid, getStorage, removeStorage, GetDetailSSR } from '../../utils/help';
 
 export default {
 	name: 'course',
@@ -120,19 +119,17 @@ export default {
 			Report.reportLog(logData);
 		},
 	},
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/base/guide/getAllMobilePageGuide`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
+			url: `${baseURL}/denet/base/guide/getAllMobilePageGuide`,
 		});
-		if (data.code == 0) {
+		if (result.code == 0) {
 			return {
 				useful: route.query.useful,
 				playType: route.query.playType,
-				course: route.query.useful === UsefulType.unUseful || route.query.playType === PlayType.NFT ? data.data.withoutRewardGuideImages : data.data.withRewardGuideImages,
+				course: route.query.useful === UsefulType.unUseful || route.query.playType === PlayType.NFT ? result.data.withoutRewardGuideImages : result.data.withRewardGuideImages,
 			};
 		}
 	},
@@ -163,6 +160,7 @@ body,
 body {
 	background-color: #f5f5f5;
 }
+
 .course-page {
 	min-height: 100%;
 	max-height: 100%;
@@ -184,27 +182,33 @@ body {
 		line-height: 22px;
 		color: #fff;
 		z-index: 1;
+
 		.tip-icon {
 			width: 36px;
 			margin-right: 20px;
 		}
 	}
+
 	&-pics-contail {
 		flex: 1;
 		overflow: hidden;
+
 		&-wrap {
 			display: flex;
 			transition: all 0.5s;
+
 			.pic {
 				width: 100%;
 			}
 		}
 	}
+
 	&-pagination {
 		display: flex;
 		justify-content: center;
 		align-items: center;
 		margin: 16px 0;
+
 		.spon {
 			width: 8px;
 			height: 8px;
@@ -212,14 +216,17 @@ body {
 			margin: 0 3px;
 			border-radius: 50%;
 		}
+
 		.active {
 			background: #1d9bf0;
 		}
 	}
+
 	&-btns {
 		width: 100%;
 		display: flex;
 		padding: 0 8px 30px;
+
 		&-btn {
 			flex: 1;
 			margin: 0 8px;
@@ -228,19 +235,23 @@ body {
 			text-align: center;
 			border-radius: 60px;
 		}
+
 		&-btn:active {
 			-webkit-tap-highlight-color: transparent;
 		}
+
 		.back {
 			background: rgba(29, 155, 240, 0.01);
 			border: 1px solid #e8e8e8;
 			color: #3d3d3d;
 		}
+
 		.next {
 			background: rgba(0, 0, 0, 0.01);
 			border: 1px solid #b5e1ff;
 			color: #1d9bf0;
 		}
+
 		.retweer {
 			background: #1d9bf0;
 			border: 1px solid #1d9bf0;

+ 15 - 16
pages/index.vue

@@ -209,7 +209,7 @@
 <script>
 import axios from 'axios';
 import Cookies from 'js-cookie';
-import { isBrowser, appType } from '../utils/help.js';
+import { isBrowser, appType, GetDetailSSR } from '@/utils/help.js';
 import Report from '../log-center/log';
 import { Toast } from 'vant';
 import FontAmount from '../components/FontAmount.vue';
@@ -596,30 +596,29 @@ export default {
 		},
 	},
 
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
 			params: {
 				postId: route.params.id || '',
 			},
+			url: `${baseURL}/denet/post/getDetail`,
 		});
-		if (data.code == 0) {
-			if (data.data && data.data.postBizData && typeof data.data.postBizData == 'string') {
-				data.data.postBizData = JSON.parse(data.data.postBizData);
+
+		if (result.code == 0) {
+			if (result.data && result.data.postBizData && typeof result.data.postBizData == 'string') {
+				result.data.postBizData = JSON.parse(result.data.postBizData);
 			}
-			if (data.data.postBizData === null) {
-				data.data.postBizData = {
+			if (result.data.postBizData === null) {
+				result.data.postBizData = {
 					postUserInfo: {},
 				};
 			}
 			return {
-				detail: data.data,
-				customCover: data.data.postBizData && data.data.postBizData.posterType == 2 ? 1 : 0,
-				customGiveaway: data.data.postBizData && data.data.postBizData.rewardType == 2 ? 1 : 0,
+				detail: result.data,
+				customCover: result.data.postBizData && result.data.postBizData.posterType == 2 ? 1 : 0,
+				customGiveaway: result.data.postBizData && result.data.postBizData.rewardType == 2 ? 1 : 0,
 			};
 		}
 	},

+ 14 - 16
pages/luckdraw.vue

@@ -178,7 +178,7 @@
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
-import { isBrowser, appType, appVersionCode, formatSecondsAsDaysOrTime } from '../utils/help.js';
+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';
@@ -302,30 +302,28 @@ export default {
 			this.layer_show = true;
 		});
 	},
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
 			params: {
 				postId: route.params.id || '',
 			},
+			url: `${baseURL}/denet/post/getDetail`,
 		});
-		if (data.code == 0) {
-			if (data.data && data.data.postBizData && typeof data.data.postBizData == 'string') {
-				data.data.postBizData = JSON.parse(data.data.postBizData);
+		if (result.code == 0) {
+			if (result.data && result.data.postBizData && typeof result.data.postBizData == 'string') {
+				result.data.postBizData = JSON.parse(result.data.postBizData);
 			}
-			if (data.data.postBizData === null) {
-				data.data.postBizData = {
+			if (result.data.postBizData === null) {
+				result.data.postBizData = {
 					postUserInfo: {},
 				};
 			}
 			return {
-				detail: data.data,
-				customCover: data.data.postBizData && data.data.postBizData.posterType == 2 ? 1 : 0,
-				customGiveaway: data.data.postBizData && data.data.postBizData.rewardType == 2 ? 1 : 0,
+				detail: result.data,
+				customCover: result.data.postBizData && result.data.postBizData.posterType == 2 ? 1 : 0,
+				customGiveaway: result.data.postBizData && result.data.postBizData.rewardType == 2 ? 1 : 0,
 			};
 		}
 	},

+ 9 - 11
pages/nft/group.vue

@@ -62,7 +62,7 @@
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
-import { isBrowser, appVersionCode, appType } from '../../utils/help.js';
+import { isBrowser, appVersionCode, appType, GetDetailSSR } from '@/utils/help.js';
 import Report from '@/log-center/log';
 const api = {
 	prod: 'https://api.denetme.net',
@@ -136,21 +136,19 @@ export default {
 			],
 		};
 	},
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
 			params: {
 				postId: route.params.id || '',
 			},
+			url: `${baseURL}/denet/post/getDetail`,
 		});
-		if (data.code == 0 && data.data !== null) {
+		if (result.code == 0 && result.data !== null) {
 			return {
-				detail: data.data,
-				postBizData: JSON.parse(data.data.postBizData),
+				detail: result.data,
+				postBizData: JSON.parse(result.data.postBizData),
 			};
 		}
 	},

+ 10 - 11
pages/nft/index.vue

@@ -38,7 +38,7 @@
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
-import { isBrowser, appVersionCode } from '../../utils/help.js';
+import { isBrowser, appVersionCode, GetDetailSSR } from '@/utils/help.js';
 import Report from '@/log-center/log';
 import { PlayType } from './../../types';
 
@@ -113,21 +113,20 @@ export default {
 			],
 		};
 	},
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/nft/project/getNftProjectInfo`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
 			params: {
 				nftProjectId: route.params.id || '',
 			},
+			url: `${baseURL}/denet/nft/project/getNftProjectInfo`,
 		});
-		if (data.code == 0 && data.data !== null) {
-			console.log(data.data);
+
+		if (result.code == 0 && result.data !== null) {
+			console.log(result.data);
 			return {
-				detail: data.data,
+				detail: result.data,
 			};
 		}
 	},

+ 13 - 15
pages/toolbox/index.vue

@@ -37,7 +37,7 @@
 import VLogo from '@/components/logo.vue';
 import InstallChrome from '@/components/InstallChrome.vue';
 import InstallExtension from '@/components/InstallExtension.vue';
-import { getBrowserType, baseURL, appVersionCode, jumpUrl, appType } from '@/utils/help.js';
+import { getBrowserType, baseURL, appVersionCode, jumpUrl, appType, GetDetailSSR } from '@/utils/help.js';
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
@@ -104,30 +104,28 @@ export default {
 		InstallChrome,
 		InstallExtension,
 	},
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
 			params: {
 				postId: route.params.id || '',
 			},
+			url: `${baseURL}/denet/post/getDetail`,
 		});
-		if (data.code == 0) {
-			if (data.data && data.data.postBizData && typeof data.data.postBizData == 'string') {
-				data.data.postBizData = JSON.parse(data.data.postBizData);
+
+		if (result.code == 0) {
+			if (result.data && result.data.postBizData && typeof result.data.postBizData == 'string') {
+				result.data.postBizData = JSON.parse(result.data.postBizData);
 			}
-			if (data.data.postBizData === null) {
-				data.data.postBizData = {
+			if (result.data.postBizData === null) {
+				result.data.postBizData = {
 					postUserInfo: {},
 				};
 			}
-			console.log('detail', data.data);
 
 			return {
-				detail: data.data,
+				detail: result.data,
 			};
 		}
 	},

+ 10 - 11
pages/treasure/index.vue

@@ -42,7 +42,7 @@
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
-import { isBrowser, appVersionCode, appType, denetExtensionId, detectExtension } from '../../utils/help.js';
+import { isBrowser, appVersionCode, appType, denetExtensionId, detectExtension, GetDetailSSR } from '@/utils/help.js';
 import Report from '@/log-center/log';
 import MobileGuidePage from '@/components/MobileGuidePage.vue';
 import { PlayType } from '@/types';
@@ -121,21 +121,20 @@ export default {
 			],
 		};
 	},
-	async asyncData(params) {
-		let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/post/treasure/detail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		let { route } = context;
+		let result = await GetDetailSSR({
+			context,
 			params: {
-				postId: route.params.id || '',
+				inviteCode: route.params.id || '',
 				pageName: 'landPage',
 			},
+			url: `${baseURL}/denet/post/treasure/detail`,
 		});
-		if (data.code == 0) {
+
+		if (result.code == 0) {
 			return {
-				detail: data.data,
+				detail: result.data,
 				pageLink: `${jumpUrl}treasure/${route.params.id}`,
 			};
 		}

+ 10 - 13
pages/treasure/invite.vue

@@ -49,7 +49,7 @@
 import axios from 'axios';
 import Cookies from 'js-cookie';
 import { Toast } from 'vant';
-import { isBrowser, appVersionCode, appType, denetExtensionId, detectExtension } from '../../utils/help.js';
+import { isBrowser, appVersionCode, appType, denetExtensionId, detectExtension, GetDetailSSR } from '@/utils/help.js';
 import Report from '@/log-center/log';
 import MobileGuidePage from '@/components/MobileGuidePage.vue';
 import { PlayType } from '@/types';
@@ -86,7 +86,6 @@ export default {
 				amountUsdValue: '',
 				totalCount: '',
 			},
-			headers: {},
 			config: {},
 			title: 'Treasure Hunt',
 			isMobile: false,
@@ -133,27 +132,26 @@ export default {
 			],
 		};
 	},
-	async asyncData({ route, req }) {
-		const headers = req && req.headers ? Object.assign({}, req.headers) : {};
-		let { data } = await axios.post(`${baseURL}/denet/post/treasure/invite/detail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: '00000000-0000-0000-0000-000000000000',
-			},
+	async asyncData(context) {
+		const { route } = context;
+
+		let result = await GetDetailSSR({
+			context,
 			params: {
 				inviteCode: route.params.id || '',
 				pageName: 'landPage',
 			},
+			url: `${baseURL}/denet/post/treasure/invite/detail`,
 		});
-		if (data.code == 0) {
+
+		if (result.code == 0) {
 			let pageLink = `${jumpUrl}treasure/invite/${route.params.id}`;
 			if (route.params.channel) {
 				pageLink = `${pageLink}/${route.params.channel}`;
 			}
 			return {
-				detail: data.data,
+				detail: result.data,
 				pageLink,
-				headers,
 			};
 		}
 	},
@@ -161,7 +159,6 @@ export default {
 		this.getConfig();
 	},
 	mounted() {
-		console.log('header', this.headers);
 		this.setCookieMid();
 		Cookies.set(this.detail.postId, JSON.stringify({ inviteCode: this.$route.params.id, channel: this.$route.params.channel }), { expires: 100 });
 		this.setTreasureInfo();

+ 49 - 28
utils/help.js

@@ -1,6 +1,6 @@
 import Cookie from 'js-cookie';
 import { build } from 'eth-url-parser';
-
+import axios from 'axios';
 //application/vnd.chromium.remoting-viewer 可能为360特有 通过_mine判断是否是360
 export function isBrowser() {
 	var agent = navigator.userAgent.toLowerCase();
@@ -84,21 +84,21 @@ export const getEnvConfig = () => {
 
 export function getBrowser() {
 	let browser;
-    let UserAgent = navigator.userAgent.toLowerCase();
-    if (UserAgent.indexOf("chrome") > -1 && UserAgent.indexOf("safari") > -1) {
-        browser = `Chrome`;
-    } else if (UserAgent.indexOf("firefox") > -1) {
-        browser = `Firefox`;
-    } else if (UserAgent.indexOf("opera") > -1) {
-        browser = `Opera`;
-    } else if (UserAgent.indexOf("safari") > -1 && UserAgent.indexOf("chrome") == -1) {
-        browser = `Safari`;
-    } else if (UserAgent.indexOf("edge") > -1) {
-        browser = `Edge`;
-    } else {
-        browser = `Other`;
-    }
-    return browser;
+	let UserAgent = navigator.userAgent.toLowerCase();
+	if (UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1) {
+		browser = `Chrome`;
+	} else if (UserAgent.indexOf('firefox') > -1) {
+		browser = `Firefox`;
+	} else if (UserAgent.indexOf('opera') > -1) {
+		browser = `Opera`;
+	} else if (UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1) {
+		browser = `Safari`;
+	} else if (UserAgent.indexOf('edge') > -1) {
+		browser = `Edge`;
+	} else {
+		browser = `Other`;
+	}
+	return browser;
 }
 
 export function formatSecondsAsTime(secs) {
@@ -258,22 +258,43 @@ export function detectExtension(extensionId, callback) {
 export const maskUrl = (params, isMain = true) => {
 	let url = build({
 		function_name: isMain ? null : `transfer`,
-		...params
+		...params,
 	});
 
 	// url
 	return url.replace(`ethereum:`, `https://metamask.app.link/send/`);
-}
+};
 
 export const OSDetect = () => {
-    let u = navigator.userAgent;
-    // 安卓
-    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
-        return 'android';
-    }
-
-    // iOS
-    if (u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
-        return 'ios';
-    }
+	let u = navigator.userAgent;
+	// 安卓
+	if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
+		return 'android';
+	}
+
+	// iOS
+	if (u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
+		return 'ios';
+	}
 };
+
+export async function GetDetailSSR({ context, params = {}, url = '' }) {
+	let { req } = context || {};
+	const headers = req && req.headers ? Object.assign({}, req.headers) : {};
+	let { data } = await axios.post(
+		url,
+		{
+			baseInfo: {
+				appVersionCode: appVersionCode,
+				mid: '00000000-0000-0000-0000-000000000000',
+			},
+			params,
+		},
+		{
+			headers: {
+				'x-forwarded-for': headers['x-forwarded-for'] || '',
+			},
+		}
+	);
+	return data;
+}