zhuliu 1 年之前
父节点
当前提交
c5c840e317

+ 302 - 0
src/views/noveltySearch/components/details/components/contrastFile/contrastFile.vue

@@ -0,0 +1,302 @@
+<template>
+    <div class="height_100">
+      <el-container>
+          <el-header>
+                <div class="head">
+                    <el-button type="primary" size="small" @click="andClick('5')">
+                          专利检索
+                    </el-button>
+                    <el-dropdown trigger="hover" @command="andClick($event)" :hide-on-click="false" type="primary" size="small">
+                      <el-button type="primary" size="small">
+                          上传对比文件<i class="el-icon-arrow-down el-icon--right"></i>
+                      </el-button>
+                      <el-dropdown-menu slot="dropdown" class="text-align_center">
+                          <el-dropdown-item command="1">专利号导入</el-dropdown-item>
+                          <el-dropdown-item command="4">Excel导入</el-dropdown-item>
+                          <!-- <el-dropdown-item command="5">检索导入</el-dropdown-item> -->
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                </div>
+              
+          </el-header>
+          <el-main v-DivHeight="getDivHeight">
+              <el-table :data="tableData" border :maxHeight="tableHeight - 35" style="width: 100%">
+                  <el-table-column prop="sysOrder" label="序号" width="80" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              <el-link type="primary" @click="checkDetails(scope)">D{{ scope.$index+1 }}</el-link>
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="patentNo" label="专利号" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.patentNo}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="name" label="名称" align="center">
+                      <template slot-scope="scope">
+                          <span >
+                              {{scope.row.name}}
+                          </span>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="publicNo" label="公开/公告号" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.publicNo}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="publicDate" label="公开/公告日" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.publicDate}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="appDate" label="申请日" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.appDate}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="appPerson" label="申请人" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.applicant.join('、')}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="relevance" label="相关度" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.relevance}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="innovate" label="影响新创新" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.innovate}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="标注" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              {{scope.row.description}}
+                          </div>
+                      </template>
+                  </el-table-column>
+                  <el-table-column label="操作" align="center">
+                      <template slot-scope="scope">
+                          <div>
+                              <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
+                              <el-button @click="remove(scope)" type="text" size="small">删除</el-button>
+                          </div>
+                      </template>
+                  </el-table-column>
+              </el-table>
+          </el-main>
+      </el-container>
+  
+    </div>
+</template>
+  
+<script>
+  import { mapGetters } from "vuex";
+  import { getTableHeight } from '@/views/components/mixins'
+  export default {
+    components: {
+    },
+    mixins:[getTableHeight],
+    props: {
+      projectId:{
+          default:null
+      },
+      projectName:{
+  
+      },
+      projectType:{
+  
+      },
+      reportType:{
+          default:0
+      },
+    },
+    data() {
+      return {
+          tableData:[],
+          queryParams:{
+              projectId:this.projectId,
+          },
+      };
+    },
+    watch: {},
+    computed: {
+      ...mapGetters(['webSocket', 'userinfo']),
+    },
+    created() {},
+    mounted() {
+      this.getList()
+    },
+    methods: {
+
+      //查看详情
+      checkDetails(scope){
+          var index = scope.$index
+          var row = scope.row
+          var search = {
+              location: index + 1
+          }
+          this.$s.setSession('search', search)
+          this.$router.push(
+              {
+              path: '/patentDetails/' + row.literatureNo,
+              query: {
+                  projectId: this.projectId,
+                  reportType: this.reportType,
+                  evidenceType:row.type,
+                  evidence:JSON.stringify(row),
+                  signPatentNo:this.patentNo,
+                  projectName: this.projectName,
+                  projectType: this.projectType,
+              }
+              }
+          )
+      },
+      //获取证据文献
+      getList(){
+        // this.tableData = [
+        //     {
+        //         "patentNo": "WO9719481A1",
+        //         name:'A SOLID STATE BATTERY HAVING A DISORDERED HYDROGENATED CARBON NEGATIVE ELECTRODE',
+        //         "publicNo": "WO9719481A1",
+        //         "publicDate": "1997-05-29",
+        //         "appNo": "US9618644W",
+        //         "appDate": "1996-11-20",
+        //         "priorityCountry": "US",
+        //         "priorityDate": "1995-11-24",
+        //         "priorityNo": "US19950562952",
+        //         "appCountry": "WO",
+                
+        //         "applicant": [
+        //             "OVONIC BATTERY CO"
+        //         ],
+        //         "mergeApplicant": [
+        //             "OVONIC BATTERY CO"
+        //         ],
+        //         "rightHolder": [
+        //             "OVONIC BATTERY CO"
+        //         ],
+        //         "mergeRightHolder": [
+        //             "OVONIC BATTERY CO"
+        //         ],
+        //         "inventor": [
+        //             "OVSHINSKY STANFORD R",
+        //             "YOUNG ROSA"
+        //         ],
+        //         "mergeInventor": [
+        //             "OVSHINSKY STANFORD R",
+        //             "YOUNG ROSA"
+        //         ],
+        //         "quotePatentNoNum": 1,
+        //         "inpadocFamilyNum": 1,
+        //         "inpadocFamilyId": "iyjesZEBqw7ULz3TskB4",
+        //         "pictureGuid": "US9618644W_p",
+        //         "ifSearch": true
+        //         }
+        // ]
+        // return
+          this.$api.queryCompareLiterature(this.queryParams).then(response=>{
+              if(response.code == 200){
+                  this.tableData = response.data.data.sort((a,b)=>{
+                      return a.sysOrder - b.sysOrder
+                  })
+              }
+          }).catch(error=>{
+              this.tableData = []
+          })
+      },
+      //上传证据文献
+      async andClick(option){
+          if(!(await this.$permission.projectPermission(this.projectId))){
+              this.$showPermissionDialog()
+              return false
+          }
+          switch(option){
+              case '1'://专利号导入
+                  this.patentImport(2)
+                  break;
+              case '4'://Excel导入
+                  this.patentImport(1)
+                  break;
+              case '5'://检索导入
+                  this.patentImport(4)
+                  break;
+          }
+      },
+      //专利导入
+      patentImport(type){
+        var form = {
+          importToId:this.projectId,
+          importToType:1,
+          type:type,
+        }
+        if(type == 4){
+          form.reportType = this.reportType
+        }
+        this.$commonJS.toImportParent(form,type)
+      },
+
+      //删除
+      remove(scope){
+          var row = scope.row
+          var index = scope.$index
+          var ids=[row.id]
+          this.$confirm('确认删除本条数据吗?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }).then(() => {
+              this.$api.deleteCompareLiterature(ids).then(response=>{
+                  if(response.code == 200){
+                      this.$message.success('删除成功')
+                      this.deleteUpdateOrder(index)
+                  }
+              }).catch(error=>{
+                  this.$message.error('删除失败')
+              })
+          })
+          
+      },
+      //删除后更新排序
+      deleteUpdateOrder(index){
+          var data = []
+          for(var i = index+1;i<this.tableData.length;i++){
+              var order = this.tableData[i].sysOrder
+              data.push(
+                  {
+                      id:this.tableData[i].id,
+                      sysOrder:Number(order) - 1
+                  }
+              )
+          }
+          this.updateLiteratureOrder(data,true)
+      },
+
+     
+    },
+  };
+  </script>
+  <style lang="scss" scoped>
+  .head{
+      width:100%;
+      display: flex;
+    //   flex-direction: row-reverse;
+    justify-content: flex-end;
+  }
+  </style>

