Ver Fonte

商品化专利

zhuhao há 1 ano atrás
pai
commit
d2aa1137cc

+ 8 - 8
public/专利培育布局A1.svg

@@ -237,16 +237,16 @@
   <!-- 政策与市场环境分析块 -->
   <g id="SvgjsG1187" transform="translate(25.000000000000227,200.35418478647807)" onmouseenter="vm.svgOnMouseenter(event,{type:'10',width:'325'})" onmouseleave="vm.svgOnMouseleave(event,{type:'10',width:'325'})"
     onClick="vm.handleClick('政策与市场环境分析')">
-    <path id="SvgjsPath1188" d="M 0 4Q 0 0 4 0L 426 0Q 430 0 430 4L 430 65.99998474121105Q 430 69.99998474121105 426 69.99998474121105L 4 69.99998474121105Q 0 69.99998474121105 0 65.99998474121105Z" stroke="{{ 政策与市场环境 , color }}" stroke-width="2" fill-opacity="1" fill="#ffffff"></path>
+    <path id="SvgjsPath1188" d="M 0 4Q 0 0 4 0L 426 0Q 430 0 430 4L 430 65.99998474121105Q 430 69.99998474121105 426 69.99998474121105L 4 69.99998474121105Q 0 69.99998474121105 0 65.99998474121105Z" stroke="{{ 政策与市场环境分析 , color }}" stroke-width="2" fill-opacity="1" fill="#ffffff"></path>
     <g id="SvgjsG1189">
-      <text id="SvgjsText1190" font-family="思源黑体" text-anchor="middle" font-size="24px" width="410px" fill="{{ 政策与市场环境 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="middle" family="思源黑体" size="24px" weight="700" font-style="" opacity="1" y="13.999992370605526" transform="rotate(0)"></text>
+      <text id="SvgjsText1190" font-family="思源黑体" text-anchor="middle" font-size="24px" width="410px" fill="{{ 政策与市场环境分析 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="middle" family="思源黑体" size="24px" weight="700" font-style="" opacity="1" y="13.999992370605526" transform="rotate(0)"></text>
     </g>
     <!-- 政策与市场环境分析文字 -->
     <g id="SvgjsG1210" transform="translate(63.16666666666697,17.35417715708357)">
       <path id="SvgjsPath1211" d="M 0 0L 252.00000000000023 0L 252.00000000000023 40L 0 40Z" stroke="none" fill="none">
       </path>
       <g id="SvgjsG1212">
-        <text id="SvgjsText1213" font-family="思源黑体" text-anchor="middle" font-size="22px" width="253px" fill="{{ 政策与市场环境 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="middle" family="思源黑体" size="22px" weight="700" font-style="" opacity="1" y="0.25" transform="rotate(0)">
+        <text id="SvgjsText1213" font-family="思源黑体" text-anchor="middle" font-size="22px" width="253px" fill="{{ 政策与市场环境分析 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="middle" family="思源黑体" size="22px" weight="700" font-style="" opacity="1" y="0.25" transform="rotate(0)">
           <tspan id="SvgjsTspan1214" dy="27.5" x="126.5">
             <tspan id="SvgjsTspan1215" style="">政策与市场环境分析</tspan>
           </tspan>
@@ -255,14 +255,14 @@
     </g>
     <!-- 政策与市场环境分析线 -->
     <g id="SvgjsG1207" transform="translate(314.63541666666833,17.35417715708357)">
-      <path id="SvgjsPath1208" d="M 10.5 0L 10.5 40" stroke="{{ 政策与市场环境 , color }}" stroke-width="1" fill="none"></path>
+      <path id="SvgjsPath1208" d="M 10.5 0L 10.5 40" stroke="{{ 政策与市场环境分析 , color }}" stroke-width="1" fill="none"></path>
       <path id="SvgjsPath1209" d="M 0 0L 21 0L 21 40L 0 40Z" stroke="none" fill="none"></path>
     </g>
     <!-- 政策与市场环境分析栏位 -->
     <g id="SvgjsG1191" transform="translate(337.3854166666685,13.75002574920572)">
       <path id="SvgjsPath1192" d="M 0 0L 55.66666666666663 0L 55.66666666666663 47.2083028157557L 0 47.2083028157557Z" stroke="none" fill="none"></path>
       <g id="SvgjsG1193">
