소스 검색

[add][7.18埋点]

zhangwei 2 년 전
부모
커밋
532cba7981
2개의 변경된 파일344개의 추가작업 그리고 207개의 파일을 삭제
  1. 175 104
      pages/nft/group.vue
  2. 169 103
      pages/nft/index.vue

+ 175 - 104
pages/nft/group.vue

@@ -1,9 +1,7 @@
 <template>
     <div class="nft-content">
         <template v-if="isLoading">
-            <img
-                class="loading"
-                src="../../static/svg/icon-loading.svg" />
+            <img class="loading" src="../../static/svg/icon-loading.svg" />
         </template>
         <template v-else>
             <template v-if="isMobile">
@@ -46,11 +44,13 @@
                         <div class="footer">
                             <template v-if="isChrome">
                                 <div class="font">Install DeNet to Join The Group</div>
-                                <img class="btn" @click="installExtension" src="../../static/svg/icon-install-nft-plugin.svg" />
+                                <img class="btn" @click="installExtension"
+                                    src="../../static/svg/icon-install-nft-plugin.svg" />
                             </template>
                             <template v-else>
-                                <div class="font">Only Support to Use Chrome<br/>to Join Group</div>
-                                <img class="btn" @click="installChrome" src="../../static/svg/icon-install-nft-chrome.svg" />
+                                <div class="font">Only Support to Use Chrome<br />to Join Group</div>
+                                <img class="btn" @click="installChrome"
+                                    src="../../static/svg/icon-install-nft-chrome.svg" />
                             </template>
                         </div>
                     </div>
@@ -64,21 +64,20 @@
 import axios from 'axios'
 import Cookies from 'js-cookie'
 import { Toast } from 'vant';
-import { isBrowser } from '../../utils/help.js'
-
+import { isBrowser, appVersionCode, appType } from '../../utils/help.js'
+import Report from "@/log-center/log"
 const api = {
-	prod: 'https://api.denetme.net',
-	pre: 'https://preapi.denetme.net',
-	test: 'https://testapi.denetme.net'
+    prod: 'https://api.denetme.net',
+    pre: 'https://preapi.denetme.net',
+    test: 'https://testapi.denetme.net'
 }
 const page = {
-	prod: "https://h5.denetme.net",
-	pre: "https://preh5.denetme.net",
-	test: 'https://testh5.denetme.net'
+    prod: "https://h5.denetme.net",
+    pre: "https://preh5.denetme.net",
+    test: 'https://testh5.denetme.net'
 }
 const jumpUrl = page[process.env.NUXT_ENV.MODE] + '/'
 const baseURL = api[process.env.NUXT_ENV.MODE]
