Просмотр исходного кода

Merge branch 'dev_1.1.7' of https://git.yishihui.com/DeNet/de-net into dev_1.1.7

# Conflicts:
#	src/view/iframe/treasure-hunt/cover.vue
#	src/view/iframe/treasure-hunt/result.vue
wenliming 2 лет назад
Родитель
Сommit
9d85488e83

+ 190 - 164
src/entry/background.js

@@ -35,18 +35,40 @@ import {
 import {
     closeAchPayNoticeHandler
 } from "@/logic/background/denet";
+
+try {
+    chrome.runtime.onMessage.addListener(onMessageMethod);
+} catch (error) {
+    console.log('error when background onMessage addListener', error)
+}
+
 try {
-    //加载bg.js 执行
-    setMessageCount();
+    chrome.runtime.onInstalled.addListener(onInstalledMethod);
+} catch (error) {
+    console.log('error when background onInstalled addListener', error)
+}
+
 
-    // 消息通讯
+
+
+// chrome.runtime.setUninstallURL('https://denet.me', (e) => { 
+//     console.log('e', e)
+// })
+
+// 消息通讯
+try {
     chrome.runtime.onConnect.addListener(function (port) {
         port.onDisconnect.addListener(function () {
             onDisconnectHandler(port);
         });
     });
+} catch (error) {
+    console.log('error when background onConnect addListener', error)
+}
+
 
-    // 当有可用更新时触发
+// 当有可用更新时触发
+try {
     chrome.runtime.onUpdateAvailable.addListener(() => {
         try {
             setChromeStorage({ onUpdateAvailable: JSON.stringify({ onUpdateAvailable: '1' }) }, () => {
@@ -60,12 +82,13 @@ try {
             });
         }
     })
+} catch (error) {
+    console.log('error when background onUpdateAvailable addListener', error)
+}
 
-    chrome.runtime.onInstalled.addListener(onInstalledMethod);
-
-    chrome.runtime.onMessage.addListener(onMessageMethod);
 
-    // 定时器
+// 定时器
+try {
     chrome.alarms.onAlarm.addListener(function (alarm) {
         // console.log("onAlarm-", alarm);
         switch (alarm.name) {
@@ -80,174 +103,177 @@ try {
                 break
         }
     });
+} catch (error) {
+    console.log('error when background onAlarm addListener', error)
+}
 
-    chrome.action.onClicked.addListener(function (tab) {
-        injectExtensionPopup(tab);
-    });
 
-    chrome.tabs.onActivated.addListener(function (activeInfo) {
-        setPopupConfig(activeInfo);
-    })
+chrome.action.onClicked.addListener(function (tab) {
+    injectExtensionPopup(tab);
+});
 
-    function thenInstalledMethod() {
-        try {
+chrome.tabs.onActivated.addListener(function (activeInfo) {
+    setPopupConfig(activeInfo);
+})
 
-            onInstalledCreateTab()
-            onInstalledMid()
-            onInstalledUserSet()
-            // pingpang
-            chrome.alarms.create('PingPong', {
-                //1分鐘之後開始(該值不能小於1) 
-                delayInMinutes: 2,
-                //開始後每一分鐘執行一次(該值不能小于1) 
-                periodInMinutes: 4
-            });
-            chrome.alarms.create('LuckMessage', {
-                //1分鐘之後開始(該值不能小於1) 
-                delayInMinutes: 1,
-                //開始後每一分鐘執行一次(該值不能小于1) 
-                periodInMinutes: 1
-            });
-        } catch (error) {
-            Report.reportLog({
-                objectType: Report.objectType.background_function_catch,
-                funcName: 'thenInstalledMethod',
-                errMsg: error.message
-            });
-        }
+function thenInstalledMethod() {
+    try {
+
+        onInstalledCreateTab()
+        onInstalledMid()
+        onInstalledUserSet()
+        // pingpang
+        chrome.alarms.create('PingPong', {
+            //1分鐘之後開始(該值不能小於1) 
+            delayInMinutes: 2,
+            //開始後每一分鐘執行一次(該值不能小于1) 
+            periodInMinutes: 4
+        });
+        chrome.alarms.create('LuckMessage', {
+            //1分鐘之後開始(該值不能小於1) 
+            delayInMinutes: 1,
+            //開始後每一分鐘執行一次(該值不能小于1) 
+            periodInMinutes: 1
+        });
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'thenInstalledMethod',
+            errMsg: error.message
+        });
     }
-    function onInstalledMethod({ id, previousVersion, reason }) {
-        try {
-            Report.reportLog({
-                id,
-                previousVersion,
-                reason,
-                funcName: 'onInstalledMethodCallback'
-            });
-            // 3.onInstalledMethod 执行了那个
-            // 版本更新判断
-            getChromeStorage('baseInfo', (info) => {
-                if (!info || !info.appVersionCode) {
-                    setChromeStorage({ onInstalledMethod: JSON.stringify({ onInstalledMethod: '1' }) })
-                    setChromeStorage({ baseInfo: JSON.stringify({ appVersionCode }) })
-                    thenInstalledMethod()
-                } else if (appVersionCode != info.appVersionCode) {
-                    setChromeStorage({ onInstalledMethod: JSON.stringify({ onInstalledMethod: '2' }) }, () => {
-                        setChromeStorage({ baseInfo: JSON.stringify({ appVersionCode }) }, () => {
-                            chrome.runtime.reload()
-                            onInstalledUserSet()
-                        })
+}
+function onInstalledMethod({ id, previousVersion, reason }) {
+    try {
+        Report.reportLog({
+            id,
+            previousVersion,
+            reason,
+            funcName: 'onInstalledMethodCallback'
+        });
+        // 3.onInstalledMethod 执行了那个
+        // 版本更新判断
+        getChromeStorage('baseInfo', (info) => {
+            if (!info || !info.appVersionCode) {
+                setChromeStorage({ onInstalledMethod: JSON.stringify({ onInstalledMethod: '1' }) })
+                setChromeStorage({ baseInfo: JSON.stringify({ appVersionCode }) })
+                thenInstalledMethod()
+            } else if (appVersionCode != info.appVersionCode) {
+                setChromeStorage({ onInstalledMethod: JSON.stringify({ onInstalledMethod: '2' }) }, () => {
+                    setChromeStorage({ baseInfo: JSON.stringify({ appVersionCode }) }, () => {
+                        chrome.runtime.reload()
+                        onInstalledUserSet()
                     })
-                } else {
-                    setChromeStorage({ onInstalledMethod: JSON.stringify({ onInstalledMethod: '3' }) })
-                    thenInstalledMethod()
-                }
-            })
+                })
+            } else {
+                setChromeStorage({ onInstalledMethod: JSON.stringify({ onInstalledMethod: '3' }) })
+                thenInstalledMethod()
+            }
+        })
 
-            // 1.onUpdateAvailable 存储到本地,再上报
-            getChromeStorage('onUpdateAvailable', (res) => {
-                if (res && res.onUpdateAvailable) {
-                    Report.reportLog({
-                        objectType: Report.objectType.background_function_try,
-                        funcName: 'onUpdateAvailable',
-                    })
-                }
-            })
-        } catch (error) {
-            Report.reportLog({
-                objectType: Report.objectType.background_function_catch,
-                funcName: 'onInstalledMethod',
-                errMsg: error.message
-            })
-        }
+        // 1.onUpdateAvailable 存储到本地,再上报
+        getChromeStorage('onUpdateAvailable', (res) => {
+            if (res && res.onUpdateAvailable) {
+                Report.reportLog({
+                    objectType: Report.objectType.background_function_try,
+                    funcName: 'onUpdateAvailable',
+                })
+            }
+        })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'onInstalledMethod',
+            errMsg: error.message
+        })
     }
+}
 
-    function onMessageMethod(req, sender, sendResponse) {
-        try {
-            if (req) {
-                switch (req.actionType) {
-                    case "POPUP_LOGIN":
+function onMessageMethod(req, sender, sendResponse) {
+    try {
+        if (req) {
+            switch (req.actionType) {
+                case "POPUP_LOGIN":
+                    twitterPinLoginToken();
+                    sendResponse('ok');
+                    break;
+                case "POPUP_PUBLISH_TWITTER_RED_PACK":
+                    popupRePublish(req);
+                    sendResponse('ok');
+                    break;
+                case "POPUP_SHOW_DENET_PUBLISH_DIALOG":
+                    checkShowPublishDialog();
+                    break;
+                case 'CONTENT_GET_PINED':
+                    checkPined();
+                    break;
+                case 'CONTENT_SET_BADGE':
+                    setBadgeInfo(req);
+                    break;
+                case 'CONTENT_HIDE_BADGE':
+                    hideBadge();
+                    break
+                case 'CONTENT_SEND_CODE':
+                    twitterPinLoginCode(sender, req.code);
+                    break;
+                case 'CONTENT_TWITTER_LOGIN':
+                    if (req.data) {
                         twitterPinLoginToken();
                         sendResponse('ok');
-                        break;
-                    case "POPUP_PUBLISH_TWITTER_RED_PACK":
-                        popupRePublish(req);
-                        sendResponse('ok');
-                        break;
-                    case "POPUP_SHOW_DENET_PUBLISH_DIALOG":
-                        checkShowPublishDialog();
-                        break;
-                    case 'CONTENT_GET_PINED':
-                        checkPined();
-                        break;
-                    case 'CONTENT_SET_BADGE':
-                        setBadgeInfo(req);
-                        break;
-                    case 'CONTENT_HIDE_BADGE':
-                        hideBadge();
-                        break
-                    case 'CONTENT_SEND_CODE':
-                        twitterPinLoginCode(sender, req.code);
-                        break;
-                    case 'CONTENT_TWITTER_LOGIN':
-                        if (req.data) {
-                            twitterPinLoginToken();
-                            sendResponse('ok');
+                    }
+                    break
+                case "CONTENT_SEND_DISCORD_AUTH_CODE":
+                    discordLoginCode(req, sender);
+                    break
+                case 'RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID':
+                    saveDiscordAuthWindowId(req);
+                    sendResponse('ok');
+                    break;
+                case 'CONTENT_FACEBOOK_SHARE_SUCCESS':
+                    facebookShareSuccess(req, sender);
+                    break;
+                case 'CONTENT_PONG':
+                    sendResponse('CONTENT_PONG');
+                    break
+                case 'CONTENT_WINDOW_LOADED_SET_POPUP_PAGE':
+                    // windwoLoadSetPopupPage(req, sender);
+                    break;
+                case 'CONTENT_SET_POPUP_CONFIG':
+                    setActionPopup(req, sender);
+                    break;
+                case 'CONTENT_GET_TWITTER_NFT_POST_PRE':
+                    getTwitterNftPostPre(req.data, sender)
+                    break
+                case 'CONTENT_NFT_TXT_PUBLISH':
+                    nftTxtPublish(req.data, sender)
+                    break
+                case 'CONTENT_HTTP_NET_WORK':
+                    httpNetWork(req.funcName, req.data, sender)
+                    break
+                case 'HTTP_CONTENT_TO_BACK':
+                    httpContentToBack(req, sender)
+                    sendResponse('ok')
+                    break
+                case 'CONTENT_TWITTER_SHORT_LINK':
+                    sendResponse('ok')
+                    req.arr_url.forEach(item => {
+                        if (item) {
+                            twitterShortUrl(sender, item)
                         }
-                        break
-                    case "CONTENT_SEND_DISCORD_AUTH_CODE":
-                        discordLoginCode(req, sender);
-                        break
-                    case 'RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID':
-                        saveDiscordAuthWindowId(req);
-                        sendResponse('ok');
-                        break;
-                    case 'CONTENT_FACEBOOK_SHARE_SUCCESS':
-                        facebookShareSuccess(req, sender);
-                        break;
-                    case 'CONTENT_PONG':
-                        sendResponse('CONTENT_PONG');
-                        break
-                    case 'CONTENT_WINDOW_LOADED_SET_POPUP_PAGE':
-                        // windwoLoadSetPopupPage(req, sender);
-                        break;
-                    case 'CONTENT_SET_POPUP_CONFIG':
-                        setActionPopup(req, sender);
-                        break;
-                    case 'CONTENT_GET_TWITTER_NFT_POST_PRE':
-                        getTwitterNftPostPre(req.data, sender)
-                        break
-                    case 'CONTENT_NFT_TXT_PUBLISH':
-                        nftTxtPublish(req.data, sender)
-                        break
-                    case 'CONTENT_HTTP_NET_WORK':
-                        httpNetWork(req.funcName, req.data, sender)
-                        break
-                    case 'HTTP_CONTENT_TO_BACK':
-                        httpContentToBack(req, sender)
-                        sendResponse('ok')
-                        break
-                    case 'CONTENT_TWITTER_SHORT_LINK':
-                        sendResponse('ok')
-                        req.arr_url.forEach(item => {
-                            if (item) {
-                                twitterShortUrl(sender, item)
-                            }
-                        });
-                        break
-                    case 'CONTENT_CLOSE_ACH_PAY_NOTICE':
-                        closeAchPayNoticeHandler();
-                        break;
-                }
+                    });
+                    break
+                case 'CONTENT_CLOSE_ACH_PAY_NOTICE':
+                    closeAchPayNoticeHandler();
+                    break;
             }
-        } catch (error) {
-            Report.reportLog({
-                objectType: Report.objectType.background_function_catch,
-                funcName: 'onMessageMethod',
-                errMsg: error.message
-            });
         }
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'onMessageMethod',
+            errMsg: error.message
+        });
     }
-} catch (error) {
-    console.log('error', error)
-}
+}
+//加载bg.js 执行
+setMessageCount();

+ 20 - 1
src/http/help.js

@@ -1,5 +1,6 @@
 import { getChromeStorage } from '@/uilts/chromeExtension.js'
 import { srcPublishSuccess } from '@/http/publishApi'
+import { bindRepost } from '@/http/treasure'
 
 // 重新绑定推文id
 export const reSetBindTwtterId = ({
@@ -21,4 +22,22 @@ export const reSetBindTwtterId = ({
             })
         }
     })
-}
+}
+
+
+// 重新绑定推文id
+export const reSetBindRepost = (params, callback) => {
+    getChromeStorage('userInfo', (_userInfo = {}) => {
+        // if (_userInfo && _userInfo.uid == _params.uid) {
+        if (_userInfo.uid) {
+            bindRepost({
+                params
+            }).then((res) => {
+                if (res.code == 0 || res.code == 3003) {
+                    callback && callback()
+                }
+            })
+        }
+    })
+}
+

+ 8 - 0
src/http/toolBoxApi.js

@@ -39,3 +39,11 @@ export function getPostEditorNftCertInfo(params) {
         data: params
     })
 }