-        <text id="SvgjsText1194" font-family="思源黑体" text-anchor="start" font-size="13px" width="56px" fill="{{ 政策与市场环境 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="start" family="思源黑体" size="13px" weight="700" font-style="" opacity="1" y="4.4791514078778505" transform="rotate(0)">
+        <text id="SvgjsText1194" font-family="思源黑体" text-anchor="start" font-size="13px" width="56px" fill="{{ 政策与市场环境分析 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="start" family="思源黑体" size="13px" weight="700" font-style="" opacity="1" y="4.4791514078778505" transform="rotate(0)">
           <tspan id="SvgjsTspan1195" dy="16.25" x="0">
             <tspan id="SvgjsTspan1196" style="">数据库:</tspan>
           </tspan>
@@ -276,12 +276,12 @@
     <g id="SvgjsG1199" transform="translate(376.96875000000193,13.75002574920572)">
       <path id="SvgjsPath1200" d="M 0 0L 45.49999999999966 0L 45.49999999999966 44.99475065867236L 0 44.99475065867236Z" stroke="none" fill="none"></path>
       <g id="SvgjsG1201">
-        <text id="SvgjsText1202" font-family="思源黑体" text-anchor="end" font-size="13px" width="46px" fill="{{ 政策与市场环境 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="end" family="思源黑体" size="13px" weight="700" font-style="" opacity="1" y="3.3723753293361796" transform="rotate(0)">
+        <text id="SvgjsText1202" font-family="思源黑体" text-anchor="end" font-size="13px" width="46px" fill="{{ 政策与市场环境分析 , color }}" font-weight="700" align="middle" lineHeight="125%" anchor="end" family="思源黑体" size="13px" weight="700" font-style="" opacity="1" y="3.3723753293361796" transform="rotate(0)">
           <tspan id="SvgjsTspan1203" dy="16.25" x="50">
-            <tspan id="SvgjsTspan1204" style="">{{ 政策与市场环境 , 2 }}</tspan>
+            <tspan id="SvgjsTspan1204" style="">{{ 政策与市场环境分析 , 2 }}</tspan>
           </tspan>
           <tspan id="SvgjsTspan1205" dy="16.25" x="46">
-            <tspan id="SvgjsTspan1206" style="">{{ 政策与市场环境 , 3 }}</tspan>
+            <tspan id="SvgjsTspan1206" style="">{{ 政策与市场环境分析 , 3 }}</tspan>
           </tspan>
         </text>
       </g>

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

