Przeglądaj źródła

[edit][绑定推文id]

zhangwei 2 lat temu
rodzic
commit
6ef81b36ae
2 zmienionych plików z 46 dodań i 10 usunięć
  1. 3 3
      src/logic/content/ParseCard.js
  2. 43 7
      src/view/iframe/nft/group-card.vue

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

@@ -257,10 +257,10 @@ class ParseCard {
         _iframe.style.cssText = 'border:medium none; width:375px; min-height:300px;'
         return _iframe
     }
-    createNftGroupIframe({ project_Id }) {
+    createNftGroupIframe({ project_Id, tweet_Id}) {
         let _iframe = document.createElement('iframe')
         _iframe.id = project_Id
-        _iframe.src = chrome.runtime.getURL('/iframe/nft-group-card.html') + `?projectId=${project_Id}`;
+        _iframe.src = chrome.runtime.getURL('/iframe/nft-group-card.html') + `?projectId=${project_Id}&tweet_Id=${tweet_Id}`;
         _iframe.style.cssText = 'border:medium none; width:505px; min-height:180px;'
         return _iframe
     }
@@ -427,7 +427,7 @@ class ParseCard {
         dom.style = 'min-height:180px'
         if (dom) {
             let project_Id = post_Id.replace('nft_group/', '');
-            dom.appendChild(this.createNftGroupIframe({ project_Id }))
+            dom.appendChild(this.createNftGroupIframe({ project_Id,tweet_Id }))
         }
     }
 }

+ 43 - 7
src/view/iframe/nft/group-card.vue

@@ -7,7 +7,7 @@
                 </div>
                 <div class="mess">
                     <div class="title">
-                        {{detail.groupName}}
+                        {{ detail.groupName }}
                     </div>
                     <div class="opt">
                         <label>
@@ -29,18 +29,38 @@
 </template>
 
 <script setup>
-import { onBeforeMount, ref } from 'vue';
+import { onBeforeMount,onMounted, ref } from 'vue';
 import { getPostDetail } from '@/http/redPacket';
 import { getQueryString } from '@/uilts/help.js'
+import { srcPublishSuccess } from '@/http/publishApi'
+import { getChromeStorage } from '@/uilts/chromeExtension.js'
 
 let postId = getQueryString('projectId');
+let tweet_Id = getQueryString('tweet_Id')
 let detail = ref(null);
 
 const jumpUserPage = () => {
     window.open(`https://twitter.com/${detail.value.defaultTwitterAccount}?deTabVal=deGroupTab`)
 }
+// 重新绑定
+const reSetBindTwtterId = (_params = {}) => {
+    getChromeStorage('userInfo', (_userInfo = {}) => {
+        if (_userInfo  && _userInfo.uid == _params.uid) {
+            srcPublishSuccess({
+                params: {
+                    postId: postId,
+                    srcContentId: tweet_Id
+                }
+            }).then((res) => {
+                if (res.code == 0 || res.code == 3003) {
 
-onBeforeMount(() => {
+                }
+            })
+        }
+    })
+}
+
+onMounted(() => {
     getPostDetail({
         params: {
             postId: postId
@@ -50,27 +70,36 @@ onBeforeMount(() => {
         if (data !== null) {
             detail.value = JSON.parse(data.postBizData)
         }
+        if (!data.srcContentId) {
+            reSetBindTwtterId(data)
+            return
+        }
     })
 })
 </script>
 
 <style lang='scss'>
-html, body {
+html,
+body {
     margin: 0;
     padding: 0;
     user-select: none;
 }
+
 .card {
     height: 180px;
     border-radius: 12px;
     background: url('../../../assets/svg/icon-nft-group-pc.svg') no-repeat right bottom #48B1F7;
+
     .padding {
         padding: 20px;
+
         .info {
             display: flex;
             flex-direction: row;
             align-items: center;
             height: 100px;
+
             .logo {
                 display: flex;
                 align-items: center;
@@ -80,28 +109,34 @@ html, body {
                 border-radius: 6px;
                 background: #FFFFFF;
                 margin-right: 20px;
+
                 img {
                     width: 50px;
                     height: 50px;
                     border-radius: 6px;
                 }
             }
+
             .mess {
                 flex: 1;
+
                 .title {
-                    overflow:hidden;
+                    overflow: hidden;
                     color: #FFFFFF;
                     font-size: 18px;
                     line-height: 21px;
-                    text-overflow:ellipsis;
-                    white-space:nowrap;
+                    text-overflow: ellipsis;
+                    white-space: nowrap;
                 }
+
                 .opt {
                     color: #FFFFFF;
                     font-size: 12px;
                     margin-top: 8px;
+
                     label {
                         margin-right: 18px;
+
                         img {
                             margin-top: -4px;
                             margin-right: 4px;
@@ -111,6 +146,7 @@ html, body {
                 }
             }
         }
+
         .join {
             display: flex;
             align-items: center;