Sfoglia il codice sorgente

韶音需求开发结果

zhuliu 1 anno fa
parent
commit
295174d287

+ 27 - 0
src/api/newApi/report.js

@@ -269,6 +269,8 @@ export default {
   },
 
 
+
+
   /**
    * 无效应对
    * 添加非专利对比文献
@@ -514,6 +516,29 @@ updateSupplyEvidence(data) {
     return axios.post("/xiaoshi/invalidStatutes/updateMessage", data);
   },
   /**
+      * 无效应对
+      * 官方无效导入最终无效理由和证据(同步)
+    */
+  importFinalInvalidStatues(params) {
+    return axios.get("/xiaoshi/invalidStatutes/importFinalInvalidStatues", params);
+  },
+  /**
+      * 无效应对
+      * 官方无效编辑最终无效理由和证据
+    */
+  editFinalInvalidStatues(data) {
+    return axios.post("/xiaoshi/invalidStatutes/editFinalInvalidStatues", data);
+  },
+  /**
+      * 无效应对
+      * 官方查询最终无效理由和证据
+    */
+  queryFinalInvalidStatues(data) {
+    return axios.post("/xiaoshi/invalidStatutes/queryFinalInvalidStatues", data);
+  },
+
+
+  /**
     * 无效应对
     * 添加(修改)证据组合
   */
@@ -677,6 +702,7 @@ updateSupplyEvidence(data) {
     return axios.post("/xiaoshi/reportProject/updateIfSecondInvalid", data);
   },
 
