Browse Source

[add][- 金额文字 过长
- 多个关注任务完成文字
- 弹出动画]

zhangwei 2 years ago
parent
commit
8631563758

+ 2 - 2
src/manifest.json

@@ -2,8 +2,8 @@
     "manifest_version": 3,
     "manifest_version": 3,
     "name": "DeNet",
     "name": "DeNet",
     "description": "Growing more twitter followers with Denet",
     "description": "Growing more twitter followers with Denet",
-    "version": "1.1.6.2",
-    "denet_app_version_code": "19",
+    "version": "1.1.7",
+    "denet_app_version_code": "20",
     "background": {
     "background": {
         "service_worker": "/js/background.js"
         "service_worker": "/js/background.js"
     },
     },

+ 4 - 3
src/view/components/component-zoom.vue

@@ -25,9 +25,9 @@ let props = defineProps({
 watch(() => props.txt, (newVal) => {
 watch(() => props.txt, (newVal) => {
     setFontZoom(300)
     setFontZoom(300)
 },
 },
-{
-    deep: true
-})
+    {
+        deep: true
+    })
 
 
 let zoom = ref(1);
 let zoom = ref(1);
 let zoomDom = ref({});
 let zoomDom = ref({});
@@ -52,5 +52,6 @@ onMounted(() => {
     align-items: center;
     align-items: center;
     justify-content: center;
     justify-content: center;
     white-space: nowrap;
     white-space: nowrap;
+    width: fit-content;
 }
 }
 </style>
 </style>

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

@@ -19,7 +19,7 @@ defineProps({
     }
     }
 })
 })
 const clickBtn = () => {
 const clickBtn = () => {
-
+    state.dialog.show = false
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>

+ 31 - 4
src/view/iframe/treasure-hunt/components/open-box.vue

@@ -3,8 +3,7 @@
         <div class="background"></div>
         <div class="background"></div>
         <!-- 开奖页 -->
         <!-- 开奖页 -->
         <div class="content">
         <div class="content">
-
-            <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
+            <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" class="popIn" />
             <div class="mark">
             <div class="mark">
                 <p>You Win</p>
                 <p>You Win</p>
                 <div class="money">{{ state.open_box.data.usdAmountValue }}</div>
                 <div class="money">{{ state.open_box.data.usdAmountValue }}</div>
@@ -15,7 +14,6 @@
                         account
                         account
                     </div>
                     </div>
                 </div>
                 </div>
-
             </div>
             </div>
             <v-btn :txt="'OK'" :font-size="'16px'" class="btn" :icon="false" @onClick="clickBtn"></v-btn>
             <v-btn :txt="'OK'" :font-size="'16px'" class="btn" :icon="false" @onClick="clickBtn"></v-btn>
         </div>
         </div>
@@ -53,12 +51,18 @@ const clickBtn = () => {
         text-align: center;
         text-align: center;
         position: relative;
         position: relative;
 
 
-
+        .popIn {
+            -webkit-animation: fadeleftIn .4s;
+            animation: fadeleftIn .4s;
+            -webkit-animation-name: popIn;
+            animation-name: popIn;
+        }
 
 
         img {
         img {
             margin-top: 15px;
             margin-top: 15px;
             width: 250px;
             width: 250px;
             height: 250px;
             height: 250px;
+            animation: show 0.5s;
         }
         }
 
 
         .mark {
         .mark {
@@ -122,4 +126,27 @@ const clickBtn = () => {
         }
         }
     }
     }
 }
 }
+
+
+
+@keyframes popIn {
+    0% {
+        -webkit-transform: scale3d(0, 0, 0);
+        transform: scale3d(0.5, 0.5, 0.5);
+        opacity: 0;
+    }
+
+    50% {
+        -webkit-animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);
+        animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);
+    }
+
+    100% {
+        -webkit-transform: scale3d(1, 1, 1);
+        transform: scale3d(1, 1, 1);
+        -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
+        animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
+        opacity: 1;
+    }
+}
 </style>
 </style>

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

@@ -14,13 +14,17 @@
             </div>
             </div>
             <div class="in" v-else></div>
             <div class="in" v-else></div>
             <div class="treasure">
             <div class="treasure">
-                <span>Treasure</span>
-                <span>{{ state.detail.amountValue || '' }}</span>
+                <component-zoom width="335" fontSize="34" style="margin:0 auto;">
+                    <span>Treasure</span>
+                    <span>{{ state.detail.amountValue }}</span>
+                </component-zoom>
             </div>
             </div>
             <div class="gain">
             <div class="gain">
