jihuaqiang %!s(int64=2) %!d(string=hai) anos
pai
achega
2cdae032ba

+ 2 - 0
package.json

@@ -19,6 +19,8 @@
     "core-js": "^3.8.3",
     "element-plus": "2.1.10",
     "moment": "^2.29.4",
+    "postcss-import": "^15.0.0",
+    "postcss-url": "^10.1.3",
     "vue": "^3.2.13",
     "vue-router": "^4.1.2"
   },

+ 94 - 0
src/denet/content/doTask.js

@@ -0,0 +1,94 @@
+import MESSAGE_ENUM from '@/uilts/messageCenter/messageEnum'
+import messageCenter from "@/uilts/messageCenter";
+import { getQueryString } from '@/uilts/help'
+const iframeId = getQueryString('iframeId')
+
+// 做任务
+const doTask = {
+    createTweet({ tweetId }, overTime) {
+        return new Promise((res, rej) => {
+            messageCenter.send({
+                info: {
+                    actionType: MESSAGE_ENUM.IFRAME_DO_TASK_CREATE_TWEET,
+                    iframeId //用于告诉父窗口会传消息给哪个iframe
+                },
+                data: {
+                    tweetId
+                },
+                overTime,
+                callback: (data) => {
+                    res(data);
+                },
+                failback: (e) => {
+                    rej(e)
+                }
+            })
+        })
+    },
+    like({ tweetId }, overTime) {
+        return new Promise((res, rej) => {
+            messageCenter.send({
+                info: {
+                    actionType: MESSAGE_ENUM.IFRAME_DO_TASK_LIKE,
+                    iframeId //用于告诉父窗口会传消息给哪个iframe
+                },
+                data: {
+                    tweetId,
+                },
+                overTime,
+                callback: (data) => {
+                    res(data);
+                },
+                failback: (e) => {
+                    rej(e)
+                }
+            })
+        })
+    },
+    follows({ follow_name, twitterUserId }, overTime) {
+        return new Promise((res, rej) => {
+            messageCenter.send({
+                info: {
+                    actionType: MESSAGE_ENUM.IFRAME_DO_TASK_FOLLOWS,
+                    iframeId //用于告诉父窗口会传消息给哪个iframe
+                },
+                data: {
+                  follow_name,
+                  twitterUserId
+                },
+                overTime,
+                callback: (data) => {
+                    res(data);
+                },
+                failback: (e) => {
+                    rej(e)
+                }
+            })
+        })
+    },
+    reTweet({ tweetId }, overTime) {
+        return new Promise((res, rej) => {
+            messageCenter.send({
+                info: {
+                    actionType: MESSAGE_ENUM.IFRAME_DO_TASK_RETWEET,
+                    iframeId //用于告诉父窗口会传消息给哪个iframe
+                },
+                data: {
+                    tweetId
+                },
+                overTime,
+                callback: (data) => {
+                    res(data);
+                },
+                failback: (e) => {
+                    rej(e)
+                }
+            })
+        })
+    }
+}
+
+export default doTask
+
+// iframe > dom id
+// iframe > createTweet  dom id

+ 30 - 0
src/denet/content/dom.js

@@ -0,0 +1,30 @@
+import MESSAGE_ENUM from '@/uilts/messageCenter/messageEnum'
+import messageCenter from "@/uilts/messageCenter";
+import { getQueryString } from '@/uilts/help'
+const iframeId = getQueryString('iframeId')
+
+const dom = {
+    // ---- 获取推文文案 ----
+    getTweetText({ tweetId }, overTime) {
+        return new Promise((res, rej) => {
+            messageCenter.send({
+                info: {
+                    actionType: MESSAGE_ENUM.IFRAME_DOM_GET_TWEET_TEXT,
+                    iframeId //用于告诉父窗口会传消息给哪个iframe
+                },
+                data: {
+                    tweetId
+                },
+                overTime,
+                callback: (data) => {
+                    res(data);
+                },
+                failback: (e) => {
+                    rej(e)
+                }
+            })
+        })
+    }
+}
+
+export default dom

