ソースを参照

[edit][state]

zhangwei 3 年 前
コミット
1bb8ac68c7
1 ファイル変更14 行追加11 行削除
  1. 14 11
      src/view/iframe/red-packet/red-packet.vue

+ 14 - 11
src/view/iframe/red-packet/red-packet.vue

@@ -72,8 +72,8 @@
               <div class="item-title">Join Discord</div>
             </div>
             <img :src="require('@/assets/gif/red-right.gif')" alt class="red-right"
-              v-show="!data.done.join_discord && data.done.join_discord_red" />
-            <img v-if="data.done.join_discord" :src="require('@/assets/svg/icon-true.svg')" alt />
+              v-show="!state.done.join_discord && state.done.join_discord_red" />
+            <img v-if="state.done.join_discord" :src="require('@/assets/svg/icon-true.svg')" alt />
             <template v-else>
               <div v-if="joinDiscordIng" class="loading-wrapper">
                 <img class="icon-loading"
@@ -107,7 +107,7 @@
               <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt
                 :style="{ left: `${(i) * 16}px`, zIndex: `${10 - i}` }" />
             </template>
-            <img v-if="state.detail.allReceived > 3" :src="require('@/assets/svg/icon-winner-more.svg')" alt
+            <img v-if="state.detail.allReceived && state.detail.allReceived.length > 3" :src="require('@/assets/svg/icon-winner-more.svg')" alt
               :style="{ left: `${3 * 16}px`, zIndex: `${10 - 3}` }" />
           </div>
         </div>
@@ -286,7 +286,7 @@
     </div>
 
   </div>
-  <div style="width: 100%; height: 30px; position: fixed; color: red;">{{state.detail.validity}}</div>
+  <div style="width: 100%; height: 30px; position: fixed; color: red; top:0;">{{state.detail.validity}}</div>
 </template>
 
 <script>
@@ -585,9 +585,11 @@ const showNotOpenPage = () => {
 }
 const showOpenedPage = () => {
   state.status = 'opened'
-  state.detail.taskCondition = JSON.parse(state.detail.taskCondition)
+  
   initTaskDetail()
-  // 埋点
+}
+const showOpenedPageReport = ()=>{
+// 埋点
   Report.reportLog({
     pageSource: Report.pageSource.task_page,
     businessType: Report.businessType.pageView,
@@ -646,10 +648,12 @@ const handleStatusPage = () => {
   // 如果 我领取过了
   if (state.detail.myReceived) {
     state.receiveAmount = state.detail.myReceived.amountValue || 0
+    state.detail.taskCondition = JSON.parse(state.detail.taskCondition)
     // 如果 任务完成状态 = 未完成
     if (state.detail.myReceived.taskFinishStatus == 0) {
       // 显示任务未完成页面
       showOpenedPage()
+      showOpenedPageReport()
       getValidity()
       //如果 任务完成状态 = 已经完成
     } else if (state.detail.myReceived.taskFinishStatus == 1) {
@@ -728,6 +732,7 @@ function initTaskDetail() {
     }
   }).then((res) => {
     if (res.code.toString()) {
+      state.detail.taskCondition = res.data
       for (let i in res.data) {
         switch (res.data[i].type) {
           case 1:
@@ -741,7 +746,7 @@ function initTaskDetail() {
             state.done.retweet = res.data[i].finished
             break
           case 7:
-            data.done.join_discord = res.data[i].finished
+            state.done.join_discord = res.data[i].finished
             discordAuthorizeRequired = res.data[i].discordAuthorizeRequired
             break
         }
@@ -777,9 +782,7 @@ function handleRedPacket() {
     }
   }).then((res) => {
     if (res.code == 0) {
-      state.status = 'opened'
-      state.detail.taskCondition = JSON.parse(state.detail.taskCondition)
-      initTaskDetail()
+      showOpenedPage()
       init()
     } else {
       handleErrorCode(res)
@@ -1154,7 +1157,7 @@ async function joinDiscord() {
       if(res.code == 0) {
           let { joined } = res.data || {};
           if(joined) {
-            data.done.join_discord = true;
+            state.done.join_discord = true;
           } else {
             openInviteUrl();
           }