Bläddra i källkod

无译文时不显示译文选项

zhuliu 1 år sedan
förälder
incheckning
bc5c6daa44

+ 19 - 0
src/views/project/patentCollection/components/mixins/index.js

@@ -345,6 +345,10 @@ export const handleData = {
     },
     //切换原文译文 
     handleChange(row, key) {
+      if(!this.haveTranslatedText(row, key)){
+        this.$message.warning('无译文')
+        return
+      }
       switch (key) {
         case "title":
           this.$set(row, 'change', !row.change)
@@ -356,6 +360,21 @@ export const handleData = {
       }
     },
 
+    //判断是否有译文
+    haveTranslatedText(row,key){
+      var arr = row[key]
+      if (!arr) {
+        return ''
+      }
+      var obj = arr.find(item => {
+        return !item.if_origin && item.language == 'CN'
+      })
+      var text = ''
+      if (obj) {
+        text = obj.text_content
+      }
+      return text
+    },
   },
 }
 

+ 9 - 4
src/views/project/patentCollection/components/views/Abstract.vue

@@ -1,7 +1,7 @@
 <template>
   <!-- 摘要视图 -->
   <div class="patent-abstract-list-view">
-    <div class="patent-abstract-card" v-for="(patent, index) in tableData" :key="patent.appNo">
+    <div class="patent-abstract-card" v-for="(patent, index) in tableData" :key="index">
       <div class="patent-abstract-card-wrapper">
         <table class="patent-abstract-card-table">
           <tbody>
@@ -9,7 +9,12 @@
               <!-- <td v-if="refresh"><el-checkbox :label="patent.id" @change="changeSelect(patent)"
                   :checked="selected.indexOf(patent.id) !== -1 || patentNoList.indexOf(patent.patentNo) !== -1"></el-checkbox>
               </td> -->
-              <td v-if="refresh"><el-checkbox :label="patent.id" @change="changeSelect(patent)"></el-checkbox>
+              <td v-if="refresh">
+                <!-- <el-checkbox :label="patent.patentNo" @change="changeSelect(patent)"></el-checkbox> -->
+                <el-checkbox-group :value="patentNoList" >
+                  <el-checkbox :label="patent.patentNo" @change="changeSelect(patent)">
+                  </el-checkbox>
+                </el-checkbox-group>
               </td>
               <td>
                 <div class="patent-abstract-index-container">
@@ -55,7 +60,7 @@
                       <span class="patent-abstract_label">标题:</span>
                       <span class="patent-abstract_text">
                         <span v-html="getView(patent, 'title')"></span>
-                        <el-link v-if="projectId" type="primary" @click.native="handleChange(patent, 'title')"
+                        <el-link v-if="haveTranslatedText(patent, 'title')" type="primary" @click.native="handleChange(patent, 'title')"
                           style="margin-left: 10px;">
                           <span v-if="!patent.change">切换译文</span>
                           <span v-else>切换原文</span>
@@ -180,7 +185,7 @@
                       <span class="patent-abstract_label">摘要:</span>
                       <div>
                         <span v-html="getView(patent, 'abstractStr')"></span>
-                        <el-link v-if="projectId" type="primary" @click.native="handleChange(patent, 'abstractStr')">
+                        <el-link v-if="haveTranslatedText(patent, 'abstractStr')" type="primary" @click.native="handleChange(patent, 'abstractStr')">
                           <span v-if="!patent.change2">切换译文</span>
                           <span v-else>切换原文</span>
                         </el-link>

+ 14 - 12
src/views/project/patentCollection/components/views/Picture.vue

@@ -2,22 +2,24 @@
   <!-- 图片视图 -->
   <div class="pic">
     <div class="item" style="padding:10px;display: flex;flex-wrap: wrap;">
-      <el-card shadow="hover" v-for="(item, index) in tableData" style="width:200px" :key="index">
+      <el-card shadow="hover" v-for="(item, index) in tableData" style="width:200px;margin:5px" :key="index">
         <div slot="header"
           style="width: 100%; white-space: nowrap;overflow-x: hidden;text-overflow: ellipsis;font-size:12px;">
           <div>序号:{{ (index + 1) + ((queryParams.current - 1) * queryParams.size) }}</div>
           <el-divider></el-divider>