+ 29 - 0
src/denet/content/getData.js

@@ -0,0 +1,29 @@
+import MESSAGE_ENUM from '@/uilts/messageCenter/messageEnum'
+import messageCenter from "@/uilts/messageCenter";
+import { getQueryString } from '@/uilts/help'
+const iframeId = getQueryString('iframeId')
+
+const getData = {
+  getUserInfoByName({screen_name}, overTime) {
+    return new Promise((res, rej) => {
+      messageCenter.send({
+          info: {
+              actionType: MESSAGE_ENUM.IFRAME_GET_TWITTER_USER_INFO,
+              iframeId
+          },
+          data: {
+            screen_name
+          },
+          overTime,
+          callback: (data) => {
+              res(data);
+          },
+          failback: (e) => {
+              rej(e)
+          }
+      })
+    })
+  }
+}
+
+export default getData

+ 9 - 0
src/denet/content/index.js

@@ -0,0 +1,9 @@
+import doTask from '@/denet/content/doTask'
+import dom from '@/denet/content/dom'
+import getData from '@/denet/content/getData'
+
+export default {
+    doTask,
+    dom,
+    getData
+}

+ 7 - 0
src/denet/index.js

@@ -0,0 +1,7 @@
+import content from '@/denet/content'
+
+const denet = {
+    content,
+}
+
+export default denet

+ 64 - 137
src/pages/red-packet/luck-draw.vue

@@ -471,6 +471,7 @@ import GlobalTip from '@/components/global-tip.vue';
 import customCardCover from '@/components/custom-card-cover.vue';
 import { RewardType, PlayType } from "@/types";
 import messageCenter from "@/uilts/messageCenter";
+import denet from '@/denet'
 
 var moment = require('moment');
 
