瀏覽代碼

Merge branch 'product' of http://1.116.113.26:8088/zhuliu/xiaoshi_system into product

zhuhao 1 年之前
父節點
當前提交
c8154b9136
共有 30 個文件被更改,包括 330 次插入95 次删除
  1. 5 0
      src/assets/css/main.scss
  2. 1 1
      src/assets/css/tag.scss
  3. 5 0
      src/utils/axios.js
  4. 21 13
      src/views/components/dialog/fields.vue
  5. 1 1
      src/views/components/dialog/menuDialog/annotation.vue
  6. 1 2
      src/views/components/dialog/nodeCopy.vue
  7. 0 1
      src/views/components/import/components/importPatent.vue
  8. 0 1
      src/views/components/import/conditionImport/components/projectListDialog.vue
  9. 1 2
      src/views/components/import/conditionImport/patentDetails/patentIndex.vue
  10. 10 2
      src/views/components/indicia/components/card.vue
  11. 1 1
      src/views/components/indicia/components/indicia.vue
  12. 1 1
      src/views/home/components/echarts/components/report.vue
  13. 1 1
      src/views/patentMining/components/dialog/addAndEditProject.vue
  14. 1 1
      src/views/patentMining/components/dialog/handleTask1.vue
  15. 1 1
      src/views/patentMining/components/dialog/uploadFile.vue
  16. 1 1
      src/views/patentMining/components/handleExamine/handleExamine.vue
  17. 2 2
      src/views/project/components/PatentKeywordsHighlight.vue
  18. 2 2
      src/views/project/index.vue
  19. 4 4
      src/views/project/patentCollection/components/mixins/index.js
  20. 50 19
      src/views/project/patentCollection/index.vue
  21. 4 1
      src/views/project/patentDetails/components/PatentField.vue
  22. 119 0
      src/views/project/patentDetails/components/PatentMark.vue
  23. 9 6
      src/views/project/patentDetails/components/menu.vue
  24. 49 26
      src/views/project/patentDetails/components/patentDetails.vue
  25. 1 1
      src/views/project/patentDetails/components/patentMessage/PatentBasic.vue
  26. 1 0
      src/views/project/patentDetails/components/patentMessage/PatentPDF.vue
  27. 9 1
      src/views/project/patentDetails/components/patentMessage/mixins/index.js
  28. 27 2
      src/views/project/patentDetails/index.vue
  29. 1 1
      src/views/report/components/dialog/addAndEditReport.vue
  30. 1 1
      src/views/report/components/patentList/components/customFields/components/tab2.vue

+ 5 - 0
src/assets/css/main.scss

@@ -122,6 +122,11 @@
     }
     p{
       margin: 0;
+      cursor: pointer;
+    }
+    p:hover{
+      background-color: #ecf5ff;
+      color: #66b1ff;
     }
   }
 

+ 1 - 1
src/assets/css/tag.scss

@@ -35,5 +35,5 @@ dot {
   
   /*高亮*/
   Highlight{
-    background: yellow;
+    background: #00FF00;
   }

+ 5 - 0
src/utils/axios.js

@@ -101,6 +101,11 @@ _axios.interceptors.response.use(
       title: '系统错误',
       message: error.response.data.message
     })
+    if(error.response.data.message == '未登录'){
+      Router.push({
+        path: `/login`
+      }).then(r => {})
+    }
     isRefreshing = false
     return Promise.reject(error);
   }

+ 21 - 13
src/views/components/dialog/fields.vue

@@ -7,19 +7,21 @@
         <p></p>
         <el-checkbox-group v-model="checked" @change="handleCheckedChange">
           <template>
-            <div v-for="(field, index) in filedList" :key="field.value" style="padding:5px 0;">
-              <el-checkbox :label="field.value">
-                <div>
-                  <div>{{ field.name }}</div>
+            <draggable ref="el" v-model="filedList" @end="end">
+              <div v-for="(field, index) in filedList" :key="field.value" style="padding:5px 0;">
+                <el-checkbox :label="field.value">
                   <div>