-const appVersionCode = 6;
 const ClipboardJS = require('clipboard')
 
 export default {
@@ -101,66 +100,66 @@ export default {
         }
     },
     head() {
-		return {
-			type: '',
-			title: this.title,
-			appVersionCode: appVersionCode,
-			meta: [
-				// facebook 
-				{
-					name: 'og:url',
-					content: this.jumpUrl + 'nft_group/' + this.$route.params.id
-				},
-				{
-					name: 'og:title',
-					content: this.metaTitle
-				},
-				{
-					name: 'og:image',
-					content: this.postBizData.groupImagePath || ''
-				},
-				// twitter
-				{
-					name: 'twitter:card',
-					content: 'summary_large_image'
-				},
-				{
-					name: 'twitter:url',
-					content: this.jumpUrl + 'nft_group/' + this.$route.params.id
-				},
-				{
-					name: 'twitter:title',
-					content: this.metaTitle
-				},
-				{
-					name: 'twitter:image',
-					content: this.postBizData.groupImagePath || ''
-				}
-			]
-		}
-	},
+        return {
+            type: '',
+            title: this.title,
+            appVersionCode: appVersionCode,
+            meta: [
+                // facebook 
+                {
+                    name: 'og:url',
+                    content: this.jumpUrl + 'nft_group/' + this.$route.params.id
+                },
+                {
+                    name: 'og:title',
+                    content: this.metaTitle
+                },
+                {
+                    name: 'og:image',
+                    content: this.postBizData.groupImagePath || ''
+                },
+                // twitter
+                {
+                    name: 'twitter:card',
+                    content: 'summary_large_image'
+                },
+                {
+                    name: 'twitter:url',
+                    content: this.jumpUrl + 'nft_group/' + this.$route.params.id
+                },
+                {
+                    name: 'twitter:title',
+                    content: this.metaTitle
+                },
+                {
+                    name: 'twitter:image',
+                    content: this.postBizData.groupImagePath || ''
+                }
+            ]
+        }
+    },
     async asyncData(params) {
         let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: function () {
-					return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
-						var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
-						return v.toString(16);
-					});
-				}()
-			},
-			params: {
-				postId: route.params.id || ''
-			}
-		})
-		if (data.code == 0 && data.data !== null) {
+        let { data } = await axios.post(`${baseURL}/denet/post/getDetail`, {
+            baseInfo: {
+                appVersionCode: appVersionCode,
+                mid: function () {
+                    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+                        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+                        return v.toString(16);
+                    });
+                }()
+            },
+            params: {
+                postId: route.params.id || ''
+            }
+        })
+        if (data.code == 0 && data.data !== null) {
             return {
                 detail: data.data,
                 postBizData: JSON.parse(data.data.postBizData),
             }
-		}
+        }
     },
     created() {
         this.setCookieMid();
@@ -172,28 +171,76 @@ export default {
         this.isLoading = false;
 
         var clipboard = new ClipboardJS('.btn');
+        let that = this
         clipboard.on('success', function (e) {
             Toast('copy success');
+            that.trackingClick()
             e.clearSelection();
         });
+
+        // 埋点
+        this.pageSource = Report.pageSource.newUserLandingPage
+        if (this.isMobile) {
+            this.pageSource = Report.pageSource.mobileLandingPage
+        }
+        Report.reportLog({
+            baseInfo: {
+                appVersionCode: appVersionCode,
+                mid: this.mid,
+                pageSource: this.pageSource,
+                appType,
+                machineCode: this.mid
+            },
+            params: {
+                eventData: {
+                    businessType: Report.businessType.pageView,
+                    postId: this.detail.postId,
+                    srcContentId: this.detail.srcContentId,
+                    senderId: this.detail.srcUserId,
+                    redPacketType: 3,
+                }
+            }
+        })
     },
     methods: {
+        trackingClick() {
+            Report.reportLog({
+                baseInfo: {
+                    appVersionCode: appVersionCode,
+                    mid: this.mid,
+                    pageSource: this.pageSource,
+                    appType,
+                    machineCode: this.mid
+                },
+                params: {
+                    eventData: {
+                        businessType: Report.businessType.buttonClick,
+                        postId: this.detail.postId,
+                        srcContentId: this.detail.srcContentId,
+                        senderId: this.detail.srcUserId,
+                        redPacketType: 3,
+                    }
+                }
+            })
+        },
         guid() {
-			return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
-				var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
-				return v.toString(16);
-			});
-		},
+            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+                var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+                return v.toString(16);
+            });
+        },
         setCookieMid() {
-			let _cookie_mid_arr = Cookies.get('mid') || []
-			if (_cookie_mid_arr.length > 0) {
-				this.mid = JSON.parse(_cookie_mid_arr)[0].mid
-			} else {
-				this.mid = this.guid()
-				Cookies.set('mid', JSON.stringify([{ mid: this.mid }]), { expires: 1000 })
-			}
-		},
+            let _cookie_mid_arr = Cookies.get('mid') || []
+            if (_cookie_mid_arr.length > 0) {
+                this.mid = JSON.parse(_cookie_mid_arr)[0].mid
+            } else {
+                this.mid = this.guid()
+                Cookies.set('mid', JSON.stringify([{ mid: this.mid }]), { expires: 1000 })
+            }
+        },
         installExtension() {
+            // 埋点
+            this.trackingClick()
             let { extensionsInstallUrl } = this.config;
             window.open(extensionsInstallUrl)
         },
