Browse Source

专利详情添加加载动画,检索记录添加路由

zhuliu 1 year ago
parent
commit
3acd82183c

+ 10 - 0
src/router/index.js

@@ -394,6 +394,16 @@ const routes = [
             },
             component: () => import('@/views/report/components/reportFile/index.vue'),
           },
+          //检索记录
+          {
+            path: '/searchRecord',
+            name: 'searchRecord',
+            meta: {
+              title: '检索记录',
+              sign: 'searchRecord',
+            },
+            component: () => import('@/views/report/analysisAndOpinion/components/searchRecords/index.vue'),
+          },
         ],
       },
       //任务模块

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

@@ -278,6 +278,7 @@ export default {
     changeGrouping(val) {
       if (val!='') {
         this.viewSelected='mergeTable'
+        this.viewSelectedBtn='Table'
       } else {
         this.viewSelected='Table'
       }
@@ -287,7 +288,6 @@ export default {
     },
     // 调用分组查询的方法
     getGrouping() {
-      console.log(this.sort)
       let params = {
         ...this.queryParams,//分页信息
         searchQuery:this.$commonJS.objectToString(this.searchOption || {}),//检索条件

+ 6 - 1
src/views/layout/components/contextMenu.vue

@@ -36,7 +36,12 @@ export default {
   methods: {
     //查看图片
     checkImg(e) {
-      this.imgSrc = e.target.src
+      if(e.target){
+        this.imgSrc = e.target.src
+      }else{
+        this.imgSrc = e
+      }
+      
       this.showImg = true
     },
     //关闭图片弹窗

+ 1 - 0
src/views/patentMining/components/viewIndex.vue

@@ -334,6 +334,7 @@ export default {
     onChange(val) {
       if (val != '') {
         this.viewType = 'mergeTable'
+        this.viewTypeBtn = 'commonTable'
       } else {
         this.viewType = 'commonTable'
       }

+ 6 - 2
src/views/product/components/details/components/index.vue

@@ -12,7 +12,7 @@
             
         </el-header>
         <el-main>
-            <component :is='activeName' :type="type" :id="id" :name="name" :licenseRate="licenseRate" :categoryId="categoryId"></component>
+            <component :is='activeName' :type="type" :id="id" :productId="id" :productName="name" :name="name" :licenseRate="licenseRate" :categoryId="categoryId"></component>
         </el-main>
       </el-container>
     </div>
@@ -24,12 +24,16 @@ import basicMessage from './basicMessage.vue';
 import chart from '../../echarts/components/echarts.vue'
 import marketAndTrend from './marketAndTrend.vue';
 import framework from '../../framework/viewIndex.vue'
+import jsMind from '../../jsMind/components/mind.vue'
+import RelatedPatents from '../../commodity/commodity.vue'
   export default {
     components: {
         basicMessage,
         chart,
         marketAndTrend,
-        framework
+        framework,
+        jsMind,
+        RelatedPatents
     },
     props: {
         type:{

+ 2 - 2
src/views/product/components/echarts/components/MultipleLine/index.vue

@@ -1,6 +1,6 @@
 <template>
-  <div style="margin-top:20px" >
-    <div style="display:flex;justify-content: flex-end;cursor: pointer;margin-bottom: -27px;margin-right:8px" :style="{ width: widths }" v-if="show">
+  <div style="margin-top:20px" v-if="show">
+    <div style="display:flex;justify-content: flex-end;cursor: pointer;margin-bottom: -27px;margin-right:8px" :style="{ width: widths }" >
       <div class="set2">
         <div>
           <i class="el-icon-refresh" style="font-size:18px;" @click="review"></i>

+ 2 - 0
src/views/project/index.vue

@@ -317,7 +317,9 @@ export default {
     onChange(val) {
       if (val != '') {
         this.viewType = 'mergeTable'
+        this.queryShowType = '0'
       } else {
+        this.queryShowType = '0'
         this.viewType = 'Table'
       }
       this.group = val

+ 3 - 1
src/views/project/patentDetails/components/patentDetails.vue

@@ -405,8 +405,10 @@ export default {
           this.loading = false
           if (this.outside) {
             this.getData()
+          }else{
+            this.getPatentField()
           }
-          this.getPatentField()
+          
         }
       }).catch(error => {
         this.loading = false

+ 20 - 10
src/views/project/patentDetails/components/patentMessage/PatentFamily.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="patent-articles-patent-family height_100">
     <el-container>
-      <el-header>
-        <el-form :inline="true" style="" v-if="!outside">
+      <el-header v-if="!outside">
+        <el-form :inline="true" style="" >
           <el-form-item label="同族类型">
             <el-select v-model="type" size="small" @change="onChange">
               <el-option label="简单同族" value="simple"></el-option>
@@ -85,7 +85,6 @@ export default {
         pageNum: 1,
         pageSize: 10,
       },
-      loading: false,
       tableData2: [],
       total: 0
     }
@@ -114,8 +113,17 @@ export default {
         type: this.type,//同族类型
       }
       this.$api.selectKinByPatentNo(params).then(response => {
-        this.tableData2 = response.data.data
-        this.total = response.data.total
+        if(response.data.data){
+            this.tableData2 = response.data.data
+            this.total = response.data.total
+          }else{
+            this.tableData2 = []
+            this.total = 0
+          }
+        this.loading = false
+      }).catch(error=>{
+        this.tableData2 = []
+        this.total = 0
         this.loading = false
       })
     },
@@ -128,11 +136,13 @@ export default {
       }
       this.$api.queryExternalFamily(params).then(response => {
         if (response.code == 200) {
-          this.tableData2 = response.data.data
-          // this.tableData2.forEach(item => {
-          //   this.getFamilyImage(item)
-          // })
-          this.total = response.data.total
+          if(response.data.data){
+            this.tableData2 = response.data.data
+            this.total = response.data.total
+          }else{
+            this.tableData2 = []
+            this.total = 0
+          }
           this.loading = false
         }
       }).catch(error => {

+ 14 - 0
src/views/project/patentDetails/components/patentMessage/PatentImage.vue

@@ -82,9 +82,13 @@ export default {
   methods: {
     // 获得外部的附图
     getData() {
+      if(this.patent.image && this.patent.image.length>0){
+        return false
+      }
       var params = {
         appNo: this.patent.rowApplicationNo,
       }
+      this.loading = true
       this.$api.getExternalFigure(params).then(response => {
         if (response.code == 200) {
           if (response.data.length>0) {
@@ -94,14 +98,21 @@ export default {
             this.$set(this.patent, 'image', [])
             this.$set(this, 'srcList', [])
           }
+          this.loading = false
         }
+      }).catch(error=>{
+        this.loading = false
       })
     },
     // 获取内部的附图
     refresh() {
+      if(this.patent.image && this.patent.image.length>0){
+        return false
+      }
       var params = {
         appNo: this.patent.appNo,
       }
+      this.loading = true
       this.$api.getFigure(params).then(response => {
         if (response.code == 200) {
           if (response.data.length>0) {
@@ -114,7 +125,10 @@ export default {
             this.$set(this.patent, 'image', [])
             this.$set(this, 'srcList', [])
           }
+          this.loading = false
         }
+      }).catch(error=>{
+        this.loading = false
       })
     },
     changeWidth() {

+ 7 - 0
src/views/project/patentDetails/components/patentMessage/PatentInstruction.vue

@@ -67,15 +67,22 @@ export default {
       })
     },
     getData() {
+      if(this.patent.publicFullText && this.patent.publicFullText.length>0){
+        return false
+      }
       var params = {
         patentCell: 2,
         patentNo: this.patent.publicNo,
         appNo: this.patent.rowApplicationNo,
       }
+      this.loading = true
       this.$api.getCnFullText(params).then(response => {
         if (response.code == 200) {
           this.$set(this.patent, 'publicFullText', response.data)
+          this.loading = false
         }
+      }).catch(error=>{
+        this.loading = false
       })
     },
     handleResize(event) {

+ 17 - 5
src/views/project/patentDetails/components/patentMessage/PatentPDF.vue

@@ -12,10 +12,13 @@
         <div slot="tip" class="el-upload__tip"></div>
       </el-upload> -->
     </div>
-    <myIframe v-if="show" :src="src" frameborder="0" :height="height" width="100%"></myIframe>
-    <div v-else class="no-pdf-file">
-      <span>暂无文档</span>
+    <div style="height:calc(100% - 120px)" v-loading="loading">
+      <myIframe v-if="show" :src="src" frameborder="0" :height="height" width="100%"></myIframe>
+      <div v-else class="no-pdf-file">
+        <span>暂无文档</span>
+      </div>
     </div>
+    
   </div>
 </template>
 
@@ -30,7 +33,7 @@ export default {
       src: '',
       fullHeight: document.documentElement.clientHeight,
       height: 0,
-      show: false,
+      show: true,
       btnLoading: false,
       pdfType: 1,
       pdf: null
@@ -60,7 +63,6 @@ export default {
     // 获取外部的pdf地址
     getData() {
       
-      this.show = false
       this.height = (this.fullHeight - 230) + 'px'
       if (this.patent.pdf && this.patent.pdf.length > 0) {
         this.getSrc()
@@ -70,16 +72,21 @@ export default {
         appNo: this.patent.appNo,
         rowApplicationNo: this.patent.rowApplicationNo,
       }
+      this.loading = true
       this.$api.getCnPdf(params).then(response => {
         if (response.code == 200) {
           this.$set(this.patent, 'pdf', response.data)
           this.getSrc()
+          this.loading = false
         }
+      }).catch(error=>{
+        this.loading = false
       })
     },
     // 内部专利根据guid获取路径
     getSrc() {
       if(this.patent.pdf.length==0){
+        this.show = false
         return 
       }
       let obj = this.patent.pdf.find(item => {
@@ -92,6 +99,7 @@ export default {
         this.pdfType = this.patent.pdf[0].type
         guid = this.patent.pdf[0].pdfGuid
       }
+      
       this.src = this.$commonJS.checkGuid(guid)
       this.$nextTick(() => {
         this.show = true
@@ -138,11 +146,15 @@ export default {
         appNo: this.patent.appNo,
         // type: this.pdfType,//0公开1授权
       }
+      this.loading = true
       this.$api.getTextPdf(params).then(response => {
         if (response.code == 200) {
           this.$set(this.patent, 'pdf', response.data)
           this.getSrc()
+          this.loading  =false
         }
+      }).catch(error=>{
+        this.loading = false
       })
     },
     handleResize(event) {

+ 6 - 16
src/views/project/patentDetails/components/patentMessage/PatentRight.vue

@@ -7,7 +7,7 @@
         </el-tabs>
       </el-header>
       <el-main>
-        <div class="height_100" v-if="name != 2" v-html="getViewDom(patent.claim, '权利要求'+tabItem.label, 'column')" :style="setStyle()" :data-type="'权利要求'+tabItem.label"></div>
+        <div class="height_100" v-loading="loading" v-if="name != 2" v-html="getViewDom(patent.claim, '权利要求'+tabItem.label, 'column')" :style="setStyle()" :data-type="'权利要求'+tabItem.label"></div>
         
         <div v-else class="height_100">
           <my-view>
@@ -77,19 +77,7 @@ export default {
     // fullHeight() {
     //   this.refresh();
     // },
-    patentId() {
-      this.initData();
-      if(this.name == 2){
-        this.show = false
-        this.expends = []
-        this.isClickId  = ''
-        this.$nextTick(()=>{
-           this.handleClick()
-        })
-      }
-    },
     patentNo() {
-      if (!this.patentId) {
         this.initData();
         if(this.name == 2){
           this.show = false
@@ -99,7 +87,6 @@ export default {
             this.handleClick()
           })
         }
-      }
     },
     name(){
       if(this.name!=2){
@@ -339,7 +326,6 @@ export default {
         return true;
     },
     initData() {
-
         if (this.outside) {
           var params = {
             // patentCell: 1,
@@ -348,11 +334,15 @@ export default {
             // pageSize:10,
             // appNo: this.patent.applicationNo,
           };
+          this.loading = true
           this.$api.queryExternalClaim(params).then((response) => {
             if (response.code == 200) {
               this.$set(this.patent, "claim", response.data.claimContent);
+              this.loading = false
             }
-          });
+          }).catch(error=>{
+            this.loading = false
+          })
         }
     },
     handleResize(event) {

+ 2 - 2
src/views/project/patentDetails/components/patentMessage/history/HistoryOfInvalidEvidence.vue

@@ -60,9 +60,9 @@
                 </el-table-column>
             </el-table>
         </el-main>
-        <el-footer class="pagination">
+        <!-- <el-footer class="pagination">
             <el-pagination  background layout="total,prev,sizes, pager, next,jumper" :total="total" @current-change="handleCurrentChange" :current-page="queryParams.current" :page-size="queryParams.size"></el-pagination>
-        </el-footer>
+        </el-footer> -->
     </el-container>
     <addMessage ref="addMessage" @save="save"></addMessage>
   </div>

+ 2 - 2
src/views/project/patentDetails/components/patentMessage/history/InvalidHistory.vue

@@ -59,9 +59,9 @@
                 </el-table-column>
             </el-table>
         </el-main>
-        <el-footer class="pagination">
+        <!-- <el-footer class="pagination">
             <el-pagination  background layout="total,prev,sizes, pager, next,jumper" :total="total" @current-change="handleCurrentChange" :current-page="queryParams.current" :page-size="queryParams.size"></el-pagination>
-        </el-footer>
+        </el-footer> -->
     </el-container>
     <addMessage ref="addMessage" @save="save"></addMessage>
   </div>

+ 5 - 1
src/views/project/patentDetails/components/patentMessage/mixins/index.js

@@ -18,11 +18,15 @@ export const patentDetails = {
       type: String,
       default: 2//判断是不是从专题库进入专利详情1为专题库(专题库已传1)2为报告(报告未传2)
     },
+    patentNo:{
+      default:null
+    }
   },
   data() {
     return {
       name: '0',
-      anchorOffset: null
+      anchorOffset: null,
+      loading:false
     }
   },
   computed: {

+ 30 - 0
src/views/report/analysisAndOpinion/components/searchRecords/index.vue

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

+ 13 - 1
src/views/report/components/index.vue

@@ -513,7 +513,7 @@ export default {
           this.handleFile(row)
           break
         case '5'://拆分特征
-          this.handleDetails(row)
+          // this.handleDetails(row)
           break
         case '3'://自定义字段
           this.handleField(row)
@@ -552,11 +552,23 @@ export default {
         case '15'://录入产品信息
           this.toInformationEntry(row)
           break;
+        case '16'://检索记录
+          this.searchRecords(row)
+          break;
         case 'e'://编辑
           this.handleEdit(row)
           break
       }
     },
+    //检索记录
+    searchRecords(row){
+      this.$router.push({
+        path:'/searchRecord',
+        query:{
+          projectId:row.id,
+        }
+      })
+    },
     //分享
     share(row){
       this.$refs.patentShare.open(row.id)

+ 8 - 4
src/views/report/components/view/card.vue

@@ -4,9 +4,12 @@
       <el-col :span="6" v-for="(item, itemIndex) in tableData" :key="itemIndex" style="padding-bottom:10px">
         <myCard shadow="always">
           <div slot="head">
-            <div style="font-size:18px">
-              <span>{{ item.name }}</span>
-            </div>
+            <myTooltip :content="item.name">
+              <div class="noWrap" style="font-size:18px">
+                <span class="cursor_pointer" @click="handleItem(item,'name')">{{ item.name }}</span>
+              </div>
+            </myTooltip>
+            
             <div>
               <el-dropdown @command="handleCommand($event, item)" trigger="click">
                 <span class="el-dropdown-link">
@@ -16,8 +19,9 @@
                   <el-dropdown-item command="0">分享</el-dropdown-item>
                   <el-dropdown-item command="1" v-if="[2,3].includes(item.status)">导出报告</el-dropdown-item>
                   <el-dropdown-item command="2" v-if="[2,3].includes(item.status)">报告文档</el-dropdown-item>
+                  <el-dropdown-item command="16" v-if="[1,2].includes(item.reportType)">检索记录</el-dropdown-item>
                   <el-dropdown-item command="3" v-if="[2].includes(item.status)&&[0,1,2,3].includes(item.reportType)">自定义字段</el-dropdown-item>
-                  <el-dropdown-item command="5" v-if="[2].includes(item.status) && [0,1,2].includes(item.reportType)">拆分特征</el-dropdown-item>
+                  <!-- <el-dropdown-item command="5" v-if="[2].includes(item.status) && [0,1,2].includes(item.reportType)">拆分特征</el-dropdown-item> -->
                   <el-dropdown-item command="15" v-if="[2].includes(item.status) && [3,4].includes(item.reportType)">产品信息录入</el-dropdown-item>
                   <el-dropdown-item command="8" v-if="(item.reportType == 4 && [2].includes(item.status))">专利与产品关联比对</el-dropdown-item>
                   <el-dropdown-item command="9" v-if="(item.reportType == 5 && [2].includes(item.status))"> 规避方案填写</el-dropdown-item>

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

@@ -36,8 +36,9 @@
               <el-dropdown-item command="0">分享</el-dropdown-item>
               <el-dropdown-item command="1" v-if="[2,3].includes(scope.row.status)">导出报告</el-dropdown-item>
               <el-dropdown-item command="2" v-if="[2,3].includes(scope.row.status)">报告文档</el-dropdown-item>
+              <el-dropdown-item command="16" v-if="[1,2].includes(scope.row.reportType)">检索记录</el-dropdown-item>
               <el-dropdown-item command="3" v-if="[2].includes(scope.row.status)&&[0,1,2,3].includes(scope.row.reportType)">自定义字段</el-dropdown-item>
-              <el-dropdown-item command="5" v-if="[2].includes(scope.row.status) && [0,1,2].includes(scope.row.reportType)">拆分特征</el-dropdown-item>
+              <!-- <el-dropdown-item command="5" v-if="[2].includes(scope.row.status) && [0,1,2].includes(scope.row.reportType)">拆分特征</el-dropdown-item> -->
               <el-dropdown-item command="15" v-if="[2].includes(scope.row.status) && [3,4].includes(scope.row.reportType)">产品信息录入</el-dropdown-item>
               <el-dropdown-item command="8" v-if="(scope.row.reportType == 4 && [2].includes(scope.row.status))">专利与产品关联比对</el-dropdown-item>
               <el-dropdown-item command="9" v-if="(scope.row.reportType == 5 && [2].includes(scope.row.status))"> 规避方案填写</el-dropdown-item>