+
+export function unlockNftCert(params) {
+    return service({
+        url: `/post/editor/unlockNftCert`,
+        method: 'post',
+        data: params
+    })
+}

+ 9 - 0
src/http/treasure.js

@@ -65,4 +65,13 @@ export function treasureStart(params) {
         method: "post",
         data: params,
     });
+}
+
+
+export function bindRepost(params) {
+    return service({
+        url: `/post/treasure/invite/bindRepost`,
+        method: "post",
+        data: params,
+    });
 }

+ 1 - 1
src/logic/background/help.js

@@ -8,7 +8,7 @@ export function PingPong() {
             if (tabs.length) {
                 let tab = tabs.filter((item) => { return item.active == true })
                 if (tab.length) {
-                    chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' }, () => { });
+                    chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' });
                 }
             }
         })

+ 0 - 1
src/view/content/message/index.vue

@@ -105,7 +105,6 @@ const readMessage = (id = 0) => {
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     if (req.actionType == 'BACK_UNREAD_MESSAGE') {
         let data = req.data.data || []
-        console.log('BACK_UNREAD_MESSAGE', data)
         if (req.data.code == 0 && data.length > 0) {
             data.forEach((item) => {
                 if (state.list.filter((filter_item) => { return filter_item.id == item.id }).length == 0) {

+ 15 - 27
src/view/iframe/tool-box/card.vue

@@ -74,7 +74,7 @@
 <script setup>
 import { getChromeStorage, setChromeStorage, defineProps, sendChromeTabMessage } from "@/uilts/chromeExtension";
 import { getPostDetail } from '@/http/redPacket.js'
-import { getPostEditorNftCertInfo } from '@/http/toolBoxApi'
+import { getPostEditorNftCertInfo, unlockNftCert } from '@/http/toolBoxApi'
 import { guid, getQueryString } from "@/uilts/help";
 import { onMounted, reactive, ref, onBeforeUnmount } from "vue";
 import { ElMessage } from 'element-plus'
@@ -182,13 +182,6 @@ const getDetail = () => {
     iframe.onerror = () => {
         state.status = '网页错误'
     }
-    // iframe.onload = () => {
-    //     alert(123)
-    //     if (state.status == '加载' || state.status == 'iframe') {
-    //         state.show_btn = true
-    //         state.status = 'iframe'
-    //     }
-    // }
 
     getPostDetail({
         params: {
@@ -221,8 +214,16 @@ const getDetail = () => {
             state.status = 'iframe'
             // 蒙层
             if (state.detail && state.detail.certNftProjectId) {
-                state.showMask = true;
-                // 确权
+                if (state.detail?.certNftUnlockStatus == 0) {
+                    state.showMask = true;
+                    // report
+                    reportFail()
+                } else {
+                    state.showMask = false;
+                    // report
+                    reportSucc()
+                }
+                // 确权信息
                 getChromeStorage('userInfo', (_userInfo) => {
                     if (_userInfo) {
                         getNftInfoStatus()
@@ -254,17 +255,6 @@ const getNftInfoStatus = () => {
         let { code, data } = res;
         if ( code === 0 ) {
             nftAuthINfo.value = data;
-            // checkMask
-            getChromeStorage('post_id_list', (list) => {
-                if (list && list.indexOf(state.postId) !== -1 && nftAuthINfo.value?.certStatus === 1) {
-                    state.showMask = false;
-                    // report
-                    reportSucc()
-                } else {
-                    // report
-                    reportFail()
-                }
-            })
         }
     })
 }
@@ -349,12 +339,10 @@ const succBack = () => {
         type: 'success'
     })
     state.showMask = false;
-    // 记录解锁
-    getChromeStorage('post_id_list', (list) => {
-        let originList = list ? list : [];
-        if (originList.indexOf(state.postId) === -1) {
-            originList.push(state.postId)
-            setChromeStorage({ post_id_list: JSON.stringify(originList) })
+    // 解锁
+    unlockNftCert({
+        params: {
+            postId: state.postId,
         }
     })
 }

+ 5 - 6
src/view/iframe/tool-box/full.vue

@@ -29,7 +29,8 @@
 <script setup>
 import { reactive, ref } from "vue";
 import { ElMessage } from 'element-plus'
-import { getChromeStorage, setChromeStorage, sendChromeTabMessage } from "@/uilts/chromeExtension";
+import { unlockNftCert } from '@/http/toolBoxApi'
+import { getChromeStorage, sendChromeTabMessage } from "@/uilts/chromeExtension";
 import "element-plus/es/components/message/style/css";
 
 let state = reactive({
@@ -157,11 +158,9 @@ const succBack = () => {
     })
     showMask.value = false;
     // 记录解锁
-    getChromeStorage('post_id_list', (list) => {
-        let originList = list ? list : [];
-        if (originList.indexOf(postId.value) === -1) {
-            originList.push(postId.value)
-            setChromeStorage({ post_id_list: JSON.stringify(originList) })
+    unlockNftCert({
+        params: {
+            postId: postId.value,
         }
     })
 }

+ 1 - 0
src/view/iframe/treasure-hunt/components/btn.vue

@@ -59,6 +59,7 @@ const refresh = () => {
 
         state.init(() => {
             state.inviteInit()
+            state.inviteList()
         })
     }
 }

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

@@ -12,7 +12,8 @@
             </div>
         </div>
         <div class="share-list">
-            <img :src="item.iconPath" alt="" v-for="item in state.share_list" @click="clickShare(item)" />
+            <img :src="item.iconPath" alt="" v-for="item in state.share_list" :data-clipboard-text="item.inviteContent"
+                @click="clickShare(item)" class="share-item" />
         </div>
         <v-btn :txt="state.open_btn.txt" :font-size="'17px'" class="btn" :icon="false"
             :disabled="state.open_btn.disabled"
@@ -86,14 +87,25 @@ const clickBtn = () => {
     state.treasureOpen()
 }
 
-
-
 const clickShare = (item) => {
-    window.open(item.redirectPath)
+    var clipboard = new ClipboardJS('.share-item');
+    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();
+    })
+    chrome.tabs.create({
+        url: item.redirectPath
+    })
 }
-var clipboard = new ClipboardJS('.copy-btn');
+
 
 const clickCopy = () => {
+    var clipboard = new ClipboardJS('.copy-btn');
     clipboard.on('success', function (e) {
         state.toast.txt = 'Copy Successfully'
         state.toast.has_icon = true

+ 4 - 0
src/view/iframe/treasure-hunt/components/invite-list.vue

@@ -76,6 +76,10 @@ function handleScroll(e) {
 }
 
 const list = () => {
+    state.inviteList()
+}
+
+state.inviteList = () => {
     inviteList({
         params: {
             inviteCode: state.invite_code,

+ 21 - 6
src/view/iframe/treasure-hunt/cover.vue

@@ -16,14 +16,14 @@
             <div class="treasure">
                 <component-zoom width="335" fontSize="34" style="margin:0 auto;">
                     <span>Treasure</span>
-                    <span>{{ state.detail.amountValue }}</span>
+                    <span>${{ toLast(state.detail.amountUsdValue, 2) }}</span>
                 </component-zoom>
             </div>
             <div class="gain">
                 <component-zoom width="335" fontSize="34" style="margin:0 auto;">
                     <span>Your Gain Up to</span>
                     <span>$</span>
-                    <span>{{ state.detail.remainAmountValue }}</span>
+                    <span>{{ toLast(state.detail.upGainAmountValue, 3) }}</span>
                 </component-zoom>
             </div>
             <div class="coin">
@@ -42,8 +42,8 @@
             <img :src="require('@/assets/svg/icon-three-line.svg')" alt="" />
             <span>to Hunt Treasure</span>
         </div>
-        <v-btn :txt="state.open_btn.txt" :font-size="'17px'" :icon="true" :disabled="state.open_btn.disabled"
-            @onClick="clickBtn" :loading="state.btn_loading"></v-btn>
+        <v-btn :txt="state.open_btn.txt" :font-size="'17px'" :icon="true" :disabled="false" @onClick="clickBtn"
+            :loading="state.btn_loading" v-click-log="state.log_click"></v-btn>
     </div>
 
 </template>
@@ -82,7 +82,6 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                 return
             }
             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
@@ -100,6 +99,11 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                         state.page = '开奖页'
                         state.start_task = res.data
                         state.btn_loading = false
+                    } else {
+                        state.init(() => {
+                            state.inviteInit()
+                            state.inviteList()
+                        })
                     }
                 })
             }
@@ -107,6 +111,14 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     }
 })
 
+const toLast = (num, bit) => {
+    let str = 1
+    for (let i = 0; i < bit; i++) {
+        str = str + '0'
+    }
+    let _num = Number(str)
+    return Math.floor(Number(num) * _num) / _num
+}
 
 
 const clickBtn = () => {
@@ -177,7 +189,10 @@ const startBtn = () => {
                 });
             })
         } else {
-            console.log(res)
+            state.init(() => {
+                state.inviteInit()
+                state.inviteList()
+            })
         }
     })
 }

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

@@ -3,7 +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>
+    <v-toast :show="state.toast.show" :txt="state.toast.txt" :has_icon="state.toast.has_icon"></v-toast>
 </template>
 <script setup>
 import { reactive, provide, onMounted } from 'vue'
@@ -11,7 +11,7 @@ import VCover from '@/view/iframe/treasure-hunt/cover.vue'
 import VInvite from '@/view/iframe/treasure-hunt/invite.vue'
 import VResult from '@/view/iframe/treasure-hunt/result.vue'
 import { inviteDetail, treasureDetail, treasureOpen } from '@/http/treasure.js'
-import { reSetBindTwtterId } from '@/http/help.js'
+import { reSetBindTwtterId, reSetBindRepost } 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'
@@ -55,6 +55,13 @@ state.init = (callback) => {
         }).then((res) => {
             if (res.code == 0) {
                 handleCommon(res, callback)
+                // 绑定repostSrcContentId
+                if (!res.data.repostSrcContentId) {
+                    reSetBindRepost({
+                        inviteCode: state.invite_code,
+                        tweetId: state.tweetId
+                    })
+                }
             }
         })
 
@@ -105,7 +112,8 @@ state.treasureOpen = () => {
         }
     }).then((res) => {
         if (res.code == 0) {
-            for (let i in state.open_box) {
+            // icon
+            for (let i in state.boxs) {
                 if (state.boxs[i].id == state.treasureId) {
                     if (i > 0) {
                         state.open_box.icon = gold_open_box_big
@@ -118,9 +126,9 @@ state.treasureOpen = () => {
             state.open_box.show = true
             state.open_box.data = res.data
 
-            // icon
             state.init(() => {
                 state.inviteInit()
+                state.inviteList()
             })
         } else {
             switch (String(res.code)) {
@@ -147,6 +155,7 @@ state.treasureOpen = () => {
 
             state.init(() => {
                 state.inviteInit()
+                state.inviteList()
             })
         }
     })

+ 1 - 0
src/view/iframe/treasure-hunt/invite.vue

@@ -98,6 +98,7 @@ onMounted(() => {
     setInterval(() => {
         state.init(() => {
             state.inviteInit()
+            state.inviteList()
         })
     }, 30000)
 })

+ 2 - 2
src/view/iframe/treasure-hunt/result.vue

@@ -36,8 +36,8 @@
             </template>
         </div>
         <v-btn :txt="'Invite friends for more treasures'" :font-size="'16px'" class="btn"
-          v-click-log="state.log_result_click" v-if="Number(state.start_task.amountValue) > 0" @onClick="clickBtn"></v-btn>
-        <v-btn :txt="'Invite'" :font-size="'16px'" class="btn" v-click-log="state.log_result_click"  v-else @onClick="clickBtn"></v-btn>
+            v-if="Number(state.start_task.amountValue) > 0"  v-click-log="state.log_result_click" @onClick="clickBtn" :disabled="false"></v-btn>
+        <v-btn :txt="'Invite'" :font-size="'16px'" class="btn" v-else @onClick="clickBtn" :disabled="false"  v-click-log="state.log_result_click"></v-btn>
     </div>
 </template>
 <script setup>