@@ -201,30 +248,30 @@ export default {
             window.open('https://www.google.com/chrome')
         },
         async getConfig() {
-			let { data } = await axios.post(`${baseURL}/denet/base/config/getFrontConfig`, {
-				baseInfo: {
-					appVersionCode: appVersionCode,
-					mid: this.mid
-				},
-				params: {}
-			})
-			if (data.code == 0) {
-				this.config = data.data;
-			}
-		},
+            let { data } = await axios.post(`${baseURL}/denet/base/config/getFrontConfig`, {
+                baseInfo: {
+                    appVersionCode: appVersionCode,
+                    mid: this.mid
+                },
+                params: {}
+            })
+            if (data.code == 0) {
+                this.config = data.data;
+            }
+        },
         checkBrowser() {
             this.linkHref = window.location.href;
             this.isChrome = isBrowser() == 'chrome';
-			this.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);
-		},
+            this.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);
+        },
         setNftInfo() {
-			let nftGroupInfo = {
-				twitterAccount: this.postBizData.defaultTwitterAccount || '',
+            let nftGroupInfo = {
+                twitterAccount: this.postBizData.defaultTwitterAccount || '',
                 createTime: Date.now(),
                 jump_type: 'nft_group_info',
-			};
-			Cookies.set('jump_info', JSON.stringify(nftGroupInfo), { expires: 100 });
-		},
+            };
+            Cookies.set('jump_info', JSON.stringify(nftGroupInfo), { expires: 100 });
+        },
     }
 }
 </script>
@@ -234,10 +281,10 @@ html,
 body,
 #__nuxt,
 #__layout {
