zhuliu 1 年之前
父節點
當前提交
1f82e3d9e4

+ 17 - 0
src/api/newApi/noveltySearch.js

@@ -13,6 +13,10 @@ export default {
     queryNoveltyProject(data){
         return axios.post('/xiaoshi/noveltyProject/queryNoveltyProject', data)
     },
+    //删除查新检索报告
+    deleteNoveltyProject(data){
+        return axios.post('/xiaoshi/noveltyProject/deleteNoveltyProject', data)
+    },
 
     //添加或编辑技术方案信息
     addOrUpdateTechnicalCase(data){
@@ -22,4 +26,17 @@ export default {
     queryTechnicalCase(data){
         return axios.post('/xiaoshi/noveltyProject/queryTechnicalCase', data)
     },
+
+    //查询查新报告对比专利
+    queryComparePatent(data){
+        return axios.post('/xiaoshi/noveltyProject/queryComparePatent', data)
+    },
+    //修改查新报告对比专利内容
+    editCompareFile(data){
+        return axios.post('/xiaoshi/noveltyProject/editCompareFile', data)
+    },
+    //删除对比文件
+    delCompareFile(data){
+        return axios.post('/xiaoshi/noveltyProject/delCompareFile', data)
+    },
 };

+ 5 - 1
src/utils/common.js

@@ -304,8 +304,12 @@ treeToArray(data,prop={children:children}){
    * getColumnData({value:1},{type:'String',value:'value'}) //返回字符串1 
    */
   getColumnData(row, field, prop, data) {
+    if(field.type == 'function'){
+      return field.field(row)
+    }
     var text = this.getDataByField(row,field.value || field.field)
-    if (field.type == 'Array') {
+    
+     if (field.type == 'Array') {
       if (text && text.length > 0) {
         if (prop) {
           return text.map(item => {

+ 5 - 0
src/views/components/import/conditionImport/searchResult.vue

@@ -412,6 +412,11 @@ export default {
         numberQuery:this.condition.NO,
         redisKey:this.condition.redisKey
       };
+      if(!this.queryParams.retrieveRecordId){
+        params.projectId = this.projectId
+        var conditionImport = this.$s.getSession('conditionImport')
+        params.searchSetting=conditionImport?JSON.stringify(conditionImport):''
+      }
       // console.log(this.$s.getSession('retrieveRecordId'),)
       queryParams.params = params;
       this.$store.commit("SET_PATENT_PARAMS", queryParams);

+ 31 - 15
src/views/noveltySearch/components/details/components/basicMessage/basicMessage.vue

@@ -12,14 +12,14 @@
                 </span>
                 <div v-show="show.showReportMessage">
                     <el-button type="primary" size="small" @click="getMessage">根据内部卷号获取信息</el-button>
-                    <el-button type="primary" size="small" v-if="!editMessage.edit" @click="editReportMessage">编辑</el-button>
-                    <el-button type="primary" size="small" v-if="editMessage.edit" @click="saveReportMessage">保存</el-button>
-                    <el-button type="primary" size="small" v-if="editMessage.edit" @click="cancelEditMessage">取消</el-button>
+                    <el-button type="primary" size="small" v-if="!editReport.edit" @click="editReportMessage">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="editReport.edit" @click="saveReportMessage">保存</el-button>
+                    <el-button type="primary" size="small" v-if="editReport.edit" @click="cancelEditMessage">取消</el-button>
                 </div>
             </div>
             <div v-show="show.showReportMessage">
                 <el-card shadow="always">
-                    <reportBasicMessage :edit="editMessage.edit" :reportMessage="reportMessage"></reportBasicMessage>
+                    <reportBasicMessage :edit="editReport.edit" :reportMessage="reportMessage"></reportBasicMessage>
                 </el-card>
             </div>
       </div>
@@ -34,9 +34,16 @@
             <div v-show="show.showCaseMessage">
                 <el-card shadow="always">
                     <el-form style="width:100%" :model="reportMessage" label-width="140px">
-                        <el-form-item label="案件名称:">
-                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'caseName' })"></div>
-                        </el-form-item>
+                        <!-- <el-form-item label="案件名称:">
+                            <div  v-if="!editField.caseName" class="flex_center">
+                                <div v-html="reportMessage.caseName" class="div_MAX_Height" style="color:#000000 !important;"></div>
+                                <span @click="edit(reportMessage,'caseName')">
+                                    <el-link type="primary">
+                                        <i class="iconfont icon-bianji" style="font-size:28px"></i>
+                                    </el-link>
+                                </span>
+                            </div>
+                        </el-form-item> -->
                         <el-form-item label="初步结论:">
                             <div  v-if="!editField.preliminaryConclusions" class="flex_center">
                                 <div v-html="reportMessage.preliminaryConclusions" class="div_MAX_Height" style="color:#000000 !important;"></div>
@@ -155,7 +162,10 @@ export default {
   },
   data() {
     return {
-        editMessage:{},
+        editMessage:{
+            edit:false,
+            originMessage:null
+        },
         editField:{},
         loading:{},
         show:{
@@ -210,17 +220,22 @@ export default {
     },
     //编辑报告基本信息
     editReportMessage(){
-        this.editMessage = {
-            edit:!this.editMessage.edit,
+        this.editReport = {
+            edit:!this.editReport.edit,
             originMessage:JSON.parse(JSON.stringify(this.reportMessage))
         }
     },
     //保存修改
-    saveReportMessage(){
+    saveReportMessage(type,field){
         this.$api.updateNoveltyProject(this.reportMessage).then(response=>{
             if(response.code == 200){
                 this.$message.success('编辑成功')
-                this.editMessage.edit = false
+                if(type == 1){
+                    this.$set(this.editField,field,false)
+                }else{
+                   this.editReport.edit = false 
+                }
+                
             }
         }).catch(error=>{
             this.$message.error('编辑失败')
@@ -229,8 +244,8 @@ export default {
     },
     //取消编辑
     cancelEditMessage(){
-        this.reportMessage = this.editMessage.originMessage
-        this.editMessage.edit = false
+        this.reportMessage = this.editReport.originMessage
+        this.editReport.edit = false
     },
       //编辑信息
       edit(data,field){
@@ -244,7 +259,8 @@ export default {
       },
 
     //提交填写的信息
-    submit(field) {
+    submit(row,field) {
+        this.saveReportMessage(1,field)
     },
   },
 };

+ 7 - 0
src/views/noveltySearch/components/details/components/basicMessage/components/basicMessage/basicMessageDetails.vue

@@ -4,6 +4,13 @@
         <template>
             <el-row>
                 <el-col :span="12">
+                    <el-form-item label="案件名称" prop="caseName">
+                        <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'caseName' })"></div>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col :span="12">
                 <el-form-item label="客户案号" prop="customCaseNumber">
                     <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'customCaseNumber' })"></div>
                 </el-form-item>

+ 7 - 0
src/views/noveltySearch/components/details/components/basicMessage/components/basicMessage/basicMessageEdit.vue

@@ -4,6 +4,13 @@
             <template>
                 <el-row>
                     <el-col :span="12">
+                        <el-form-item label="案件名称" prop="caseName">
+                            <el-input v-model="reportMessage.caseName" placeholder="请输入案件名称"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
                         <el-form-item label="客户案号" prop="customCaseNumber">
                             <el-input v-model="reportMessage.customCaseNumber" placeholder="请输入客户案号"></el-input>
                         </el-form-item>

+ 64 - 55
src/views/noveltySearch/components/details/components/contrastFile/contrastFile.vue

@@ -46,7 +46,7 @@
                         <template slot-scope="scope">
                           <div>
                             <div v-if="editedMessage.field && editedMessage.field == item.field && editedMessage.data.id == scope.row.id">
-                                <my-RichText :autoFocus="true" :value="$commonJS.getColumnData(scope.row,item)" @blur="(value)=>changeMessage(item,scope.row,value)"></my-RichText>
+                                <my-RichText :autoFocus="true" :ref="item.field" :value="$commonJS.getColumnData(scope.row,item)" @blur="(value)=>changeMessage(item,scope.row,value)"></my-RichText>
                             </div>
                             <div v-else v-html="$commonJS.getColumnData(scope.row,item)"></div>
                           </div>
@@ -76,7 +76,7 @@
 
   const column = [
     {
-        field:'patentNo',
+        field:'literatureNo',
         type:'string',
         name:'专利号',
         editable:false,
@@ -88,14 +88,18 @@
         editable:false,
     },
     {
-        field:'publicNo',
-        type:'string',
+        field:(data)=>{
+            return data.grantNo || data.publicNo || '--'
+        },
+        type:'function',
         name:'公开/公告号',
         editable:false,
     },
     {
-        field:'publicDate',
-        type:'string',
+        field:(data)=>{
+            return data.grantDate || data.publicDate || '--'
+        },
+        type:'function',
         name:'公开/公告日',
         editable:false,
     },
@@ -106,13 +110,18 @@
         editable:false,
     },
     {
-        field:'appPerson',
-        type:'string',
+        field:(data)=>{
+            if(data.applicant && data.applicant.length>0){
+                return data.applicant.map(item=>item.name).join('、')
+            }
+            return  '--'
+        },
+        type:'function',
         name:'申请人',
         editable:false,
     },
     {
-        field:'description',
+        field:'noveltyCompareRecordVO.markNoteText',
         type:'string',
         name:'标注',
         editable:true,
@@ -124,13 +133,13 @@
         editable:true,
     },
     {
-        field:'innovate',
+        field:'ifEffectinv',
         type:'string',
         name:'影响新创新',
         editable:true,
     },
     {
-        field:'remark',
+        field:'fileRemark',
         type:'string',
         name:'备注',
         editable:true,
@@ -204,61 +213,34 @@
       },
       //获取证据文献
       getList(){
-        this.tableData = [
+        
+          this.$api.queryComparePatent(this.queryParams).then(response=>{
+              if(response.code == 200){
+                  this.tableData = response.data.data
+              }
+          }).catch(error=>{
+              this.tableData = [
             {
                 id:1,
                 sysOrder:1,
-                "patentNo": "CN202421185429.8",
+                "literatureNo": "CN202421185429.8",
                 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",
-                
+                "grantNo": "US9618644W",
+                "grantDate": "1996-11-20",
                 "applicant": [
-                    "OVONIC BATTERY CO"
-                ],
-                "mergeApplicant": [
-                    "OVONIC BATTERY CO"
-                ],
-                "rightHolder": [
-                    "OVONIC BATTERY CO"
-                ],
-                "mergeRightHolder": [
-                    "OVONIC BATTERY CO"
-                ],
-                "inventor": [
-                    "OVSHINSKY STANFORD R",
-                    "YOUNG ROSA"
+                    {
+                        name:'OVONIC BATTERY CO'
+                    }
                 ],
-                "mergeInventor": [
-                    "OVSHINSKY STANFORD R",
-                    "YOUNG ROSA"
-                ],
-                "quotePatentNoNum": 1,
-                "inpadocFamilyNum": 1,
-                "inpadocFamilyId": "iyjesZEBqw7ULz3TskB4",
-                "pictureGuid": "US9618644W_p",
-                "ifSearch": true,
+                
                 description:'描述',
                 innovate:'是',
                 remark:'备注',
                 relevance:'高'
                 }
         ]
-        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 = []
           })
       },
       //上传证据文献
@@ -301,7 +283,9 @@
     remove(scope){
         var row = scope.row
         var index = scope.$index
-        var ids=[row.id]
+        var ids={
+            compareLitertureId:row.compareFileId
+        }
         this.$confirm('确认删除本条数据吗?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
@@ -336,8 +320,33 @@
     edit(row){
         this.addLiterature(row)
     },
-    changeMessage(field,row,value){
-        this.cancelEdit()
+    changeMessage(fieldObj,row,value){
+        var field = fieldObj.field
+        var params = {
+            ...row
+        }
+        params[field] = value
+        var message = this.$message({
+          message: '信息保存中...',
+          type: 'warning',
+          duration:0
+        });
+        this.$api.editCompareFile(params).then(response=>{
+            if(response.code == 200){
+                message.close()
+                this.$message.success('编辑成功')
+                this.$set(row,field,value)
+                this.cancelEdit()
+            }
+        }).catch(error=>{
+          message.close()
+          this.$message.success('编辑失败')
+          if(this.$refs[field.field] && this.$refs[field.field][0]){
+            var fn = this.$refs[field.field][0] || this.$refs[field.field]
+            fn.setFocus()
+          }
+        })
+        
     },
     /**
      * 交换位置

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

@@ -133,6 +133,7 @@ export default {
       this.$api.addOrUpdateTechnicalCase(this.form).then(response=>{
         if(response.code == 200){
           this.$message.success("编辑成功")
+          this.getList()
           this.edit = !this.edit
         }
       }).catch(error=>{

+ 29 - 1
src/views/noveltySearch/components/noveltySearchCard.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="height_100">
+    <div class="height_100" v-loading="loading">
       <el-container>
           <!-- <el-header>
               <div class="head">
@@ -89,6 +89,7 @@ import createNoveltySearch from './dialog/createNoveltySearch.vue';
     props: {},
     data() {
       return {
+        loading:false,
           pageSize: [10, 20],//分页数量
           queryParams:{
               current:1,
@@ -113,14 +114,17 @@ import createNoveltySearch from './dialog/createNoveltySearch.vue';
       },
       //获取数据
       getList(){
+        this.loading = true
           this.$api.queryNoveltyProject(this.queryParams).then(response=>{
             if(response.code == 200){
                 this.tableData = response.data.data
                 this.total = response.data.total
+                this.loading = false
             }
           }).catch(error=>{
             this.tableData = []
             this.total = 0
+            this.loading = false
           })
       },
       //切换分页
@@ -177,11 +181,35 @@ import createNoveltySearch from './dialog/createNoveltySearch.vue';
                   this.$refs.reportTemplate.open(row.id)
                   break;
               case 'del'://删除
+                    this.delProject(row)
                   break;
               case 'e'://编辑
                   break;
           }
       },
+      //删除查新检索项目
+      delProject(row){
+        this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+        }).then(() => {
+            var params = {
+                projectId:row.id
+            }
+            this.loading = true
+            this.$api.deleteNoveltyProject(params).then(response=>{
+                if(response.code == 200){
+                    this.$message.success('删除成功')
+                    this.loading = false
+                    this.getList()
+                }
+            }).catch(error=>{
+                this.loading = false
+            })
+        })
+        
+      },
       //创建查新检索
       createNoveltySearch(){
         this.$refs.createNoveltySearch.open()

+ 4 - 2
src/views/project/patentDetails/components/PatentLeft.vue

@@ -8,12 +8,11 @@
     <div class="list" v-if="[1,2,7].findIndex(item=>{return item == reportType}) == -1 && patentList.length>0">
       <div class="left-patentNo"  v-for="(item,index) in patentList" :key="item.patentNo" :style="{background:(item.patentNo == patentNo)? '#cdd7eb':''}" @click="$emit('getPatentLeft',item.patentNo,index)">
         <div>{{ item.patentNo }}</div>
-        <div v-if="item.title">
+        <div v-if="item.title && (typeof item.title)=='object'">
           <my-tooltip :content="item.title.filter(item=> item.if_origin)[0].text_content" placement="bottom-start">
             <div class="noWrap">{{ item.title.filter(item=> item.if_origin)[0].text_content }}</div>
           </my-tooltip>
         </div>
-        
       </div>
     </div>
     <div class="list" v-else>
@@ -44,6 +43,9 @@ export default {
     },
     reportType:{
       default:0
+    },
+    noveltySearch:{
+      default:false
     }
   },
   data() {

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

@@ -38,7 +38,7 @@
             </el-tooltip>
           </el-header>
           <el-main style="background: #FFFFFF;">
-            <PatentLeft :patentList="patentList" :reportType="reportType" :patentNo="patentNo" :total="total" @getPatentLeft="getPatentLeft"></PatentLeft>
+            <PatentLeft :patentList="patentList" :reportType="reportType" :patentNo="patentNo" :total="total" @getPatentLeft="getPatentLeft" :noveltySearch="noveltySearch"></PatentLeft>
           </el-main>
           <el-footer style="text-align: center;" v-if="[1,2,7].findIndex(item=>{return item == reportType}) == -1">
             <el-pagination background layout=" prev, pager, next" :current-page.sync="queryParams.current" :pager-count="5"
@@ -171,6 +171,9 @@ export default {
     },
     projectType: {//判断是不是从专题库进入专利详情1为专题库(专题库已传1)2为报告(报告未传2)3为产品(产品已传3)
       default:null
+    },
+    noveltySearch:{
+      default:false
     }
   },
   data() {
@@ -306,6 +309,26 @@ export default {
       this.$emit('getPatentLeft',patentNo)
     },
     getPatentList(){
+      if(this.noveltySearch){
+        var param = {
+          projectId:this.projectId
+        }
+        this.$api.queryComparePatent(param).then(response=>{
+            if(response.code == 200){
+              var data = response.data.data
+              data.forEach(item => {
+                item.patentNo = item.literatureNo
+              });
+                this.patentList = data
+                this.total = this.patentList.length
+                this.index = this.currentLocation - 1
+            }
+        }).catch(error=>{
+            this.patentList = []
+            this.total = 0
+        })
+        return
+      }
       var reportType = [1,2,7]
       var index = reportType.findIndex(item=>{
         return item == this.reportType

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

@@ -1,6 +1,6 @@
 <template>
   <div class="height_100 article" :style="{ 'flex-direction': isRight ? 'row-reverse' : 'row' }">
-    <articleMenu @event="event" :value="showView" :reportType="reportType" :menu="menuList" :isRight="isRight" :outside="outside"
+    <articleMenu @event="event" :value="showView" :reportType="reportType" :menu="menuList" :isRight="isRight" :outside="outside" :noveltySearch='noveltySearch'
       :projectId="projectId" :productId="productId" :taskId="taskId" :searchOption="search.searchOption" :patentNo="patentNo" :fromPath="search.fromPath"
       :location="search.location" @getPatentLeft="getPatentLeft" :handlerType="handlerType" :projectType="projectType"></articleMenu>
     <div class="height_100 content">