@@ -580,31 +581,8 @@ async function clickLikeBtn() {
             break
         case '3':
             state.loading_show = true
-            messageCenter.send({
-                info: {
-                    actionType: "IFRAME_TWITTER_API_DO_TASK",
-                    iframeId
-                },
-                data: {
-                    task_data: {
-                        tweet_Id: state.tweetId
-                    },
-                    task_type: 'like'
-                },
-                overTime: 5000,
-                callback: (data) => {
-                    console.log('like success..', data)
-                    if (!data.task_type || state.tweetId != data.tweet_Id) {
-                        return
-                    }
-                    state.loading_show = false
-                    doTaskReport(data);
-                },
-                failback: e => { 
-                    state.loading_show = false
-                    console.log('like fail..', e)
-                }
-            })
+            let likeRes = await denet.content.doTask.like({ tweetId: state.tweetId });
+            likeRes && doTaskReport({...likeRes, task_type: 'like', do_type: 'api'}, {tab: {}});
             break
         default:
             window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
@@ -715,31 +693,8 @@ async function clickRetweetBtn() {
             break
         case '3':
             state.loading_show = true
-            messageCenter.send({
-                info: {
-                    actionType: "IFRAME_TWITTER_API_DO_TASK",
-                    iframeId
-                },
-                data: {
-                    task_data: {
-                        tweet_Id: state.tweetId
-                    },
-                    task_type: 'retweet'
-                },
-                overTime: 5000,
-                callback: (data) => {
-                    console.log('retweet success..', data)
-                    if (!data.task_type || state.tweetId != data.tweet_Id) {
-                        return
-                    }
-                    state.loading_show = false
-                    doTaskReport(data);
-                },
-                failback: e => { 
-                    state.loading_show = false
-                    console.log('retweet fail..', e)
-                }
-            })
+            let retweetRes = await denet.content.doTask.reTweet({ tweetId: state.tweetId });
+            retweetRes && doTaskReport({...retweetRes, task_type: 'retweet', do_type: 'api'}, {tab: {}});
             break
         default:
             window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
@@ -762,6 +717,7 @@ async function clickRetweetBtn() {
 function onTweetReplyClick(params) {
     let replyData = {
         postId: state.postId,
+        iframeId,
         type: params.type,
         taskLuckdropId: state.detail.taskLuckdropId
     }
@@ -798,6 +754,7 @@ async function clickReply(params) {
 
     let replyData = {
         postId: state.postId,
+        iframeId,
         type: params.type,
         taskLuckdropId: state.detail.taskLuckdropId
     }
@@ -863,7 +820,8 @@ async function clickRepostFacebook(params) {
     // })
 
     let shareUrl = feacebookShareUrl(shareUrlparams);
-    openShareFacebookWindow({ url: shareUrl });
+    window.open(shareUrl);
+    // openShareFacebookWindow({ url: shareUrl });
 
     // 埋点
     Report.reportLog({
@@ -1063,31 +1021,19 @@ async function clickFollowAll(item, is_all) {
             arr_name.forEach((item) => {
                 follow_data.push(item)
             })
-            state.loading_show = true
-            messageCenter.send({
-                info: {
-                    actionType: "IFRAME_TWITTER_API_DO_TASK",
-                    iframeId
-                },
-                data: {
-                    task_data: {
-                        tweet_Id: state.tweetId,
-                        follow_data: follow_data,
-                    },
-                    task_type: 'follow'
-                },
-                overTime: 5000,
-                callback: (data) => { 
-                    console.log('follow success..', data)
-                    if (!data.task_type || state.tweetId != data.tweet_Id) {
-                        return
+            state.loading_show = true;
+            let promiseList = [];
+            for (let i = 0; i < follow_data.length; i++) {
+                promiseList[i] = denet.content.doTask.follows({ follow_name: follow_data[i]['name'], twitterUserId: follow_data[i]['twitterUserId'] });
+            }
+
+            Promise.allSettled(promiseList).then((res) => {
+                if (res && res.length) {
+                    let resList = res.filter(item => item.status == 'fulfilled');
+                    for (let i = 0; i < resList.length; i++) {
+                      let item = resList[i].value;
+                      item && doTaskReport({...item, task_type: 'follow', task_data: {follow_name: item.follow_name}, do_type: 'api'}, {tab: {}});
                     }
-                    state.loading_show = false
-                    doTaskReport(data);
-                },
-                failback: e => { 
-                    state.loading_show = false
-                    console.log('follow fail..', e)
                 }
             })
             break
@@ -1136,59 +1082,38 @@ const reSetBindTwtterId = async (_params) => {
         }
 }
 
-const reportBindTweetSuccess = (params) => {
+const reportBindTweetSuccess = async (params) => {
     let { discordTask, srcUserId } = params || {};
     discordTaskDetail = discordTask;
-    messageCenter.send({
-        info: {
-            actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
-            iframeId
-        },
-        data: {
-            screen_name: srcUserId,
-            tweetId: state.tweetId
-        },
-        callback: (req) => {
-            let { user } = req.data || {};
-                if (req.tweetId == state.tweetId && user && user.result && user.result.legacy) {
-                    let legacy = user.result.legacy;
-                    reportParams.twitterFans = legacy ? legacy.followers_count : 0;
-
-                    if (!discordTaskDetail) {
-                        if (reportParams.hasReport) return;
-                        reportParams.hasReport = true;
-                        Report.reportLog({
-                            objectType: Report.objectType.tweetPostBinded,
-                            twitterFans: reportParams.twitterFans,
-                            redPacketType: 1,
-                            postId: state.postId
-                        });
-                    } else {
-                        if (reportParams.discordFans !== '') {
-                            if (reportParams.hasReport) return;
-                            reportParams.hasReport = true;
-                            Report.reportLog({
-                                objectType: Report.objectType.tweetPostBinded,
-                                twitterFans: reportParams.twitterFans,
-                                discordFans: reportParams.discordFans,
-                                redPacketType: 1,
-                                postId: state.postId
-                            });
-                        }
-                    }
-                }
-        },
-        failback: (e) => {
-            console.log('reportBindTweetSuccess fail', e)
-        }
-    })
-    // sendCurrentTabMessage({
-    //     actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
-    //     data: {
-    //         screen_name: srcUserId,
-    //         tweetId: state.tweetId
-    //     }
-    // })
+
+    let {user = {}} = await denet.content.getData.getUserInfoByName({ screen_name: srcUserId });
+    if (user && user.result && user.result.legacy) {
+      let legacy = user.result.legacy;
+      reportParams.twitterFans = legacy ? legacy.followers_count : 0;
+
+      if (!discordTaskDetail) {
+          if (reportParams.hasReport) return;
+          reportParams.hasReport = true;
+          Report.reportLog({
+              objectType: Report.objectType.tweetPostBinded,
+              twitterFans: reportParams.twitterFans,
+              redPacketType: 1,
+              postId: state.postId
+          });
+      } else {
+          if (reportParams.discordFans !== '') {
+              if (reportParams.hasReport) return;
+              reportParams.hasReport = true;
+              Report.reportLog({
+                  objectType: Report.objectType.tweetPostBinded,
+                  twitterFans: reportParams.twitterFans,
+                  discordFans: reportParams.discordFans,
+                  redPacketType: 1,
+                  postId: state.postId
+              });
+          }
+      }
+    }
 
     if (discordTask) {
         getDiscordInfo({ inviteUrl: JSON.parse(discordTask.bizData).inviteUrl }, (res) => {
@@ -1470,8 +1395,6 @@ function setFrontConfig() {
 
 function init(initParams) {
     let { type } = initParams || {};
-    onPageVisbile();
-    setFrontConfig();
     getPostDetail({
         params: {
             postId: state.postId
@@ -1562,7 +1485,8 @@ async function initTaskDetail(cb) {
 let tab_index = 0
 const doTaskReport = (req, sender) => {
     state.loading_show = false
-    let follow_name = req.task_data.follow_name || ''
+    let follow_name = req.task_data ? req.task_data.follow_name : '';
+
     // 1 Twitter follow Twitter ScreenName
     // 2 Tweet like
     // 3 Retweet
@@ -1669,15 +1593,17 @@ const getUserSetting = () => {
 onMounted(() => {
     state.process_mode = process.env.NODE_ENV
     state.postId = getQueryString('postId')
+    state.iframeId = getQueryString('iframeId') || ''
     state.window_origin = getQueryString('window_origin') || '';
     if (state.window_origin.indexOf('twitter.com') > -1) {
         state.tweetId = getQueryString('tweetId')
         state.tweet_author = getQueryString('tweet_author');
     }
-
-    getTweetAuthor()
     init()
+    getTweetAuthor()
     onRuntimeMsg();
+    onPageVisbile();
+    setFrontConfig();
     // state.loading_show = true
     // state.status = 'not-open'
     // state.status = 'success'
@@ -1700,7 +1626,7 @@ function getTweetAuthor() {
                 postId: state.postId,
                 taskLuckdropId: state.detail.taskLuckdropId
             },
-            callback: (data) => { 
+            callback: (data) => {
                 console.log('getTweetAuthor', data)
                 fullName = data.fullName
             },
@@ -1719,7 +1645,7 @@ function checkFacebookReply() {
                 iframeId
             },
             data: { postId: state.postId },
-            callback: (data) => { 
+            callback: (data) => {
                 clickReply(data)
             },
             failback: (e) => {
@@ -2099,14 +2025,15 @@ function onPageVisbile() {
     document.addEventListener('visibilitychange', function () {
         let isHidden = document.hidden;
         if (!isHidden) {
-            checkJoinDiscord();
+            // checkJoinDiscord();
+            init();
         }
     });
 }
 
 function onRuntimeMsg() {
-    messageCenter.listen('CONTENT_RED_PACKET_REPLY_RASK_FINSH', (req) => {
-        if (req.data && req.data.postId == state.postId) {
+    messageCenter.listen('CONTENT_RED_PACKET_REPLY_RASK_FINSH', (data) => {
+        if (data && data.postId == state.postId) {
             state.done.reply = true;
             state.done.reply_red = false;
         }
@@ -2122,7 +2049,7 @@ function onRuntimeMsg() {
     })
 
     messageCenter.listen('USER_SETTING', (data) => {
-        console.log('USER_SETTING', data) 
+        console.log('USER_SETTING', data)
         setNotification(data)
     })
 }

+ 62 - 127
src/pages/red-packet/red-packet.vue

@@ -426,6 +426,7 @@ import GlobalTip from '@/components/global-tip.vue'
 import customCardCover from '@/components/custom-card-cover.vue';
 import { RewardType, PlayType } from '@/types';
 import messageCenter from '@/uilts/messageCenter';
+import denet from '@/denet'
 
 var moment = require('moment');
 
@@ -530,31 +531,8 @@ async function clickLikeBtn() {
       break
     case '3':
       state.loading_show = true
-      messageCenter.send({
-          info: {
-              actionType: "IFRAME_TWITTER_API_DO_TASK",
-              iframeId
-          },
-          data: {
-              task_data: {
-                  tweet_Id: state.tweetId
-              },
-              task_type: 'like'
-          },
-          overTime: 5000,
-          callback: (data) => {
-              console.log('like success..', data)
-              if (!data.task_type || state.tweetId != data.tweet_Id) {
-                  return
-              }
-              state.loading_show = false
-              doTaskReport(data);
-          },
-          failback: e => { 
-              state.loading_show = false
-              console.log('like fail..', e)
-          }
-      })
+      let likeRes = await denet.content.doTask.like({ tweetId: state.tweetId });
+      likeRes && doTaskReport({...likeRes, task_type: 'like', do_type: 'api'}, {tab: {}});
       break
     default:
       window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
@@ -663,31 +641,8 @@ async function clickRetweetBtn() {
       break
     case '3':
       state.loading_show = true
-      messageCenter.send({
-          info: {
-              actionType: "IFRAME_TWITTER_API_DO_TASK",
-              iframeId
-          },
-          data: {
-              task_data: {
-                  tweet_Id: state.tweetId
-              },
-              task_type: 'retweet'
-          },
-          overTime: 5000,
-          callback: (data) => {
-              console.log('retweet success..', data)
-              if (!data.task_type || state.tweetId != data.tweet_Id) {
-                  return
-              }
-              state.loading_show = false
-              doTaskReport(data);
-          },
-          failback: e => { 
-              state.loading_show = false
-              console.log('retweet fail..', e)
-          }
-      })
+      let retweetRes = await denet.content.doTask.reTweet({ tweetId: state.tweetId });
+      retweetRes && doTaskReport({...retweetRes, task_type: 'retweet', do_type: 'api'}, {tab: {}});
       break
     default:
       window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
@@ -709,6 +664,7 @@ async function clickRetweetBtn() {
 function onTweetReplyClick(params) {
   let replyData = {
     postId: state.postId,
+    iframeId,
     type: params.type,
     taskLuckdropId: state.detail.taskLuckdropId
   }
@@ -725,6 +681,7 @@ async function clickReply(params) {
   let replyData = {
     postId: state.postId,
     type: params.type,
+    iframeId,
     taskLuckdropId: state.detail.taskLuckdropId
   }
   if (state.window_origin.indexOf('facebook.com') > -1) {
@@ -780,7 +737,8 @@ async function clickRepostFacebook(params) {
   })
 
   let shareUrl = feacebookShareUrl(shareUrlparams);
-  openShareFacebookWindow({ url: shareUrl });
+  window.open(shareUrl);
+  // openShareFacebookWindow({ url: shareUrl });
 
   // 埋点
   Report.reportLog({
@@ -936,30 +894,18 @@ async function clickFollowAll(item, is_all) {
         follow_data.push(item)
       })
       state.loading_show = true
-      messageCenter.send({
-          info: {
-              actionType: "IFRAME_TWITTER_API_DO_TASK",
-              iframeId
-          },
-          data: {
-              task_data: {
-                  tweet_Id: state.tweetId,
-                  follow_data: follow_data,
-              },
-              task_type: 'follow'
-          },
-          overTime: 5000,
-          callback: (data) => { 
-              console.log('follow success..', data)
-              if (!data.task_type || state.tweetId != data.tweet_Id) {
-                  return
+      let promiseList = [];
+      for (let i = 0; i < follow_data.length; i++) {
+          promiseList[i] = denet.content.doTask.follows({ follow_name: follow_data[i]['name'], twitterUserId: follow_data[i]['twitterUserId'] });
+      }
+
+      Promise.allSettled(promiseList).then((res) => {
+          if (res && res.length) {
+              let resList = res.filter(item => item.status == 'fulfilled');
+              for (let i = 0; i < resList.length; i++) {
+                let item = resList[i].value;
+                item && doTaskReport({...item, task_type: 'follow', task_data: {follow_name: item.follow_name}, do_type: 'api'}, {tab: {}});
               }
-              state.loading_show = false
-              doTaskReport(data);
-          },
-          failback: e => { 
-              state.loading_show = false
-              console.log('follow fail..', e)
           }
       })
       break
@@ -1006,52 +952,38 @@ const reSetBindTwtterId = async (_params) => {
   }
 }
 
-const reportBindTweetSuccess = (params) => {
+const reportBindTweetSuccess = async (params) => {
   let { discordTask, srcUserId } = params || {};
   discordTaskDetail = discordTask;
-  messageCenter.send({
-        info: {
-            actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
-            iframeId
-        },
-        data: {
-            screen_name: srcUserId,
-            tweetId: state.tweetId
-        },
-        callback: (req) => {
-            let { user } = req.data || {};
-                if (req.tweetId == state.tweetId && user && user.result && user.result.legacy) {
-                    let legacy = user.result.legacy;
-                    reportParams.twitterFans = legacy ? legacy.followers_count : 0;
-
-                    if (!discordTaskDetail) {
-                        if (reportParams.hasReport) return;
-                        reportParams.hasReport = true;
-                        Report.reportLog({
-                            objectType: Report.objectType.tweetPostBinded,
-                            twitterFans: reportParams.twitterFans,
-                            redPacketType: 1,
-                            postId: state.postId
-                        });
-                    } else {
-                        if (reportParams.discordFans !== '') {
-                            if (reportParams.hasReport) return;
-                            reportParams.hasReport = true;
-                            Report.reportLog({
-                                objectType: Report.objectType.tweetPostBinded,
-                                twitterFans: reportParams.twitterFans,
-                                discordFans: reportParams.discordFans,
-                                redPacketType: 1,
-                                postId: state.postId
-                            });
-                        }
-                    }
-                }
-        },
-        failback: (e) => {
-            console.log('reportBindTweetSuccess fail', e)
+
+  let {user = {}} = await denet.content.getData.getUserInfoByName({ screen_name: srcUserId });
+  if (user && user.result && user.result.legacy) {
+    let legacy = user.result.legacy;
+    reportParams.twitterFans = legacy ? legacy.followers_count : 0;
+
+    if (!discordTaskDetail) {
+        if (reportParams.hasReport) return;
+        reportParams.hasReport = true;
+        Report.reportLog({
+            objectType: Report.objectType.tweetPostBinded,
+            twitterFans: reportParams.twitterFans,
+            redPacketType: 1,
+            postId: state.postId
+        });
+    } else {
+        if (reportParams.discordFans !== '') {
+            if (reportParams.hasReport) return;
+            reportParams.hasReport = true;
+            Report.reportLog({
+                objectType: Report.objectType.tweetPostBinded,
+                twitterFans: reportParams.twitterFans,
+                discordFans: reportParams.discordFans,
+                redPacketType: 1,
+                postId: state.postId
+            });
         }
-    })
+    }
+  }
 
   if (discordTask) {
     getDiscordInfo({ inviteUrl: JSON.parse(discordTask.bizData).inviteUrl }, (res) => {
@@ -1288,8 +1220,6 @@ function setFrontConfig() {
 function init(initParams) {
   state.loading_show = true;
   let { type } = initParams || {};
-  onPageVisbile();
-  setFrontConfig();
   getPostDetail({
     params: {
       postId: state.postId
@@ -1379,7 +1309,8 @@ async function initTaskDetail(cb) {
 let tab_index = 0
 const doTaskReport = (req, sender) => {
   state.loading_show = false
-  let follow_name = req.task_data.follow_name || ''
+  let follow_name = req.task_data ? req.task_data.follow_name : '';
+
   // 1 Twitter follow Twitter ScreenName
   // 2 Tweet like
   // 3 Retweet
@@ -1451,6 +1382,7 @@ const doTaskReport = (req, sender) => {
 onMounted(() => {
   state.process_mode = process.env.NODE_ENV
   state.postId = getQueryString('postId')
+  state.iframeId = getQueryString('iframeId') || ''
   state.window_origin = getQueryString('window_origin') || '';
   if (state.window_origin.indexOf('twitter.com') > -1) {
     state.tweetId = getQueryString('tweetId')
@@ -1459,7 +1391,9 @@ onMounted(() => {
 
   getTweetAuthor();
   init()
-  // onRuntimeMsg();
+  onPageVisbile();
+  setFrontConfig();
+  onRuntimeMsg();
 })
 
 function getTweetAuthor() {
@@ -1473,7 +1407,7 @@ function getTweetAuthor() {
             postId: state.postId,
             taskLuckdropId: state.detail.taskLuckdropId
         },
-        callback: (data) => { 
+        callback: (data) => {
             console.log('getTweetAuthor', data)
             fullName = data.fullName
         },
@@ -1493,7 +1427,7 @@ function checkFacebookReply() {
             iframeId
         },
         data: { postId: state.postId },
-        callback: (data) => { 
+        callback: (data) => {
             clickReply(data)
         },
         failback: (e) => {
@@ -1868,14 +1802,15 @@ function onPageVisbile() {
   document.addEventListener('visibilitychange', function () {
     let isHidden = document.hidden;
     if (!isHidden) {
-      checkJoinDiscord();
+      // checkJoinDiscord();
+      init();
     }
   });
 }
 
 function onRuntimeMsg() {
-  messageCenter.listen('CONTENT_RED_PACKET_REPLY_RASK_FINSH', (req) => {
-        if (req.data && req.data.postId == state.postId) {
+  messageCenter.listen('CONTENT_RED_PACKET_REPLY_RASK_FINSH', (data) => {
+        if (data && data.postId == state.postId) {
             state.done.reply = true;
             state.done.reply_red = false;
         }
@@ -1891,7 +1826,7 @@ function onRuntimeMsg() {
     })
 
     messageCenter.listen('USER_SETTING', (data) => {
-        console.log('USER_SETTING', data) 
+        console.log('USER_SETTING', data)
         setNotification(data)
     })
 }

+ 1 - 1
src/pages/tabbar/wallet/index.vue

@@ -219,7 +219,7 @@ body {
 }
 
 .page-wrapper {
-    width: 375px;
+    width: 100%;
     height: 100%;
     box-sizing: border-box;
     overflow-y: auto;

+ 13 - 1
src/uilts/messageCenter/messageEnum.js

@@ -14,6 +14,18 @@ const SEND_MESSAGE_ENUM =  {
     IFRAME_RUNTIME_CONNECT_POPUP: 'IFRAME_RUNTIME_CONNECT_POPUP',
     IFRAME_SHOW_FOOTER_MENU: 'IFRAME_SHOW_FOOTER_MENU',
     POPUP_SHOW_DENET_PUBLISH_DIALOG: 'POPUP_SHOW_DENET_PUBLISH_DIALOG',
+
+    // ---- 做任务 ----
+    IFRAME_DO_TASK_CREATE_TWEET: 'IFRAME_DO_TASK_CREATE_TWEET',
+    IFRAME_DO_TASK_LIKE: 'IFRAME_DO_TASK_LIKE',
+    IFRAME_DO_TASK_FOLLOWS: 'IFRAME_DO_TASK_FOLLOWS',
+    IFRAME_DO_TASK_RETWEET: 'IFRAME_DO_TASK_RETWEET',
+
+    // ---- 获取推文内容 ----
+    IFRAME_DOM_GET_TWEET_TEXT: 'IFRAME_DOM_GET_TWEET_TEXT',
+
+    // ---- 获取twitter用户信息 ----
+    IFRAME_GET_TWITTER_USER_INFO: 'IFRAME_GET_TWITTER_USER_INFO',
 }
 
 /** 接收父窗口的事件定义 */
@@ -27,4 +39,4 @@ const RECEIVE_MESSAGE_ENUM = {
     CONTENT_POPUP_PAGE_SHOW: 'CONTENT_POPUP_PAGE_SHOW',
 }
 
-export default { ...SEND_MESSAGE_ENUM, ...RECEIVE_MESSAGE_ENUM }
+export default { ...SEND_MESSAGE_ENUM, ...RECEIVE_MESSAGE_ENUM }

+ 58 - 3
yarn.lock

@@ -2836,6 +2836,11 @@ csstype@^2.6.8:
   resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
   integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
 
+cuint@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
+  integrity sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==
+
 dayjs@^1.10.5, dayjs@^1.11.0:
   version "1.11.5"
   resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93"
@@ -4337,7 +4342,7 @@ magic-string@^0.25.7:
   dependencies:
     sourcemap-codec "^1.4.8"
 
-make-dir@^3.0.2, make-dir@^3.1.0:
+make-dir@^3.0.2, make-dir@^3.1.0, make-dir@~3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
   integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
@@ -4418,6 +4423,11 @@ mime@1.6.0:
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
+mime@~2.5.2:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
+
 mimic-fn@^1.0.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -4447,6 +4457,13 @@ minimatch@^3.0.4, minimatch@^3.1.1:
   dependencies:
     brace-expansion "^1.1.7"
 
+minimatch@~3.0.4:
+  version "3.0.8"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
+  integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==
+  dependencies:
+    brace-expansion "^1.1.7"
+
 minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
   version "1.2.6"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
@@ -4865,6 +4882,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
   integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 
+pify@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+  integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
 pkg-dir@^4.1.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -4927,6 +4949,15 @@ postcss-discard-overridden@^5.1.0:
   resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
   integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
 
+postcss-import@^15.0.0:
+  version "15.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.0.0.tgz#0b66c25fdd9c0d19576e63c803cf39e4bad08822"
+  integrity sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==
+  dependencies:
+    postcss-value-parser "^4.0.0"
+    read-cache "^1.0.0"
+    resolve "^1.1.7"
+
 postcss-loader@^6.1.1:
   version "6.2.1"
   resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef"
@@ -5123,7 +5154,17 @@ postcss-unique-selectors@^5.1.1:
   dependencies:
     postcss-selector-parser "^6.0.5"
 
-postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
+postcss-url@^10.1.3:
+  version "10.1.3"
+  resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.3.tgz#54120cc910309e2475ec05c2cfa8f8a2deafdf1e"
+  integrity sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==
+  dependencies:
+    make-dir "~3.1.0"
+    mime "~2.5.2"
+    minimatch "~3.0.4"
+    xxhashjs "~0.2.2"
+
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
   integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
@@ -5242,6 +5283,13 @@ raw-body@2.5.1:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
+read-cache@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+  integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+  dependencies:
+    pify "^2.3.0"
+
 read-pkg-up@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
@@ -5384,7 +5432,7 @@ resolve-from@^4.0.0:
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
   integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
 
-resolve@^1.10.0, resolve@^1.14.2:
+resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2:
   version "1.22.1"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
   integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@@ -6430,6 +6478,13 @@ ws@^8.4.2:
   resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0"
   integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==
 
+xxhashjs@~0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8"
+  integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==
+  dependencies:
+    cuint "^0.2.2"
+
 y18n@^5.0.5:
   version "5.0.8"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"