-	width: 100%;
-	height: 100%;
-	padding: 0;
-	margin: 0;
+    width: 100%;
+    height: 100%;
+    padding: 0;
+    margin: 0;
 }
 
 .nft-content {
@@ -245,6 +292,7 @@ body,
     width: 100%;
     height: 100%;
     background: linear-gradient(180deg, #FFFFFF 0%, #F0F7FE 94.31%);
+
     .loading {
         position: absolute;
         transform: translate(-50%, -50%);
@@ -254,25 +302,30 @@ body,
         width: 40px;
         border-radius: 50%;
     }
+
     .logo {
         display: flex;
         align-items: center;
         height: 70px;
         margin-left: 25px;
+
         img {
             width: 99px;
             height: 32px;
         }
     }
+
     .show {
         display: flex;
         align-items: center;
         height: calc(100% - 70px);
+
         .center {
             display: flex;
             flex-direction: column;
             width: 505px;
             margin: -50px auto 0;
+
             .header {
                 display: flex;
                 flex-direction: column;
@@ -282,21 +335,25 @@ body,
                 justify-content: center;
                 border-radius: 16px 16px 0 0;
                 background: url('../../static/svg/icon-nft-group-pc.svg') no-repeat right bottom #48B1F7;
+
                 .core {
                     display: flex;
                     align-items: center;
+
                     .core_logo {
                         overflow: hidden;
                         width: 54px;
                         height: 54px;
                         border-radius: 6px;
                         background-color: #fff;
+
                         img {
                             width: 100%;
                             height: 100%;
                             border-radius: 8px;
                         }
                     }
+
                     .core_title {
                         color: #fff;
                         font-size: 26px;
@@ -304,13 +361,16 @@ body,
                         margin-left: 16px;
                     }
                 }
+
                 .member {
                     color: #fff;
                     font-size: 12px;
                     font-weight: 500;
                     margin-top: 24px;
+
                     label {
                         margin-right: 17px;
+
                         img {
                             margin-top: -3px;
                             vertical-align: middle;
@@ -318,6 +378,7 @@ body,
                     }
                 }
             }
+
             .footer {
                 display: flex;
                 align-items: center;
@@ -327,12 +388,14 @@ body,
                 height: 90px;
                 border-radius: 0 0 16px 16px;
                 border: solid 1px #E2E2E2;
+
                 .font {
                     flex: 1;
                     text-align: center;
                     font-size: 16px;
                     font-weight: 500;
                 }
+
                 .btn {
                     width: 200px;
                     box-sizing: unset;
@@ -349,12 +412,14 @@ body,
     padding: 0 16px;
     box-sizing: border-box;
     transform: translateY(-50%);
+
     .banner {
         position: relative;
         overflow: hidden;
         height: 180px;
         border-radius: 10px;
         background: url('../../static/svg/icon-nft-group-mobile.svg') no-repeat right bottom #48B1F7;
+
         .logo {
             position: absolute;
             display: flex;
@@ -369,6 +434,7 @@ body,
             transform: translateX(-50%);
             border-radius: 5px;
             background-color: #FFFFFF;
+
             .img {
                 position: unset;
                 width: 50px;
@@ -376,6 +442,7 @@ body,
                 border-radius: 5px;
             }
         }
+
         .desc {
             position: absolute;
             z-index: 2;
@@ -396,6 +463,7 @@ body,
             overflow: hidden;
         }
     }
+
     .title {
         color: #000000;
         font-weight: 600;
@@ -403,6 +471,7 @@ body,
         text-align: center;
         padding: 39px 0 7px;
     }
+
     .desc {
         color: #8A8A8A;
         font-size: 13px;
@@ -410,8 +479,10 @@ body,
         word-break: break-all;
         text-align: center;
     }
+
     .copy {
         margin-top: 35px;
+
         button {
             width: 100%;
             border: 0;

+ 169 - 103
pages/nft/index.vue

@@ -1,9 +1,7 @@
 <template>
     <div class="nft-content">
         <template v-if="isLoading">
-            <img
-                class="loading"
-                src="../../static/svg/icon-loading.svg" />
+            <img class="loading" src="../../static/svg/icon-loading.svg" />
         </template>
         <template v-else>
             <template v-if="isMobile">
@@ -27,12 +25,14 @@
                         </div>
                         <div class="info">
                             <template v-if="isChrome">
-                                <div class="title">Install DeNet Plugin<br/>to Buy NFT</div>
-                                <img class="buy" @click="installExtension" src="../../static/img/icon-install-plugin.svg" />
+                                <div class="title">Install DeNet Plugin<br />to Buy NFT</div>
+                                <img class="buy" @click="installExtension"
+                                    src="../../static/img/icon-install-plugin.svg" />
                             </template>
                             <template v-else>
                                 <div class="title">Only Support to Use Chrome to buy NFT</div>
-                                <img class="buy" @click="installChrome" src="../../static/img/icon-install-chrome.svg" />
+                                <img class="buy" @click="installChrome"
+                                    src="../../static/img/icon-install-chrome.svg" />
                             </template>
                         </div>
                     </div>
@@ -46,21 +46,21 @@
 import axios from 'axios'
 import Cookies from 'js-cookie'
 import { Toast } from 'vant';
-import { isBrowser } from '../../utils/help.js'
+import { isBrowser, appVersionCode, appType } from '../../utils/help.js'
+import Report from "@/log-center/log"
 
 const api = {
-	prod: 'https://api.denetme.net',
-	pre: 'https://preapi.denetme.net',
-	test: 'https://testapi.denetme.net'
+    prod: 'https://api.denetme.net',
+    pre: 'https://preapi.denetme.net',
+    test: 'https://testapi.denetme.net'
 }
 const page = {
-	prod: "https://h5.denetme.net",
-	pre: "https://preh5.denetme.net",
-	test: 'https://testh5.denetme.net'
+    prod: "https://h5.denetme.net",
+    pre: "https://preh5.denetme.net",
+    test: 'https://testh5.denetme.net'
 }
 const jumpUrl = page[process.env.NUXT_ENV.MODE] + '/'
 const baseURL = api[process.env.NUXT_ENV.MODE]
-const appVersionCode = 6;
 const ClipboardJS = require('clipboard')
 
 export default {
@@ -80,65 +80,65 @@ export default {
         }
     },
     head() {
-		return {
-			type: '',
-			title: this.title,
-			appVersionCode: appVersionCode,
-			meta: [
-				// facebook 
-				{
-					name: 'og:url',
-					content: this.jumpUrl + 'nft/' + this.$route.params.id + `/${this.$route.params.account}`
-				},
-				{
-					name: 'og:title',
-					content: this.metaTitle
-				},
-				{
-					name: 'og:image',
-					content: this.detail.linkImagePath || ''
-				},
-				// twitter
-				{
-					name: 'twitter:card',
-					content: 'summary_large_image'
-				},
-				{
-					name: 'twitter:url',
-					content: this.jumpUrl + 'nft/' + this.$route.params.id + `/${this.$route.params.account}`
-				},
-				{
-					name: 'twitter:title',
-					content: this.metaTitle
-				},
-				{
-					name: 'twitter:image',
-					content: this.detail.linkImagePath || ''
-				}
-			]
-		}
-	},
+        return {
+            type: '',
+            title: this.title,
+            appVersionCode: appVersionCode,
+            meta: [
+                // facebook 
+                {
+                    name: 'og:url',
+                    content: this.jumpUrl + 'nft/' + this.$route.params.id + `/${this.$route.params.account}`
+                },
+                {
+                    name: 'og:title',
+                    content: this.metaTitle
+                },
+                {
+                    name: 'og:image',
+                    content: this.detail.linkImagePath || ''
+                },
+                // twitter
+                {
+                    name: 'twitter:card',
+                    content: 'summary_large_image'
+                },
+                {
+                    name: 'twitter:url',
+                    content: this.jumpUrl + 'nft/' + this.$route.params.id + `/${this.$route.params.account}`
+                },
+                {
+                    name: 'twitter:title',
+                    content: this.metaTitle
+                },
+                {
+                    name: 'twitter:image',
+                    content: this.detail.linkImagePath || ''
+                }
+            ]
+        }
+    },
     async asyncData(params) {
         let { route } = params;
-		let { data } = await axios.post(`${baseURL}/denet/nft/project/getNftProjectInfo`, {
-			baseInfo: {
-				appVersionCode: appVersionCode,
-				mid: function () {
-					return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
-						var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
-						return v.toString(16);
-					});
-				}()
-			},
-			params: {
-				nftProjectId: route.params.id || ''
-			}
-		})
-		if (data.code == 0 && data.data !== null) {
+        let { data } = await axios.post(`${baseURL}/denet/nft/project/getNftProjectInfo`, {
+            baseInfo: {
+                appVersionCode: appVersionCode,
+                mid: function () {
+                    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+                        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+                        return v.toString(16);
+                    });
+                }()
+            },
+            params: {
+                nftProjectId: route.params.id || ''
+            }
+        })
+        if (data.code == 0 && data.data !== null) {
             return {
                 detail: data.data,
             }
-		}
+        }
     },
     created() {
         this.setCookieMid();
@@ -150,28 +150,77 @@ export default {
         this.isLoading = false;
 
         var clipboard = new ClipboardJS('.btn');
+        let that = this
         clipboard.on('success', function (e) {
             Toast('copy success');
+            // 埋点
+            that.trackingClick()
             e.clearSelection();
         });
+        this.pageSource = Report.pageSource.newUserLandingPage
+        // 埋点
+        if (this.isMobile) {
+            this.pageSource = Report.pageSource.mobileLandingPage
+        }
+        Report.reportLog({
+            baseInfo: {
+                appVersionCode: appVersionCode,
+                mid: this.mid,
+                pageSource: this.pageSource,
+                appType,
+                machineCode: this.mid
+            },
+            params: {
+                eventData: {
+                    businessType: Report.businessType.pageView,
+                    postId: this.detail.postId,
+                    srcContentId: this.detail.srcContentId,
+                    senderId: this.detail.srcUserId,
+                    redPacketType: 2,
+                }
+            }
+        })
     },
     methods: {
+        trackingClick() {
+            Report.reportLog({
+                baseInfo: {
+                    appVersionCode: appVersionCode,
+                    mid: this.mid,
+                    pageSource: this.pageSource,
+                    appType,
+                    machineCode: this.mid
+                },
+                params: {
+                    eventData: {
+                        businessType: Report.businessType.buttonClick,
+                        objectType: Report.objectType.installButton,
+                        postId: this.detail.postId,
+                        srcContentId: this.detail.srcContentId,
+                        senderId: this.detail.srcUserId,
+                        redPacketType: 2,
+                    }
+                }
+            })
+        },
         guid() {
-			return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
-				var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
-				return v.toString(16);
-			});
-		},
+            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+                var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+                return v.toString(16);
+            });
+        },
         setCookieMid() {
-			let _cookie_mid_arr = Cookies.get('mid') || []
-			if (_cookie_mid_arr.length > 0) {
-				this.mid = JSON.parse(_cookie_mid_arr)[0].mid
-			} else {
-				this.mid = this.guid()
-				Cookies.set('mid', JSON.stringify([{ mid: this.mid }]), { expires: 1000 })
-			}
-		},
+            let _cookie_mid_arr = Cookies.get('mid') || []
+            if (_cookie_mid_arr.length > 0) {
+                this.mid = JSON.parse(_cookie_mid_arr)[0].mid
+            } else {
+                this.mid = this.guid()
+                Cookies.set('mid', JSON.stringify([{ mid: this.mid }]), { expires: 1000 })
+            }
+        },
         installExtension() {
+            // 埋点
+            this.trackingClick()
             let { extensionsInstallUrl } = this.config;
             window.open(extensionsInstallUrl)
         },