@@ -96,8 +96,8 @@ export default {
   },
   methods: {
     // 点击波浪线等样式直接调用
-    submit2() {
-      this.getData()
+    submit2(markType) {
+      this.getData(markType)
       this.submit()
     },
     // 查询批注
@@ -186,7 +186,7 @@ export default {
       return Y + '-' + m + '-' + d + ' ' + H + ':' + M + ':' + S
     },
     // 处理数据
-    getData() {
+    getData(markType) {
       let mark = this.contextMenu.mark
       this.mark = {
         Id: mark.Id,
@@ -195,7 +195,7 @@ export default {
         isPublic: mark.id ? mark.isPublic : mark.permissionType,//是否所有人可见
         markColor: mark.markColor,//标注颜色
         markNoteText: mark.markNoteText,//标注备注
-        markType: mark.markType,//标注方式(波浪线)
+        markType: (markType ==0 ||markType)?markType:mark.markType,//标注方式(波浪线)
         markSelectField: mark.id ? mark.markSelectField : mark.column,//标注栏位
         markSelectText: mark.id ? mark.markSelectText : mark.text,//标注文本
         markSite: mark.id ? mark.markSite : mark.position,//选中文本的起始位置

+ 2 - 2
src/views/components/import/components/importPatent.vue

@@ -2,13 +2,13 @@
     <div class="height_100">
     <el-container>
         <el-header>
-            <el-button size="small" type="primary" @click="handleManage">自定义栏位管理</el-button>
+            <el-button v-if="importData.importToType != 2" size="small" type="primary" @click="handleManage">自定义栏位管理</el-button>
         </el-header>
         <el-container style=" height:calc(100% - 60px)">
             <el-aside class="height_100" style="padding:10px" width="450px">
                 <div v-loading="loading">
                     <el-form :model="form"> 
-                        <el-form-item label="选择需要关联的标引与分类">
+                        <el-form-item v-if="importData.importToType != 2" label="选择需要关联的标引与分类">
                             <div style="margin-top:50px">
                                 <span>栏位:</span>
                                 <span>

+ 2 - 2
src/views/components/import/conditionImport/components/projectListDialog.vue

@@ -48,8 +48,8 @@
                     inactive-text="否">
                   </el-switch>
                 </el-form-item> -->
-          <el-form-item label="选择需要关联的标引与分类" v-if="form.importToId">
-            <div style="margin-top: 50px" v-if="form.importToType!=2">
+          <el-form-item label="选择需要关联的标引与分类" v-if="form.importToId && form.importToType!=2">
+            <div style="margin-top: 50px">
               <span>栏位:</span>
               <span>
                 <el-select

+ 3 - 14
src/views/layout/components/contextMenu.vue

@@ -55,17 +55,6 @@ export default {
           return item.id == Id
         })
         if (index != -1) {
-          // document.addEventListener("click", function (e) {
-          //   console.log(e.clientX)
-          //   console.log(e.clientY)
-          //   var menuContent = []
-          //   this.$store.commit("SET_CONTEXT_MENU", {
-          //     clientX: e.clientX,
-          //     clientY: e.clientY,
-          //     displayContextMenu: true,
-          //     menuContent: this.highlight.piZhuContrastList[index]
-          //   })
-          // })
           // 打开批注框
           this.$refs.annotation.open()
         }
@@ -88,15 +77,15 @@ export default {
     },
     //波浪线
     wave() {
-      this.$refs.annotation.submit2()
+      this.$refs.annotation.submit2(2)
     },
     //下划线
     underscore() {
-      this.$refs.annotation.submit2()
+      this.$refs.annotation.submit2(0)
     },
     //高亮
     addHighlight() {
-      this.$refs.annotation.submit2()
+      this.$refs.annotation.submit2(1)
     },
     //批注
     mark() {

+ 141 - 41
src/views/product/components/commodity/commodity.vue

@@ -7,10 +7,11 @@
         <div class="headerDiv_two">
           <div>
             <!-- 检索信息 -->
-            <mySearch style="width: 500px" :SearchFields="searchFiled" @search="search" :searchValue="searchOption">
-            </mySearch>
+            <searchPatent ref="searchPatent" style="margin-left: 10px;" :searchFiled="searchFiled"
+              @searchValue="handleSearchValue"></searchPatent>
           </div>
           <div style="margin-right: 10px;display: flex;">
+            <!-- 视图切换 -->
             <div style="margin-right: 10px;">
               <el-button-group class="margin-left_10">
                 <el-tooltip v-for="item in viewList" :key="item.value" class="item" effect="dark" :content="item.title"
@@ -22,6 +23,7 @@
                 </el-tooltip>
               </el-button-group>
             </div>
+            <!-- 显示栏位管理等下拉菜单 -->
             <div>
               <el-dropdown trigger="click" split-button type="primary" size="small">
                 <span @click="handleCommand('3')">显示栏位管理</span>
@@ -32,7 +34,7 @@
                       <el-dropdown-menu style="text-align:center">
                         <el-dropdown-item command="0"> Excel导入 </el-dropdown-item>
                         <el-dropdown-item command="1">专利号导入 </el-dropdown-item>
-                        <!-- <el-dropdown-item command="2">检索条件导入 </el-dropdown-item> -->
+                        <el-dropdown-item command="2">检索条件导入 </el-dropdown-item>
                       </el-dropdown-menu>
                     </el-dropdown>
                   </el-dropdown-item>
@@ -42,8 +44,10 @@
           </div>
         </div>
       </el-header>
-      <el-main>
-        <component :is="componentType" :tableData="tableData" :queryParams="queryParams"></component>
+      <el-main v-loading="loading">
+        <component :is="viewSelected" :tableData="tableData" :queryParams="queryParams" :patentNoList.sync="patentNoList"
+          :column="customList" @on-sort="handleSort">
+        </component>
       </el-main>
       <el-footer style="display: flex;justify-content: space-between;align-items: center;">
         <div>
@@ -52,32 +56,46 @@
               已勾选 <b>{{ selectedTotal }}</b> 条
             </span>
             <el-popover placement="bottom" title="" width="220" trigger="click">
-              <el-main class="patent-fast-edit-popover" v-loading="selectNumberLoading">
+              <el-main class="patent-fast-edit-popover">
                 <div class="btn" @click="handleCancelSelectNumber">取消选择</div>
                 <div class="btn" @click="handleSelectNumber(0)">本页选择</div>
               </el-main>
               <el-button type="info" size="small" class="margin-left_10" slot="reference"> 选择专利<i
                   class="el-icon-arrow-down el-icon--right"></i></el-button>
             </el-popover>
-            <el-button type="primary" size="small" style="margin-left: 10px;"> 删除</el-button>
+            <el-button @click="handleDel" v-if="selectedTotal > 0" type="primary" size="small" style="margin-left: 10px;">
+              删除</el-button>
           </div>
         </div>
         <div>
-          <el-pagination background layout="total, prev, pager, next, jumper" :current-page.sync="queryParams.current"
-            :page-size.sync="queryParams.size" @current-change="handleCurrentChange" :total="total">
+          <el-pagination background layout="total, sizes, prev, pager, next, jumper"
+            :current-page.sync="queryParams.current" :page-sizes="sizeArr" :page-size.sync="queryParams.size"
+            @current-change="handleCurrentChange" @size-change="getList" :total="total">
           </el-pagination>
         </div>
 
       </el-footer>
     </el-container>
+
+    <field ref="field" type="patent" @getFieldList="getFieldList"></field>
   </div>
 </template>
 
 <script>
-import commodityTable from './view/table.vue'
+import { fastSelectPatent } from '@/views/project/patentCollection/components/mixins/fastSelectPatent'
+import PatentAbstractListView from '@/views/project/patentCollection/components/views/Abstract.vue'
+import PatentTableListView from '@/views/project/patentCollection/components/views/Table.vue'
+import PatentPictureListView from '@/views/project/patentCollection/components/views/Picture'
+import searchPatent from '@/views/report/components/patentList/components/searchPatent.vue';
+import field from '@/views/components/dialog/fields.vue';
 export default {
+  mixins: [fastSelectPatent],
   components: {
-    commodityTable,
+    PatentAbstractListView,
+    PatentTableListView,
+    PatentPictureListView,
+    searchPatent,
+    field,
   },
   props: {
     productId: {
@@ -116,55 +134,78 @@ export default {
       viewSelected: "patent-table-list-view",
       //检索字段
       searchFiled: [],
-      //检索条件
-      searchOption: {},
-      // 显示指定的子组件
-      componentType: 'commodityTable',
-      // 查询专利所需字段
-      queryParams: {
-        current: 1,
-        size: 10,
-      },
+      // 检索条件
+      searchStr: '',
+      // sort表格排序
+      sort: [],
+      //页大小
+      sizeArr: [10, 20, 30, 40, 50, 100],
+      // 分页信息
+      // queryParams: {
+      //   current: 1,
+      //   size: 10,
+      // },
       // 专利总数
-      total: 0,
+      // total: 0,
       // 子组件table数据源
-      tableData: [],
+      // tableData: [],
+      // 显示栏位
+      customList: [],
+      // 表格的loading
+      loading: false,
+
     }
   },
   async mounted() {
-    this.customList = await this.$commonJS.getCustomField('patent', { projectId: `${this.productId}productId`, taskId: this.taskId || null })
+    this.customList = await this.$commonJS.getCustomField('patent', { projectId: `${this.productId}productId`, taskId: this.taskId || null, from: 'product', })
     await this.getColumn()
     // 获取专利信息
-    this.getList()
+    // this.getList()
   },
   methods: {
+    // 删除
+    handleDel() {
+      this.$confirm('此操作将永久删除选中的专利, 不可恢复, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let params = this.isAdd
+        this.$api.del(params).then(response => {
+          if (response.code == 200) {
+            this.$message.success('删除成功')
+            this.getList()
+          }
+        })
+      }).catch(() => {
+        this.$message.info('已取消删除操作')
+      });
+    },
+    // 处理后的条件
+    handleSearchValue({ searchStr, customFields }) {
+      this.searchStr = searchStr
+      // this.customFields = customFields
+      // this.$refs.customFields.close()
+      this.getList()
+    },
     //获取检索字段
     async getColumn() {
       let params = [{
         tableName: 'patent',
-        projectId: this.projectId,
+        projectId: `${this.productId}productId`,
+        from: 'product',//来源
       }]
       await this.$api.getQueryFields(params).then(res => {
         if (res.code == 200) {
           let conditionDTOList = JSON.parse(JSON.stringify(res.data.data[0].conditionDTOList))
-          let field = conditionDTOList.filter(item => {
-            return item.group == 'nos'
-          })
-          let custom = conditionDTOList.filter(item => {
-            return item.group == 'customField'
-          })
-          let customField = custom.filter(item => {
-            return item.type != 'tree' && item.type != 'Array'
-          })
-          let arr = field.concat(customField)
           // 搜索字段
-          this.searchFiled = this.$commonJS.getField(arr, (u) => u.ifSearch == true, {
+          this.searchFiled = this.$commonJS.getField(conditionDTOList, (u) => u.ifSearch == true, {
             label: 'name',
             value: 'field',
             type: 'type',
             group: 'group',
-            fieldType: 'fieldType',
-            groupBy: 'groupBy',
+            // fieldType: 'fieldType',
+            // groupBy: 'groupBy',
           })
         }
       })
@@ -176,12 +217,13 @@ export default {
       }
       let params = {
         ...this.queryParams,//分页信息及区分同族类型
-        projectId: this.projectId,
+        productId: this.productId,
         searchQuery: this.searchStr || '',//检索条件
-        customFields: this.customFields || [],
+        customFields: [],
         orderDTOList: this.sort,//排序信息
       }
-      this.$store.commit("SET_PATENT_RECORDS", []);
+      this.loading = true
+      // this.$store.commit("SET_PATENT_RECORDS", []);
       this.$api.QueryPatent(params).then(res => {
         if (res.code == 200) {
           this.tableData = res.data.data
@@ -194,13 +236,32 @@ export default {
           // if (this.quickSelect) {
           //   this.commonSwitch()
           // }
+          this.loading = false
           this.isRefresh()
         }
       }).catch(error => {
         this.tableData = []
         this.total = 0
+        this.loading = false
       })
     },
+    handleCurrentChange(val) {
+      this.queryParams.current = val
+      this.getList()
+    },
+    //排序
+    handleSort({ column, prop, order }) {
+      //如需要多个字段排序,则不需要清空
+      var params = {
+        sort: this.sort,
+        column,
+        prop,
+        order,
+      }
+      this.sort = this.$commonJS.getSortData(params)
+      this.queryParams.current = 1
+      this.getList()
+    },
     //切换视图
     async handleChangeView(item) {
       this.viewSelected = item.value
@@ -215,6 +276,45 @@ export default {
       }
       this.getList()
     },
+    // 显示栏位管理下拉菜单事件
+    handleCommand(even) {
+      switch (even) {
+        case '0'://Excel导入
+          this.patentImport(this.productId,1)
+          break
+        case '1'://专利号导入
+          this.patentImport(this.productId,2)
+          break
+        case '2'://检索条件导入
+          this.patentImport(this.productId,4)
+          break
+        case '3'://显示栏位管理
+          this.handleFieldManage()
+          break
+
+        default:
+          break;
+      }
+    },
+    //显示栏位管理
+    async handleFieldManage() {
+      this.$refs.field.open(this.customList)
+    },
+    //获取自定义显示栏位
+    getFieldList(data) {
+      this.customList = data
+    },
+    //专利导入
+    patentImport(productId, type) {
+      var form = {
+        importToId: productId,
+        importToType: 2,//0专题库1报告2产品
+        type: type,
+        // ifUpdate: false,
+        // crons: '',
+      }
+      this.$commonJS.toImportParent(form, type)
+    },
   },
 }
 </script>

+ 0 - 125
src/views/product/components/commodity/view/table.vue

@@ -1,125 +0,0 @@
-<template>
-  <!-- 商品化专利table -->
-  <div class="commodityTable">
-    <el-table :data="tableData" style="width: 100%" header-row-class-name="custom-table-header">
-      <el-table-column width="80" align="center">
-        <template slot-scope="scope">
-          <div>
-            <el-checkbox-group v-model="checkList" style="display:inline-block">
-              <el-checkbox :label="scope.row.patentNo" @change="getFunInfo(scope.row.patentNo)">
-                <span>{{ (scope.$index + 1) + ((queryParams.current - 1) * queryParams.size) }}</span>
-              </el-checkbox>
-            </el-checkbox-group>
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column v-for="item in column" :key="item.key" :prop="item.key" :label="item.name" align="center">
-        <template slot-scope="scope">
-          <div>
-            {{ scope.row[item.key] }}
-          </div>
-        </template>
-      </el-table-column>
-
-    </el-table>
-  </div>
-</template>
-
-<script>
-export default {
-  props: {
-    tableData: {//数据
-      type: Array,
-      default: () => {
-        return [{ name: '123', eventNumber: '手机', projectNumber: '专利数据库一', projectNumber1: [{ name: '事件一' }] },]
-      }
-    },
-    queryParams: {//分页信息
-      type: Object,
-      default: () => {
-        return {
-          size: 10,
-          current: 1,
-        }
-      }
-    },
-    column: {//显示栏位管理数组
-      type: Array,
-      default: () => {
-        return [
-          {
-            "key": "name",
-            "name": "名称",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "eventNumber",
-            "name": "标的专利/产品",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "projectNumber",
-            "name": "相关专利数据库",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "projectNumber1",
-            "name": "事件",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "projectNumber2",
-            "name": "负责人",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "projectNumber3",
-            "name": "状态",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "projectNumber4",
-            "name": "创建人",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-          {
-            "key": "time",
-            "name": "创建时间",
-            "type": "list",
-            "order": 0,
-            "hidden": true
-          },
-        ]
-      }
-    }
-  },
-  data() {
-    return {
-
-    }
-  },
-  mounted() {
-
-  },
-  methods: {
-    // 勾选监听事件
-    getFunInfo(patentNo){},
-  },
-}
-</script>
-
-<style lang="scss" scoped></style>

+ 1 - 1
src/views/project/patentCollection/index.vue

@@ -421,7 +421,7 @@ export default {
         ...this.queryParams,//分页信息及区分同族类型
         projectId: this.projectId,
         searchQuery: this.searchStr || '',//检索条件
-        customFields: this.customFields || [],
+        customFields: [],
         orderDTOList: this.sort,//排序信息
       }
 

+ 18 - 29
src/views/project/patentDetails/components/patentDetails.vue

@@ -6,10 +6,10 @@
           <div style="display: flex;justify-content: space-between;align-items: center;height:50px">
             <div style="text-align: start;padding-left: 10px;position: relative;">
               <!-- <div style="width: 260px;"> -->
-              <img src="@/assets/visual/fixed.png" width="20px" height="20px" v-if="fix === true && value == true && !lock"
-                @click="fix = false" style="" />
-              <img src="@/assets/visual/unfixed.png" width="20px" height="20px" v-if="fix === false && value == true  && !lock"
-                @click="fix = true" style="" />
+              <img src="@/assets/visual/fixed.png" width="20px" height="20px"
+                v-if="fix === true && value == true && !lock" @click="fix = false" style="" />
+              <img src="@/assets/visual/unfixed.png" width="20px" height="20px"
+                v-if="fix === false && value == true && !lock" @click="fix = true" style="" />
 
               <!-- </div> -->
 
@@ -65,11 +65,13 @@
             </el-link>
             <el-link v-for="item in menuList2" :type="activeMenu === item.value ? 'primary' : undefined" :key="item.value"
               v-if="!outside" @click.native="handleSelect(item.value)">{{ item.label }}</el-link>
-            <el-tooltip class="item" effect="dark" :content="(showRight ? '隐藏' : '显示') + '右侧菜单'" placement="top">
-              <i :class="showRight ? 'el-icon-s-unfold' : 'el-icon-s-fold'"
-                style="font-size: 25px;position: absolute; right: 10px; margin-top: 5px;color: #2f2f2f; cursor: pointer"
-                @click="showRight = !showRight"></i>
-            </el-tooltip>
+            <template v-if="!outside">
+              <el-tooltip class="item" effect="dark" :content="(showRight ? '隐藏' : '显示') + '右侧菜单'" placement="top">
+                <i :class="showRight ? 'el-icon-s-unfold' : 'el-icon-s-fold'"
+                  style="font-size: 25px;position: absolute; right: 10px; margin-top: 5px;color: #2f2f2f; cursor: pointer"
+                  @click="showRight = !showRight"></i>
+              </el-tooltip>
+            </template>
           </div>
         </div>
       </el-header>
@@ -172,11 +174,11 @@ export default {
       type: String,
       default: '2'//判断是不是从专题库进入专利详情1为专题库(专题库已传1)2为报告(报告未传2)
     },
-    value:{
-      default:false
+    value: {
+      default: false
     },
-    lock:{
-      default:false
+    lock: {
+      default: false
     }
   },
   data() {
@@ -302,37 +304,24 @@ export default {
     condition() {
       return this.$s.getSession('import') || {}
     },
-    // 批注相关信息
-    piZhuContrastList() {
-      return this.$store.state.highlight.piZhuContrastList
-    }
   },
   created() { },
   mounted() {
-    
+
     this.getPatent()
     this.getPiZhuData()
   },
   methods: {
     // 获取批注
     getPiZhuData(val) {
-
-      // if (val) {
-      //   var index = this.piZhuContrastList.findIndex(item => {
-      //     item.patentNo == val
-      //   })
-      //   if (index != -1) {
-      //     return false;
-      //   }
-      // }
       let params = {
         patentNo: val ? val : this.patentNo,
         projectId: this.projectId,
       }
       this.$api.queryScratchWords(params).then(response => {
         if (response.code == 200) {
-          if (this.piZhuContrastList.length > 0) {
-            var a = this.piZhuContrastList.filter(item => {
+          if (this.highlight.piZhuContrastList.length > 0) {
+            var a = this.highlight.piZhuContrastList.filter(item => {
               return item.patentNo != params.patentNo
             }).concat(response.data.data)
           } else {

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

@@ -17,7 +17,7 @@
                 children:'children'
               }" nodeKey="sort" :expends="expends"></myTree>
             </div>
-            <div slot="right">
+            <div slot="right" style="position: relative;">
               <div id="charts" style="max-width: 100%; min-width: 300px;position:relative;padding-top: 10px;"  v-if="show">
                 <div v-for="(item,index) in this.patent.patentRightTree" :key="index" :id="'chart'+index" style="width:500px;margin:0 auto;"></div>
               </div>

+ 8 - 0
src/views/report/components/patentList/components/searchPatent.vue

@@ -250,6 +250,14 @@ export default {
     },
     // 页面检索按钮
     search() {
+      if (!this.isControl.value) {
+        this.$message.error('检索项不能为空')
+        return
+      }
+      if (!this.inputValue) {
+        this.$message.error('检索内容不能为空')
+        return
+      }
       this.storage()
       this.search2()
     },