-          <span v-if="refresh"> <el-checkbox :label="item.id" @change="changeSelect(item)">
-
-              <el-link :type="item.read === 1 ? 'success' : 'danger'"
-                @click.native.prevent="handleClick(item, index)">
-                <span v-html="getView(item, 'patentNo')"></span>
-              </el-link>
-
-            </el-checkbox> </span>
-          <el-tooltip effect="dark" :content="getView(item, 'title')" placement="left">
-            <span style="" v-html="getView(item, 'title')"></span>
-          </el-tooltip>
+          <span v-if="refresh"> 
+            <el-checkbox-group :value="patentNoList" >
+              <el-checkbox :label="item.patentNo" @change="changeSelect(item)">
+                  <el-link :type="item.read === 1 ? 'success' : 'danger'"
+                    @click.native.prevent="handleClick(item, index)">
+                    <span v-html="getView(item, 'patentNo')"></span>
+                  </el-link>
+                  </el-checkbox>
+                </el-checkbox-group>
+             </span>
+          <myTooltip :content="getView(item, 'title')">
+            <div class="noWrap" v-html="getView(item, 'title')"></div>
+          </myTooltip>
         </div>
         <div class="picture text-align_center" style="height: 200px;width:100%;line-height:200px;">
           <el-image :src="outside?item.pictureGuid:$commonJS.checkViewer(item.pictureGuid)"

+ 3 - 3
src/views/project/patentCollection/components/views/Table.vue

@@ -42,7 +42,7 @@
                   </td>
                   <td>
                     <p v-html="getView(scope.row, 'abstractStr')"></p>
-                    <el-link v-if="projectId" type="primary" @click.native="handleChange(scope.row, 'abstractStr')">
+                    <el-link v-if="haveTranslatedText(scope.row, 'abstractStr')" type="primary" @click.native="handleChange(scope.row, 'abstractStr')">
                       <span v-if="!scope.row.change2">切换译文</span>
                       <span v-else>切换原文</span>
                     </el-link>
@@ -62,7 +62,7 @@
           <template v-else-if="item.value === 'title'">
             <span v-html="getView(scope.row, 'title')"></span>
             <br>
-            <el-link v-if="projectId" type="primary" @click.native="handleChange(scope.row, 'title')">
+            <el-link v-if="haveTranslatedText(scope.row, 'title')" type="primary" @click.native="handleChange(scope.row, 'title')">
               <span v-if="!scope.row.change">切换译文</span>
               <span v-else>切换原文</span>
             </el-link>
@@ -70,7 +70,7 @@
           <template v-else-if="item.value === 'abstractStr'">
             <span v-html="getView(scope.row, 'abstractStr')"></span>
             <br>
-            <el-link v-if="projectId" type="primary" @click.native="handleChange(scope.row, 'abstractStr')">
+            <el-link v-if="haveTranslatedText(scope.row, 'abstractStr')" type="primary" @click.native="handleChange(scope.row, 'abstractStr')">
               <span v-if="!scope.row.change2">切换译文</span>
               <span v-else>切换原文</span>
             </el-link>

+ 1 - 1
src/views/project/patentDetails/components/patentDetails.vue

@@ -22,7 +22,7 @@
               </div>
               <div style="color: #6b6868; font-size: 15px;padding-bottom: 5px;">
                 <span v-html="getView(patent, 'title')"></span>
-                <el-link v-if="projectId" type="primary" @click.native="handleChange(patent, 'title')"
+                <el-link v-if="haveTranslatedText(patent, 'title')" type="primary" @click.native="handleChange(patent, 'title')"
                   style="margin-left: 10px;margin-top: -3px;">
                   <span v-if="!patent.change">切换译文</span>
                   <span v-else>切换原文</span>

