瀏覽代碼

[edit][消息通信]

zhangwei 2 年之前
父節點
當前提交
fd943965fe

+ 4 - 4
src/entry/background.js

@@ -228,9 +228,9 @@ function onMessageMethod(req, sender, sendResponse) {
             return
         }
         if (req.info) {
-            newOnMessageMethod(req, sender, sendResponse)
+            newRuntimeOnMessageMethod(req, sender, sendResponse)
         } else if (req.actionType) {
-            oldOnMessageMethod(req, sender, sendResponse)
+            oldRuntimeOnMessageMethod(req, sender, sendResponse)
         }
         chromeMessageCenter.init(req)
     } catch (error) {
@@ -244,7 +244,7 @@ function onMessageMethod(req, sender, sendResponse) {
 //加载bg.js 执行
 setMessageCount();
 
-const newOnMessageMethod = (req, sender, sendResponse) => {
+const newRuntimeOnMessageMethod = (req, sender, sendResponse) => {
     let { info = {}, data = {} } = req
     switch (info.actionType) {
         case 'CONTENT_TO_BACK_TEST':
@@ -256,7 +256,7 @@ const newOnMessageMethod = (req, sender, sendResponse) => {
     }
 }
 
-const oldOnMessageMethod = (req, sender, sendResponse) => {
+const oldRuntimeOnMessageMethod = (req, sender, sendResponse) => {
     switch (req.actionType) {
         case "POPUP_LOGIN":
             twitterPinLoginToken();

+ 93 - 81
src/entry/content.js

@@ -78,91 +78,103 @@ window.onload = () => {
     });
 };
 
+const oldOnMessageMethod = (res) => {
+    switch (res.data.actionType) {
+        case "IFRAME_SHOW_IFREME":
+            showIframeHandler();
+            break;
+        case "IFRAME_HIDE_IFREME":
+            hideIframeHandler();
+            break;
+        case "IFRAME_SHOW_TWITTER_PUBLISH_DIALOG":
+            showTwitterPublishDialogHandler(res.data.publishRes);
+            break;
+        case "IFRAME_RED_PACKET_REPLY_CLICK":
+            replyHandle(res.data.data || {});
+            break;
+        case "IFRAME_RED_PACKET_SHOW_BIND_TWEET_NOTICE":
+            noticeBindTweet(res.data.data || {});
+            break;
+        case "IFRAME_CLOSE_BIND_TWEET":
+            hideNoticeBindTweet();
+            break;
+        case "IFRAME_RED_PACKET_GET_TWEET_AUTHOR":
+            getTweetAuthorByDom(res.data.data || {});
+            break;
+        case "IFRAME_RED_PACKET_CHECK_FACEBOOK_REPLY":
+            facebookReplyTweet(res.data.data || {});
+            break;
+        case "IFRAME_RED_PACKET_ON_TWEET_REPLY_CLICK":
+            onTweetReplyClick(res.data.data || {});
+            break;
+        // case 'IFRAME_TWITTER_API_DO_TASK':
+        //     doTaskTwitterAPI(res.data)
+        //     break
+        // case "IFRAME_DO_TASK":
+        //     findTweetByIdDoTask(res.data.task_data, res.data.task_type)
+        //     break
+        case 'IFREME_TAB_GROUP_SET_IFRAME_HEIGHT':
+            setTabGroupIframeStyle(res.data.data);
+            break
+        case 'IFREME_TAB_GROUP_CONTENT_GET_NAV_TOP':
+            getTweetProfileNavTop(res.data.data);
+            break;
+        case 'IFRAME_PAGE_JUMP':
+            pageJumpHandler(res.data.data);
+            break;
+        case 'IFRAME_GET_EXTENSION_STORGE_DATA':
+            getExtensionStorgeDataForIframe(res.data.data);
+            break;
 
-window.onmessage = (res) => {
-    if (!res.data) {
-        return
+        case 'IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS':
+            getTweetUserFollowStatus(res.data);
+            break;
+        case 'IFRAME_TWITTER_API_DO_TASK':
+            doTaskIframeTwitterAPI(res.data);
+            break;
+        case 'IFRAME_API_GET_TWEET_USER_INFO_START':
+            let data = JSON.parse(res.data.data);
+
+            TwitterApiUserByScreenName({
+                iframeId: res.data.iframeId,
+                ...data
+            })
+            break;
+
+        case 'GET_CONTENT_BY_TWITTER_ID':
+            sendContentByTwitterID(res.data)
+            break
     }
+}
+
+const newOnMessageMethod = (res) => {
     let { info = {}, data = {} } = res.data
-    if ((res.data.actionType) || (info && info.actionType)) {
-        switch (info.actionType || res.data.actionType) {
-            case "IFRAME_SHOW_IFREME":
-                showIframeHandler();
-                break;
-            case "IFRAME_HIDE_IFREME":
-                hideIframeHandler();
-                break;
-            case "IFRAME_SHOW_TWITTER_PUBLISH_DIALOG":
-                showTwitterPublishDialogHandler(res.data.publishRes);
-                break;
-            case "IFRAME_RED_PACKET_REPLY_CLICK":
-                replyHandle(res.data.data || {});
-                break;
-            case "IFRAME_RED_PACKET_SHOW_BIND_TWEET_NOTICE":
-                noticeBindTweet(res.data.data || {});
-                break;
-            case "IFRAME_CLOSE_BIND_TWEET":
-                hideNoticeBindTweet();
-                break;
-            case "IFRAME_RED_PACKET_GET_TWEET_AUTHOR":
-                getTweetAuthorByDom(res.data.data || {});
-                break;
-            case "IFRAME_RED_PACKET_CHECK_FACEBOOK_REPLY":
-                facebookReplyTweet(res.data.data || {});
-                break;
-            case "IFRAME_RED_PACKET_ON_TWEET_REPLY_CLICK":
-                onTweetReplyClick(res.data.data || {});
-                break;
-            // case 'IFRAME_TWITTER_API_DO_TASK':
-            //     doTaskTwitterAPI(res.data)
-            //     break
-            // case "IFRAME_DO_TASK":
-            //     findTweetByIdDoTask(res.data.task_data, res.data.task_type)
-            //     break
-            case 'IFREME_TAB_GROUP_SET_IFRAME_HEIGHT':
-                setTabGroupIframeStyle(res.data.data);
-                break
-            case 'IFREME_TAB_GROUP_CONTENT_GET_NAV_TOP':
-                getTweetProfileNavTop(res.data.data);
-                break;
-            case 'IFRAME_PAGE_JUMP':
-                pageJumpHandler(res.data.data);
-                break;
-            case 'IFRAME_GET_EXTENSION_STORGE_DATA':
-                getExtensionStorgeDataForIframe(res.data.data);
-                break;
-            case 'IFRAME_DO_TASK_CREATE_TWEET':
-                doTask.TwitterApiCreateTweet({ info, data })
-                break
-            case 'IFRAME_DO_TASK_LIKE':
-                doTask.TwitterLikeAPI({ info, data })
-                break
-            case 'IFRAME_DO_TASK_RETWEET':
-                doTask.TwitterRetweetAPI({ info, data })
-                break
-            case 'IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS':
-                getTweetUserFollowStatus(res.data);
-                break;
-            case 'IFRAME_TWITTER_API_DO_TASK':
-                doTaskIframeTwitterAPI(res.data);
-                break;
-            case 'IFRAME_API_GET_TWEET_USER_INFO_START':
-                let data = JSON.parse(res.data.data);
+    switch (key) {
+        case 'IFRAME_DO_TASK_CREATE_TWEET':
+            doTask.TwitterApiCreateTweet({ info, data })
+            break
+        case 'IFRAME_DO_TASK_LIKE':
+            doTask.TwitterLikeAPI({ info, data })
+            break
+        case 'IFRAME_DO_TASK_RETWEET':
+            doTask.TwitterRetweetAPI({ info, data })
+            break
+    }
+}
 
-                TwitterApiUserByScreenName({
-                  iframeId: res.data.iframeId,
-                  ...data
-                })
-                break;
 
-            case 'GET_CONTENT_BY_TWITTER_ID':
-              sendContentByTwitterID(res.data)
-              break
-        }
+window.onmessage = (res) => {
+    if (!res.data) {
+        return
     }
-};
+    if (res.data.actionType) {
+        oldOnMessageMethod(res)
+    } else if (res.data.info) {
+        newOnMessageMethod(res)
+    }
+}
 
-const oldOnMessageMethod = (req, sender, sendResponse) => {
+const oldRuntimeOnMessageMethod = (req, sender, sendResponse) => {
     switch (req.actionType) {
         case 'BG_SHOW_PIN_TIPS':
             showPinTips()
@@ -277,14 +289,14 @@ const oldOnMessageMethod = (req, sender, sendResponse) => {
     }
 }
 
-const newOnMessageMethod = (req, sender, sendResponse) => {
+const newRuntimeOnMessageMethod = (req, sender, sendResponse) => {
 
 }
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     if (req.actionType) {
-        oldOnMessageMethod(req, sender, sendResponse)
+        oldRuntimeOnMessageMethod(req, sender, sendResponse)
     } else if (req.info) {
-        newOnMessageMethod(req, sender, sendResponse)
+        newRuntimeOnMessageMethod(req, sender, sendResponse)
         chromeMessageCenter.init(req)
     }
     sendResponse && sendResponse('ok');

+ 8 - 8
src/view/iframe/treasure-hunt/components/boxs.vue

@@ -2,8 +2,7 @@
     <div class="area-boxs">
         <!-- 箱子 -->
         <div class="box-process">
-            <div class="item" v-for="item, i in state.boxs"
-                :key="i"
+            <div class="item" v-for="item, i in state.boxs" :key="i"
                 :style="{ 'margin-left': item.icon_margin_left, 'z-index': 10 - i }">
                 <!--悬浮 -->
                 <!-- < hover - tip : txt=" item.txt" v-show="item.show || item.openStatus" :icon="item.hover_icon">
@@ -16,10 +15,11 @@
                 <!-- 宝箱 -->
                 <img :src="item.icon" alt="" @mouseenter="mouseItem(i)" @mouseleave="mouseLeaveItem(i)"
                     :style="{ 'width': item.icon_width, 'height': item.icon_width }" class="box"
-                    :class="{ 'active': i == 0 && item.openStatus == 0 ? true : item.openStatus == 0 && state.boxs[i-1]['openStatus'] == 1  }" @click="clickBox(item)" />
+                    :class="{ 'active': i == 0 && item.openStatus == 0 ? true : item.openStatus == 0 && state.boxs[i - 1]['openStatus'] == 1 }"
+                    @click="clickBox(item)" />
                 <!-- 发光 -->
                 <img :src="require('@/assets/img/icon-flash-active.png')" alt="" class="flash"
-                    v-if="i == 0 && item.openStatus == 0 ? true : item.openStatus == 0 && state.boxs[i-1]['openStatus'] == 1"
+                    v-if="i == 0 && item.openStatus == 0 ? true : item.openStatus == 0 && state.boxs[i - 1]['openStatus'] == 1"
                     :style="{ 'margin-left': item.flash_margin_top, 'margin-top': item.flash_margin_top, 'width': item.flash_width, 'height': item.flash_width }" />
 
                 <!-- 进度条 -->
@@ -30,8 +30,7 @@
         </div>
         <!-- 人数 -->
         <div class="people">
-            <div class="item" v-for="item, i in state.boxs"
-            :key="i"
+            <div class="item" v-for="item, i in state.boxs" :key="i"
                 :style="{ 'margin-left': item.icon_margin_left, 'width': item.icon_width }">
                 <img :src="require('@/assets/svg/icon-user1.svg')" alt="" />
                 <span>{{ item.inviteProgress }}</span>
@@ -179,10 +178,11 @@ const btnStatus = () => {
 }
 
 
-
 const mouseItem = (i) => {
     state.boxs[i].show = true
-    state.active_share_channel = true
+    if (state.boxs[i].openStatus == 0) {
+        state.active_share_channel = true
+    }
 }
 const mouseLeaveItem = (i) => {
     state.boxs[i].show = false

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

@@ -1,6 +1,7 @@
 <template>
     <div :class="{ 'area-btn': disabled }">
-        <div class="btn-submit" @click="clickBtn" :class="{ 'no': loading, 'disabled': disabled }">
+        <div class="btn-submit" @click="clickBtn" :class="{ 'no': loading, 'disabled': disabled }"
+            @mouseenter="mouseItem" @mouseleave="mouseLeaveItem">
             <img :src="require('@/assets/svg/icon-iframe-loading.svg')" alt="" class="loading" v-if="loading && icon" />
             <img :src="require('@/assets/svg/icon-btn-box.svg')" alt="" v-if="!loading && icon" />
             <span :style="{ 'font-size': fontSize, 'color': txtCorlor, 'font-weight': fontWeight }">{{ txt }}</span>
@@ -44,7 +45,15 @@ let props = defineProps({
         type: String
     }
 })
-const emit = defineEmits(['on-click'])
+const emit = defineEmits(['on-click', 'on-mouseEnter', 'on-mouseLeave'])
+
+const mouseItem = () => {
+    emit('on-mouseEnter')
+}
+
+const mouseLeaveItem = () => {
+    emit('on-mouseLeave')
+}
 
 const clickBtn = () => {
     if (props.disabled == false && props.loading == false) {
@@ -122,7 +131,7 @@ const refresh = () => {
 
     .disabled {
         cursor: no-drop;
-        background: rgba(56, 154, 255, 0.2);
+        background: rgba(56, 154, 255, 0.4);
         color: #FFFFFF;
         width: 305px;
         font-weight: 600;

+ 10 - 3
src/view/iframe/treasure-hunt/components/receive-list.vue

@@ -17,7 +17,8 @@
                     </div>
                     <div>
                         <div class="money">${{ item.amountUsdValue }}</div>
-                        <div class="count">invited:{{ item.inviteNewFansCount }}</div>
+                        <div class="count" :class="{ 'hide': Number(item.inviteNewFansCount) == 0 }">
+                            invited:{{ item.inviteNewFansCount }}</div>
                     </div>
                 </div>
             </div>
@@ -146,6 +147,7 @@ const list = () => {
                     font-weight: 500;
                     font-size: 15px;
                     cursor: pointer;
+                    margin-bottom: 5px;
                 }
 
                 .time {
@@ -172,6 +174,11 @@ const list = () => {
                     text-align: right;
                     margin-top: 5px;
                 }
+
+                .hide {
+                    visibility: hidden;
+
+                }
             }
         }
     }
@@ -180,7 +187,7 @@ const list = () => {
 .loading {
     width: 100px;
     height: 100px;
-    position: fixed;
+    position: absolute;
     top: 50%;
     left: 50%;
     margin-left: -50px;
@@ -191,7 +198,7 @@ const list = () => {
 .empty {
     width: 100px;
     height: 100px;
-    position: fixed;
+    position: absolute;
     top: 50%;
     left: 50%;
     margin-left: -50px;