Pārlūkot izejas kodu

修改对比方案展示

zhuliu 2 gadi atpakaļ
vecāks
revīzija
d2863c6fae

+ 0 - 1
RMS-FrontEnd/src/views/components/articles/components/features.vue

@@ -78,7 +78,6 @@
 
 <script>
 import { PatentDetails } from '@/views/components/common/mixins';
-import { off } from 'process';
 export default{
     mixins:[PatentDetails],
     props:["reportId",'patentNo','selectedFeatures','selectedFeaturesId'],

+ 3 - 3
RMS-FrontEnd/src/views/report/FTO/FTOPage/components/ProductMessage.vue

@@ -117,9 +117,9 @@ export default{
                 name: [{ required: true, message: '请输入标的专利/产品', trigger: 'blur' },],
                 explain: [{ required: true, message: '请输入标的产品说明', trigger: 'blur' },],
             //   area: [{ required: true, message: '请输入调查区域', trigger: 'blur' },],
-              deadLine: [
-                  {  required: false, validator:isTime, trigger: 'change' }
-                ],
+            //   deadLine: [
+            //       {  required: false, validator:isTime, trigger: 'change' }
+            //     ],
             },
             Already:[],
         }

+ 3 - 3
RMS-FrontEnd/src/views/report/FTO/FTOPage/product.vue

@@ -107,9 +107,9 @@ export default{
                 productName: [{ required: true, message: '请输入标的专利/产品', trigger: 'blur' },],
                 productDescription: [{ required: true, message: '请输入调查标的说明', trigger: 'blur' },],
               surveyArea: [{ required: true, message: '请输入调查区域', trigger: 'blur' },],
-              deadLine: [
-                  {  required: false, validator:isTime, trigger: 'change' }
-                ],
+            //   deadLine: [
+            //       {  required: false, validator:isTime, trigger: 'change' }
+            //     ],
             },
           Already: [],
             //  pickerOptions: {

+ 1 - 6
RMS-FrontEnd/src/views/report/Invalid/InvalidPage/Result.vue

@@ -48,7 +48,6 @@
       >
       
       <el-table-column
-        fixed
         prop="pRightName"
         label="标的权利项"
         align="center"
@@ -61,7 +60,6 @@
         </template>
       </el-table-column>
       <el-table-column
-        fixed
         prop="content"
         label="标的权利要求特征"
         align="center"
@@ -126,7 +124,6 @@
           style="min-width: 100%; margin-top: 20px;overflow:auto;">
         >
         <el-table-column
-          fixed
           prop="pRightName"
           label="标的权利项"
           align="center"
@@ -138,7 +135,6 @@
           </template>
         </el-table-column>
         <el-table-column
-          fixed
           prop="content"
           label="标的权利要求特征"
           align="center"
@@ -148,7 +144,6 @@
           </template>
         </el-table-column>
         <el-table-column
-        fixed
         prop="content"
         label="公识"
         align="center"