-                <span>Your Gain Up to</span>
-                <span>$</span>
-                <span>{{ state.detail.remainAmountValue }}</span>
+                <component-zoom width="335" fontSize="34" style="margin:0 auto;">
+                    <span>Your Gain Up to</span>
+                    <span>$</span>
+                    <span>{{ state.detail.remainAmountValue }}</span>
+                </component-zoom>
             </div>
             </div>
             <div class="coin">
             <div class="coin">
                 <img :src="state.detail.currencyIconPath" alt="" />
                 <img :src="state.detail.currencyIconPath" alt="" />
@@ -45,6 +49,7 @@
 import { inject } from 'vue'
 import { inject } from 'vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 import VHead from '@/view/iframe/treasure-hunt/components/head.vue'
 import VHead from '@/view/iframe/treasure-hunt/components/head.vue'
+import ComponentZoom from "@/view/components/component-zoom.vue";
 
 
 import { prepareStart, treasureStart } from '@/http/treasure.js'
 import { prepareStart, treasureStart } from '@/http/treasure.js'
 
 
@@ -107,7 +112,7 @@ const clickBtn = () => {
                         tweet_text: text
                         tweet_text: text
                     },
                     },
                     task_type: 'tasks',
                     task_type: 'tasks',
-                    tasks: JSON.parse(state.detail.startCondition),
+                    tasks: state.tasks,
                 }, (res) => { console.log(res) });
                 }, (res) => { console.log(res) });
             })
             })
         } else {
         } else {
@@ -185,6 +190,9 @@ const clickBtn = () => {
 
 
     .treasure {
     .treasure {
         text-align: center;
         text-align: center;
+        height: 37px;
+        display: flex;
+        align-items: center;
 
 
         span {
         span {
             font-size: 34px;
             font-size: 34px;

+ 35 - 21
src/view/iframe/treasure-hunt/index.vue

@@ -26,6 +26,9 @@ let state = reactive({
         txt: '',
         txt: '',
         disabled: false
         disabled: false
     },
     },
+    dialog: {
+        show: false,
+    },
     start_task: {}
     start_task: {}
 })
 })
 provide('state', state)
 provide('state', state)
@@ -46,19 +49,9 @@ state.init = (callback) => {
             params: {
             params: {
                 inviteCode: params.invite_code
                 inviteCode: params.invite_code
             }
             }
-
         }).then((res) => {
         }).then((res) => {
             if (res.code == 0) {
             if (res.code == 0) {
-                state.detail = res.data
-                state.postId = state.detail.postId
-                handleStatus()
-                if (!res.data.srcContentId) {
-                    reSetBindTwtterId({
-                        postId: state.postId || '',
-                        tweetId: state.tweetId || ''
-                    })
-                }
-                callback && callback()
+                handleCommon(res, callback)
             }
             }
         })
         })
 
 
@@ -70,20 +63,34 @@ state.init = (callback) => {
             }
             }
         }).then((res) => {
         }).then((res) => {
             if (res.code == 0) {
             if (res.code == 0) {
-                state.detail = res.data
-                state.postId = state.detail.postId
-                handleStatus()
-                if (!res.data.srcContentId) {
-                    reSetBindTwtterId({
-                        postId: state.postId || '',
-                        tweetId: state.tweetId || ''
-                    })
-                }
-                callback && callback()
+                handleCommon(res, callback)
             }
             }
         })
         })
     }
     }
 }
 }
+const handleCommon = (res, callback) => {
+    state.detail = res.data
+    state.postId = state.detail.postId
+    try {
+        state.tasks = JSON.parse(state.detail.startCondition)
+        let follows = state.tasks.filter((item) => { return item.type == 1 })
+        if (follows.length) {
+            state.follows = follows[0].relatedUsers
+        }
+    }
+    catch (error) {
+        console.error('catch', error)
+    }
+
+    handleStatus()
+    if (!res.data.srcContentId) {
+        reSetBindTwtterId({
+            postId: state.postId || '',
+            tweetId: state.tweetId || ''
+        })
+    }
+    callback && callback()
+}
 
 
 state.treasureOpen = () => {
 state.treasureOpen = () => {
     treasureOpen({
     treasureOpen({
@@ -98,6 +105,12 @@ state.treasureOpen = () => {
             state.init(() => {
             state.init(() => {
                 state.inviteInit()
                 state.inviteInit()
             })
             })
+        } else {
+            switch (String(res.code)) {
+                case '2037':
+                    state.dialog.show = true
+                    break;
+            }
         }
         }
     })
     })
 }
 }
