瀏覽代碼

对比划词问题

zhuliu 2 年之前
父節點
當前提交
eba5b21b28

+ 1 - 1
RMS-FrontEnd/src/config/index.js

@@ -1,5 +1,5 @@
 export default {
     baseURL: "/api",
     host: window.location.host,
-    staticURL: process.env.NODE_ENV === 'production' ? 'http://139.224.24.90:8084' : 'http://139.224.24.90:8083',
+    staticURL: process.env.NODE_ENV === 'production' ? 'http://139.224.24.90:8084' : (process.env.NODE_ENV === 'test'?'http://139.224.24.90:8083':'http://192.168.1.13:8885'),
 }

+ 1 - 1
RMS-FrontEnd/src/main.js

@@ -37,7 +37,7 @@ Vue.prototype.$r = hasRole
 // Vue.use(Charts)
 Vue.use(Particles)
 Vue.use(Element)
-
+console.log(process.env.NODE_ENV)
 new Vue({
   router,
   store,

+ 2 - 1
RMS-FrontEnd/src/views/components/articles/components/PatentBasic.vue

@@ -58,7 +58,8 @@
       </el-col>
       <el-col :span="6">
          <el-card shadow="never" class="text-align_center" style="margin-top:50px" data-type="附图">
-          <el-image :src="getImagePath(patent.abstractPath)" :preview-src-list="[getImagePath(patent.abstractPath)]" style="height: 200px;"></el-image>
+          <!-- <el-image :src="getImagePath(patent.abstractPath)" :preview-src-list="[getImagePath(patent.abstractPath)]" style="height: 200px;"></el-image> -->
+          <el-image :src="getImagePath1(patent)" :preview-src-list="[getImagePath1(patent)]" style="height: 200px;"></el-image>
         </el-card>
         </el-col>
     </el-row>

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

@@ -78,6 +78,7 @@
 
 <script>
 import { PatentDetails } from '@/views/components/common/mixins';
+import { off } from 'process';
 export default{
     mixins:[PatentDetails],
     props:["reportId",'patentNo','selectedFeatures','selectedFeaturesId'],
@@ -140,6 +141,7 @@ export default{
             if (!body) {
                 return false
             }
+            console.log(offsetTop,body.offsetHeight)
             const offsetBodyHeight = body.offsetHeight
             if (this.tableData.length && offsetBodyHeight < offsetTop) {
                 this.tableHeight = offsetBodyHeight + 75
@@ -148,6 +150,7 @@ export default{
             } else {
                 this.tableHeight = offsetTop
             }
+            this.tableHeight = this.tableHeight>300?this.tableHeight:300
         },
         getRow(row){
             var index = this.row.findIndex(item=>{

+ 50 - 6
RMS-FrontEnd/src/views/components/articles/components/mixins.js

@@ -26,6 +26,25 @@ export const commonMixins = {
       }
       return this.$p + url
     },
+    getImagePath1(patent) {
+      if(Object.keys(patent).length==0){
+        return ''
+      }
+   
+      var cc =  patent.publicNo.substring(0,2)
+      if(cc != 'CN'){
+        var date = patent.publicDate.replace(/-/g,'')
+        var NR = patent.publicNo.substring(2,patent.publicNo.length)
+        var KD = patent.publicNo.substring(patent.publicNo.length-2,patent.publicNo.length)
+        var a = 'http://worldwide.espacenet.com/espacenetImage.jpg?flavour=firstPageClipping&locale=en_EP&FT=D&date='+ date +'&CC='+ cc +'&NR='+ NR +'&KD='+ KD +'&bg='
+      }else{
+        if (!patent.abstractPath) {
+          return ''
+        }
+        var a = this.$p + patent.abstractPath
+      }
+      return a
+    },
   }
 }
 
@@ -33,6 +52,8 @@ export const addContrast = {
     props:['isTrue','type1','reportType'],
   data() {
     return {
+      isFirst:true,
+      StartText:'',
       isSelecting:false,
       mX :0,
       mY:0,
@@ -72,6 +93,7 @@ export const addContrast = {
          if(this.isSelecting){
           this.isSelecting = false;
           let selectObj = document.getSelection();
+          console.log(selectObj)
           this.anchorOffset =0;
           let temSelectObj = this.getSelectobj(selectObj);
           var tempdt = this.getColumnName(selectObj.anchorNode);
@@ -152,11 +174,11 @@ export const addContrast = {
           //     temNode = temNode.parentNode;
           // }
           // while(this.NotIncludeDataType(temNode));
-      // console.log(temNode)
+      console.log(temNode)
      
       let index =0;
       this.getColumn(temNode,selectObj);
-
+      this.isFirst = true
       return {"Id":this.uuid(),"column":temNode.getAttribute("data-type"),"index":this.anchorOffset,"text":selectObj.toString(),'temNode':temNode};
 
   },
@@ -200,8 +222,13 @@ export const addContrast = {
   },
 
   getColumn(node,selectObj){
-    //   console.log(node);
+    if(this.isFirst){
+      this.StartText = node.innerText
+      console.log(a)
+    }
+      console.log(node,selectObj.anchorNode.data);
       if(node != selectObj.anchorNode){
+        this.isFirst = false
           if(node.nodeValue != null ){
             this.anchorOffset += node.nodeValue.trim().length;
           }
@@ -218,12 +245,29 @@ export const addContrast = {
       }
       else{
         if(selectObj.anchorNode.nodeValue!=null){
+          var a = this.StartText
+          console.log(a,selectObj.extentOffset,selectObj.anchorOffset)
           if(selectObj.extentOffset>=selectObj.anchorOffset){
-            this.anchorOffset += selectObj.anchorOffset
+            var str = a.substring(0,this.anchorOffset + selectObj.anchorOffset)
+            var len = str.match(/\n/g)?Number(str.match(/\n/g).length):0
+            var num = len + Number(this.anchorOffset + selectObj.anchorOffset)
+            // if(this.anchorOffset != 0){
+            //   num += 1
+            // }
+            this.anchorOffset = num
           }else{
-            this.anchorOffset += selectObj.extentOffset
+            var str = a.substring(0,this.anchorOffset + selectObj.extentOffset)
+            var len = str.match(/\n/g)?Number(str.match(/\n/g).length):0
+            var num = len + Number(this.anchorOffset + selectObj.extentOffset)
+
+            // if(this.anchorOffset != 0){
+            //   num += 1
+            // }else{
+            //   num -= 1
+            // }
+            this.anchorOffset = num
           }
-           
+           this.StartText  = ''
         }
         // console.log("anchorOffset2",this.anchorOffset,selectObj)
           return true;

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

@@ -151,7 +151,7 @@
           &nbsp;&nbsp;</span>
        </el-form-item>
      </el-form>
-     <div style="max-height:300px;overflow:auto">
+     <div style="height:300px;overflow:auto">
         <Features @getFeatures="getFeatures" :patentNo="signPatentNo" :reportId="reportId" :selectedFeatures="selectedFeatures" :selectedFeaturesId="ruleForm.featureslist"></Features>
       </div>
      <div slot="footer" class="dialog-footer">

+ 7 - 2
RMS-FrontEnd/src/views/components/common/mixins.js

@@ -158,7 +158,6 @@ export const patentKeywordsHighlight = {
   },
   methods: {
     getViewDom(text,field) {
-      
      if(this.contrastList){
        for(let i=0;i<this.contrastList.length;i++){
         if(this.contrastList[i].patentNo == this.patent.publicNo){
@@ -178,6 +177,7 @@ export const patentKeywordsHighlight = {
             a.pass = false
           }
           text = this.AddClass1(a);
+          // console.log(text)
           }
         }
         
@@ -305,6 +305,7 @@ if(index!=-1){
           //  let el = this.getColumnNode(selectObject.column);
          let el = selectObject.temNode;
          if(selectObject.pass){
+          console.log(1)
           var splitStrings =[{
             text:selectObject.temNode,
             type:'text'
@@ -331,7 +332,7 @@ if(index!=-1){
         });
   
         let pattern = new RegExp(selectObject.text.replace(/[\r\n]/g,"").replace(/\ +/g,""),"g");
-  
+  console.log(pattern)
         let Indexs =[];
         let i=0
 
@@ -360,7 +361,11 @@ if(index!=-1){
                    if(match.index >= currentIndex && match.index < (currentIndex + item.text.length) ){
                       if((match.index + match[0].length) <= (currentIndex + item.text.length) && item.text.indexOf(match[0])!=-1){
                           if(match.index > currentIndex){
+                            // var a =item.text.substring(0,match.index-currentIndex)
+                            // console.log(a)
+                            // var num = Number(a.match(/\r\n/g).length)+1+Number(match.index)
                               temSplitStrings.push({text:item.text.substring(0,match.index-currentIndex),type:'text'});
+                              console.log(temSplitStrings)
                           }
                           console.log('进了',1)
                           temSplitStrings.push({text:startTag,type:'tag'});

+ 1 - 1
RMS-FrontEnd/src/views/layout/mixins/index.js

@@ -4,7 +4,7 @@ import Store from '@/store'
 export const webSocket = {
   methods: {
     connectWebSocket(userId) {
-      let webSocket = new WebSocket(`ws://139.224.24.90:8885/api/report/api/ws/`+userId)
+      let webSocket = new WebSocket(`ws://192.168.1.13:8885/api/report/api/ws/`+userId)
       Store.commit('SET_WEB_SOCKET', webSocket)
       webSocket.onopen = () => {
         console.log('WebSocket连接成功')

+ 5 - 4
RMS-FrontEnd/src/views/report/FTO/FTOPage/components/ContrasrProduct.vue

@@ -30,9 +30,9 @@
     <el-container style=" border: 1px solid #eee">
       <!-- <el-container :style="{width:width}" > -->
       <el-aside style="margin:0;" :style="{ width: width , position: 'relative'}" >
-        <el-link type="primary" v-if="reportType == 3" @click="changeProduct" style="position: absolute;right: 10px;top: 10px;margin-bottom:10px">切换<span>{{ showProduct?'特征信息':'产品信息' }}</span></el-link>
+        <el-link type="primary" v-if="reportType == 3 || reportType == 4" @click="changeProduct" style="position: absolute;right: 10px;top: 10px;margin-bottom:10px;z-index: 111;">切换<span>{{ showProduct?'特征信息':'产品信息' }}</span></el-link>
         <div v-if="showProduct">
-            <Product-Message :reportId="reportId" :row="row"></Product-Message>
+            <Product-Message :reportId="reportId" :row="row" :noEdit="isEdit"></Product-Message>
         </div>
         <div v-else>
           <Patent-Features v-if="type == '2'||type=='1' || reportType == 4" :taskId="taskId" :patentNo="patentNo1" :reportId="reportId" :coordination="coordinationA" :FeaturesNumber="FeaturesNumber" :taskWorkRemak="taskWorkRemakA" :type="type" @isRead="isRead" ></Patent-Features>
@@ -42,9 +42,9 @@
       </el-aside>
       <!-- </el-container> -->
       <el-main v-show="width != '100%'" :style="{ width: 'calc(100% - ' + width + ')' ,position: 'relative'}">
-        <el-link type="primary" v-if="reportType == 3" @click="changeProduct2" style="position: absolute;right: 10px;top: 10px;margin-bottom:10px">切换<span>{{ showProduct2?'标的专利信息':'产品信息' }}</span></el-link>
+        <el-link type="primary" v-if="reportType == 3 || reportType == 4" @click="changeProduct2" style="position: absolute;right: 10px;top: 10px;margin-bottom:10px;z-index: 111;">切换<span>{{ showProduct2?'标的专利信息':'产品信息' }}</span></el-link>
         <div v-if="showProduct2">
-            <Product-Message :reportId="reportId" :row="row"></Product-Message>
+            <Product-Message :reportId="reportId" :row="row" :noEdit="isEdit"></Product-Message>
         </div>
         <div class="patent-articles" v-else>
           <el-container v-loading="loading">
@@ -191,6 +191,7 @@ export default {
   },
   data() {
     return {
+      isEdit:true,
       row:{},
       showProduct:false,
       showProduct2:false,

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

@@ -3,7 +3,7 @@
         <el-container>
             <el-main  style="border:0;padding:35px 20px 20px;">
                 <div class="header1">
-                    <el-button type="primary" @click="saveProduct">保存</el-button>
+                    <el-button type="primary" @click="saveProduct" v-if="!noEdit">保存</el-button>
                 </div>
                 <div class="demo-input-suffix" style="width:800px;margin:0 auto">
                     <div>
@@ -43,7 +43,7 @@
                                             </span>
                                             <el-image ref="image" :src="item" :preview-src-list="imgList"></el-image>
                                         </span>
-                                        <i class="el-icon-plus avatar-uploader-icon"></i>
+                                        <i class="el-icon-plus avatar-uploader-icon" v-if="!noEdit1"></i>
                                     </span>
                                 </el-upload>
                             </el-form-item>
@@ -52,7 +52,9 @@
                                 <span @dblclick="changEdit('searchPolicy')" placeholder="请输入" v-else>{{ product.searchPolicy}}</span>
                             </el-form-item>
                             <el-form-item label="检索截止日期:" prop="deadLine">
+                                <span v-if="noEdit1">{{ product.deadLine }}</span>
                                 <el-date-picker
+                                    v-else
                                     style="width:100%"
                                         v-model="product.deadLine"
                                         type="date"
@@ -80,7 +82,7 @@
 
 
 export default{
-    props:['reportId','row'],
+    props:['reportId','row','noEdit'],
   data() {
     const isTime = (rule, value, callback) => {
       console.log(this.isDate);
@@ -102,6 +104,7 @@ export default{
      
     }
       return {
+            noEdit1:this.noEdit,
             reportMessage:this.row,
             imgList:[],
             isDate:true,
@@ -131,6 +134,9 @@ export default{
       this.isDate=true
     },
         changEdit(val){
+            if(this.noEdit1){
+                return false
+            }
             this.isEdit = val
       },
       editChange() {

+ 7 - 4
RMS-FrontEnd/src/views/report/Invalid/InvalidPage/AssignTasks.vue

@@ -436,9 +436,8 @@ export default {
           }
         }
         this.leaveNumber = Number(this.totalNumber) - Number(a)
-        console.log(this.leaveNumber);
+        console.log(this.leaveNumber,this.checkList);
         var data = JSON.parse(JSON.stringify(this.checkList))
-
         if(this.leaveNumber>0){
           this.getRowNumber(data)
         }
@@ -463,8 +462,12 @@ export default {
           i=data.length
         }
         }
-        if(this.leaveNumber>0){
-          this.getRowNumber(data)
+        // console.log(this.leaveNumber)
+        if(data.length>1){
+          if(this.leaveNumber>0){
+            this.getRowNumber(data)
+          }
+        
         }
         
     },

+ 12 - 8
RMS-FrontEnd/src/views/report/components/mixins.js

@@ -25,6 +25,10 @@ export const explain = {
         this.keepSure = false;
       }
       this.innerhtml = val
+      this.$forceUpdate()
+          if(this.tableHeight){
+            this.setHeight()
+          }
       console.log(this.innerhtml)
     },
     getValue(row,name) {//失去焦点触发,row本行数据,name是传过来的row里面每一个属性
@@ -55,10 +59,10 @@ export const explain = {
           let str = row[name]?row[name]:''
           this.$set(row,name,str +text)
           this.saveValue(row[name])
-          this.$forceUpdate()
-          if(this.tableHeight){
-            this.setHeight()
-          }
+          // this.$forceUpdate()
+          // if(this.tableHeight){
+          //   this.setHeight()
+          // }
           break;
         }
         if (items[i].type.indexOf("image") !== -1) {
@@ -95,10 +99,10 @@ export const explain = {
           this.$set(row,name,str + new_img)
         }
         this.saveValue(row[name])
-        this.$forceUpdate()
-        if(this.tableHeight){
-          this.setHeight()
-        }
+        // this.$forceUpdate()
+        // if(this.tableHeight){
+        //   this.setHeight()
+        // }
        
        
       };

+ 3 - 3
RMS-FrontEnd/src/views/report/index.vue

@@ -8,7 +8,7 @@
                 </el-button>
                    <el-dropdown-menu slot="dropdown" style="margin-top:0px" v-if="dictMessage.REPORT_TYPE">
                     <!-- 遍历按钮 -->
-                      <el-dropdown-item v-for="item in dictMessage.REPORT_TYPE" :key="item.dictChildLabel"  @click.native="handleAnalyse(item.dictChildValue)">{{item.dictChildLabel}}</el-dropdown-item>
+                      <el-dropdown-item v-for="item in dictMessage.REPORT_TYPE.filter(item=>!['5','6'].includes(item.dictChildValue))" :key="item.dictChildLabel"  @click.native="handleAnalyse(item.dictChildValue)">{{item.dictChildLabel}}</el-dropdown-item>
                     </el-dropdown-menu>
                 </el-dropdown>
 
@@ -164,11 +164,11 @@ export default {
             this.loadingTemplate=false
             console.log(response.data)
           } else{
-            this.$message.success('导出失败,请重试')
+            this.$message.error('导出失败,请重试')
             this.loadingTemplate=false
           }
         }).catch(error => {
-          this.$message.success('导出失败,请重试')
+          this.$message.error('导出失败,请重试')
             this.loadingTemplate=false
         })
       }else{

+ 1 - 1
RMS-FrontEnd/src/views/report/reportDetails/components/SelectedPatent.vue

@@ -21,7 +21,7 @@
               <el-tab-pane name="first" label="未读"> </el-tab-pane>
               <el-tab-pane label="已读" name="second"> </el-tab-pane>
           </el-tabs> -->
-          <customTable  @taskFeilParams="taskFeilParams" :taskFeilSure="taskFeilSure" :taskSources="taskSources"  :signPatentNo="patentNo" :reportId="queryParams.reportId"  :activeName="activeName" :onChangesIn="onChangesIn" :queryParams="queryParams" :taskStatus="taskStatus" :formS="formS"></customTable>
+          <customTable  @taskFeilParams="taskFeilParams" :reportMessage="reportMessage" :taskFeilSure="taskFeilSure" :taskSources="taskSources"  :signPatentNo="patentNo" :reportId="queryParams.reportId"  :activeName="activeName" :onChangesIn="onChangesIn" :queryParams="queryParams" :taskStatus="taskStatus" :formS="formS"></customTable>
         </el-main>
         <el-collapse-transition>
           <div v-show="show">

+ 5 - 4
RMS-FrontEnd/src/views/report/reportDetails/components/basicMessage.vue

@@ -1,6 +1,6 @@
 <template>
     <div> 
-        <el-button type="primary" @click="submit" style="float:right">提交</el-button>
+        <el-button type="primary" @click="submit" style="float:right" v-if="!noEdit">提交</el-button>
         <div style="width:500px;margin:0 auto">
             <el-form :model="form" ref="reportForm" label-width="120px">
                 
@@ -37,11 +37,11 @@
                 <el-form-item label="卷号:" prop="volumeNumber" v-if="form.volumeNumber">
                     <span>{{form.volumeNumber}}</span>
                 </el-form-item>
-                <el-form-item label="上传附件:">
+                <el-form-item :label="noEdit?'附件':'上传附件:'">
                 <div v-if="form.reportFiles" class="upload-file">
                     <div v-for="item in form.reportFiles" style="margin:0;display:flex;justify-content:space-around;"><p style="margin:0;width:calc(100% - 40px);overflow: hidden;white-space: nowrap;text-overflow:ellipsis">{{item.name?item.name:item.fileName}}</p> <p style="margin:0;" @click="delFile(item.id)"><i class="el-icon-close"></i></p></div>
                 </div>
-                <el-upload  ref="upload" class="upload-file" drag action="#" :auto-upload="false" :show-file-list="true" :on-change="onChange" multiple   :on-preview="handlePreview" :on-remove="handleRemove">
+                <el-upload v-if="!noEdit1" ref="upload" class="upload-file" drag action="#" :auto-upload="false" :show-file-list="true" :on-change="onChange" multiple   :on-preview="handlePreview" :on-remove="handleRemove">
                     <i :class="!file ? 'el-icon-upload' : 'el-icon-refresh'"></i>
                     <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
                     <div class="el-upload__tip" slot="tip"></div>
@@ -59,9 +59,10 @@
 import { PatentDetails } from "@/views/components/common/mixins";
 export default {
     mixins:[PatentDetails],
-    props:['reportId'],
+    props:['reportId','noEdit'],
     data() {
         return {
+            noEdit1:this.noEdit,
             file:[],
             form:{
               id:this.reportId

+ 9 - 2
RMS-FrontEnd/src/views/report/reportDetails/components/common/customTable.vue

@@ -16,7 +16,13 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column prop="SysOrder" label="重要度" sortable width="100" align="center"></el-table-column>
+            <el-table-column prop="SysOrder" label="重要度" sortable width="100" align="center" v-if="reportMessage && [0,1,2].includes(reportMessage.type)">
+              <template slot-scope="scope">
+                <div>
+                  <span v-if="scope.row.SysOrder">D</span><span>{{ scope.row.SysOrder}}</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column prop="name" label="专利标题"  width="300" align="center"></el-table-column>
             <!-- <el-table-column prop="state" label="状态" sortable  align="center"></el-table-column> -->
             <el-table-column prop="simpleStatus" label="状态" align="center" >
@@ -37,9 +43,10 @@
 import { Contrast } from '@/views/task/components/mixins';
 export default {
   mixins:[Contrast],
-  props:["activeName","reportId","onChangesIn",'type','signPatentNo',"taskStatus","formS","taskFeilSure",'taskSources'],//queryParams
+  props:["activeName","reportId","onChangesIn",'type','signPatentNo',"taskStatus","formS","taskFeilSure",'taskSources','reportMessage'],//queryParams
   data() {
     return {
+      reportMessage1:this.reportMessage,
       tableData: [],
       state:[],
       loading: false,

+ 2 - 1
RMS-FrontEnd/src/views/task/components/taskReportDetails.vue

@@ -12,7 +12,7 @@
         <el-container>
           <!-- <el-header></el-header> -->
           <el-main class="admin-main-box">
-            <component :is="activeMenu" :row="row" :reportId="reportId" :patentNo="signPatentNo" :signPatentNo="signPatentNo" :reportId2="reportId" :taskId="taskId"></component>
+            <component :is="activeMenu" :noEdit="noEdit" :row="row" :reportId="reportId" :patentNo="signPatentNo" :signPatentNo="signPatentNo" :reportId2="reportId" :taskId="taskId"></component>
           </el-main>
         </el-container>
       </el-container>
@@ -35,6 +35,7 @@ export default {
     },
     data() {
         return {
+            noEdit:true,
             activeMenu: "BasicInformation",
             menuList: [
               { title: '基本信息', path:"BasicInformation",show:true},