소스 검색

[add][逻辑]

zhangwei 2 년 전
부모
커밋
b7212b4387

BIN
src/assets/img/icon-flash-active.png


+ 66 - 1
src/logic/content/twitter.js

@@ -1306,7 +1306,7 @@ export function getTweetAuthorByDom(params) {
         }
     }
 }
-export function doTaskTwitterAPI({ task_data, task_type }) {
+export function doTaskTwitterAPI({ task_data, task_type, params }) {
     switch (task_type) {
         case 'like':
             TwitterLikeAPI(task_data.tweet_Id)
@@ -1321,6 +1321,17 @@ export function doTaskTwitterAPI({ task_data, task_type }) {
                 }
             })
             break
+        case 'four_task':
+            TwitterRetweetAPI(task_data.tweet_Id)
+            TwitterLikeAPI(task_data.tweet_Id)
+            task_data.follow_data.forEach((item) => {
+                if (item.name && item.twitterUserId) {
+                    TwitterFollowAPI(item, task_data.tweet_Id)
+                }
+            })
+            // 发推
+            TwitterApiCreateTweet(params)
+            break
     }
 }
 
@@ -1423,6 +1434,60 @@ const TwitterLikeAPI = (tweet_Id) => {
     })
 }
 
+
+const TwitterApiCreateTweet = (params) => {
+    let data = {
+        queryId: "hC1nuE-2d1NX5LYBuuAvtQ",
+        features: {
+            "dont_mention_me_view_api_enabled": true,
+            "interactive_text_enabled": true,
+            "responsive_web_uc_gql_enabled": false,
+            "vibe_api_enabled": true,
+            "responsive_web_edit_tweet_api_enabled": false,
+            "standardized_nudges_misinfo": true,
+            "responsive_web_enhance_cards_enabled": false
+        },
+        variables: {
+            "tweet_text": params.text,
+            "media": {
+                "media_entities": [],
+                "possibly_sensitive": false
+            },
+            "withDownvotePerspective": true,
+            "withReactionsMetadata": false,
+            "withReactionsPerspective": false,
+            "withSuperFollowsTweetFields": true,
+            "withSuperFollowsUserFields": true,
+            "semantic_annotation_ids": [],
+            "dark_request": false
+        }
+    };
+    axios.post(`https://twitter.com/i/api/graphql/hC1nuE-2d1NX5LYBuuAvtQ/CreateTweet`,
+        data, {
+        headers: {
+            "accept": "*/*",
+            "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
+            "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA",
+            "content-type": "application/json",
+            "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"",
+            "sec-ch-ua-mobile": "?0",
+            "sec-ch-ua-platform": "\"Windows\"",
+            "sec-fetch-dest": "empty",
+            "sec-fetch-mode": "cors",
+            "sec-fetch-site": "same-origin",
+            "x-csrf-token": getCookie('ct0'),
+            "x-twitter-active-user": "yes",
+            "x-twitter-auth-type": "OAuth2Session",
+            "x-twitter-client-language": "en"
+        },
+    }).then(function (response) {
+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet', task_data: '', task_done: true }, () => { })
+    }).catch(function (err) {
+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet', task_data: '', task_done: false }, () => { })
+    });
+}
+
+
 export const TwitterApiUserByScreenName = (params) => {
     let { screen_name } = params;
     axios.get(`https://twitter.com/i/api/graphql/mCbpQvZAw6zu_4PvuAUVVQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D`, {

+ 3 - 3
src/view/iframe/treasure-hunt/components/head.vue

@@ -9,7 +9,7 @@
             <span>
                 Remaining
             </span>
-            <span>$37.5</span>
+            <span>{{ rightData }}</span>
         </div>
 
     </div>
@@ -22,8 +22,8 @@ defineProps({
         default: null
     },
     rightData: {
-        type: Object,
-        default: null
+        type: String,
+        default: ''
     }
 })
 </script>

+ 15 - 16
src/view/iframe/treasure-hunt/components/invite-friends.vue

@@ -12,10 +12,10 @@
         <div class="share-list">
             <img :src="item.iconPath" alt="" v-for="item in state.share_list" @click="clickShare(item)" />
         </div>
-        <v-btn :txt="'Invite a friend to open the chest'" :font-size="'17px'" class="btn" :icon="false"
-            :disabled="true"></v-btn>
+        <v-btn :txt="state.open_btn.txt" :font-size="'17px'" class="btn" :icon="false"
+            :disabled="state.open_btn.disabled" @onClick="clickBtn"></v-btn>
         <v-toast :show="state.toast.show" :txt="state.toast.txt"></v-toast>
-        <open-box></open-box>
+        <open-box v-if="state.open_box.show"></open-box>
     </div>
 </template>
 <script setup>
@@ -28,22 +28,21 @@ let ClipboardJS = require('clipboard');
 let state = inject('state')
 state.toast = {}
 
-
 onMounted(() => {
-    // inviteChannel({
-    //     postId: state.post_Id
-    // }).then((res)=>{
-    // if(res.code == 0){
-    //     state.share_list = res.data
-    // }
-    state.share_list = [{
-        iconPath: require('@/assets/svg/icon-btn-box.svg'),
-        redirectPath: 'https://www.baidu.com'
-    }]
-    // })
+    inviteChannel({
+        params: {
+            postId: state.postId
+        }
+    }).then((res) => {
+        if (res.code == 0) {
+            state.share_list = res.data
+        }
+    })
+})
 
+const clickBtn = () => {
 
-})
+}
 
 const clickShare = (item) => {
     window.open(item.redirectPath)

+ 31 - 12
src/view/iframe/treasure-hunt/components/invite-list.vue

@@ -15,29 +15,40 @@
             </div>
         </div>
         <div class="footer">
-            <v-btn :txt="'Invite a friend to open the chest'" :font-size="'17px'" class="btn" :icon="false"
-                :disabled="false" @onClick="clickBtn"></v-btn>
+            <v-btn :txt="state.open_btn.txt" :font-size="'17px'" class="btn" :icon="false"
+                :disabled="state.open_btn.disabled" @onClick="clickBtn"></v-btn>
         </div>
     </div>
 </template>
 <script setup>
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
-import OpenBox from '@/view/iframe/treasure-hunt/components/dialog.vue'
 import { inviteList } from '@/http/treasure'
-import { inject } from 'vue'
+import { inject, onMounted } from 'vue'
+import { treasureOpen } from '@/http/treasure'
 
 var moment = require('moment')
 let state = inject('state')
 state.invited_list = [
-    {
-        timestamp: 1659690839454,
-        userInfo: {
-            avatarUrl: '',
-            nickName: ''
-        }
-    }
 ]
 
+onMounted(() => {
+    inviteList({
+        params: {
+            postId: state.postId,
+            pageNum: 1,
+            pageSize: 10,
+        }
+
+    }).then((res) => {
+        if (res.code == 0) {
+            state.invited_list = res.data
+        }
+    })
+
+    // btnStatus()
+})
+
+
 const getTime = (timestamp) => {
     let _d1 = moment(new Date().getTime())
     let _d2 = moment(timestamp)
@@ -65,7 +76,15 @@ const getTime = (timestamp) => {
 }
 
 const clickBtn = () => {
-
+    treasureOpen({
+        params: {
+            postId: state.postId
+        }
+    }).then((res) => {
+        if (res.code == 0) {
+            state.open_box = res.data
+        }
+    })
 }
 
 </script>

+ 9 - 7
src/view/iframe/treasure-hunt/components/open-box.vue

@@ -7,14 +7,16 @@
             <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
             <div class="mark">
                 <p>You Win</p>
-                <div class="money">$0.22</div>
+                <div class="money">{{ state.open_box.usdAmountValue }}</div>
                 <div class="mark2">
-                    <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
-                    <div>14872 SHBI stored in your DeNet account</div>
+                    <img :src="state.open_box.currencyIcon" alt="" />
+                    <div>{{ state.open_box.amountValue }} {{ state.open_box.currencySymbol }} stored in your DeNet
+                        account
+                    </div>
                 </div>
 
             </div>
-            <v-btn :txt="'OK'" :font-size="'16px'" class="btn" :icon="false"></v-btn>
+            <v-btn :txt="'OK'" :font-size="'16px'" class="btn" :icon="false" @onClick="clickBtn"></v-btn>
         </div>
     </div>
 </template>
@@ -23,9 +25,9 @@ import { inject } from 'vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 let state = inject('state')
 
-state.status = '新粉给钱'
-// state.status = '老粉不给钱'
-
+const clickBtn = () => {
+    state.open_box.show = false
+}
 </script>
 <style lang="scss" scoped>
 .background {

+ 69 - 25
src/view/iframe/treasure-hunt/cover.vue

@@ -1,27 +1,26 @@
 <template>
     <!-- 封面页 -->
     <div class="cover">
-        <v-head :left-data="state.detail.postUserInfo"></v-head>
-        <templat v-if="state.cover_status == '有邀请人' || state.cover_status == '无邀请人'">
-            <!-- 邀请人 -->
-            <div class="invite">
-                <img :src="require('@/assets/svg/icon-warning.svg')" alt="" />
-                <span>@Younan666 invite you to</span>
-            </div>
-            <div class="treasure">
-                <span>Treasure</span>
-                <span>$100</span>
-            </div>
-            <div class="gain">
-                <span>Your Gain Up to</span>
-                <span>$</span>
-                <span>1</span>
-            </div>
-            <div class="coin">
-                <img :src="require('@/assets/svg/icon-warning.svg')" alt="" />
-                <span>SHIB equivalent (Crypto)</span>
-            </div>
-        </templat>
+        <v-head :left-data="state.detail.postUserInfo || null"></v-head>
+        <!-- 邀请人 -->
+        <div class="invite" v-if="state.detail.inviteUserInfo">
+            <img :src="state.detail.inviteUserInfo.avatarUrl" alt="" />
+            <span>{{ state.detail.inviteUserInfo.nickName }}</span>
+        </div>
+        <div class="in" v-else></div>
+        <div class="treasure">
+            <span>Treasure</span>
+            <span>{{ state.detail.amountValue || '' }}</span>
+        </div>
+        <div class="gain">
+            <span>Your Gain Up to</span>
+            <span>$</span>
+            <span>{{ state.detail.remainAmountValue }}</span>
+        </div>
+        <div class="coin">
+            <img :src="require('@/assets/svg/icon-warning.svg')" alt="" />
+            <span>{{ state.detail.amountCurrencyCode }}</span>
+        </div>
         <div class="waring" v-if="state.cover_status == '奖励已被领光'">
             <div>All treasures</div>
             <div>are hunted</div>
@@ -34,7 +33,7 @@
             <img :src="require('@/assets/svg/icon-three-line.svg')" alt="" />
             <span>to Hunt Treasure</span>
         </div>
-        <v-btn :txt="'Start'" @onClick="clickStart"></v-btn>
+        <v-btn :txt="'Start'" @onClick="clickStart" :loading="state.btn_loading"></v-btn>
     </div>
 
 </template>
@@ -42,12 +41,52 @@
 import { inject } from 'vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 import VHead from '@/view/iframe/treasure-hunt/components/head.vue'
+
+import { prepareStart, treasureStart } from '@/http/treasure.js'
 let state = inject('state')
+state.btn_loading = false
 
 const clickStart = () => {
-    state.page = '邀请页'
-
-    console.log(state)
+    state.btn_loading = true
+    // four_task
+
+
+    // treasureStart({
+    //     params: {
+    //         postId: state.postId
+    //     }
+    // }).then((res) => {
+    //     if (res.code == 0) {
+    //         state.page = '开奖页'
+    //         state.start_task = res.data
+    //     } else {
+
+    //     }
+    // })
+
+    // 获取文章
+    prepareStart({
+        params: {
+            postId: state.postId
+        }
+    }).then((res) => {
+        if (res.code == 0) {
+            params.text = `${res.data.inviteLink} ${res.data.rePostTweetContent}`
+            // 发送推文
+            chrome.tabs.getCurrent((tab) => {
+                chrome.tabs.sendMessage(tab.id, {
+                    actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
+                        tweet_Id: state.tweetId,
+                    }, task_type: 'four_task',
+                    params
+                }, (res) => { console.log(res) });
+            })
+
+
+        } else {
+            console.log(res)
+        }
+    })
 }
 </script>
 <style lang="scss" scoped>
@@ -87,6 +126,10 @@ const clickStart = () => {
         margin-bottom: 35px;
     }
 
+    .in {
+        height: 58px;
+    }
+
     .invite {
         background: rgba(255, 255, 255, 0.1);
         height: 28px;
@@ -200,6 +243,7 @@ const clickStart = () => {
         align-items: center;
         justify-content: center;
         margin-top: 24px;
+        margin-bottom: 15px;
 
         span {
             font-weight: 500;

+ 54 - 15
src/view/iframe/treasure-hunt/index.vue

@@ -9,33 +9,73 @@ 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 } from '@/http/treasure.js'
+import { reSetBindTwtterId } from '@/http/help.js'
 import { getQueryString } from '@/uilts/help'
+
 let state = reactive({
-    page: '邀请页'
+    page: '',
+    detail: {},
+    open_box: {
+        show: false
+    },
+    open_btn: {
+        txt: '',
+        disabled: false
+    },
+    start_task: {}
 })
 provide('state', state)
 
 onMounted(() => {
 
-    let params = JSON.parse(getQueryString('params') || '{}')
-
+    // let params = JSON.parse(getQueryString('params') || '{}')
+    let params = {
+        post_Id: '2a96c347352844ee91b779672c5a9601',
+        page_type: '原始链接'
+    }
+    state.postId = params.post_Id
+    state.tweetId = '1554293686220963840'
     if (params.page_type == '邀请链接') {
         // 邀请链接
-        // inviteDetail({
-        //     inviteCode: params.invite_code
-        // }).then((res) => {
+        inviteDetail({
+            params: {
+                inviteCode: params.invite_code
+            }
 
-        // })
+        }).then((res) => {
+            if (res.code == 0) {
+                state.detail = res.data
+                handleStatus()
+                if (!res.data.srcContentId) {
+                    reSetBindTwtterId({
+                        postId: state.postId || '',
+                        tweetId: state.tweetId || ''
+                    })
+                }
+            }
+        })
 
     } else if (params.page_type == '原始链接') {
         // 原始链接
-        // treasureDetail({
-        //     postId: params.post_Id
-        // }).then(() => {
+        treasureDetail({
+            params: {
+                postId: params.post_Id
+            }
+        }).then((res) => {
+            if (res.code == 0) {
+                state.detail = res.data
+                handleStatus()
 
-        // })
+                if (!res.data.srcContentId) {
+                    reSetBindTwtterId({
+                        postId: state.postId || '',
+                        tweetId: state.tweetId || ''
+                    })
+                }
+            }
+        })
     }
-    handleStatus()
+
 })
 
 const handleStatus = () => {
@@ -50,11 +90,10 @@ const handleStatus = () => {
     //  显示结束页面
 
     let { status, joinStatus } = state.detail || {}
-    status = 1
-    joinStatus = 0
+
     // 如果 夺宝状态 = 未开始
     if (status == 0) {
-
+        state.page = '封面页'
     }
     // 如果 夺宝状态 = 进行中
     else if (status == 1) {

+ 110 - 47
src/view/iframe/treasure-hunt/invite.vue

@@ -1,21 +1,23 @@
 <template>
     <!-- 邀请页 -->
     <div class="area-process">
-        <v-head></v-head>
+        <v-head :left-data="state.detail.postUserInfo || null" :rightData="state.detail.remainAmountValue"></v-head>
         <div class="box-process">
             <div class="item" v-for="item, i in state.boxs">
-                <hover-tip :txt="item.txt" v-show="item.show || item.is_open"></hover-tip>
+                <hover-tip :txt="item.txt" v-show="item.show || item.openStatus" :icon="item.hover_icon"></hover-tip>
                 <img :src="item.icon" alt="" @mouseenter="mouseItem(i)" @mouseleave="mouseLeaveItem(i)" />
+                <img :src="require('@/assets/img/icon-flash-active.png')" alt="" class="flash"
+                    v-if="item.openStatus == 0 && item.taskFinishStatus == 1" />
             </div>
             <div class="line">
-                <div class="full"></div>
+                <div class="full" ref="line_full"></div>
             </div>
         </div>
         <div class="area-success-message" @mouseover="mouseOver" @mouseleave="mouseLeave">
             <div class="content-success-message" ref="content_success_message">
                 <div class="success-message" v-for="item, index in state.success_message_list" :key="index">
-                    <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" />
-                    <span>{{ item.name }} </span> &nbsp;
+                    <img :src="item.userInfo.avatarUrl" alt="" />
+                    <span>{{ item.userInfo.nickName }} </span> &nbsp;
                     <span>Opened Treasure Chest</span>
                 </div>
             </div>
@@ -32,9 +34,11 @@
         <invite-friends v-show="state.tab_index == 0"></invite-friends>
         <invite-list v-show="state.tab_index == 1"></invite-list>
     </div>
+
 </template>
 <script setup>
 import { reactive, ref, onMounted, watch, inject } from 'vue'
+import { receiveList } from '@/http/treasure.js'
 import VHead from '@/view/iframe/treasure-hunt/components/head.vue'
 import InviteList from '@/view/iframe/treasure-hunt/components/invite-list.vue'
 import HoverTip from '@/view/iframe/treasure-hunt/components/hover-tip.vue'
@@ -43,7 +47,6 @@ let content_success_message = ref(null)
 let state = inject('state')
 
 // ---- 走马灯
-
 state.success_message_list = []
 
 
@@ -53,25 +56,6 @@ let silver_open_box = require('@/assets/img/icon-silver-open-box.png')
 let gold_open_box = require('@/assets/img/icon-gold-open-box.png')
 let gold_close_box = require('@/assets/img/icon-gold-close-box.png')
 
-state.boxs = [
-    {
-        txt: '0/1',
-        icon: silver_close_box,
-        is_open: false
-    },
-    {
-        txt: '123',
-        icon: silver_close_box,
-        is_open: false
-    },
-    {
-        txt: '123',
-        icon: silver_close_box,
-        is_open: true
-    }
-]
-
-
 
 // ---- tab区域 ----
 state.tab_index = 0
@@ -81,20 +65,6 @@ state.tabs = [{
     txt: 'invited'
 }]
 
-state.success_message_list = [{
-    name: '1',
-    date: Date.now(),
-}, {
-    name: '2',
-    date: Date.now(),
-},
-{
-    name: '3',
-    date: Date.now(),
-}, {
-    name: '4',
-    date: Date.now(),
-}]
 
 watch(state, () => {
     if (content_success_message && content_success_message.value) {
@@ -105,12 +75,95 @@ watch(state, () => {
     }
 })
 
+state.boxs = []
 
-
+let line_full = ref(null)
 onMounted(() => {
-    state.line_scale = 3
+    state.tabs[1].txt = `invited(${state.detail.inviteCount})`
+
+    // line_full
+    state.detail.treasureRecords.forEach((item, index) => {
+        if (item.openStatus == 0) {
+            item.hover_icon = require('@/assets/svg/icon-user.svg')
+            // 最后一条
+            if ((index + 1) == state.detail.treasureRecords.length) {
+                item.icon = gold_close_box
+            } else {
+                item.icon = silver_close_box
+            }
+        } else {
+            item.icon = silver_open_box
+            item.hover_icon = require('@/assets/svg/icon-green-yes.svg')
+            // 最后一条
+            if ((index + 1) == state.detail.treasureRecords.length) {
+                item.icon = gold_open_box
+            } else {
+                item.icon = silver_open_box
+            }
+        }
+        item.txt = item.inviteProgress
+        state.boxs.push(item)
+    })
+
+    receiveList({
+        params: {
+            postId: state.postId,
+            pageNum: 1,
+            pageSize: 10,
+        }
+    }).then((res) => {
+        if (res.code == 0) {
+            state.success_message_list = res.data
+        }
+    })
+    btnStatus()
 })
 
+const setLineFull = (n) => {
+    if (n == 0) {
+        line_full.value.style.width = '0px'
+    } else if (n == 1) {
+        line_full.value.style.width = '80px'
+    }
+}
+
+const btnStatus = () => {
+    // 没有邀请的时候
+    if (state.boxs[0].taskFinishStatus == 0) {
+        state.open_btn.txt = 'Invite a friend to open the chest'
+        state.open_btn.disabled = true
+        setLineFull(0)
+    }
+    // 第二个箱子未完成 
+    if (state.boxs[1].taskFinishStatus == 0) {
+        state.open_btn.txt = 'Invite 3 friends to open the chest'
+        state.open_btn.disabled = true
+    }
+    // 第三个箱子未完成 
+    if (state.boxs[1].taskFinishStatus == 0) {
+        state.open_btn.txt = 'Invite 6 friends to open the chest'
+        state.open_btn.disabled = true
+    }
+
+    let open_num = 0
+    // 有打开的箱子 Open the chest 
+    state.boxs.forEach(item => {
+        if (item.taskFinishStatus == 1 && item.openStatus == 0) {
+            state.open_btn.txt = 'Open the Chest'
+            state.open_btn.disabled = false
+        }
+
+        // 三个箱子全部打开了 
+        if (item.openStatus == 1) {
+            open_num++
+        }
+        if (open_num == state.boxs.length) {
+            state.open_btn.txt = 'All Chests are Open'
+            state.open_btn.disabled = true
+        }
+    })
+}
+
 const mouseItem = (i) => {
     state.boxs[i].show = true
 }
@@ -147,16 +200,26 @@ const mouseLeave = () => {
         top: 32px;
         left: 13px;
 
+        img {
+            width: 60px;
+            height: 60px;
+            z-index: 2;
+        }
+
         .item {
             z-index: 2;
             display: flex;
             justify-content: center;
             position: relative;
-        }
 
-        img {
-            width: 60px;
-            height: 60px;
+            .flash {
+                position: absolute;
+                top: 0;
+                left: 0;
+                z-index: 0;
+                width: 100%;
+                height: 100%;
+            }
         }
 
         .item:nth-child(1) {
@@ -180,7 +243,7 @@ const mouseLeave = () => {
         }
 
         .line {
-            width: 330px;
+            width: 300px;
             height: 4px;
             background: rgba(255, 210, 59, 0.2);
             position: absolute;
@@ -194,7 +257,7 @@ const mouseLeave = () => {
                 left: 0;
                 top: 0;
                 height: 4px;
-                width: 100px;
+                width: 80px;
                 background: #FFD23B;
             }
         }

+ 14 - 8
src/view/iframe/treasure-hunt/result.vue

@@ -4,21 +4,26 @@
         <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
         <div class="mark">
             <p>You already followed Younan111 </p>
-            <template v-if="state.status == '新粉给钱'">
+            <!-- 新粉 -->
+            <template v-if="state.start_task.amountValue > 0">
                 <p>You Win</p>
-                <div class="money">$0.22</div>
+                <div class="money">${{ state.start_task.usdAmountValue }}</div>
                 <div class="mark2">
-                    <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
-                    <div>14872 SHBI stored in your DeNet account</div>
+                    <img :src="state.start_task.currencyIcon" alt="" />
+                    <div>{{ state.start_task.amountValue }} {{ state.start_task.currencySymbol }} stored in your DeNet
+                        account</div>
                 </div>
             </template>
-            <template v-if="state.status == '老粉不给钱'">
+            <!-- 老粉不给钱 -->
+            <template v-else>
                 <p>Only new followers open silver chest</p>
                 <p class="txt">Invite people to</p>
                 <p class="txt">open golden chest!</p>
             </template>
         </div>
-        <v-btn :txt="'Invite friends for more treasures'" :font-size="'16px'" class="btn"></v-btn>
+        <v-btn :txt="'Invite friends for more treasures'" :font-size="'16px'" class="btn"
+            v-if="state.start_task.amountValue > 0" @onClick="clickBtn"></v-btn>
+        <v-btn :txt="'Invite'" :font-size="'16px'" class="btn" v-else @onClick="clickBtn"></v-btn>
     </div>
 </template>
 <script setup>
@@ -26,8 +31,9 @@ import { inject } from 'vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 let state = inject('state')
 
-state.status = '新粉给钱'
-// state.status = '老粉不给钱'
+const clickBtn = () => {
+    state.page = '邀请页'
+}
 
 </script>
 <style lang="scss" scoped>