@@ -179,31 +228,31 @@ export default {
             window.open('https://www.google.com/chrome')
         },
         async getConfig() {
-			let { data } = await axios.post(`${baseURL}/denet/base/config/getFrontConfig`, {
-				baseInfo: {
-					appVersionCode: appVersionCode,
-					mid: this.mid
-				},
-				params: {}
-			})
-			if (data.code == 0) {
-				this.config = data.data;
-			}
-		},
+            let { data } = await axios.post(`${baseURL}/denet/base/config/getFrontConfig`, {
+                baseInfo: {
+                    appVersionCode: appVersionCode,
+                    mid: this.mid
+                },
+                params: {}
+            })
+            if (data.code == 0) {
+                this.config = data.data;
+            }
+        },
         checkBrowser() {
             this.linkHref = window.location.href;
             this.isChrome = isBrowser() == 'chrome';
-			this.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);
-		},
+            this.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);
+        },
         setNftInfo() {
-			let nftInfo = {
-				nftProjectId: this.detail.nftProjectId || '',
+            let nftInfo = {
+                nftProjectId: this.detail.nftProjectId || '',
                 twitterAccount: atob(this.$route.params.account || ''),
                 createTime: Date.now(),
                 jump_type: 'nft_info',
-			};
-			Cookies.set('jump_info', JSON.stringify(nftInfo), { expires: 100 });
-		},
+            };
+            Cookies.set('jump_info', JSON.stringify(nftInfo), { expires: 100 });
+        },
     }
 }
 </script>
