Browse Source

[edit] style

wenliming 2 years ago
parent
commit
84b6ba1f76

+ 3 - 0
src/entry/content.js

@@ -228,6 +228,9 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
         case 'Hide_ToolBox_By_Nft':
             toolBox.hideBuyNft(req)
             break;
+        case 'IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS':
+            getTweetUserFollowStatus(req);
+            break;
     }
     sendResponse && sendResponse('ok');
 })

+ 8 - 0
src/http/toolBoxApi.js

@@ -47,3 +47,11 @@ export function unlockNftCert(params) {
         data: params
     })
 }
+
+export function getContentTypeConfig(params) {
+  return service({
+      url: `/post/editor/getContentTypeConfig`,
+      method: 'post',
+      data: params
+  })
+}

+ 18 - 0
src/view/iframe/publish/tool-box/child/preview.vue

@@ -131,6 +131,14 @@ const props = defineProps({
         default: () => {
           return {}
         }
+    },
+    contentTypeConfig: {
+        type: Object,
+        default: () => {
+          return {
+
+          }
+        }
     }
 })
 
@@ -257,6 +265,16 @@ const submitPublish = () => {
     if (submitIng.value) {
         return;
     }
+
+    if(!appId) {
+        let allowContentTypes = props.contentTypeConfig.allowContentTypes || [];
+        let isSupport = allowContentTypes.indexOf(props.resourceInfo.contentType);
+        if(isSupport < 0) {
+          message.warning(props.contentTypeConfig.unSupportToast);
+          return;
+        }
+    }
+
     let linkTitle = props.resourceInfo.title;
 
     setHistoryData(currentApp, {linkTitle: !appId ? linkTitle : ''});

+ 26 - 7
src/view/iframe/publish/tool-box/index.vue

@@ -9,6 +9,7 @@
             :certNftProjectId="certNftProjectId"
             :hasNft="hasNft"
             :resourceInfo="resourceInfo"
+            :contentTypeConfig="contentTypeConfig"
             @publishFinish="publishFinish">
             <nft-setting ref="nftSettingDom" @change="changeSetting"></nft-setting>
         </preview>
@@ -16,9 +17,9 @@
 </template>
 
 <script setup>
-import { ref, reactive, watch, defineProps, defineEmits } from "vue";
+import { ref, reactive, watch, defineProps, defineEmits, onMounted } from "vue";
 import axios from 'axios';
-import { screenshotWebsite } from "@/http/toolBoxApi";
+import { screenshotWebsite, getContentTypeConfig } from "@/http/toolBoxApi";
 import editor from '@/view/iframe/publish/tool-box/child/editor.vue'
 import preview from '@/view/iframe/publish/tool-box/child/preview.vue'
 import Report from "@/log-center/log"
@@ -79,15 +80,18 @@ let screenshotWebsiteData = reactive({
 let nftSettingDom = ref(null);
 let hasNft = ref(false);
 
-const defaultResourceInfo = {
+let contentTypeConfig = ref({
+  allowContentTypes: [],
+  unSupportToast: ''
+})
+
+let resourceInfo = ref({
   isSet: false,
   contentType: '',
   statusCode: '',
   title: '',
   hasTitle: false,
-};
-
-let resourceInfo = ref(defaultResourceInfo);
+});
 
 const changeShowCom = (params) => {
     showCom.value = 'PREVIEW';
@@ -101,7 +105,13 @@ const changeShowCom = (params) => {
     screenshotWebsiteData.viewBgImagePath = '';
     screenshotWebsiteData.status = '';
 
-    resourceInfo.value = defaultResourceInfo;
+    resourceInfo.value = {
+      isSet: false,
+      contentType: '',
+      statusCode: '',
+      title: '',
+      hasTitle: false,
+    };
 
     if(!params.appId || params.appId && !params.linkImagePath) {
         screenshotWebsite({
@@ -183,6 +193,15 @@ const changeSetting = (id = '') => {
     certNftProjectId.value = id;
 }
 
+onMounted(() => {
+  getContentTypeConfig({
+    params: {}
+  }).then(res => {
+    if(res.code == 0) {
+      contentTypeConfig.value = res.data;
+    }
+  })
+})
 </script>
 
 <style lang="scss" scoped>