-                    <el-button type="text" :disabled="index == filedList.length - 1" class="down"> <i
-                        class="el-icon-sort-down" @click.stop.prevent="down(index, field)"></i></el-button>
-                    <el-button type="text" :disabled="index == 0" class="up"><i class="el-icon-sort-up"
-                        @click.stop.prevent="up(index, field)"></i></el-button>
+                    <div style="cursor:move;">{{ field.name }}</div>
+                    <div>
+                      <el-button type="text" :disabled="index == filedList.length - 1" class="down"> <i
+                          class="el-icon-sort-down" @click.stop.prevent="down(index, field)"></i></el-button>
+                      <el-button type="text" :disabled="index == 0" class="up"><i class="el-icon-sort-up"
+                          @click.stop.prevent="up(index, field)"></i></el-button>
+                    </div>
                   </div>
-                </div>
-              </el-checkbox>
-            </div>
+                </el-checkbox>
+              </div>
+            </draggable>
           </template>
 
         </el-checkbox-group>
@@ -33,8 +35,11 @@
 </template>
 
 <script>
+import draggable from 'vuedraggable'
 export default {
-  components: {},
+  components: {
+    draggable
+  },
   props: {
     type: {
       type: String,
@@ -79,7 +84,9 @@ export default {
   mounted() {
   },
   methods: {
-
+    end(val){
+        
+    },
     //打开栏位
     open(data) {
       this.filedList = JSON.parse(JSON.stringify(data))
@@ -108,6 +115,7 @@ export default {
     //提交更改
     submit() {
       for (var i = 0; i < this.filedList.length; i++) {
+        this.filedList[i].order = i
         if (this.checked.includes(this.filedList[i].value)) {
           this.filedList[i].ifHidden = false
         } else {

+ 1 - 1
src/views/components/dialog/menuDialog/annotation.vue

@@ -45,7 +45,7 @@
         <p>
           <span>使用权限:</span>
           <span>
-            <el-switch v-model="mark.isPublic" active-color="#13ce66" inactive-color="#ff4949" active-text="所有人可见">
+            <el-switch v-model="mark.isPublic" active-color="#13ce66"  active-text="所有人可见">
             </el-switch>
             <!-- <el-radio-group v-model="mark.isPublic">
               <el-radio :label="1">所有人可见</el-radio>

+ 1 - 2
src/views/components/dialog/nodeCopy.vue

@@ -7,8 +7,7 @@
                 <span>是否包含子节点:</span>
                 <el-switch
                     v-model="form.check"
-                    active-color="#13ce66"
-                    inactive-color="#ff4949">
+                    active-color="#13ce66">
                 </el-switch>
             </div>
             <div class="margin-bottom_10">

+ 0 - 1
src/views/components/import/components/importPatent.vue

@@ -111,7 +111,6 @@
                                     <el-switch
                                         v-model="form.type"
                                         active-color="#13ce66"
-                                        inactive-color="#ff4949"
                                         active-value="2"
                                         inactive-value="3"
                                         active-text="专利号"

+ 0 - 1
src/views/components/import/conditionImport/components/projectListDialog.vue

@@ -163,7 +163,6 @@
               :active-value="true"
               :inactive-value="false"
               active-color="#13ce66"
-              inactive-color="#ff4949"
             >
             </el-switch>
           </el-form-item>

+ 1 - 2
src/views/components/import/conditionImport/patentDetails/patentIndex.vue

@@ -5,8 +5,7 @@
             <el-switch
                 v-model="value"
                 inactive-text="对比"
-                active-color="#00BFFF"
-                inactive-color="#D3D3D3">
+                active-color="#00BFFF">
             </el-switch>
             <PatentList @on-change="onChange" :ban='ban'/>
         </div> 

+ 10 - 2
src/views/components/indicia/components/card.vue

@@ -103,11 +103,19 @@ export default {
   methods: {
     // 跳转专利详情
     toPatentDetails(row, index) {
+      var search = {
+        searchOption: {
+          patentNo:row.patentNo
+        },
+        location: 1,
+      }
+      this.$s.setSession('search', search)
       var router = this.$router.resolve({
         path: '/patentDetails/' + row.patentNo,
         query: {
-          projectId: 0,
-          outside:row.createFrom == 0?true:false//createFrom添加批注的时候传后台,0接口检索出的专利1专题库2报告
+          projectId:row.projectId,
+          projectType:4,
+          outside:!row.createFrom?true:null//createFrom添加批注的时候传后台,0接口检索出的专利1专题库2报告
         }
       })
       window.open(router.href, '_blank');

+ 1 - 1
src/views/components/indicia/components/indicia.vue

@@ -7,7 +7,7 @@
           </mySearch>
         </div>
         <div>
-          <span>分组查询:</span>
+          <span>分组:</span>
           <el-select v-model="groupingValue" size="small" @change="changeGrouping" class="indicia-top-select">
             <el-option v-for="item in groupingOption" :key="item.value" :label="item.label" :value="item.value">
             </el-option>

+ 1 - 1
src/views/home/components/echarts/components/report.vue

@@ -76,7 +76,7 @@ export default {
           return false
         }
         await this.init()
-        count ++ 
+        this.count ++ 
       }
     },
     initChart() {

+ 1 - 1
src/views/patentMining/components/dialog/addAndEditProject.vue

@@ -50,7 +50,7 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="是否检索:">
-                <el-switch v-model="form.ifSearch" active-color="#13ce66" inactive-color="#ff4949">
+                <el-switch v-model="form.ifSearch" active-color="#13ce66">
                 </el-switch>
               </el-form-item>
             </el-col>

+ 1 - 1
src/views/patentMining/components/dialog/handleTask1.vue

@@ -75,7 +75,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="是否检索:">
-              <el-switch v-model="form.ifSearch" active-color="#13ce66" inactive-color="#ff4949"
+              <el-switch v-model="form.ifSearch" active-color="#13ce66"
                 :disabled="form.isLook ? true : false">
               </el-switch>
             </el-form-item>

+ 1 - 1
src/views/patentMining/components/dialog/uploadFile.vue

@@ -14,7 +14,7 @@
           <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove" style="height: 185px;" :autoUpload="true"></myUpload>
         </el-form-item>
         <el-form-item label="最终文件:" prop="ifFinal" style="width: 20px;">
-          <el-switch v-model="form.ifFinal" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
+          <el-switch v-model="form.ifFinal" active-color="#13ce66"></el-switch>
         </el-form-item>
         <el-form-item label="说明:">
           <el-input v-model="form.description" type="textarea" placeholder="请输入说明内容"></el-input>

+ 1 - 1
src/views/patentMining/components/handleExamine/handleExamine.vue

@@ -26,7 +26,7 @@
               <el-row>
                 <el-col :span="12">
                   <el-form-item label="是否返回修改:">
-                    <el-switch v-model="form.ifBack" active-color="#13ce66" inactive-color="#ff4949">
+                    <el-switch v-model="form.ifBack" active-color="#13ce66">
                     </el-switch>
                   </el-form-item>
                 </el-col>

+ 2 - 2
src/views/project/components/PatentKeywordsHighlight.vue

@@ -3,7 +3,7 @@
     <el-container>
       <el-header class="patent-keywords-highlight-header">
         <el-switch v-model="form.ifEnable" active-color="#13ce66" @change="onChange2"></el-switch>
-        <div v-if="this.projectType != 3 && !this.outside">
+        <div v-if="this.projectType != 3 && !this.outside && projectId">
           <el-button type="primary" size="small" @click="handleAdd" :loading="btnLoading">新增</el-button>
           <el-button type="success" size="small" @click="handleSave">保存</el-button>
         </div>
@@ -67,7 +67,7 @@ export default {
   },
   mounted() {
     // 从产品进入进入projectType为3,从接口检索进入为outside为true
-    if (this.projectType != 3 && !this.outside) {
+    if (this.projectType != 3 && !this.outside && this.projectId) {
       this.getList()
     } else {
       this.defaultData()

+ 2 - 2
src/views/project/index.vue

@@ -35,8 +35,8 @@
               <el-dropdown id="step4" trigger="click" split-button type="primary" size="small">
                 <span @click="handleAdd" v-disabled="false">新增专利数据库</span>
                 <el-dropdown-menu slot="dropdown" class="text-align_center">
-                  <el-dropdown-item @click.native="handleExport"  v-if="[2].indexOf(isOperate) == -1">导出列表</el-dropdown-item>
-                  <el-dropdown-item @click.native="handleImport" v-if="[2].indexOf(isOperate) == -1">导入数据包</el-dropdown-item>
+                  <!-- <el-dropdown-item @click.native="handleExport"  v-if="[2].indexOf(isOperate) == -1">导出列表</el-dropdown-item>
+                  <el-dropdown-item @click.native="handleImport" v-if="[2].indexOf(isOperate) == -1">导入数据包</el-dropdown-item> -->
                   <el-dropdown-item @click.native="handleField">显示栏位管理</el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>

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

@@ -223,7 +223,7 @@ export const handleData = {
           })
           if(obj){
             var currentText = obj.text_content
-            text = currentText.replace(/(\t){1}/g,'<br/>')
+            text = currentText.replace(/(\t)+/g,'<br/>')
           }else{
             text = ''
           }
@@ -234,7 +234,7 @@ export const handleData = {
           })
           if(obj){
             var currentText = obj.text_content
-            text = currentText.replace(/(\t){1}/g,'<br/>')
+            text = currentText.replace(/(\t)+/g,'<br/>')
           }else{
             text = ''
           }
@@ -244,7 +244,7 @@ export const handleData = {
             return item.if_origin
           })
           if(obj){
-            text = obj.text_content.replace(/(\r\n){1}/g,'<br/>')
+            text = obj.text_content.replace(/(\r\n)+/g,'<br/>')
           }else {
             text = ''
           }
@@ -254,7 +254,7 @@ export const handleData = {
             return item.if_origin == false
           })
           if(obj){
-            text = obj.text_content.replace(/(\r\n){1}/g,'<br/>')
+            text = obj.text_content.replace(/(\r\n)+/g,'<br/>')
           }else {
             text = ''
           }

+ 50 - 19
src/views/project/patentCollection/index.vue

@@ -47,13 +47,25 @@
                 <!-- <el-dropdown-item @click.native="handleQuestion" v-if="$permission('/workspace/event')">事
                   件</el-dropdown-item> -->
                 <el-dropdown-item @click.native="handleField" v-disabled="false">自定义栏位管理</el-dropdown-item>
-                <el-dropdown-item @click.native="exportPDF">导出PDF首页</el-dropdown-item>
+                <!-- <el-dropdown-item @click.native="exportPDF">导出PDF首页</el-dropdown-item> -->
+                <el-dropdown-item>
+                  <el-dropdown trigger="hover" placement="right-start">
+                    <p>
+                      导出PDF首页<i class="el-icon-arrow-right el-icon--right"></i>
+                    </p>
+                    <el-dropdown-menu slot="dropdown">
+                      <el-dropdown-item @click.native="exportPDF(false)">当前全部</el-dropdown-item>
+                      <el-dropdown-item @click.native="exportPDF(true)">当前所选</el-dropdown-item>
+                    </el-dropdown-menu>
+                  </el-dropdown>
+                </el-dropdown-item>
+                
                 <!-- <el-dropdown-item @click.native="handleBatch"
                   :disabled="!($permission('/workspace/folder/batchUploadSpecification') && $r(projectId, [1, 2]))">批量上传说明书</el-dropdown-item>
                 <el-dropdown-item> -->
                 <el-dropdown trigger="hover" placement="right-start">
                   <p>
-                    导出专利<i class="el-icon-arrow-right el-icon--right"></i>
+                    导出Excel档<i class="el-icon-arrow-right el-icon--right"></i>
                   </p>
                   <el-dropdown-menu slot="dropdown">
                     <el-dropdown-item @click.native="handleExport(false)">当前全部</el-dropdown-item>
@@ -242,11 +254,11 @@ export default {
           title: '图片视图',
           btn: 'el-icon-picture-outline',
         },
-        {
-          value: 'PatentPDFListView',
-          title: 'PDF视图',
-          btn: 'iconfont icon-pdf',
-        }
+        // {
+        //   value: 'PatentPDFListView',
+        //   title: 'PDF视图',
+        //   btn: 'iconfont icon-pdf',
+        // }
       ],
       //选择的视图
       viewSelected: "patent-table-list-view",
@@ -600,7 +612,7 @@ export default {
     //导出专利
     async handleExport(val) {
       if (val) {
-        if (this.startNumber < 0 && this.endNumber < 1 || this.queryParams.isAdd.length == 0) {
+        if ( this.endNumber < 1 || this.queryParams.isAdd.length == 0) {
           this.$message.error('请先选择专利')
           return false
         }
@@ -628,18 +640,37 @@ export default {
       window.open(router.href, '_blank')
     },
     //PDF首页导出
-    exportPDF() {
-      let params = {
-        projectId: this.projectId,
-        searchQuery: this.searchStr || '',//检索条件
-        customFields: this.customFields || [],//自定义字段的检索
-        isAdd: this.queryParams.isAdd,
-        isDelete: this.queryParams.isDelete,
-        startNumber: this.startNumber,
-        // endNumber: this.endNumber,
-        endNumber: this.total,//默认是当前全部
-        orderDTOList:this.sort,
+    exportPDF(sign) {
+      if (sign) {
+        if ( this.endNumber < 1 || this.queryParams.isAdd.length == 0) {
+          this.$message.error('请先选择专利')
+          return false
+        }
       }
+      if(sign){
+        var params = {
+          projectId: this.projectId,
+          searchQuery: this.searchStr || '',//检索条件
+          customFields: this.customFields || [],//自定义字段的检索
+          isAdd: this.queryParams.isAdd,
+          isDelete: this.queryParams.isDelete,
+          startNumber: this.startNumber,
+          endNumber: this.endNumber,
+          orderDTOList:this.sort,
+        }
+      }else{
+        var params = {
+          projectId: this.projectId,
+          searchQuery: this.searchStr || '',//检索条件
+          customFields: this.customFields || [],//自定义字段的检索
+          isAdd: [],
+          isDelete: [],
+          startNumber: 1,
+          endNumber: this.total,//默认是当前全部
+          orderDTOList:this.sort,
+        }
+      }
+      
       this.$api.exportPDFFirstPage(params).then(res => {
         if (res.code == 200) {
           const h = this.$createElement;

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

@@ -153,7 +153,9 @@ export default {
       var order = this.customField[current].sysOrder
       this.customField[current].sysOrder = this.customField[next].sysOrder
       this.customField[next].sysOrder = order
-      this.customField.splice(this.customField[current], 0, this.customField[next])
+      var temp = JSON.parse(JSON.stringify(this.customField[current]))
+      this.customField[current] = JSON.parse(JSON.stringify(this.customField[next]))
+      this.customField[next] = temp
       let params = {
         taskId: this.taskId,
         projectId: this.projectId,
@@ -164,6 +166,7 @@ export default {
         if (res.code == 200) {
           this.$message('移动成功')
           // this.getCustomField()
+          this.$forceUpdate()
         }
       })
     },

+ 119 - 0
src/views/project/patentDetails/components/PatentMark.vue

@@ -0,0 +1,119 @@
+<template>
+  <div class="content">
+    <div class="item" v-for="item in patentMark" :key="item.id" :style="{'background':item.markColor}">
+      <el-popover
+        placement="bottom"
+        width="200"
+        trigger="hover">
+      <div>
+        <p><span style="color: #409EFF;">栏位:</span><span>{{ item.fieldName }}</span></p>
+        <!-- <p>栏位:{{ item.scratchField }}</p> -->
+        <p><span style="color: #409EFF;" class="noWrap">选中文本:</span>{{ item.text }}</p>
+        <p v-if="item.remark" class="noWrap"><span style="color: #409EFF;">标注:</span>{{ item.remark }}</p>
+      </div>
+      <div slot="reference" style="height:100%;width:100%" @click.prevent.stop="runTo(item)"></div>
+      </el-popover>
+    </div>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+export default {
+  props:['patentNo','reportType'],
+  data() {
+    return {
+      patentMark:[]
+    }
+  },
+  computed: {
+    ...mapGetters(['highlight']),
+  },
+  watch: {
+    patentNo(val) {
+      this.getPatentMark()
+    },
+  },
+  mounted() {
+    this.getPatentMark()
+  },
+  methods: {
+    getPatentMark() {
+      var contrastList = []
+      var pizhu = this.highlight.piZhuContrastList
+      if(this.reportType == 1 || this.reportType == 2){
+        contrastList = this.highlight.contrastList
+      }
+      var data = contrastList.concat(pizhu)
+      this.$nextTick(() => {
+        this.patentMark=[]
+        var a = ['摘要', '权利要求', '说明书']
+        // var b = data.filter(item => {
+        //   if(item.patentNo == this.patentNo){
+        //     var obj = {
+        //       id:item.id,
+        //       position:item.position || item.markSite,
+        //       fieldName:item.fieldName || item.markSelectField,
+        //       markColor:item.markColor,
+        //       text:item.evidenceText || item.markSelectText,
+        //       patentNo:item.patentNo,
+        //       markType:item.markType,
+        //       remark:item.markNoteText
+        //     }
+        //     return obj
+        //   }
+        // })
+        var b = []
+        for(var i = 0;i<data.length;i++){
+          var item = data[i]
+          if(item.patentNo == this.patentNo){
+            var obj = {
+              id:item.id,
+              position:item.position || item.markSite,
+              fieldName:item.fieldName || item.markSelectField,
+              markColor:item.markColor,
+              text:item.evidenceText || item.markSelectText,
+              patentNo:item.patentNo,
+              markType:item.markType,
+              remark:item.markNoteText,
+              highlightType:item.position?'c':'p'
+            }
+            b.push(obj)
+          }
+        }
+        console.log(b,data)
+        /**方案四 */
+        var c = []
+        a.forEach((item,index) => {
+          c[index] = b.filter(item2 => {
+            return item2.fieldName.indexOf(item) != -1
+          })
+          c[index].sort((a, b) => {
+            return a.position - b.position
+          })
+        })
+        this.patentMark = [].concat(...c)
+      })
+    },
+    runTo(val) {
+      this.$emit('biaozhu',val)
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.item{
+  width: 8px;
+  height: 8px;
+  border: 1px solid black;
+  margin:2px 2px;
+}
+.content{
+  max-width: 300px;
+  max-height: 50px;
+  overflow: auto;
+  display: flex;
+  flex-wrap: wrap;
+}
+</style>

+ 9 - 6
src/views/project/patentDetails/components/menu.vue

@@ -190,22 +190,25 @@ export default {
   },
   watch: {
     isContract(){
-      this.setQueryParams()
-      this.getData()
+      if(this.projectType != 4){
+        this.setQueryParams()
+        this.getData()
+      }
     }
   },
   computed: {},
   created() {},
   mounted() {
-  
-    this.setQueryParams()
-    this.getData()
+    if(this.projectType != 4){
+      this.setQueryParams()
+      this.getData()
+    }
   },
   methods: {
     setQueryParams(){
       if(!this.outside){
         if(this.isContract){
-          this.queryParams.current = ((this.currentLocation-1) < 5)? 0 : ((this.currentLocation-1) - 5)
+          this.queryParams.current = ((this.currentLocation-1) < 5)? 1 : ((this.currentLocation-1) - 5)
         }else{
           this.queryParams.current = parseInt((this.currentLocation-1) / this.queryParams.size) + 1
         }

+ 49 - 26
src/views/project/patentDetails/components/patentDetails.vue

@@ -29,11 +29,13 @@
                 </el-link>
               </div>
             </div>
-            <!-- <PatentMark :patentNo="patent.patentNo" @biaozhu="getBiaoZhu"></PatentMark> -->
             <div v-if="outside">
               <el-button type="primary" size="small" @click="importToProject">导入专利</el-button>
             </div>
             <div style="display: flex;justify-content: space-between;margin-right: 10px;align-items: center;" v-else>
+              <!-- <div>
+                <PatentMark :patentNo="patent.patentNo" :reportType="reportType" @biaozhu="getBiaoZhu"></PatentMark>
+              </div> -->
               <el-dropdown size="medium" style="margin-right:10px">
                 <el-button type="primary" size="small">
                   创建报告<i class="el-icon-arrow-down el-icon--right"></i>
@@ -81,7 +83,7 @@
             <my-view :position="this.positionList.find(item => item.value == radio).position"
               :showView="radio != 1 && activeMenu != activeMenu2">
               <div slot="left">
-                <component :activeName="activeMenu" style="width:100%;padding-right: 10px;" :is="activeMenu"
+                <component :activeName="activeName" style="width:100%;padding-right: 10px;" :is="activeMenu"
                   :evidence="evidence" :signPatentNo="signPatentNo" :reportType="reportType" :project-id="projectId"
                   :outside="outside" :projectType="projectType" :patent="patent" :patentNo="patent.patentNo"
                   :domId="$commonJS.uuid(36)" @refresh="getPatent()"></component>
@@ -144,6 +146,7 @@ import { projectData, handleData } from '../../patentCollection/components/mixin
 import PatentField from './PatentField.vue'
 import addAndEditReport from '@/views/report/components/dialog/addAndEditReport.vue'
 import projectListDialog from "@/views/components/import/conditionImport/components/projectListDialog.vue";
+import PatentMark from './PatentMark.vue'
 export default {
   components: {
     PatentBasic,
@@ -164,7 +167,8 @@ export default {
 
     PatentField,
     addAndEditReport,
-    projectListDialog
+    projectListDialog,
+    PatentMark
   },
   mixins: [projectData, handleData],
   props: {
@@ -310,13 +314,13 @@ export default {
       activeMenu: 'PatentBasic',
       activeMenu2: '',
       patent: {},
+      activeName:'0',
     };
   },
   watch: {
     patentNo(val) {
       if (val && !this.fix) {
         this.getPatent()
-        this.getPiZhuData(val)
       }
     }
   },
@@ -329,7 +333,7 @@ export default {
   mounted() {
     this.getSignPermission()
     this.getPatent()
-    this.getPiZhuData()
+    
   },
   methods: {
     async getSignPermission(){
@@ -339,25 +343,7 @@ export default {
         this.signPermission = false
       }
     },
-    // 获取批注
-    getPiZhuData(val) {
-      let params = {
-        patentNo: val ? val : this.patentNo,
-        projectId: this.projectId,
-      }
-      this.$api.queryScratchWords(params).then(response => {
-        if (response.code == 200) {
-          if (this.highlight.piZhuContrastList.length > 0) {
-            var a = this.highlight.piZhuContrastList.filter(item => {
-              return item.patentNo != params.patentNo
-            }).concat(response.data.data)
-          } else {
-            var a = response.data.data
-          }
-          this.$store.commit('SET_PATENT_PIZHU_CONTRAST', a)
-        }
-      })
-    },
+    
     // 获取外部摘要附图的guid,获取外部的法律状态
     getData() {
       var params = {
@@ -383,8 +369,42 @@ export default {
       }
       this.$refs.projectListDialog.open(form);
     },
-    getBiaoZhu() {
-
+    //获取需要跳转的批注
+    getBiaoZhu(val) {
+      if (val.fieldName.indexOf('摘要')!=-1) {
+        this.activeMenu = 'PatentBasic'
+      } else { 
+        this.activeMenu = this.menuList.find(item => {
+          return val.fieldName.indexOf(item.label)!=-1
+        }).value
+          if (val.fieldName.indexOf('译文') !=-1) {
+          this.activeName = '1'
+          } else {
+            this.activeName='0'
+          }
+      }
+      this.handleSelect(this.activeMenu)
+      
+        this.tiaozhuan(val)
+    },
+    tiaozhuan(val) {
+      var dom = `.${val.highlightType}${val.id}`
+      let target = document.querySelector(dom)
+      target.scrollIntoView({
+        block: 'start',
+        inline: 'nearest',
+        behavior: 'smooth'
+      })
+      // const href = `#${id}`
+      // const anchor = document.createElement('a');
+      //   anchor.href = href;
+      //   anchor.style.display = "none";
+      //   document.body.appendChild(anchor);
+      //   setTimeout(function () {
+      //     anchor.click();
+      //     document.body.removeChild(anchor);
+      //   }, 66);
+      //   return true;
     },
     //获取专利信息
     getPatent() {
@@ -415,6 +435,9 @@ export default {
       })
     },
     getPatentField(){
+      if(!this.projectId){
+        return false
+      }
       var params = {
         projectId : this.projectId,
         patentNos:[this.patent.patentNo],

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

@@ -26,7 +26,7 @@
               </el-link>
             </td>
           </tr>
-          <tr v-if="!outside"> 
+          <tr v-if="!outside && projectId"> 
             <td width="80"><span  class="patent-basic-label">标签:</span></td>
             <td>
               <div class="patent-label">

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

@@ -41,6 +41,7 @@ export default {
   },
   watch: {
     patentNo() {
+      this.pdfType = 1
       if (this.outside) {
         this.getData()
       }else{

+ 9 - 1
src/views/project/patentDetails/components/patentMessage/mixins/index.js

@@ -20,15 +20,23 @@ export const patentDetails = {
     },
     patentNo:{
       default:null
+    },
+    activeName:{
+      default:'0'
     }
   },
   data() {
     return {
-      name: '0',
+      name: this.activeName,
       anchorOffset: null,
       loading:false
     }
   },
+  watch:{
+    activeName(){
+      this.name = this.activeName
+    }
+  },
   computed: {
     ...mapGetters(["contextMenu"]),
     textStyle() {

+ 27 - 2
src/views/project/patentDetails/index.vue

@@ -84,7 +84,7 @@ export default {
       return this.$route.query.outside
     },
     projectType() {
-      return this.$route.query.projectType//判断是不是从专题库进入专利详情1为专题库2为报告(报告未传2)3是产品
+      return this.$route.query.projectType//判断是不是从专题库进入专利详情1为专题库2为报告(报告未传2)3是产品,4是标注库,5是检索
     },
     productId(){
       return this.$route.query.productId
@@ -107,7 +107,8 @@ export default {
       this.$store.commit("SET_PATENT_CONTRAST",[])
       this.getContrast()
     }
-    
+    this.$store.commit('SET_PATENT_PIZHU_CONTRAST', [])
+    this.getPiZhuData()
   },
   methods: {
     //获取对比记录
@@ -136,6 +137,7 @@ export default {
             var data = response.data.data.map(item=>{
               item.signPatentNo = this.signPatentNo
               item.projectId = this.projectId
+              item.patentNo = this.evidenceData.literatureNo
               return item
             })
             contrastList.push(...data)
@@ -144,6 +146,25 @@ export default {
         }
       })
     },
+    // 获取批注
+    getPiZhuData(val) {
+      let params = {
+        patentNo: val ? val : this.patentNo,
+        projectId: this.projectId,
+      }
+      this.$api.queryScratchWords(params).then(response => {
+        if (response.code == 200) {
+          if (this.highlight.piZhuContrastList.length > 0) {
+            var a = this.highlight.piZhuContrastList.filter(item => {
+              return item.patentNo != params.patentNo
+            }).concat(response.data.data)
+          } else {
+            var a = response.data.data
+          }
+          this.$store.commit('SET_PATENT_PIZHU_CONTRAST', a)
+        }
+      })
+    },
     // 获取协同按钮
     getMenuPrice() {
       if (this.reportType == 4 && !this.taskId) {
@@ -197,6 +218,10 @@ export default {
       } else {
         this.patentNo = val
       }
+      if(this.reportType == 1 || this.reportType == 2){
+        this.getContrast()
+      }
+      this.getPiZhuData()
       this.$router.push(
         {
           path: '/patentDetails/' + this.patentNo,

+ 1 - 1
src/views/report/components/dialog/addAndEditReport.vue

@@ -76,7 +76,7 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="是否完成" v-if="!form.id" prop="status">
-                  <el-switch v-model="form.status" active-color="#13ce66" inactive-color="#ff4949" @change="changeStatus"
+                  <el-switch v-model="form.status" active-color="#13ce66"  @change="changeStatus"
                     :active-value="3" :inactive-value="2">
                   </el-switch>
                 </el-form-item>

+ 1 - 1
src/views/report/components/patentList/components/customFields/components/tab2.vue

@@ -4,7 +4,7 @@
       <template>
         <div style="margin-bottom: 10px;">
           <span style="font-size: 14px;">开启关联模式</span>
-          <el-switch style="display: block" v-model="ifHaveChild" active-color="#13ce66" inactive-color="#ff4949"
+          <el-switch style="display: block" v-model="ifHaveChild" active-color="#13ce66"
             active-text="描述:主分类包含子分类" inactive-text="" @change="switchChange">
           </el-switch>
         </div>