Bladeren bron

[edit][埋点和错误文案]

zhangwei 2 jaren geleden
bovenliggende
commit
b89c635faa

+ 2 - 1
src/iframe/treasure-hunt.js

@@ -1,5 +1,6 @@
 import { createApp } from 'vue'
 import App from '@/view/iframe/test/index.vue'
-
+import AutoLog from '@/log-center/autoLog';
 const app = createApp(App);
+app.use(AutoLog)
 app.mount('#app');

+ 5 - 6
src/view/iframe/treasure-hunt/components/invite-friends.vue

@@ -14,17 +14,15 @@
         </div>
         <v-btn :txt="state.open_btn.txt" :font-size="'17px'" class="btn" :icon="false"
             :disabled="state.open_btn.disabled" @onClick="clickBtn" font-weight="600"></v-btn>
-        <v-toast :show="state.toast.show" :txt="state.toast.txt"></v-toast>
+
     </div>
 </template>
 <script setup>
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
-import VToast from '@/view/iframe/treasure-hunt/components/toast.vue'
 import { inviteChannel } from '@/http/treasure'
 import { inject, onMounted } from 'vue'
 let ClipboardJS = require('clipboard');
 let state = inject('state')
-state.toast = {}
 
 onMounted(() => {
     chrome.management.get('ophjlpahpchlmihnnnihgmmeilfjmjjc', (res) => {
@@ -59,21 +57,22 @@ var clipboard = new ClipboardJS('.copy-btn');
 const clickCopy = () => {
     clipboard.on('success', function (e) {
         state.toast.txt = 'Copy Successfully'
+        state.toast.has_icon = true
         state.toast.show = true
         setTimeout(() => {
             state.toast.show = false
         }, 2000)
         e.clearSelection();
-    });
+    })
 
     clipboard.on('error', function (e) {
         state.toast.txt = 'Copy Error'
+        state.toast.has_icon = false
         state.toast.show = true
         setTimeout(() => {
             state.toast.show = false
         }, 2000)
-    });
-
+    })
 }
 </script>
 <style lang="scss" scoped>

+ 5 - 2
src/view/iframe/treasure-hunt/components/toast.vue

@@ -2,7 +2,7 @@
     <div class="content" v-show="show">
         <div class="mark">
             <div class="background"></div>
-            <img :src="icon" alt="">
+            <img :src="icon" alt="" v-if="has_icon" />
             <span>{{ txt }}</span>
         </div>
     </div>
@@ -15,7 +15,10 @@ let props = defineProps({
         type: String,
         default: ''
     },
-
+    has_icon: {
+        type: Boolean,
+        default: true
+    },
     icon: {
         type: String,
         default: require('@/assets/svg/icon-while-yes.svg')

+ 13 - 4
src/view/iframe/treasure-hunt/cover.vue

@@ -56,6 +56,8 @@ import { pageUrl } from "@/http/configAPI.js"
 import Report from "@/log-center/log"
 import { prepareStart, treasureStart } from '@/http/treasure.js'
 import { getChromeCookie, removeChromeCookie } from '@/uilts/chromeExtension.js'
+let state = inject('state')
+state.btn_loading = false
 
 state.log_show = {
     pageSource: Report.pageSource.pending_page,
@@ -83,10 +85,18 @@ chrome.storage.onChanged.addListener(changes => {
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     switch (req.actionType) {
         case 'DO_TASK':
-            if (!req.task_type || state.tweetId != req.tweet_Id || !req.task_done) {
+            if (!req.task_type || state.tweetId != req.tweet_Id) {
                 return
             }
-            if (req.task_type == 'createTweet') {
+            if (!req.task_done && req.task_type == 'createTweet') {
+
+                state.toast.txt = 'Seems something went wrong, please try again'
+                state.toast.show = true
+                state.toast.has_icon = false
+                setTimeout(() => {
+                    state.toast.show = false
+                }, 2000)
+            } else if (req.task_type == 'createTweet' && req.task_done) {
                 treasureStart({
                     params: {
                         postId: state.postId || '',
@@ -104,8 +114,7 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     }
 })
 
-let state = inject('state')
-state.btn_loading = false
+
 
 const clickBtn = () => {
     if (state.cover_status == '奖励已被领光') {

+ 22 - 4
src/view/iframe/treasure-hunt/index.vue

@@ -3,6 +3,7 @@
     <v-invite v-if="state.page == '邀请页'"></v-invite>
     <v-result v-if="state.page == '开奖页'"></v-result>
     <open-box v-show="state.open_box.show"></open-box>
+    <v-toast :show="state.toast.show" :txt="state.toast.txt"></v-toast>
 </template>
 <script setup>
 import { reactive, provide, onMounted } from 'vue'
@@ -12,6 +13,7 @@ import VResult from '@/view/iframe/treasure-hunt/result.vue'
 import { inviteDetail, treasureDetail, treasureOpen } from '@/http/treasure.js'
 import { reSetBindTwtterId } from '@/http/help.js'
 import { getQueryString } from '@/uilts/help'
+import VToast from '@/view/iframe/treasure-hunt/components/toast.vue'
 import OpenBox from '@/view/iframe/treasure-hunt/components/open-box.vue'
 
 
@@ -29,7 +31,8 @@ let state = reactive({
     dialog: {
         show: false,
     },
-    start_task: {}
+    start_task: {},
+    toast: {}
 })
 provide('state', state)
 
@@ -124,12 +127,27 @@ state.treasureOpen = () => {
                 case '2037':
                     state.dialog.show = true
                     break;
+                case '2203':
+                    state.toast.txt = 'You have already opened the treasure chest'
+                    state.toast.show = true
+                    break
+                case '2208':
+                    state.toast.txt = 'No treasure chests to open'
+                    state.toast.show = true
+                    break
                 default:
-                    state.init(() => {
-                        state.inviteInit()
-                    })
+                    state.toast.txt = 'System Error'
+                    state.toast.show = true
                     break
             }
+            state.toast.has_icon = false
+            setTimeout(() => {
+                state.toast.show = false
+            }, 2000)
+
+            state.init(() => {
+                state.inviteInit()
+            })
         }
     })
 }