@@ -345,7 +340,7 @@ export default {
         //console.log(1)
             this.$nextTick(() => {
               this.setHeight()
-              this.$refs.table.doLayout();//doLayout()方法,让table重新布局
+              // this.$refs.table.doLayout();//doLayout()方法,让table重新布局
             })
         },
     show(){

+ 266 - 99
RMS-FrontEnd/src/views/report/reportDetails/components/ContrastPlan.vue

@@ -1,9 +1,9 @@
 <template>
-    <div>
+    <div class="plan">
       <div style="display:flex; justify-content:flex-end;align-items: center;height: 50px;">
         <el-button type="danger" @click="delPlan" v-if="checkList.length>0">删除</el-button>
       </div>
-        <el-table
+        <!-- <el-table
         v-if="show"
         :data="tableData"
         border
@@ -21,7 +21,6 @@
             </el-tooltip>     
           </template>
         </el-table-column>
-<!-- :filters="resultant" :filter-method="filterHandler" -->
         <el-table-column prop="resultant" label="对比组合" align="center" width="300px" >
           <template slot="header">
             <div>
@@ -41,22 +40,10 @@
                               <span>{{ data.text }}</span>
                             </el-tooltip></span>
                 </el-tree>
-                 <!-- <el-checkbox-group v-model="checkList2" :max="resultant.length">  -->
-                  <!-- <div  v-for="item in resultant" style="line-height:30px;" >
-                  
-                          <el-checkbox v-if="showList" :label="item.text"  @change="getInfo(item.text)">
-                            <el-tooltip class="item" effect="dark" :content="item.patentNoList.join('+')" placement="top-start">
-                              <span>{{ item.text }}</span>
-                            </el-tooltip>
-                        
-                        </el-checkbox>
-                  </div> -->
-                <!-- </el-checkbox-group> -->
               <div style="display:flex;justify-content:space-around;line-height:20px;">
                     <p style="cursor:pointer;" @click="checkPatentList">筛选</p>
                     <p style="cursor:pointer;" @click="reset">重置</p>
                 </div>
-              <!-- <el-button @click="exchange" style="float:right">交换</el-button> -->
               <i class="el-icon-arrow-down el-icon--right" slot="reference" @click="getChecked"></i>
             </el-popover>
 
@@ -66,7 +53,6 @@
             <div >
               <el-checkbox-group v-model="checkList" >
                 <el-checkbox :label="scope.row.id"  >
-                  <!-- <p>对比组合{{(scope.$index+1)}}</p>  -->
                   <p>{{ scope.row.resultant}}</p>
                 </el-checkbox>
               </el-checkbox-group>
@@ -76,14 +62,6 @@
         </el-table-column>
         <el-table-column prop="assoRecordsFeatures" label="特征"  align="center"  width="200px">
           <template slot-scope="scope">
-            <!-- <div >
-              <tr v-for="i in scope.row.assoRecordsFeatures" style="margin:0 auto">
-                <td style="width:100%">特征{{i.features.featuresOrder}}</td>
-              </tr>
-            </div>   -->
-            
-
-              <!-- <span>{{scope.row.content}}</span> -->
               <div class="innerTable" v-if="scope.row.assoRecordsFeatures" style="width:calc(100% + 20px);margin-left:-10px">
                   <p v-for="i in scope.row.assoRecordsFeatures">
                     <el-tooltip class="item" effect="dark" :content="i.features.content" placement="top">
@@ -95,7 +73,6 @@
         </el-table-column>
         <el-table-column prop="PublicKnowledge" label="公识"  align="center"  width="100px">
           <template slot-scope="scope">  
-              <!-- <span>{{scope.row.patentNo}}</span> -->
               <div class="innerTable" v-if="scope.row.assoRecordsFeatures" style="width:calc(100% + 20px);margin-left:-10px">
                   <p v-for="i in scope.row.assoRecordsFeatures">
                     <span  v-if="i.compareRecords">
@@ -110,29 +87,25 @@
         </el-table-column>
         <el-table-column prop="patentNo" label="对比专利"  align="center"  width="200px">
           <template slot-scope="scope">  
-              <!-- <span>{{scope.row.patentNo}}</span> -->
               <div class="innerTable" v-if="scope.row.assoRecordsFeatures" style="width:calc(100% + 20px);margin-left:-10px">
-                  <p v-for="(i,index) in scope.row.assoRecordsFeatures">
-                    <span  >
-                      <!-- {{index==0? (scope.row.assoRecordsFeatures[i].compareRecords?scope.row.assoRecordsFeatures[i].compareRecords.patentNo:''): (scope.row.assoRecordsFeatures[i + scope.row.patentNoIndex[index-1]].compareRecords?scope.row.assoRecordsFeatures[i + scope.row.patentNoIndex[index-1]].compareRecords.patentNo:'')}} -->
-                      {{i.compareRecords.patentNo}}
+                  <p v-for="(i,index) in scope.row.patentNoIndex">
+                    <span  v-if="scope.row.assoRecordsFeatures[i].compareRecords">
+                      {{scope.row.assoRecordsFeatures[i].compareRecords.patentNo}}
+                    </span>
+                    <span v-else >
                     </span>
-                    <!-- <span v-else >
-                    </span> -->
                   </p>
               </div>
           </template>
         </el-table-column>
         <el-table-column prop="content" label="对比内容"  align="center" min-width="200px">
           <template slot-scope="scope">  
-              <!-- <span>{{scope.row.content}}</span> -->
               <div class="innerTable" v-if="scope.row.assoRecordsFeatures" style="width:calc(100% + 20px);margin-left:-10px">
-                  <p v-for="(i,index) in scope.row.assoRecordsFeatures" :key="index">
-                    <span  v-if="i.compareRecords">
-                      {{i.compareRecords.content}}<img v-if="i.compareRecords.filePath" :src="$p + i.compareRecords.filePath" width="100px" @click="showImage(i.compareRecords.filePath)" />
+                  <p v-for="(i,index) in scope.row.patentNoIndex" :key="index">
+                    <span  v-if="scope.row.assoRecordsFeatures[i].compareRecords">
+                      {{scope.row.assoRecordsFeatures[i].compareRecords.content}}<img v-if="scope.row.assoRecordsFeatures[i].compareRecords.filePath" :src="$p + scope.row.assoRecordsFeatures[i].compareRecords.filePath" width="100px" @click="showImage(scope.row.assoRecordsFeatures[i].compareRecords.filePath)" />
                     </span>
                     <span v-else>
-                      <!-- 公识 -->
                     </span>
                   </p>
               </div>
@@ -143,8 +116,148 @@
               <span v-html="scope.row.contrastResult"></span>
           </template>
         </el-table-column>
-      </el-table>
+      </el-table> -->
+      <el-table
+        v-if="show"
+        :data="tableData"
+        border
+        class="table"
+        height="750"
+        :span-method="objectSpanMethod"
+        :row-class-name="tableRowClassName"
+        v-loading="loading"
+        style="min-width: 100%; overflow:auto">
+
+        <el-table-column prop="right" label="权要"  align="center"  width="200px" :filters="rightList" :filter-method="filterHandler">
+          <!-- <template slot="header">
+            <div>
+              <span>权要</span>
+              <el-popover
+                placement="bottom"
+                trigger="click"
+                >
+                <el-tree
+                  ref="tree1"
+                  node-key="text"
+                  :data="rightList"
+                  show-checkbox
+                  :props="{label:'text'}"
+                  @check="getInfo">
+                  <span class="custom-tree-node" slot-scope="{ node, data }">
+                              <span>{{ data.text }}</span>
+                  </span>
+                </el-tree>
+              <div style="display:flex;justify-content:space-around;line-height:20px;">
+                    <p style="cursor:pointer;" @click="filterHandler">筛选</p>
+                    <p style="cursor:pointer;" @click="reset1">重置</p>
+                </div>
+              <i class="el-icon-arrow-down el-icon--right" slot="reference" @click="getChecked"></i>
+            </el-popover>
 
+            </div> 
+          </template>-->
+          <template slot-scope="scope">  
+            <!-- <el-tooltip class="item" effect="dark" :content="scope.row.right" placement="top"> -->
+              <span>{{scope.row.right}}</span>
+            <!-- </el-tooltip>      -->
+          </template>
+        </el-table-column>
+        <el-table-column prop="resultant" label="对比组合" align="center" width="300px" >
+          <template slot="header">
+            <div>
+              <span>对比组合</span>
+              <el-popover
+                placement="bottom"
+                trigger="click"
+                >
+                <el-tree
+                  ref="tree"
+                  node-key="text"
+                  :data="resultant"
+                  show-checkbox
+                  :props="{label:'text'}"
+                  @check="getInfo">
+                  <span class="custom-tree-node" slot-scope="{ node, data }"><el-tooltip class="item" effect="dark" :content="data.patentNoList.join('+')" placement="top-start">
+                              <span>{{ data.text }}</span>
+                            </el-tooltip></span>
+                </el-tree>
+              <div style="display:flex;justify-content:space-around;line-height:20px;">
+                    <p style="cursor:pointer;" @click="checkPatentList">筛选</p>
+                    <p style="cursor:pointer;" @click="reset">重置</p>
+                </div>
+              <i class="el-icon-arrow-down el-icon--right" slot="reference" @click="getChecked"></i>
+            </el-popover>
+
+            </div>
+          </template>
+          <template slot-scope="scope" >
+            <div >
+              <el-checkbox-group v-model="checkList" >
+                <el-checkbox :label="scope.row.PlanId"  >
+                  <p>{{ scope.row.resultant}}</p>
+                </el-checkbox>
+              </el-checkbox-group>
+            </div>
+           
+          </template>
+        </el-table-column>
+        <el-table-column prop="assoRecordsFeatures" label="特征"  align="center"  width="200px">
+          <template slot-scope="scope">
+              <div class="innerTable"  style="width:calc(100% + 20px);margin-left:-10px">
+                  <!-- <p v-for="i in scope.row.assoRecordsFeatures"> -->
+                    <el-tooltip class="item" effect="dark" :content="scope.row.features.content" placement="top">
+                      <span>特征{{scope.row.features.featuresOrder}}</span>
+                    </el-tooltip>  
+                  <!-- </p> -->
+              </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="PublicKnowledge" label="公识"  align="center"  width="100px">
+          <template slot-scope="scope">  
+              <div class="innerTable"  style="width:calc(100% + 20px);margin-left:-10px">
+                  <!-- <p v-for="i in scope.row.assoRecordsFeatures"> -->
+                    <span  v-if="scope.row.compareRecords">
+                     
+                    </span>
+                    <span v-else >
+                      公识
+                    </span>
+                  <!-- </p> -->
+              </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="patentNo" label="对比专利"  align="center"  width="200px">
+          <template slot-scope="scope">  
+              <div class="innerTable" style="width:calc(100% + 20px);margin-left:-10px">
+                  <!-- <p v-for="(i,index) in scope.row.patentNoIndex"> -->
+                    <span  v-if="scope.row.compareRecords">
+                      {{scope.row.compareRecords.patentNo}}
+                    </span>
+                    <span v-else >
+                    </span>
+                  <!-- </p> -->
+              </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="content" label="对比内容"  align="center" min-width="200px">
+          <template slot-scope="scope">  
+              <div class="innerTable" style="width:calc(100% + 20px);margin-left:-10px">
+                  <!-- <p v-for="(i,index) in scope.row.patentNoIndex" :key="index"> -->
+                    <span  v-if="scope.row.compareRecords">
+                      {{scope.row.compareRecords.content}}<img v-if="scope.row.compareRecords.filePath" :src="$p + scope.row.compareRecords.filePath" width="100px" @click="showImage(scope.row.compareRecords.filePath)" />
+                    </span>
+                    <span v-else>
+                    </span>
+                  <!-- </p> -->
+              </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="contrastResult" label="对比结论/理由"  align="center"  width="300px">
+          <template slot-scope="scope">  
+              <span v-html="scope.row.contrastResult"></span>
+          </template>
+        </el-table-column>
+      </el-table>
       <el-dialog :visible.sync="showFile">
         <img width="100%" :src="imageUrl" alt="查不到该图片">
       </el-dialog>
@@ -169,7 +282,7 @@ export default {
             tableData:[],
             loading:false,
             mergeObj: {},
-            mergeArr: [ 'right'],
+            mergeArr: [ 'right',"resultant",'contrastResult','patentNo','content'],
         }
     },
     mounted() {
@@ -182,7 +295,8 @@ export default {
         }else{
           this.showList = true
         }
-      }
+      },
+      
     },
     methods: {
       getInfo(val){
@@ -240,17 +354,16 @@ export default {
       this.showFile = true
     },
     filterHandler(value, row, column) {
-      //console.log(value, row, column)
         const property = column['property'];
         return row[property] === value;
       },
       // 表格隔行变色
       tableRowClassName({ row, rowIndex }) {
-        if (rowIndex % 2 === 0) {
-          return 'success-row1'
-        } else  {
-          return ''
-        }
+        // if (rowIndex % 2 === 0) {
+        //   return 'success-row1'
+        // } else  {
+        //   return ''
+        // }
       },
       delPlan(){
         //console.log(this.checkList)
@@ -265,6 +378,8 @@ export default {
                 type: 'success',
                 message: '删除成功!'
               });
+              this.rightList = []
+              this.resultant = []
               this.getContrastPlan()
               this.checkList = []
             }
@@ -278,6 +393,9 @@ export default {
         getContrastPlan(){
             this.$api.selectCompareScenarios({reportID:this.reportId}).then(response=>{
                 if(response.code == 200){
+                  var data = []
+                  
+                 
                     //console.log(response.data)
                     response.data.forEach((item,index)=>{
                       var a = this.rightList.findIndex(i=>{
@@ -315,27 +433,27 @@ export default {
                         }
                         
                       })
-                      console.log(item.assoRecordsFeatures)
                       item.assoRecordsFeatures.forEach((item1,ele)=>{
-                       
+                        
                            if(ele == 0){
-                            item.patentNoIndex.push(1)
+                            item.patentNoIndex.push(ele)
                           }else{
                             if(item1.compareRecords&&item.assoRecordsFeatures[ele-1].compareRecords){
                               if(item1.compareRecords.patentNo == item.assoRecordsFeatures[ele-1].compareRecords.patentNo && item1.compareRecords.content == item.assoRecordsFeatures[ele-1].compareRecords.content){
                              
                               item.patentNoIndex[item.patentNoIndex.length-1]+=1
                             }else{
-                              item.patentNoIndex.push(1)
+                              item.patentNoIndex.push(ele)
                             }
                             }else{
-                              item.patentNoIndex.push(1)
+                              item.patentNoIndex.push(ele)
                             }
                             
                           }
                           
                           
-                        
+                        //   item1.rightList = item
+                        // data.push(item1)
                         
                         
                       })
@@ -351,16 +469,40 @@ export default {
                         return a.featureId - b.featureId
                       })
                     })
-                    //console.log(this.resultant)
-                    this.tableData = response.data
+
+                    this.tableData = []
+                    response.data.forEach(item=>{
+                      item.assoRecordsFeatures.forEach((item1,index)=>{
+                        item1.contrastResult= item.contrastResult
+                        item1.featuresIDList= item.featuresIDList
+                        item1.featuresList= item.featuresList
+                        item1.PlanId= item.id
+                        item1.reportId= item.reportId
+                        item1.right= item.right
+                        item1.rightId= item.rightId
+                        item1.signPatentNo= item.signPatentNo
+                        item1.resultant = item.resultant
+                        this.tableData.push(item1)
+                      })
+                    })
+                  this.tableData.sort((a,b)=>{
+                    return a.right.slice(2,a.right.length) - b.right.slice(2,b.right.length)
+                  })
+                    // console.log(data)
+                    
+                    // // response.data = data
+                    // this.tableData = data
+                    
+                  //  debugger
+                   this.getSpanArr(this.tableData)
+                    // this.tableData = data
                     this.tableData1 = JSON.parse(JSON.stringify(this.tableData))
-                    this.getSpanArr(this.tableData)
+                    
                 }
             })
         },
         getSpanArr(data) {
             this.mergeArr.forEach((key, index1) => {
-              console.log(data)
                 let count = 0;
                 this.mergeObj[key] = [];
                 data.forEach((item, index) => {
@@ -371,7 +513,7 @@ export default {
                   //     this.mergeObj[key].push(2)
                   //   }
                   // })
-                    if(key == 'right'){
+                    if(key == 'right' || key == 'resultant'){
                       if (index === 0) {
                           this.mergeObj[key].push(1);
                       }else{
@@ -383,58 +525,77 @@ export default {
                             this.mergeObj[key].push(1);
                           }
                       }
-                    }else{
-                      
-                      item.assoRecordsFeatures.forEach((i,index2)=>{
-                        if(index == 0){
-                           if(i.compareRecords){
-                            if(index2 == 0){
+                    }else if(key == 'patentNo' || key=='content'){
+                      if (index === 0) {
+                          this.mergeObj[key].push(1);
+                      }else{
+                        if(item.compareRecords&&data[index - 1].compareRecords){
+                          if (item.compareRecords[key] === data[index - 1].compareRecords[key]) {
+                            this.mergeObj[key][count] += 1;
+                            this.mergeObj[key].push(0);
+                          }else{
+                              count = index;
                               this.mergeObj[key].push(1);
-                            }else{
-                              if(i[key] === item.assoRecordsFeatures[index2-1][key]){
-                                this.mergeObj[key][count] += 1;
-                                this.mergeObj[key].push(0);
-                              }else{
-                                count = index2;
-                                this.mergeObj[key].push(1);
-                              }
                             }
-                            // else{
-                            //   count = index;
-                            //   this.mergeObj[key].push(1);
-                            // }
-                          }
                         }else{
-                          if(item.resultant === data[index - 1].resultant){
-                            if(i.compareRecords){
-                              if(index2 == 0){
-                                this.mergeObj[key].push(1);
-                              }else{
-                                if(i[key] === item.assoRecordsFeatures[index2-1][key]){
-                                  this.mergeObj[key][count] += 1;
-                                  this.mergeObj[key].push(0);
-                                }else{
-                                  count = index2;
-                                  this.mergeObj[key].push(1);
-                                }
-                              }
-                              // else{
-                              //   count = index;
-                              //   this.mergeObj[key].push(1);
-                              // }
-                            }
-                          }
+                          count = index;
+                              this.mergeObj[key].push(1);
                         }
+                        
+                      }
+                    }
+                    // else{
+                      
+                    //   item.assoRecordsFeatures.forEach((i,index2)=>{
+                    //     if(index == 0){
+                    //        if(i.compareRecords){
+                    //         if(index2 == 0){
+                    //           this.mergeObj[key].push(1);
+                    //         }else{
+                    //           if(i[key] === item.assoRecordsFeatures[index2-1][key]){
+                    //             this.mergeObj[key][count] += 1;
+                    //             this.mergeObj[key].push(0);
+                    //           }else{
+                    //             count = index2;
+                    //             this.mergeObj[key].push(1);
+                    //           }
+                    //         }
+                    //         // else{
+                    //         //   count = index;
+                    //         //   this.mergeObj[key].push(1);
+                    //         // }
+                    //       }
+                    //     }else{
+                    //       if(item.resultant === data[index - 1].resultant){
+                    //         if(i.compareRecords){
+                    //           if(index2 == 0){
+                    //             this.mergeObj[key].push(1);
+                    //           }else{
+                    //             if(i[key] === item.assoRecordsFeatures[index2-1][key]){
+                    //               this.mergeObj[key][count] += 1;
+                    //               this.mergeObj[key].push(0);
+                    //             }else{
+                    //               count = index2;
+                    //               this.mergeObj[key].push(1);
+                    //             }
+                    //           }
+                    //           // else{
+                    //           //   count = index;
+                    //           //   this.mergeObj[key].push(1);
+                    //           // }
+                    //         }
+                    //       }
+                    //     }
                          
-                        })
+                    //     })
 
-                    }
+                    // }
 
 
               
                 })
             })
-            console.log(this.mergeObj)
+            this.mergeObj.contrastResult = this.mergeObj.resultant
             // data.forEach((item,index)=>{
             //   if (index === 0) {
             //         this.mergeObj[key].push(1);
@@ -442,7 +603,7 @@ export default {
             // })
         },
         objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-
+// console.log(this.mergeArr,column.property,rowIndex,this.mergeObj)
             if (this.mergeArr.indexOf(column.property) !== -1) {
                 if (this.mergeObj[column.property][rowIndex]) {
                 return [this.mergeObj[column.property][rowIndex], 1]
@@ -456,6 +617,12 @@ export default {
 }
 </script>
 <style>
+.plan .el-table--enable-row-hover .el-table__body tr:hover>td{
+  background-color: #ffffff !important;
+}
+.el-popover{
+  min-width: 0;
+}
 .success-row1 {
   background-color:#eaf3fb !important; 
 }

+ 7 - 1
RMS-FrontEnd/src/views/task/components/Incomplete.vue

@@ -153,10 +153,16 @@ export default {
       this.taskWorkRemakShow = false
       //console.log(this.taskWorkRemakShow);
     }
+    this.$s.setSession('params', {
+      reportName:this.queryParams.reportName,
+      reportId: this.reportId,
+      reportType:this.reportType,
+      signPatentNo:this.signPatentNo,
+    })
     //console.log(this.queryParams,this.reportId,this.coordination,this.reportType,);
   },
   mounted() {
-    this.$set(this.$route.meta,'showHeader',this.queryParams.reportName)
+    // this.$set(this.$route.meta,'showHeader',this.queryParams.reportName)
     //console.log(this.coordination);
   },
   methods: {