+ 41 - 0
src/views/noveltySearch/components/details/components/contrastFile/index.vue

@@ -0,0 +1,41 @@
+<template>
+  <div>
+    <contrastFile :projectId="projectId" :projectName="projectName" :projectType="projectType" :reportType="reportType"></contrastFile>
+  </div>
+</template>
+
+<script>
+import contrastFile from './contrastFile.vue';
+export default {
+  components: {
+    contrastFile
+  },
+  props: {
+    
+  },
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {
+    projectId(){
+        return this.$route.query.projectId
+    },
+    projectName(){
+        return this.$route.query.projectName
+    },
+    projectType(){
+        return this.$route.query.projectType
+    },
+    reportType(){
+        return this.$route.query.reportType
+    },
+  },
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 193 - 0
src/views/noveltySearch/components/details/components/contrastRecords/contrastRecords.vue

@@ -0,0 +1,193 @@
+<template>
+  <div class="height_100" >
+    <el-container>
+        <el-header>
+            <div class="head">
+                <el-button type="primary" size="small" @click="exportReport">导出报告</el-button>
+            </div>
+        </el-header>
+        <el-main v-DivHeight="getDivHeight">
+            <el-table ref="table" class="hideIconTable" :data="tableData" border v-loading="loading" :header-cell-style="{'text-align':'center'}" :maxHeight="tableHeight - 50" row-key="keyId"  :span-method="objectSpanMethod">
+                <el-table-column v-for="item in columnList.filter(item=>!item.ifHidden)" :key="item.field" :prop="item.field" :label="item.name"  align="center">
+                    <template slot-scope="scope">
+                        <div>
+                            <span v-html="scope.row[item.field]"></span>
+                        </div>
+                    </template>
+                </el-table-column>
+            </el-table> 
+        </el-main>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import { getTableHeight } from '@/views/components/mixins'
+export default {
+  components: {},
+  mixins:[getTableHeight],
+  props: {},
+  data() {
+    return {
+        tableData:[],
+        loading:false,
+        columnList:[
+            {
+                field:'patentNo',
+                name:'对比文件',
+                ifHidden:false
+            },
+            {
+                field:'description',
+                name:'总说明',
+                ifHidden:false
+            },
+            {
+                field:'keyPoints',
+                name:'现有技术要点',
+                ifHidden:false
+            },
+            {
+                field:'embodiment',
+                name:'实施方案',
+                ifHidden:false
+            },
+            {
+                field:'beneficialEffects',
+                name:'有益效果',
+                ifHidden:false
+            },
+            {
+                field:'technicalFeature',
+                name:'技术特征',
+                ifHidden:false
+            },
+            {
+                field:'text',
+                name:'选中的文本',
+                ifHidden:false
+            },
+            {
+                field:'description2',
+                name:'说明',
+                ifHidden:false
+            },
+        ],
+        // 计算表格合并行的数量
+        mergeObj: {},
+        // 表格合并行的栏位
+        mergeArr: ['patentNo','description','keyPoints','embodiment','beneficialEffects'],
+        mergeArr1:['description','keyPoints','embodiment','beneficialEffects']
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    getList(){
+        var obj = {
+            patentNo:'CN202410943719.2',
+            description:'说明一',
+            technicalFeature:'技术特征一',
+            text:'21',
+            description2:'对比说明1',
+        }
+        var obj2 = {
+            patentNo:'CN202410931052.4',
+            description:'说明二',
+            technicalFeature:'技术特征一',
+            text:'21',
+            description2:'对比说明1',
+        }
+        var data = []
+        for(var i = 5;i>0;i--){
+            if(i>3){
+                data.push(
+                    {
+                        ...obj,
+                        technicalFeature:'技术特征' + i
+                    }
+                )   
+            }else{
+                data.push(
+                    {
+                        ...obj2,
+                        technicalFeature:'技术特征' + i
+                    }
+                )   
+            }
+        }
+        this.tableData = data
+        this.getSpanArr(data)
+    },
+      //获取每个元素所需合并的行数
+      getSpanArr(data) {
+        var mergeObj = {}
+        this.mergeArr.forEach((key, index1) => {
+            let count = 0;
+            mergeObj[key] = [];
+            if(key == 'claimSort'){
+                data.forEach((item, index) => {
+                    if (index === 0) {
+                        mergeObj[key].push(1);
+                    } else {
+                    if (item[key] === data[index - 1][key] && item.relatedContent === data[index - 1].relatedContent) {
+                        mergeObj[key][count] += 1;
+                        mergeObj[key].push(0);
+                    } else {
+                        count = index;
+                        mergeObj[key].push(1);
+                    }
+                    }
+                })
+            }
+            else{
+                data.forEach((item, index) => {
+                    if (index === 0) {
+                        mergeObj[key].push(1);
+                    } else {
+                    if (item[key] === data[index - 1][key]) {
+                        mergeObj[key][count] += 1;
+                        mergeObj[key].push(0);
+                    } else {
+                        count = index;
+                        mergeObj[key].push(1);
+                    }
+                    }
+                })
+            }
+            
+        })
+        for(var i = 0;i<this.mergeArr1.length;i++){
+            mergeObj[this.mergeArr1[i]] = mergeObj.patentNo
+        }
+        this.mergeObj = mergeObj
+        return this.mergeObj
+    },
+        // 表格合并行
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+        if (!row) {
+            return false
+        }
+        if (this.mergeArr.indexOf(column.property) !== -1) {
+            if (this.mergeObj[column.property][rowIndex]) {
+                return [this.mergeObj[column.property][rowIndex], 1]
+            } else {
+                return [0, 0];
+            }
+        }
+    },
+
+  },
+};
+</script>
+<style lang="scss" scoped>
+.head{
+    width: 100%;
+    display: flex;
+    justify-content: flex-end;
+}
+</style>

+ 0 - 0
src/views/noveltySearch/components/details/components/contrastRecords/index.vue


+ 40 - 0
src/views/noveltySearch/components/details/components/signMessage/index.vue

@@ -0,0 +1,40 @@
+<template>
+    <div>
+      <signMessage :isEdit="isEdit" :projectId="projectId"></signMessage>
+    </div>
+</template>
+  
+<script>
+  import signMessage from './signMessage.vue';
+  export default {
+    components: {
+        signMessage
+    },
+    props: {
+    },
+    data() {
+      return {
+      };
+    },
+    watch: {},
+    computed: {
+      projectId(){
+          return this.$route.query.projectId
+      },
+      isEdit(){
+          return this.$route.query.isEdit
+      },
+      projectType(){
+          return this.$route.query.projectType
+      },
+      reportType(){
+          return this.$route.query.reportType
+      },
+    },
+    created() {},
+    mounted() {},
+    methods: {},
+  };
+  </script>
+  <style lang="scss" scoped>
+  </style>

+ 217 - 0
src/views/noveltySearch/components/details/components/signMessage/signMessage.vue

@@ -0,0 +1,217 @@
+<template>
+    <!-- 产品信息 -->
+    <div>
+      <div style="display: flex;justify-content: end;">
+        <el-button v-if="edit" type="primary" @click="isSave">保存</el-button>
+        <el-button v-if="!edit" type="primary" @click="handleEdit">编辑</el-button>
+      </div>
+      <div style="width: 500px;margin: auto;">
+        <el-form v-if="edit" :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-form">
+  
+          <el-form-item label="IPC类号:" prop="IPC">
+            <el-input v-model="form.IPC" placeholder="请输入IPC类号"></el-input>
+          </el-form-item>
+          <el-form-item label="解决的问题:" prop="question">
+            <myRich-Text style="width:100%" v-model="form.productDescription" placeholder="请输入解决的问题"></myRich-Text>
+          </el-form-item>
+  
+          <el-form-item label="方案技术领域:" prop="surveyArea">
+            <el-input v-model="form.surveyArea" placeholder="请输入方案技术领域"></el-input>
+          </el-form-item>
+          <el-form-item label="技术方案概述:" prop="overview">
+            <myRich-Text style="width:100%" v-model="form.overview" placeholder="请输入技术方案概述"></myRich-Text>
+          </el-form-item>
+          <el-form-item label="代表图:">
+            <el-upload ref="upload" action="#" :auto-upload="false" multiple :on-change="handleChange" list-type="picture" :show-file-list="false">
+              <span style="display:flex;flex-direction:row;flex-wrap:wrap;">
+                <span class="avatar" v-for="(item) in form.systemFileList" :key="item.guid || item.uid"
+                  style="margin-left:10px">
+                  <span class="deleteImg">
+                    <span>
+                      <i class="el-icon-zoom-in" @click.stop="handlePictureCardPreview(item)"></i>
+                      <i class="el-icon-delete" @click.stop="handleRemove(item)"></i>
+                    </span>
+                  </span>
+                  <el-image fit="contain" ref="image" class="img" :src="item.guid ? $commonJS.checkViewer(item.guid) : item.url"
+                    :preview-src-list="form.systemFileList ? form.systemFileList.map(item => { return item.guid ? $commonJS.checkViewer(item.guid) : item.url }) : []"></el-image>
+                </span>
+                <i class="el-icon-plus avatar-uploader-icon"></i>
+              </span>
+            </el-upload>
+          </el-form-item>
+          <el-form-item label="发明点:">
+            <myRich-Text style="width:100%" placeholder="请输入发明点" v-model="form.inventionPoint"></myRich-Text>
+          </el-form-item>
+        </el-form>
+  
+        <el-form v-else :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-form">
+          <el-form-item label="IPC类号:">
+            <span>{{ form.IPC }}</span>
+          </el-form-item>
+          <el-form-item label="解决的问题:">
+            <span v-html="form.productDescription"></span>
+          </el-form-item>
+          <el-form-item label="方案技术领域:">
+            <span v-html="form.surveyArea"></span>
+          </el-form-item>
+          <el-form-item label="技术方案概述:">
+            <span v-html="form.overview"></span>
+          </el-form-item>
+          <el-form-item label="代表图:">
+            <span style="display:flex;flex-direction:row;flex-wrap:wrap;">
+                <span class="avatar" v-for="(item) in form.systemFileList" :key="item.guid || item.uid"
+                  style="margin-left:10px">
+                  <el-image fit="contain" ref="image" class="img" :src="item.guid ? $commonJS.checkViewer(item.guid) : item.url"
+                    :preview-src-list="form.systemFileList ? form.systemFileList.map(item => { return item.guid ? $commonJS.checkViewer(item.guid) : item.url }) : []"></el-image>
+                </span>
+              </span>
+          </el-form-item>
+          <el-form-item label="发明点:">
+            <span v-html="form.inventionPoint"></span>
+          </el-form-item>
+        </el-form>
+      </div>
+  
+    </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {
+    isEdit:false,
+    projectId: '',
+  },
+  data() {
+    return {
+        edit:this.isEdit,
+        form:{
+            systemFileList: []
+        },
+        rules:{}
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    //获取数据
+    getList(){
+      this.form = {
+        IPC:'IPC号',
+        productDescription:'要解决的问题',
+        surveyArea:'技术领域',
+        overview:'技术方案概述:',
+        systemFileList:[],
+        inventionPoint:'发明点'
+      }
+    },
+    // 编辑
+    handleEdit() {
+      this.edit = !this.edit
+    },
+    //保存
+    isSave(){
+      this.edit = !this.edit
+    },
+    // 图片变化的change事件
+    handleChange(file, fileList) {
+      file.raw.url = file.url
+      this.form.systemFileList.push(file.raw)
+      this.uploadFile(file)
+    },
+    // 点击已上传的文件//showViewer是图片显示查看器
+    handlePictureCardPreview(file) {
+      this.$refs.image.showViewer = true
+    },
+    // 文件列表移除文件
+    handleRemove(file) {
+      let index = this.form.systemFileList.findIndex(item => {
+        if (file.guid) {
+          return item.guid == file.guid
+        } else {
+          return item.uid == file.uid
+        }
+      })
+      if (index != -1) {
+        this.form.systemFileList.splice(index, 1)
+      }
+    },
+    //上传附件
+    uploadFile(file) {
+      let formData = new FormData()
+      formData.append('sourceId', this.$constants.sourceId)
+      formData.append('files', file.raw)
+      this.$api.uploadFile(formData).then(response => {
+        if (response.code == 200) {
+          file.guid = response.data[0]
+          file.raw.guid = response.data[0]
+        }
+      })
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.avatar-uploader-icon {
+  background-color: #fbfdff;
+  border: 1px dashed #c0ccda;
+  font-size: 28px;
+  color: #8c939d;
+  width: 148px;
+  height: 148px;
+  line-height: 148px;
+  text-align: center;
+}
+
+.avatar {
+  position: relative;
+  width: 148px;
+  height: 148px;
+  display: block;
+}
+
+.avatar:hover .deleteImg {
+  display: block;
+}
+
+.deleteImg {
+  display: none;
+  font-size: 30px;
+  width: 148px;
+  height: 148px;
+  background-color: black;
+  opacity: 0.6;
+  position: absolute;
+  top: 0;
+  right: 0;
+  left: 0;
+  bottom: 0;
+  margin: auto;
+  z-index: 999;
+}
+
+.avatar .img {
+  width: 148px;
+  height: 148px;
+}
+
+.deleteImg span i {
+  margin-left: 10px;
+  color: #fff;
+}
+
+.deleteImg span {
+  display: flex;
+  align-items: center;
+  /*垂直居中*/
+  justify-content: center;
+  /*水平居中*/
+  width: 100%;
+  height: 100%;
+}
+</style>

+ 39 - 3
src/views/noveltySearch/components/details/details.vue

@@ -5,7 +5,7 @@
         <div class="point" @click="getCollapse">
           {{ isCollapse ? '收起' : '展开' }}
         </div>
-        <el-menu class="theme-dark" :default-active="activeMenu" :collapse="!isCollapse">
+        <el-menu class="theme-dark" :default-active="activeMenu" @select="changeActiveMenu" :collapse="!isCollapse">
           <el-menu-item v-for="item in menuList" :key="item.name" :index="item.name" >
             <i class="el-icon-film"></i>
             <span slot="title">{{ item.label }}</span>
@@ -21,9 +21,19 @@
 
 <script>
 import basicMessageVue from './components/basicMessage/basicMessage.vue';
+import signMessage from './components/signMessage/signMessage.vue';
+import contrastRecords from './components/contrastRecords/contrastRecords.vue';
+import contrastFile from './components/contrastFile/contrastFile.vue';
+import reportFile from '@/views/report/components/reportFile/reportFileTable.vue';
+import searchRecords from '@/views/report/analysisAndOpinion/components/searchRecords/searchRecords.vue'
 export default {
   components: {
-    basicMessageVue
+    basicMessageVue,
+    signMessage,
+    contrastRecords,
+    contrastFile,
+    reportFile,
+    searchRecords
   },
   props: {
     projectId:{}
@@ -37,7 +47,27 @@ export default {
         {
           label: '基本信息',
           name: "basicMessageVue",
-        }
+        },
+        {
+          label: '技术方案信息',
+          name: "signMessage",
+        },
+        {
+          label: '检索记录',
+          name: "searchRecords",
+        },
+        {
+          label: '对比文件',
+          name: "contrastFile",
+        },
+        {
+          label: '对比记录',
+          name: "contrastRecords",
+        },
+        {
+          label: '报告文档',
+          name: "reportFile",
+        },
       ],
     };
   },
@@ -48,6 +78,12 @@ export default {
   methods: {
     getCollapse(){
       this.isCollapse = !this.isCollapse
+      this.$nextTick(()=>{
+        this.width = this.isCollapse?'200px':'64px'
+      })
+    },
+    changeActiveMenu(name){
+      this.activeMenu = name
     },
   },
 };

+ 19 - 1
src/views/noveltySearch/components/noveltySearch.vue

@@ -14,7 +14,7 @@
                     </el-form>
                 </div>
                 <div class="head_right">
-                    <el-button type="primary" size="small">新建查新检索</el-button>
+                    <el-button type="primary" size="small" @click="createNoveltySearch">新建查新检索</el-button>
                 </div>
             </div>
         </el-header>
@@ -154,6 +154,24 @@ export default {
                 break;
         }
     },
+    //创建查新检索
+    createNoveltySearch(){
+        var number = ''
+        this.$prompt('请输入卷号', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          inputPattern: '',
+          inputErrorMessage: '格式不正确',
+          inputValue:number,
+          inputPlaceholder:'请输入卷号'
+        }).then(({ value }) => {
+            this.$router.push(
+                {
+                    path:'/conditionImport',
+                }
+            )
+        })
+    },
   },
 };
 </script>