+
   /**
     * 无效应对
     *添加或更新报告附图
@@ -700,6 +726,7 @@ updateSupplyEvidence(data) {
     },
 
 
+
   /**
     * 稳定性分析和第三方意见
     * 添加或更新对比记录

+ 13 - 6
src/utils/axios.js

@@ -83,7 +83,6 @@ _axios.interceptors.response.use(
     if (code === 500) {
       // TODO
       if(response.data == '未登录'){
-        console.log('未登录')
         Router.push({
           path: `/login`
         }).then(r => {})
@@ -102,11 +101,19 @@ _axios.interceptors.response.use(
     // return response;
   },
   function (error) {
-    // Do something with response error
-    Notification.error({
-      title: '系统错误',
-      message: error.response.data.message
-    })
+    if(error.response.status == 404){
+      Notification.error({
+        title: '接口不存在',
+        message: error.response.data.message
+      })
+    }else{
+      // Do something with response error
+      Notification.error({
+        title: '系统错误',
+        message: error.response.data.message
+      })
+    }
+    
     
     isRefreshing = false
     return Promise.reject(error);

+ 16 - 5
src/utils/model/RichText/index.vue

@@ -24,7 +24,7 @@ export default {
   components: {},
   props:{
         value:{
-            type:String,
+            type:[String,Function],
             default:(value)=>{
                   return ""
             }
@@ -35,6 +35,10 @@ export default {
                 return "请输入"
             }
         },
+        autoFocus:{
+          type:Boolean,
+          default:false
+        },
         keys:{
           type:String,
           default:()=>{
@@ -64,7 +68,8 @@ export default {
           // }
         ],
         selectObj:null,
-        show:false
+        show:false,
+
     };
   },
   watch: {
@@ -90,6 +95,9 @@ export default {
       
     })
     window.onkeydown = this.checkKeyPress
+    if(this.autoFocus){
+      this.$refs.myEditBox.focus()
+    }
   },
   methods: {
 
@@ -105,9 +113,9 @@ export default {
       }
       //  var html = this.addTag(SplitHtmls,method)
       this.content = html
-
+      this.show = false
       this.$emit('input',html)
-      this.$emit('blur',html)
+      // this.$emit('blur',html)
       this.$emit('change',html)
       this.close()
     },
@@ -185,7 +193,7 @@ export default {
       }
       if (e.keyCode === 13) {
           e.preventDefault(); // 阻止默认操作
-          document.execCommand("insertHTML", false, "<br>"); // 插入换行
+          document.execCommand("insertHTML", false, "<br><br>"); // 插入换行
       }
     },
     //粘贴
@@ -389,6 +397,9 @@ async urlToBase64(imageUrl) {
       event.target.parentNode.focus();
     },
     saveValue(event){
+      if(this.show){
+        return 
+      }
         var a  = event.target.innerHTML
         this.$emit('input',a)
         this.$emit('blur',a)

+ 1 - 1
src/views/components/import/task/components/index.vue

@@ -16,7 +16,7 @@
             </template>
           </el-table-column>
           <el-table-column v-for="item in columnList.filter(item => !item.ifHidden)" :key="item.value" :label="item.name"
-            :prop="item.value" :min-width="item.value == 'percentage' ? '200' : '100'" align="center" sortable="custom">
+            :prop="item.value" :min-width="item.value == 'percentage' ? '200' : '100'" align="center" :sortable="item.ifSort?'custom':false">
             <template slot-scope="scope">
               <div v-if="item.value == 'type'"
                 v-html="$commonJS.getColumnData(scope.row, item, null, { data: importType })">

+ 1 - 1
src/views/event/components/view/table.vue

@@ -10,7 +10,7 @@
       </el-table-column>
 
       <el-table-column v-for="item in column.filter(item=>!item.ifHidden)" :render-header=" $commonJS.renderHeaderMethods" :key="item.value" :prop="item.value" :label="item.name" align="center"
-        sortable="custom">
+        :sortable="item.ifSort?'custom':false">
         <template slot-scope="scope">
           <div v-if="['name'].includes(item.value)">
             <el-link type="primary" @click="handleItem(scope.row, item.value)" >

+ 1 - 1
src/views/patentMining/components/view/commonTable.vue

@@ -11,7 +11,7 @@
       </el-table-column>
 
       <el-table-column v-for="item in column.filter(item => !item.ifHidden)" :render-header=" $commonJS.renderHeaderMethods" :key="item.value" :prop="item.value"
-        :label="item.name" align="center" sortable="custom">
+        :label="item.name" align="center" :sortable="item.ifSort?'custom':false">
         <template slot-scope="scope">
           <div v-if="['name'].includes(item.value)">
             <el-link type="primary" @click="handleItem(scope.row, item.value)" >

+ 1 - 1
src/views/project/components/view/table.vue

@@ -9,7 +9,7 @@
           </template>
         </el-table-column>
 
-        <el-table-column v-for="item in column.filter(item=>!item.ifHidden)" :render-header=" $commonJS.renderHeaderMethods" :key="item.value" :prop="item.value" :label="item.name" sortable="custom" align="center">
+        <el-table-column v-for="item in column.filter(item=>!item.ifHidden)" :render-header=" $commonJS.renderHeaderMethods" :key="item.value" :prop="item.value" :label="item.name" :sortable="item.ifSort?'custom':false" align="center">
           <template slot-scope="scope">
             <div v-if="['name'].includes(item.value)">
               <el-link type="primary" @click="handleClick(scope.row, item.value)">

+ 161 - 0
src/views/report/InvalidResponse/components/reasonsAndEvidence/common.js

@@ -0,0 +1,161 @@
+import { getTableHeight } from '@/views/components/mixins'
+export default {
+    components: {},
+    mixins:[getTableHeight],
+    props: {
+        projectId:{
+            default:null
+        },
+    },
+    data() {
+      return {
+          tableData:[],
+        //   column:column,
+          loading:false,
+          editField:'',
+          editMessage:''
+      };
+    },
+    watch: {},
+    computed: {
+        provisions(){
+            return this.$store.state.dictMessage.dictMessage.STATUTE || []
+        }
+      },
+    created() {},
+    mounted() {
+      this.init()
+    },
+    methods: {
+      async init(){
+         var params = {
+            id:this.projectId,
+            statueType:this.statueType
+         }
+         this.loading = true
+         this.$api.queryFinalInvalidStatues(params).then(res=>{
+            if(res.code == 200){
+                this.tableData = res.data
+
+                this.loading = false
+            }
+         }).catch(error=>{
+            this.tableData = [
+                {
+                    "id":1,
+                    invalidReason:"无效理由",      
+                    presentOpinions:"陈述意见" ,
+                    "rbDecision":"复审委意见" ,
+                    invalidStatue:{
+                        "id":1,
+                        "statuteId":"4", 
+                        "claimText":"权要内容",
+                        "courtOpinions1":"一审法院意见", 
+                        "court_opinions2":"二审法院意见 ", 
+                        
+                    }
+                }
+            ]
+            this.loading = false
+         })
+      },
+      synchronization(){
+        var params = {
+            id:this.projectId
+        }
+        this.$api.importFinalInvalidStatues(params).then(res=>{
+            if(res.code == 200){
+                this.init()
+            }
+        })
+      },
+      getData(row,field,value){
+        var fieldArray = this.getFieldArray(field)
+        let current = row;  
+        // 遍历路径中的每一部分,直到最后一个属性的父对象  
+        for (let i = 0; i < fieldArray.length - 1; i++) {  
+            // 确保当前对象有下一个属性,否则创建一个空对象(或你需要的任何默认值)  
+            if (!current.hasOwnProperty(fieldArray[i])) {  
+                current[fieldArray[i]] = {};  
+            }  
+            current = current[fieldArray[i]];  
+        }  
+        
+        // 给最后一个属性赋值  
+        current[fieldArray[fieldArray.length - 1]] = value;  
+      },
+      getColumnData(row,field){
+        const parts = this.getFieldArray(field) 
+        let current = row;  
+          
+        for (let i = 0; i < parts.length; i++) {  
+            if (current && current.hasOwnProperty(parts[i])) {  
+                current = current[parts[i]];  
+            } else {  
+                // 如果路径中的某一部分不存在,则返回undefined或自定义的默认值  
+                return ''; // 或者你可以返回null、默认值等  
+            }  
+        }  
+        if(parts[parts.length-1] == 'statuteId'){
+            var obj = this.provisions.find(item=>{
+                return item.value == current
+            })
+            if(obj){
+                return obj.simpleLabel
+            }
+        }
+        return current; 
+      },
+      getFieldArray(field){
+        return field.split('.')
+      },
+       //编辑
+       async edit(item,row){
+          if(item.field && row){
+            if(this.editField){
+                return
+            }
+              if(!item.editable){
+                  this.$message.warning('该栏位不可编辑')
+                  return
+              }
+              
+              if((row.invalidStatue.statuteId == '4' || row.invalidStatue.statuteId == '5') && item.field == 'invalidStatue.claimText'){
+                this.$message.warning('该栏位不可编辑')
+                return
+              }
+              this.editField = item.field + row.id
+              this.editMessage = this.getColumnData(row,item.field)
+              return
+          }
+      },
+      changeMessage(field,row,value){
+          if(value == this.editMessage){
+              this.editField = null
+              this.$message('没有发生修改')
+              return
+          }
+          this.$message('修改了')
+          
+          const parts = this.getFieldArray(field) 
+          var part = parts[parts.length-1]
+          var params = {
+              invalidStatueId:row.id,
+              proofGroupId:row.invalidStatue.id,
+              editField:part,   
+              fieldContent: value 
+          }
+          this.$api.editFinalInvalidStatues(params).then(res=>{
+            if(res.code == 200){
+                this.$message.success('编辑成功')
+                this.editField = null
+                this.getData(row,field,value)
+            }
+          }).catch(error=>{
+            
+          })
+          
+         
+      },
+    },
+  };

+ 119 - 83
src/views/report/InvalidResponse/components/reasonsAndEvidence/details_1.vue

@@ -2,21 +2,23 @@
 <template>
     <div class="height_100">
       <el-container>
-          <!-- <el-header>
+        <el-header>
               <div class="head">
-                  <el-button type="primary" size="small" v-if="isEdit" @click="cancel" class="margin-right_10">取消编辑</el-button>
-                  <el-button type="primary" size="small" v-if="isEdit" @click="save" class="margin-right_10">保存</el-button>
-                  <el-button type="primary" size="small" v-else @click="edit" class="margin-right_10">编辑</el-button>
+                  <el-button type="primary" size="small"  @click="synchronization" class="margin-right_10">同步</el-button>
               </div>
-          </el-header> -->
+          </el-header>
           <el-main v-DivHeight="getDivHeight" class="Evidence_details">
             <el-table :data="tableData" border v-loading="loading" :maxHeight="tableHeight" >
-                <el-table-column  v-for="item in column"
-                :render-header="$commonJS.renderHeaderMethods" :key="item.value" :prop="item.field" :label="item.name"
+                <el-table-column  v-for="item in column.filter(item=>!item.ifHidden)"
+                :render-header="$commonJS.renderHeaderMethods" :key="item.field" :prop="item.field" :label="item.label" :width="item.width || 'auto'"
                 align="center">
                     <template slot-scope="scope">
-                        <my-RichText v-model="scope.row[item.value]" v-if="isEdit"></my-RichText>
-                        <div class="text" v-else v-html="scope.row[item.value]"></div>
+                        <div>
+                            <!-- @input="(value)=>getData(scope.row,item.field,value)" -->
+                            <my-RichText :autoFocus="true" :value="getColumnData(scope.row,item.field)"  v-if="editField==(item.field+scope.row.id)" @blur="(value)=>changeMessage(item.field,scope.row,value)"></my-RichText>
+                            <div class="text" v-else v-html="getColumnData(scope.row,item.field)" @dblclick="edit(item,scope.row)"></div>
+                        </div>
+                        
                     </template>
                 </el-table-column>
             </el-table>
@@ -27,92 +29,126 @@
     </div>
 </template>
 <script>
-import { getTableHeight } from '@/views/components/mixins'
+import common from './common';
+const column = [
+    {
+        field:'invalidStatue.statuteId',
+        label:'法条',
+        editable:false,
+        width:100
+    },
+    {
+        field:'invalidStatue.claimText',
+        label:'权利要求',
+        editable:true
+    },
+    {
+        field:'invalidReason',
+        label:'具体理由',
+        editable:true
+    },
+    {
+        field:'presentOpinions',
+        label:'权利人答复',
+        editable:true
+    },
+    {
+        field:'rbDecision',
+        label:'合议组认定',
+        editable:true
+    },
+    {
+        field:'invalidStatue.courtOpinions1',
+        label:'一审',
+        editable:false,
+        width:100
+    },
+    {
+        field:'invalidStatue.courtOpinions2',
+        label:'二审',
+        editable:false,
+        width:100
+    }
+]
 export default {
   components: {},
-  mixins:[getTableHeight],
+  mixins:[common],
   props: {},
   data() {
     return {
-        tableData2:[],
-        tableData:[],
-        column:[],
-        loading:false,
-        isEdit:false,
+        // tableData:[],
+        column:column,
+        // loading:false,
+        // editField:'',
+        // editMessage:''
+        statueType:0
     };
   },
   watch: {},
   computed: {},
   created() {},
   mounted() {
-    this.init()
-  },
-  methods: {
-    async init(){
-        var str = localStorage.getItem('details_1')
-        if(str){
-            var data = JSON.parse(str)
-            this.column = data.column
-            this.tableData = data.tableData
-            return
-        }
-        var url = './非三性表格.html'
-        this.loading = true
-        await fetch(url).then(res =>  res.text() ).then(data => {
-            var html = data  
-            const parser = new DOMParser();  
-            // 解析包含 HTML 实体的字符串  
-            const doc = parser.parseFromString(html, "text/html");   
-            console.log(doc.body.getElementsByTagName('tr')) 
-            var trList =  doc.body.getElementsByTagName('tr')
-            var head = trList[0]
-            console.log(head.getElementsByTagName('td'))
-            var headList = head.getElementsByTagName('td')
-            var column = []
-            
-            for(var i = 0;i<headList.length;i++){
-                var obj = {
-                    value:headList[i].innerText,
-                    field:headList[i].innerText,
-                    name:headList[i].innerText
-                }
-                column.push(obj)
-            }
-            var tableData = []
-            for(var i = 1;i<trList.length;i++){
-                var bodyList = trList[i].getElementsByTagName('td')
-                var obj = {}
-                for(var j = 0;j<bodyList.length;j++){
-                    obj[headList[j].innerText] = bodyList[j].innerHTML
-                }
-                tableData.push(obj)
-            }
-            this.column = column
-            this.tableData = tableData
-            this.loading = false
-        })
-    },
-     //编辑
-     async edit(){
-        this.tableData2 = JSON.parse(JSON.stringify(this.tableData))
-        this.isEdit = true
-    },
-    //保存
-    save(){
-        var data = {
-            column:this.column,
-            tableData:this.tableData
-        }
-        // console.log(JSON.stringify(data))
-        localStorage.setItem('details_1',JSON.stringify(data))
-        this.isEdit = false
-    },
-    //取消编辑
-    cancel(){
-        this.tableData = JSON.parse(JSON.stringify(this.tableData2))
-        this.isEdit = false
-    },
+    // this.init()
   },
+//   methods: {
+//     async init(){
+//         var url = './非三性表格.html'
+//         this.loading = true
+//         await fetch(url).then(res =>  res.text() ).then(data => {
+//             var html = data  
+//             const parser = new DOMParser();  
+//             // 解析包含 HTML 实体的字符串  
+//             const doc = parser.parseFromString(html, "text/html");  
+//             var trList =  doc.body.getElementsByTagName('tr')
+//             var head = trList[0]
+//             var headList = head.getElementsByTagName('td')
+
+//             var tableData = []
+//             for(var i = 1;i<trList.length;i++){
+//                 var bodyList = trList[i].getElementsByTagName('td')
+//                 var obj = {
+//                     id:i
+//                 }
+//                 for(var j = 0;j<bodyList.length;j++){
+//                     obj[headList[j].innerText] = bodyList[j].innerHTML
+//                 }
+//                 tableData.push(obj)
+//             }
+//             this.tableData = tableData
+//             this.loading = false
+//         })
+//     },
+//      //编辑
+//      async edit(item,row){
+//         if(item.field && row){
+//             if(!item.editable){
+//                 this.$message.warning('该栏位不可编辑')
+//                 return
+//             }
+//             if(this.editField){
+//                 return
+//             }
+//             this.editField = item.field + row.id
+//             this.editMessage = row[item.field]
+//             return
+//         }
+//     },
+//     changeMessage(field,row,value){
+       
+//         if(value == this.editMessage){
+//             this.editField = null
+//             this.$message('没有发生修改')
+//             return
+//         }
+//         var params = {
+//             editField:field,   
+//             fieldContent: value 
+//         }
+        
+//         // this.editField = null
+//         this.$message('修改了')
+//     },
+//   },
 };
 </script>
 <style lang="scss" scoped>

+ 136 - 89
src/views/report/InvalidResponse/components/reasonsAndEvidence/details_2.vue

@@ -2,21 +2,22 @@
 <template>
     <div class="height_100">
       <el-container>
-          <!-- <el-header>
+        <el-header>
               <div class="head">
-                  <el-button type="primary" size="small" v-if="isEdit" @click="cancel" class="margin-right_10">取消编辑</el-button>
-                  <el-button type="primary" size="small" v-if="isEdit" @click="save" class="margin-right_10">保存</el-button>
-                  <el-button type="primary" size="small" v-else @click="edit" class="margin-right_10">编辑</el-button>
+                  <el-button type="primary" size="small"  @click="synchronization" class="margin-right_10">同步</el-button>
               </div>
-          </el-header> -->
+          </el-header>
           <el-main v-DivHeight="getDivHeight" class="Evidence_details">
             <el-table :data="tableData" border v-loading="loading" :maxHeight="tableHeight">
-                <el-table-column  v-for="item in column"
-                :render-header="$commonJS.renderHeaderMethods" :key="item.value" :prop="item.field" :label="item.name"
+                <el-table-column  v-for="item in column.filter(item=>!item.ifHidden)"
+                :render-header="$commonJS.renderHeaderMethods" :key="item.field" :prop="item.field" :label="item.label" :width="item.width || 'auto'"
                 align="center">
                     <template slot-scope="scope">
-                        <my-RichText v-model="scope.row[item.value]" v-if="isEdit"></my-RichText>
-                        <div class="text" v-else v-html="scope.row[item.value]"></div>
+                        <div>
+                            <!-- @input="(value)=>getData(scope.row,item.field,value)" -->
+                            <my-RichText :autoFocus="true" :value="getColumnData(scope.row,item.field)"  v-if="editField==(item.field+scope.row.id)" @blur="(value)=>changeMessage(item.field,scope.row,value)"></my-RichText>
+                            <div class="text" v-else v-html="getColumnData(scope.row,item.field)" @dblclick="edit(item,scope.row)"></div>
+                        </div>
                     </template>
                 </el-table-column>
             </el-table>
@@ -27,98 +28,144 @@
     </div>
 </template>
 <script>
-import { getTableHeight } from '@/views/components/mixins'
+import common from './common';
+const column = [
+    {
+        field:'invalidStatue.statuteId',
+        label:'法条',
+        editable:false,
+        width:100
+    },
+    {
+        field:'invalidStatue.claimText',
+        label:'权利要求',
+        editable:true
+    },
+    {
+        field:'invalidReason',
+        label:'证据公开',
+        editable:true
+    },
+    {
+        field:'presentOpinions',
+        label:'权利人答复',
+        editable:true
+    },
+    {
+        field:'rbDecision',
+        label:'合议组认定',
+        editable:true
+    },
+    {
+        field:'invalidStatue.courtOpinions1',
+        label:'一审',
+        editable:false,
+        width:100
+    },
+    {
+        field:'invalidStatue.courtOpinions2',
+        label:'二审',
+        editable:false,
+        width:100
+    }
+]
 export default {
   components: {},
-  mixins:[getTableHeight],
+  mixins:[common],  
   props: {},
   data() {
     return {
-        tableData2:[],
-        tableData:[],
-        column:[],
-        loading:false,
-        isEdit:false,
+        // tableData:[],
+        column:column,
+        // loading:false,
+        // editField:'',
+        // editMessage:'',
+        statueType:1
     };
   },
   watch: {},
   computed: {},
   created() {},
   mounted() {
-    this.init()
-  },
-  methods: {
-    async init(){
-        // if(this.str){
-        //     var data = JSON.parse(this.str)
-        //     this.column = data.column
-        //     this.tableData = data.tableData
-        //     return
-        // }
-        var str = localStorage.getItem('details_2')
-        if(str){
-            var data = JSON.parse(str)
-            this.column = data.column
-            this.tableData = data.tableData
-            return
-        }
-        var url = './三性表格.html'
-        this.loading = true
-        await fetch(url).then(res =>  res.text() ).then(data => {
-            var html = data  
-            const parser = new DOMParser();  
-            // 解析包含 HTML 实体的字符串  
-            const doc = parser.parseFromString(html, "text/html");   
-            console.log(doc.body.getElementsByTagName('tr')) 
-            var trList =  doc.body.getElementsByTagName('tr')
-            var head = trList[0]
-            console.log(head.getElementsByTagName('td'))
-            var headList = head.getElementsByTagName('td')
-            var column = []
-            
-            for(var i = 0;i<headList.length;i++){
-                var obj = {
-                    value:headList[i].innerText,
-                    field:headList[i].innerText,
-                    name:headList[i].innerText
-                }
-                column.push(obj)
-            }
-            var tableData = []
-            for(var i = 1;i<trList.length;i++){
-                var bodyList = trList[i].getElementsByTagName('td')
-                var obj = {}
-                for(var j = 0;j<bodyList.length;j++){
-                    obj[headList[j].innerText] = bodyList[j].innerHTML
-                }
-                tableData.push(obj)
-            }
-            this.column = column
-            this.tableData = tableData
-            this.loading = false
-        })
-    },
-     //编辑
-     async edit(){
-        this.tableData2 = JSON.parse(JSON.stringify(this.tableData))
-        this.isEdit = true
-    },
-    //保存
-    save(){
-        var data = {
-            column:this.column,
-            tableData:this.tableData
-        }
-        // console.log(JSON.stringify(data))
-        localStorage.setItem('details_1',JSON.stringify(data))
-        this.isEdit = false
-    },
-    //取消编辑
-    cancel(){
-        this.tableData = JSON.parse(JSON.stringify(this.tableData2))
-        this.isEdit = false
-    },
+    // this.init()
   },
+//   methods: {
+//     async init(){
+//         var url = './三性表格.html'
+//         this.loading = true
+//         await fetch(url).then(res =>  res.text() ).then(data => {
+//             var html = data  
+//             const parser = new DOMParser();  
+//             // 解析包含 HTML 实体的字符串  
+//             const doc = parser.parseFromString(html, "text/html"); 
+//             var trList =  doc.body.getElementsByTagName('tr')
+//             var head = trList[0]
+//             var headList = head.getElementsByTagName('td')
+//             var sign = true
+//             var num = 0
+//             var tableData = []
+//             for(var i = 1;i<trList.length;i++){
+//                 var bodyList = trList[i].getElementsByTagName('td')
+//                 var obj = {
+//                     id:i
+//                 }
+//                 for(var j = 0;j<bodyList.length;j++){
+//                     obj[headList[j].innerText] = bodyList[j].innerHTML
+//                     if(sign){
+//                        if(headList[j].innerText == '一审'){
+//                             num = 1
+//                         }
+//                         if(headList[j].innerText == '二审'){
+//                             num = 2
+//                         } 
+//                     }
+                    
+//                 }
+//                 if(sign){
+//                     if(num == 0){
+//                         var arr = this.column.filter(item=>{
+//                             return item.field == '一审' || item.field == '二审'
+//                         })
+//                         arr.forEach(item=>{
+//                             item.ifHidden = true
+//                         })
+//                     }
+//                     else if(num == 1){
+//                         this.column.find(item=>{
+//                             return item.field == '二审'
+//                         }).ifHidden = true
+//                     }  
+//                 }
+                
+//                 sign = false
+//                 tableData.push(obj)
+//             }
+//             this.tableData = tableData
+//             this.loading = false
+//         })
+//     },
+//      //编辑
+//      async edit(item,row){
+//         if(item.field && row){
+//             if(!item.editable){
+//                 this.$message.warning('该栏位不可编辑')
+//                 return
+//             }
+//             this.editField = item.field + row.id
+//             this.editMessage = row[item.field]
+//             return
+//         }
+//     },
+//     changeMessage(field,row,value){
+//         this.editField = null
+//         if(value == this.editMessage){
+//             this.$message('没有发生修改')
+//             return
+//         }
+//         this.$message('修改了')
+//     },
+
+//   },
 };
 </script>
 <style lang="scss" scoped>

+ 26 - 1
src/views/report/components/details/components/basicMessage.vue

@@ -69,6 +69,31 @@
               </el-form-item>
             </el-col>
           </el-row>
+
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="案件阶段" prop="caseStage">
+                <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'caseStage' })"></div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="国知局受理年份" prop="acceptYear">
+                <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'acceptYear' })"></div>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="请求人代理所" prop="applicantAgency">
+                <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'applicantAgency' })"></div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="专利权人代理所" prop="rightHolderAgency">
+                <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'rightHolderAgency' })"></div>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
       </template>
       <el-form-item label="是否完成:">
@@ -76,7 +101,7 @@
       </el-form-item>
       <template v-if="form.status == 3">
         <div>
-          <el-form-item label="核心结论:">
+          <el-form-item label="报告结果:">
             <div class="box1" v-html="$commonJS.getColumnData(form, { type: 'Array', value: 'cronNames' })"></div>
           </el-form-item>
           <el-form-item label="结论论述:">

+ 57 - 30
src/views/report/components/details/components/basicMessage_official.vue

@@ -28,6 +28,11 @@
                             <el-col :span="12">
                                 <el-form-item label="专利名称:">
                                     <div class="box1" v-html="getView(patentMessage, 'title')"></div>
+                                    <el-link v-if="haveTranslatedText(patentMessage, 'title')" type="primary" @click.native="handleChange(patentMessage, 'title')"
+                                        style="margin-left: 10px;margin-top: -3px;">
+                                        <span v-if="!patentMessage.change">切换译文</span>
+                                        <span v-else>切换原文</span>
+                                    </el-link>
                                 </el-form-item>
                             </el-col>
                         </el-row>
@@ -46,18 +51,39 @@
                             <el-col :span="12" v-if="patentMessage.simpleStatus">
                                 <el-form-item label="法律状态:">
                                     <div class="box1" v-html="simpleStatus[patentMessage.simpleStatus]"></div>
+                                    
                                 </el-form-item>
                             </el-col>
                         </el-row>
-                        <el-form-item label="专利附图:" v-if="patentMessage.pictureGuid">
-                            <div style="height: 120px;" class="picture">
-                                <el-image  :src="$commonJS.checkViewer(patentMessage.pictureGuid)" :preview-src-list="[$commonJS.checkViewer(patentMessage.pictureGuid)]" style="height:120px">
-                                    <div slot="error" class="image-slot">
-                                        <img src="https://www.patentstar.com.cn/img/Common/nopic.jpg" alt="" >
+                        <el-row>
+                            <el-col :span="24">
+                                <template>
+                                    <div>
+                                        <el-form-item label="专利附图:" v-if="patentMessage.pictureGuid">
+                                            <div style="height: 120px;" class="picture">
+                                                <el-image  :src="$commonJS.checkViewer(patentMessage.pictureGuid)" :preview-src-list="[$commonJS.checkViewer(patentMessage.pictureGuid)]" style="height:120px">
+                                                    <div slot="error" class="image-slot">
+                                                        <img src="https://www.patentstar.com.cn/img/Common/nopic.jpg" alt="" >
+                                                    </div>
+                                                </el-image>
+                                            </div>
+                                        </el-form-item>
                                     </div>
-                                </el-image>
-                            </div>
-                        </el-form-item>
+                                </template>
+                            </el-col>
+                            <el-col :span="24" v-if="patentMessage.abstractStr">
+                                <el-form-item label="摘要:">
+                                    <div class="box1" v-html="getView(patentMessage, 'abstractStr','摘要'+(patentMessage.change2?'译文':'原文'))"></div>
+                                    <span v-if="haveTranslatedText(patentMessage, 'abstractStr')">
+                                        <el-link type="primary" @click.native="handleChange(patentMessage, 'abstractStr')" >
+                                        <span v-if="!patentMessage.change2">切换译文</span>
+                                        <span v-else>切换原文</span>
+                                        </el-link>
+                                    </span>
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                        
                     </el-form>
                 </el-card>
             </div>
@@ -150,20 +176,20 @@
                                         </el-form-item>
                                     </el-col>
                                     <el-col :span="12">
-                                        <el-form-item label="国知局受理年份" prop="acceptanceYear">
-                                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'acceptanceYear' })"></div>
+                                        <el-form-item label="国知局受理年份" prop="acceptYear">
+                                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'acceptYear' })"></div>
                                         </el-form-item>
                                     </el-col>
                                 </el-row>
                                 <el-row>
                                     <el-col :span="12">
-                                        <el-form-item label="请求人代理所" prop="requestorAgency">
-                                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'requestorAgency' })"></div>
+                                        <el-form-item label="请求人代理所" prop="applicantAgency">
+                                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'applicantAgency' })"></div>
                                         </el-form-item>
                                     </el-col>
                                     <el-col :span="12">
-                                        <el-form-item label="专利权人代理所" prop="holderAgency">
-                                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'holderAgency' })"></div>
+                                        <el-form-item label="专利权人代理所" prop="rightHolderAgency">
+                                            <div class="box1" v-html="$commonJS.getColumnData(reportMessage, { type: 'String', value: 'rightHolderAgency' })"></div>
                                         </el-form-item>
                                     </el-col>
                                 </el-row>
@@ -369,25 +395,26 @@ export default {
             return item.value == value
         })
         if(obj){
-            var label = obj.label
-            const regex = /\b(?![\({\[])\d+(?![\)}\]])\b/g
-            const matches = [...label.matchAll(regex)]
-            var arr = matches.map(match => Number(match[0]))
+            return obj.simpleLabel
+            // var label = obj.label
+            // const regex = /\b(?![\({\[])\d+(?![\)}\]])\b/g
+            // const matches = [...label.matchAll(regex)]
+            // var arr = matches.map(match => Number(match[0]))
 
-            // const results = label.match(/\((.*?)\)|\((.*?)\)/)
-            // console.log(results)
-            // const text = results ? `(${results[1]})` : ''
+            // // const results = label.match(/\((.*?)\)|\((.*?)\)/)
+            // // console.log(results)
+            // // const text = results ? `(${results[1]})` : ''
 
-            var newLabel = this.getTextInsideParentheses(label)
-            const text = newLabel.length>0?`(${newLabel[newLabel.length -1]})`:''
+            // var newLabel = this.getTextInsideParentheses(label)
+            // const text = newLabel.length>0?`(${newLabel[newLabel.length -1]})`:''
 
-            var zimu = ''
-            if(label.trim()[0] == '法'){
-                zimu = 'A'
-            }else{
-                zimu = 'R'
-            }
-            return `${zimu}${arr.join('.')}${text}`
+            // var zimu = ''
+            // if(label.trim()[0] == '法'){
+            //     zimu = 'A'
+            // }else{
+            //     zimu = 'R'
+            // }
+            // return `${zimu}${arr.join('.')}${text}`
         }
         return ''
     },

+ 10 - 10
src/views/report/components/dialog/addAndEditReport.vue

@@ -64,18 +64,18 @@
             <el-row>
               <el-col :span="12">
                 <el-form-item label="案件阶段" prop="caseStage">
-                  <el-select v-model="form.caseStage" placeholder="请选择案件阶段" style="width:100%">
+                  <el-select v-model="form.caseStage" placeholder="请选择案件阶段" clearable  style="width:100%">
                     <el-option label="无效" value="无效"></el-option>
                     <el-option label="行诉状态" value="行诉状态"></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="国知局受理年份" prop="acceptanceYear">
+                <el-form-item label="国知局受理年份" prop="acceptYear">
                   <el-date-picker
                     style="width:100%"
-                    value-format="yyyy-MM-dd"
-                    v-model="form.acceptanceYear"
+                    value-format="yyyy"
+                    v-model="form.acceptYear"
                     type="year"
                     placeholder="请选择国知局受理年份">
                   </el-date-picker>
@@ -84,13 +84,13 @@
             </el-row>
             <el-row>
               <el-col :span="12">
-                <el-form-item label="请求人代理所" prop="requestorAgency">
-                  <el-input v-model="form.requestorAgency" autocomplete="off" placeholder="请输入请求人代理所"></el-input>
+                <el-form-item label="请求人代理所" prop="applicantAgency">
+                  <el-input v-model="form.applicantAgency" autocomplete="off" placeholder="请输入请求人代理所"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="专利权人代理所" prop="holderAgency">
-                  <el-input v-model="form.holderAgency" autocomplete="off" placeholder="请输入专利权人代理所"></el-input>
+                <el-form-item label="专利权人代理所" prop="rightHolderAgency">
+                  <el-input v-model="form.rightHolderAgency" autocomplete="off" placeholder="请输入专利权人代理所"></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -388,7 +388,7 @@ export default {
       load_text: '加载中',
       //应用场景
       commonData: {},
-      //核心结论
+      //核心结论(报告结果)
       conclusion: [],
       //部门数据
       departmentList: [],
@@ -396,7 +396,7 @@ export default {
       copyList: [],
       //上传文件列表
       files: [],
-      //核心结论类型字典
+      //核心结论(报告结果)类型字典
       reportAsDicItem: {
         "0": "INVALID_ASSESS",
         "1": "THIRD_ASSESS",

+ 4 - 4
src/views/report/components/dialog/cronConclusion.vue

@@ -1,8 +1,8 @@
 <template>
     <div>
-        <el-dialog width="800px" title="添加核心结论" :visible.sync="showDialog" :before-close="resetForm">
+        <el-dialog width="800px" title="添加报告结果" :visible.sync="showDialog" :before-close="resetForm">
             <el-form :model="form" label-width="120px">
-                <el-form-item label="核心结论">
+                <el-form-item label="报告结果">
                 <el-checkbox-group v-model="form.cronIds">
                     <el-checkbox v-for="item in conclusion" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
                 </el-checkbox-group>
@@ -126,12 +126,12 @@ export default {
           let formData = this.form
             this.$api.updateReportProject(formData).then(response=>{
                 if(response.code == 200){
-                    this.$message.success('核心结论添加成功')
+                    this.$message.success('报告结果添加成功')
                     this.resetForm()
                     this.$emit('save',true)
                 }
             }).catch(error=>{
-                this.$message.error('核心结论添加失败')
+                this.$message.error('报告结果添加失败')
             })
         },
         //关闭弹窗

+ 11 - 260
src/views/report/components/index.vue

@@ -48,7 +48,7 @@
       </el-footer>
     </el-container>
     <CreateReport ref="ReportForm" @getList="isGetList"></CreateReport>
-    <fields ref="field" type="reportProject" @getFieldList="getFieldList"></fields>
+    <fields ref="field" :type="type" @getFieldList="getFieldList"></fields>
     <Field-Drawer ref="FieldDrawer"></Field-Drawer>
     <reportFileDrawer ref="reportFileDrawer"></reportFileDrawer>
     <cronConclusion ref="cronConclusion" @save="getList"></cronConclusion>
@@ -154,6 +154,7 @@ export default {
       // 子组件新增、编辑报告成功发送的字符串
       handleMessage: '',
       showView: false,
+      type:'reportProject'
     };
   },
   watch: {},
@@ -237,14 +238,6 @@ export default {
   async mounted() {
     // 获取table栏位
     this.columnList = await this.$commonJS.getCustomField('reportProject')
-    this.columnList.forEach(item=>{
-            if(item.name == '核心结论'){
-              item.name = '报告结果'
-            }
-            if(item.name == '结论论述'){
-              item.name = '结果论述'
-            }
-          })
     this.columnType.columnList1 = this.columnList
     // 获取搜索/分组
     await this.getColumn()
@@ -254,247 +247,18 @@ export default {
   },
   methods: {
     //标签页点击
-    tabChange(name){
+    async tabChange(name){
       var type = Number(name)
       switch(type){
         case 1:
          this.fixedSearch={}
+         this.type = 'reportProject'
           break;
         case 2:
+          this.type = 'invalidReportProject'
           if(!this.columnType['columnList' + 2]){
-            this.columnType.columnList2 = [
-              {
-                    "name": "报告名称",
-                    "type": "String",
-                    "value": "name",
-                    "field": "name",
-                    "order": 0,
-                    "ifShow": true,
-                    "ifHidden": false,
-                    "defaultHidden": false
-              },
-              {
-                    "name": "专利号",
-                    "type": "String",
-                    "value": "signPatentNo",
-                    "field": "signPatentNo",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "专利名称",
-                    "type": "String",
-                    "value": "inventionName",
-                    "field": "inventionName",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "无效案号",
-                    "type": "String",
-                    "value": "caseNumber",
-                    "field": "caseNumber",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "案件阶段",
-                    "type": "String",
-                    "value": "caseStage",
-                    "field": "caseStage",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "报告结果",
-                    "type": "String",
-                    "value": "conclusion",
-                    "field": "conclusion",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "请求人",
-                    "type": "String",
-                    "value": "invalidApplication",
-                    "field": "invalidApplication",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "专利权人",
-                    "type": "String",
-                    "value": "invalidApplication1",
-                    "field": "invalidApplication1",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "国知局受理年份",
-                    "type": "String",
-                    "value": "acceptanceYear",
-                    "field": "acceptanceYear",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": false
-                },
-                {
-                    "name": "请求人代理所",
-                    "type": "String",
-                    "value": "requestorAgency",
-                    "field": "requestorAgency",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "专利权人代理所",
-                    "type": "String",
-                    "value": "holderAgency",
-                    "field": "holderAgency",
-                    "order": 2,
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-
-                {
-                    "name": "负责人名称",
-                    "type": "String",
-                    "value": "headName",
-                    "field": "headName",
-                    "order": 1,
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                
-                {
-                    "name": "报告类型",
-                    "type": "String",
-                    "value": "reportTypeName",
-                    "field": "reportTypeName",
-                    "order": 3,
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "报告状态",
-                    "type": "String",
-                    "value": "statusName",
-                    "field": "statusName",
-                    "order": 4,
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "委托方",
-                    "type": "String",
-                    "value": "entrustName",
-                    "field": "entrustName",
-                    "order": 5,
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                {
-                    "name": "产品/技术",
-                    "type": "String",
-                    "value": "productOrTech",
-                    "field": "productOrTech",
-                    "order": 7,
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                {
-                    "name": "创建时间",
-                    "type": "DateTime",
-                    "value": "createTime",
-                    "field": "createTime",
-                    "order": 8,
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "创建人",
-                    "type": "String",
-                    "value": "createName",
-                    "field": "createName",
-                    "order": 9,
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                {
-                    "name": "负责部门",
-                    "type": "String",
-                    "value": "departmentName",
-                    "field": "departmentName",
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                {
-                    "name": "结论论述",
-                    "type": "Integer",
-                    "value": "cronDescription",
-                    "field": "cronDescription",
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "描述",
-                    "type": "String",
-                    "value": "description",
-                    "field": "description",
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "相关事件",
-                    "type": "Array",
-                    "value": "eventNames",
-                    "field": "eventNames",
-                    "ifShow": true,
-                    "ifHidden": true
-                },
-                {
-                    "name": "内部卷号",
-                    "type": "String",
-                    "value": "volumeNumber",
-                    "field": "volumeNumber",
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                {
-                    "name": "调查类型",
-                    "type": "Array",
-                    "value": "matterNames",
-                    "field": "matterNames",
-                    "ifShow": true,
-                    "ifHidden": true,
-                    "defaultHidden": true
-                },
-                {
-                    "name": "应用场景",
-                    "type": "Array",
-                    "value": "scenarioNames",
-                    "field": "scenarioNames",
-                    "ifShow": true,
-                    "ifHidden": true
-                }
-            ]
-            this.columnType.columnList2.forEach((item,index)=>{
-              item.order = index
-            })
+            //获取显示栏位
+            this.columnType.columnList2 = await this.$commonJS.getCustomField('invalidReportProject')
           }
           this.fixedSearch = {
             reportType:[7]
@@ -530,14 +294,6 @@ export default {
       await this.$api.getParamsCommon(params).then(res => {
         if (res.code == 200) {
           let conditionDTOList = JSON.parse(JSON.stringify(res.data[0].conditionDTOList))
-          conditionDTOList.forEach(item=>{
-            if(item.name == '核心结论'){
-              item.name = '报告结果'
-            }
-            if(item.name == '结论论述'){
-              item.name = '结果论述'
-            }
-          })
           // 分组字段
           this.groupingOption = this.$commonJS.getField(conditionDTOList, (u) => u.ifGroup == true, {
             name: 'name',
@@ -549,13 +305,6 @@ export default {
             value: 'value',
             type: 'type',
           })
-          this.searchFiled.push(
-            {
-                "label": "证据库",
-                "type": "String",
-                "field": "evidence"
-            }
-          )
           //先获取报告类型,报告状态,相关事件,再为报告类型,报告状态,相关事件添加选项
           let arr = ['reportType', 'status', 'cronNames','scenarioNames','matterNames']
           arr.forEach(item => {
@@ -667,11 +416,13 @@ export default {
         searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
         orderDTOList: this.sort,//排序信息
       }
+      params.ifInvalidReport = 0
       if(this.fixedSearch.reportType){
+        params.ifInvalidReport = 1
         if(params.searchQuery){
-          params.searchQuery = params.searchQuery + ' and reportType=7'
+          params.searchQuery = params.searchQuery + ' and reportType=(' + this.fixedSearch.reportType.join(' OR ') + ')'
         }else{
-          params.searchQuery ='reportType=7'
+          params.searchQuery ='reportType=(' + this.fixedSearch.reportType.join(' OR ') + ')'
         }
         
       }

+ 3 - 1
src/views/report/components/view/table.vue

@@ -19,8 +19,10 @@
               </template>
             </el-table-column>
 
-            <el-table-column v-for="item in column.filter(item=>!item.ifHidden)" :key="item.value" :prop="item.value" :render-header=" $commonJS.renderHeaderMethods" :label="item.name" sortable="custom" align="center">
+            <el-table-column v-for="item in column.filter(item=>!item.ifHidden)" :key="item.value" :prop="item.value" :render-header=" $commonJS.renderHeaderMethods" :label="item.name" :sortable="item.ifSort?'custom':false" align="center">
               <template slot-scope="scope">
+               <div>
+               </div>
                 <div v-if="['name'].includes(item.value)">
                   <el-link type="primary" @click="handleItem(scope.row,item.value)">
                     <span  v-html="$commonJS.getColumnData(scope.row,item)"></span>

+ 1 - 1
src/views/task/components/index.vue

@@ -21,7 +21,7 @@
           </el-table-column>
 
           <el-table-column v-for="item in columnList" :key="item.value" :prop="item.value"
-            :render-header="$commonJS.renderHeaderMethods" :label="item.name" sortable="custom" align="center">
+            :render-header="$commonJS.renderHeaderMethods" :label="item.name" :sortable="item.ifSort?'custom':false" align="center">
             <template slot-scope="scope">
               <div v-if="['name'].includes(item.value)">
                 <!-- <el-link @click="handleItem(scope.row, item.value)"> -->