Ver código fonte

[add][绑定]

zhangwei 2 anos atrás
pai
commit
5280db8555

+ 3 - 0
src/assets/svg/icon-refresh-treasure.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.65 6.35C16.2 4.9 14.21 4 12 4C9.87827 4 7.84344 4.84285 6.34315 6.34315C4.84285 7.84344 4 9.87827 4 12C4 14.1217 4.84285 16.1566 6.34315 17.6569C7.84344 19.1571 9.87827 20 12 20C15.73 20 18.84 17.45 19.73 14H17.65C16.83 16.33 14.61 18 12 18C10.4087 18 8.88258 17.3679 7.75736 16.2426C6.63214 15.1174 6 13.5913 6 12C6 10.4087 6.63214 8.88258 7.75736 7.75736C8.88258 6.63214 10.4087 6 12 6C13.66 6 15.14 6.69 16.22 7.78L13 11H20V4L17.65 6.35Z" fill="#636363"/>
+</svg>

+ 1 - 1
src/logic/content/ParseCard.js

@@ -480,7 +480,7 @@ class ParseCard {
             dom.appendChild(this.createIframe({ post_Id, tweet_Id, page_type }))
         }
     }
-    replaceDOMRreasureCard({ invite_code, dom_card, tweet_Id, post_Id, time, short_url, page_type = '' }) {
+    replaceDOMTreasureCard({ invite_code, dom_card, tweet_Id, post_Id, time, short_url, page_type = '' }) {
         if (!dom_card || !dom_card.parentElement) {
             return
         }

+ 3 - 3
src/logic/content/twitter.js

@@ -276,7 +276,7 @@ function checkIsShowReSend(dom, params) {
  * @param isClick
  * @private
  */
- function _addDeNetEditBtn(params = {}) {
+function _addDeNetEditBtn(params = {}) {
     let toolElem = document.querySelector('div[data-testid="toolBar"]');
     if (toolElem) {
         let innerDeIcon = toolElem.querySelector('#de-btn1');
@@ -840,14 +840,14 @@ function setIframeRedPacket(type = 'twitter') {
                             item.page_type = '邀请链接'
                             if (item.invite_code) {
                                 item.post_Id = ''
-                                parseCard.replaceDOMRreasureCard(item)
+                                parseCard.replaceDOMTreasureCard(item)
                             }
                         } else {
                             // 原始链接
                             item.page_type = '原始链接'
                             item.post_Id = item.post_Id.split('treasure/')[1] || ''
                             if (item.post_Id) {
-                                parseCard.replaceDOMRreasureCard(item)
+                                parseCard.replaceDOMTreasureCard(item)
                             }
                         }
                     }

+ 6 - 2
src/uilts/chromeExtension.js

@@ -85,7 +85,7 @@ export function setChromeCookie({
     }
 }
 
-export function getChromeCookie({ name = '', url = '' }, callback) {
+export function getChromeCookie({ name = '', url = '', return_type = '' }, callback) {
     try {
         chrome.cookies.getAll({ name, url }, (res = []) => {
             let _str = ''
@@ -93,7 +93,11 @@ export function getChromeCookie({ name = '', url = '' }, callback) {
                 _str = res[0].value
             }
             if (_str) {
-                callback(JSON.parse(decodeURIComponent(_str)))
+                if (return_type == 'str') {
+                    callback(_str)
+                } else {
+                    callback(JSON.parse(decodeURIComponent(_str)))
+                }
             } else {
                 callback(null)
             }

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

@@ -17,6 +17,7 @@
         <div class="footer">
             <v-btn :txt="state.open_btn.txt" :font-size="'17px'" class="btn" :icon="false"
                 :disabled="state.open_btn.disabled" @onClick="clickBtn"></v-btn>
+            <!-- <img :src="require('@/assets/svg/icon-refresh-treasure.svg')" alt="" class="refresh"> -->
         </div>
     </div>
 </template>
@@ -122,6 +123,7 @@ const clickBtn = () => {
     }
 
     .list {
+        background: #fff;
         height: 204px;
         overflow-y: auto;
 

+ 31 - 5
src/view/iframe/treasure-hunt/cover.vue

@@ -50,8 +50,17 @@ 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 ComponentZoom from "@/view/components/component-zoom.vue";
-
+import { pageUrl } from "@/http/configAPI.js"
 import { prepareStart, treasureStart } from '@/http/treasure.js'
+import { getChromeCookie, removeChromeCookie } from '@/uilts/chromeExtension.js'
+
+chrome.storage.onChanged.addListener(changes => {
+    if (changes.userInfo) {
+        // let item = JSON.parse(changes.userInfo.newValue)
+        state.loading_show = false
+        state.init()
+    }
+})
 
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     switch (req.actionType) {
@@ -93,8 +102,20 @@ const clickBtn = () => {
         }
     }, 10000)
 
-    // four_task
-    // 获取文章
+    // 获取邀请码
+    getChromeCookie({
+        name: state.postId,
+        url: pageUrl,
+    }, (res) => {
+        if (res && res.inviteCode) {
+            state.invite_code = res.inviteCode
+        }
+        startBtn()
+    })
+}
+
+const startBtn = () => {
+    // 获取文本
     prepareStart({
         params: {
             postId: state.postId || '',
@@ -102,8 +123,13 @@ const clickBtn = () => {
         }
     }).then((res) => {
         if (res.code == 0) {
+            removeChromeCookie({
+                name: state.postId,
+                url: pageUrl,
+            })
+
             let text = res.data.rePostTweetContent
-            // 发送推文
+            // 一键三连
             chrome.tabs.getCurrent((tab) => {
                 chrome.tabs.sendMessage(tab.id, {
                     actionType: "IFRAME_TWITTER_API_DO_TASK",
@@ -113,7 +139,7 @@ const clickBtn = () => {
                     },
                     task_type: 'tasks',
                     tasks: state.tasks,
-                }, (res) => { console.log(res) });
+                });
             })
         } else {
             console.log(res)

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

@@ -128,7 +128,6 @@ const handleStatus = () => {
 
     let { status, joinStatus } = state.detail || {}
     state.open_btn.txt = 'Start'
-    state.open_box.show = true
     // 如果 夺宝状态 = 未开始
     if (status == 0) {
         state.page = '封面页'

+ 8 - 5
src/view/iframe/treasure-hunt/invite.vue

@@ -44,7 +44,6 @@ import InviteList from '@/view/iframe/treasure-hunt/components/invite-list.vue'
 import HoverTip from '@/view/iframe/treasure-hunt/components/hover-tip.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 state = inject('state')
 
@@ -83,18 +82,22 @@ state.boxs = []
 let line_full = ref(null)
 onMounted(() => {
     state.inviteInit()
+    setInterval(() => {
+        state.init(() => {
+            state.inviteInit()
+        })
+    }, 30000)
 })
 
 state.inviteInit = () => {
     if (state.detail.inviteCount > 0) {
         state.tabs[1].txt = `invited(${state.detail.inviteCount})`
     }
-
+    state.boxs = []
     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) {
+            if (index > 0) {
                 item.icon = gold_close_box
             } else {
                 item.icon = silver_close_box
@@ -104,7 +107,7 @@ state.inviteInit = () => {
             item.icon = silver_open_box
             item.hover_icon = require('@/assets/svg/icon-green-yes.svg')
             // 最后一条
-            if ((index + 1) == state.detail.treasureRecords.length) {
+            if (index > 0) {
                 item.icon = gold_open_box
             } else {
                 item.icon = silver_open_box