+ 40 - 0
src/views/project/patentCollection/components/dialog/addRemark.vue

@@ -0,0 +1,40 @@
+<template>
+  <div>
+    <el-dialog custom-class="shakeDialog" title="CN202330726501.8标注" v-draggable :visible.sync="visible" width="400px" 
+    :before-close="handleClose" :modal="false" :close-on-click-modal="false" :modal-append-to-body="false">
+        <el-input type="textarea"></el-input>
+        <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose">取 消</el-button>
+        <el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+        visible:false,
+        loading:false,
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    open(){
+        this.visible = true
+    },
+    handleClose(){
+        this.visible = false
+    },
+    submit(){},
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 10 - 1
src/views/project/patentCollection/components/views/Abstract.vue

@@ -57,6 +57,7 @@
                   </template>
                   <el-tag class="margin-left_10" type="primary" effect="dark" size="small" v-if="patent.simpleStatus">{{
                     simpleStatus[patent.simpleStatus] }}</el-tag>
+                  <el-tag class="margin-left_10" type="primary" effect="plain" size="small" @click="$refs.addRemark.open()">添加标注</el-tag>
                 </div>
                 <div style="font-size: 13px;">
                   <el-row>
@@ -216,14 +217,22 @@
         </table>
       </div>
     </div>
+
+
+
+    <addRemark ref="addRemark"></addRemark>
   </div>
 </template>
 
 <script>
 import { downLoad2 } from "@/utils"
-import { projectData, handleData } from '../mixins/index'
+import { projectData, handleData } from '../mixins/index';
+import addRemark from '../dialog/addRemark.vue';
 export default {
   mixins: [projectData, handleData],
+  components:{
+    addRemark
+  },
   // props: ['viewField'],
   // mixins: [patentViewList, patentKeywordsHighlight,commonMixins],
   data() {