+ 1 - 1
src/views/project/patentDetails/components/patentMessage/PatentBasic.vue

@@ -8,7 +8,7 @@
               <el-tab-pane label="摘要" name="0">
                 <p class="common" :data-type="'摘要'+(patent.change2?'译文':'原文')" :style="setStyle()" v-html="getView(patent, 'abstractStr','摘要'+(patent.change2?'译文':'原文'))"></p>
                
-             <span>
+             <span v-if="haveTranslatedText(patent, 'abstractStr')">
                  <el-link v-if="projectId" type="primary" @click.native="handleChange(patent, 'abstractStr')" >
                   <span v-if="!patent.change2">切换译文</span>
                   <span v-else>切换原文</span>

+ 2 - 2
src/views/project/patentDetails/components/patentMessage/PatentImage.vue

@@ -76,7 +76,7 @@ export default {
     if (this.outside) {//外部
       this.getData()
     } else {
-      this.refresh()
+      this.refreshData()
     }
   },
   methods: {
@@ -105,7 +105,7 @@ export default {
       })
     },
     // 获取内部的附图
-    refresh() {
+    refreshData() {
       if(this.patent.image && this.patent.image.length>0){
         return false
       }

+ 28 - 2
src/views/project/patentDetails/components/patentMessage/PatentInstruction.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="patent-instruction height_100" @mouseup="mouseup">
     <el-container>
-      <el-header>
-        <el-tabs v-model="name" @tab-click="handleClick">
+      <el-header class="basic_header">
+        <el-tabs v-model="name" @tab-click="handleClick" style="width:100%">
           <el-tab-pane v-for="item in tabs" :key="item.label" :label="item.label" :name="item.name"></el-tab-pane>
         </el-tabs>
       </el-header>
@@ -46,6 +46,7 @@ export default {
     //   this.refresh()
     // },
     patentNo() {
+      this.showTabs()
       if (this.outside) {
         this.getData()
       }
@@ -55,12 +56,37 @@ export default {
     window.addEventListener('resize', this.handleResize)
   },
   mounted() {
+    this.showTabs()
     this.handleResize()
     if (this.outside) {
       this.getData()
     }
   },
   methods: {
+    showTabs(){
+      if(!this.haveTranslatedText(this.patent,'publicFullText') || this.outside){
+        this.tabs = [
+          {
+            label:'原文',
+            name:'0',
+            field:'manual'
+          },
+        ]
+      }else{
+        this.tabs = [
+          {
+            label:'原文',
+            name:'0',
+            field:'manual'
+          },
+          {
+            label:'译文',
+            name:'1',
+            field:'manualOut'
+          },
+        ]
+      }
+    },
     handleClick() {
       this.tabItem = this.tabs.find(item => {
         return item.name == this.name

+ 36 - 0
src/views/project/patentDetails/components/patentMessage/PatentRight.vue

@@ -78,6 +78,7 @@ export default {
     //   this.refresh();
     // },
     patentNo() {
+        this.showTabs()
         this.initData();
         if(this.name == 2){
           this.show = false
@@ -98,10 +99,45 @@ export default {
     window.addEventListener("resize", this.handleResize);
   },
   mounted() {
+    this.showTabs()
     this.handleResize();
     this.initData();
   },
   methods: {
+    showTabs(){
+      if(!this.haveTranslatedText(this.patent,'claim') || this.outside){
+        this.tabs = [
+          {
+            label:'原文',
+            name:'0',
+            field:'content'
+          },
+          {
+            label:'权要树',
+            name:'2',
+            field:'contentOut'
+          },
+        ]
+      }else{
+        this.tabs = [
+          {
+            label:'原文',
+            name:'0',
+            field:'content'
+          },
+          {
+            label:'译文',
+            name:'1',
+            field:'contentOut'
+          },
+          {
+            label:'权要树',
+            name:'2',
+            field:'contentOut'
+          },
+        ]
+      }
+    },
     handleClick(tab, event) {
       this.tabItem  = this.tabs.find(item=>{
         return item.name == this.name