@@ -213,10 +262,10 @@ html,
 body,
 #__nuxt,
 #__layout {
-	width: 100%;
-	height: 100%;
-	padding: 0;
-	margin: 0;
+    width: 100%;
+    height: 100%;
+    padding: 0;
+    margin: 0;
 }
 
 .nft-content {
@@ -224,6 +273,7 @@ body,
     width: 100%;
     height: 100%;
     background: linear-gradient(180deg, #FFFFFF 0%, #F0F7FE 94.31%);
+
     .loading {
         position: absolute;
         transform: translate(-50%, -50%);
@@ -233,40 +283,49 @@ body,
         width: 40px;
         border-radius: 50%;
     }
+
     .logo {
         display: flex;
         align-items: center;
         height: 70px;
         margin-left: 25px;
+
         img {
             width: 99px;
             height: 32px;
         }
     }
+
     .show {
         display: flex;
         align-items: center;
         height: calc(100% - 70px);
+
         .center {
             display: flex;
             margin: -50px auto 0;
             width: 1000px;
+
             .img {
                 width: 50%;
                 margin-right: 6%;
+
                 img {
                     width: 100%;
                 }
             }
+
             .info {
                 display: flex;
                 flex-direction: column;
                 justify-content: center;
                 width: 44%;
+
                 .tag {
                     width: 25%;
                     margin-bottom: 6px;
                 }
+
                 .title {
                     color: #3A4B56;
                     font-size: 2.2vw;
@@ -275,6 +334,7 @@ body,
                     word-break: break-word;
                     margin-bottom: 1vw;
                 }
+
                 .buy {
                     width: 75%;
                     max-width: 263px;
@@ -288,12 +348,15 @@ body,
 
 .small {
     padding: 30px 20px;
+
     .banner {
         width: 100%;
+
         img {
             width: 100%;
         }
     }
+
     .title {
         color: #000000;
         font-weight: 600;
@@ -301,6 +364,7 @@ body,
         text-align: center;
         padding: 17px 0 12px;
     }
+
     .desc {
         color: #8A8A8A;
         font-size: 13px;
@@ -308,8 +372,10 @@ body,
         word-break: break-all;
         text-align: center;
     }
+
     .copy {
         margin-top: 35px;
+
         button {
             width: 100%;
             border: 0;