@@ -115,6 +128,7 @@ const handleStatus = () => {
 
 
     let { status, joinStatus } = state.detail || {}
     let { status, joinStatus } = state.detail || {}
     state.open_btn.txt = 'Start'
     state.open_btn.txt = 'Start'
+    state.open_box.show = true
     // 如果 夺宝状态 = 未开始
     // 如果 夺宝状态 = 未开始
     if (status == 0) {
     if (status == 0) {
         state.page = '封面页'
         state.page = '封面页'

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

@@ -34,7 +34,7 @@
         <invite-friends v-show="state.tab_index == 0"></invite-friends>
         <invite-friends v-show="state.tab_index == 0"></invite-friends>
         <invite-list v-show="state.tab_index == 1"></invite-list>
         <invite-list v-show="state.tab_index == 1"></invite-list>
     </div>
     </div>
-
+    <v-dialog v-show="state.dialog.show"></v-dialog>
 </template>
 </template>
 <script setup>
 <script setup>
 import { ref, onMounted, watch, inject } from 'vue'
 import { ref, onMounted, watch, inject } from 'vue'
@@ -43,6 +43,7 @@ import VHead from '@/view/iframe/treasure-hunt/components/head.vue'
 import InviteList from '@/view/iframe/treasure-hunt/components/invite-list.vue'
 import InviteList from '@/view/iframe/treasure-hunt/components/invite-list.vue'
 import HoverTip from '@/view/iframe/treasure-hunt/components/hover-tip.vue'
 import HoverTip from '@/view/iframe/treasure-hunt/components/hover-tip.vue'
 import InviteFriends from '@/view/iframe/treasure-hunt/components/invite-friends.vue'
 import InviteFriends from '@/view/iframe/treasure-hunt/components/invite-friends.vue'
+import VDialog from '@/view/iframe/treasure-hunt/components/dialog.vue'
 
 
 let content_success_message = ref(null)
 let content_success_message = ref(null)
 let state = inject('state')
 let state = inject('state')

+ 12 - 4
src/view/iframe/treasure-hunt/result.vue

@@ -3,11 +3,18 @@
     <div class="content">
     <div class="content">
         <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
         <img :src="require('@/assets/img/icon-silver-open-box.png')" alt="" />
         <div class="mark">
         <div class="mark">
-            <p>You already followed Younan111 </p>
+            <p>You already followed
+                <template v-for="item, i in state.follows">
+                    <span v-if="i == 0">@{{ item.name }}</span>
+                    <span v-else>, @{{ item.name }}</span>
+                </template>
+            </p>
             <!-- 新粉 -->
             <!-- 新粉 -->
             <template v-if="Number(state.start_task.amountValue) > 0">
             <template v-if="Number(state.start_task.amountValue) > 0">
                 <p>You Win</p>
                 <p>You Win</p>
-                <div class="money">${{ state.start_task.usdAmountValue }}</div>
+                <component-zoom width="335" fontSize="34" style="margin:0 auto;">
+                    <div class="money">${{ state.start_task.usdAmountValue }}</div>
+                </component-zoom>
                 <div class="mark2">
                 <div class="mark2">
                     <img :src="state.start_task.currencyIcon" alt="" />
                     <img :src="state.start_task.currencyIcon" alt="" />
                     <div>{{ state.start_task.amountValue }} {{ state.start_task.currencySymbol }} stored in your DeNet
                     <div>{{ state.start_task.amountValue }} {{ state.start_task.currencySymbol }} stored in your DeNet
@@ -27,7 +34,7 @@
     </div>
     </div>
 </template>
 </template>
 <script setup>
 <script setup>
-import { inject } from 'vue'
+import { inject, onMounted } from 'vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 import VBtn from '@/view/iframe/treasure-hunt/components/btn.vue'
 let state = inject('state')
 let state = inject('state')
 
 
@@ -36,6 +43,7 @@ const clickBtn = () => {
         state.page = '邀请页'
         state.page = '邀请页'
     })
     })
 }
 }
+JSON.parse('[{\"type\":2},{\"type\":10},{\"relatedUsers\":[{\"name\":\"Ice17619765\",\"twitterUserId\":\"1502254505236525056\"},{\"name\":\"IanDuddyUK\",\"twitterUserId\":\"556285604\"},{\"name\":\"ffvc\",\"twitterUserId\":\"285917234\"}],\"type\":1}]')
 
 
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
@@ -59,7 +67,7 @@ const clickBtn = () => {
 
 
         p {
         p {
             margin: 0;
             margin: 0;
-            padding: 0;
+            padding: 0 16px;
             text-align: center;
             text-align: center;
 
 
         }
         }