Selaa lähdekoodia

Merge branch 'product' of http://1.116.113.26:8088/zhuliu/xiaoshi_system into product

zhuhao 1 vuosi sitten
vanhempi
commit
3b58bc9b7b

+ 1 - 0
src/config/index.js

@@ -4,4 +4,5 @@ export default {
     specialDays:['05-12','09-18','12-13'],
     host: window.location.host,
     staticURL: process.env.NODE_ENV === 'production' ? '139.224.24.90' : '192.168.1.24',
+    WebSocketPath: process.env.NODE_ENV === 'production' ? '139.224.24.90:8879' : '192.168.1.24:8877',
 }

+ 22 - 21
src/store/modules/contextMenu.js

@@ -36,27 +36,28 @@ export default {
       state.displayContextMenu = payload.displayContextMenu;
       state.clientX = payload.clientX;
       state.clientY = payload.clientY;
-      if(payload.menuContent && payload.menuContent.length>0)
-      {
-        var a = [
-            {
-                name: "波浪线",
-                method: "wave",
-            },
-            {
-                name: "下划线",
-                method: "underscore",
-            },
-            {
-                name: "高亮",
-                method: "addHighlight",
-            },
-            {
-                name: "批注",
-                method: "mark",
-            }
-        ]
-       state.menuContent =a.concat(payload.menuContent) ; 
+      var a = [
+        {
+            name: "波浪线",
+            method: "wave",
+        },
+        {
+            name: "下划线",
+            method: "underscore",
+        },
+        {
+            name: "高亮",
+            method: "addHighlight",
+        },
+        {
+            name: "批注",
+            method: "mark",
+        }
+    ]
+      if(payload.menuContent && payload.menuContent.length>0){
+        state.menuContent =a.concat(payload.menuContent) ; 
+      }else{
+        state.menuContent =a
       }
       
     },

+ 1 - 1
src/utils/common.js

@@ -229,7 +229,7 @@ export default {
 
   //查看图片
   checkViewer(guid) {
-    return `/fileManager/downloadFile?fileId=${guid}`
+    return `/api/fileManager/downloadFile?fileId=${guid}`
   },
 
    //查看专利详情

+ 1 - 1
src/utils/model/RichText/index.vue

@@ -95,7 +95,7 @@ export default {
       }
       var str = await this.fileToBase64(file)
       var randNum=Math.floor(Math.random()*(9999-1000))+1000;;
-      var new_img = '<img key="'+ randNum +'" src="' + str + '" style="width:80px;height: 80px;border: 1px solid #f9f6f675;vertical-align:middle">';
+      var new_img = '<img key="'+ randNum +'" src="' + str + '" onClick="vm.checkImg(event)" style="width:80px;height: 80px;border: 1px solid #f9f6f675;vertical-align:middle">';
 
       // 创建新的光标对象
 //       var range = document.createRange();

+ 8 - 0
src/utils/model/contextMenu/index.vue

@@ -73,6 +73,13 @@ export default {
             }
           }
         })
+        window.addEventListener('beforeunload',(e)=>{
+          this.$store.commit("SET_CONTEXT_MENU", 
+                {
+                    displayContextMenu: false, 
+                }
+              )
+        })
     })
    
   },
@@ -91,6 +98,7 @@ export default {
   },
   destroyed(){
     window.removeEventListener('mousedown',()=>{})
+    window.removeEventListener('beforeunload',()=>{})
   }
 };
 </script>

+ 8 - 1
src/utils/window.js

@@ -20,7 +20,14 @@ exports.install = function (Vue) {
     const component = findComponentDownward(this, 'myPopover')
     component.svgOnClick(e, val)
   }
-
+  Vue.prototype.checkImg = function (val) {
+    const component = findComponentDownward(this, 'myCommonUse')
+    component.checkImg(val)
+  }
+  Vue.prototype.selectMark = function (val) {
+    const component = findComponentDownward(this, 'myCommonUse')
+    component.selectMark(val)
+  }
 }
 
 function findComponentDownward(context, componentName) {

+ 2 - 1
src/views/components/import/conditionImport/searchResult.vue

@@ -28,7 +28,7 @@
       </el-header>
       <el-main id="patent-list-container" v-loading="loading">
         <div class="height_100">
-          <component ref="patentViewList" :is="viewSelected" :outsize="true" :column="columnList" :tableData="tableData"  @clickPatentNo="handleClick"
+          <component ref="patentViewList" :is="viewSelected" :outside="true" :column="columnList" :tableData="tableData"  @clickPatentNo="handleClick"
             @select-change="handleSelect" :selected.sync="queryParams.selected" :patentNoList.sync="patentNoList"
             :view-field="patentViewField" @on-sort="handleSort" @addSelect="getChoosePatentNo"></component>
         </div>
@@ -179,6 +179,7 @@ export default {
         location: location,
       }
       this.$s.setSession('search', search)
+      this.$s.setSession('import',this.searchData)
       this.$router.push(
         {
           path: '/patentDetails/' + row.patentNo,

+ 5 - 1
src/views/components/import/mixins/index.js

@@ -6,7 +6,11 @@ export default{
         FieldDrawer
       },
     props:{
-        importData:{}
+        importData:{
+            default:()=>{
+                return {}
+            }
+        }
     },
     data() {
         return {

+ 5 - 34
src/views/components/view/checkFile.vue

@@ -1,9 +1,9 @@
 <template>
-    <div style="width:calc(100% - 40px)">
+    <div class="height_100">
         <div class="header">
             <div style="color:black">{{ FileName }}</div>
             <div>
-                <el-link style="font-size: 16px" @click="downLoad"><i class="fa el-icon-download"></i><span style="margin-left:10px">下载</span></el-link>
+                <el-link style="font-size: 16px" @click="downLoadFile"><i class="fa el-icon-download"></i><span style="margin-left:10px">下载</span></el-link>
             </div>
         </div>
         <div style="display:flex;justify-content: center;height: calc(100% - 30px);">
@@ -60,14 +60,9 @@ export default {
         
     },
   methods: {
-    downLoadFile(row){ 
-        var item = JSON.parse(JSON.stringify(row))
+    downLoadFile(){ 
         var href = ''
-        if(item.originalName){
-            href = `http://${this.$c.hostname}:8801/fileManager/downloadSystemFile?fileId=${item.id}`
-        }else{
-            href = `/api/report/api/download/downloadFile?url=${encodeURIComponent(item.url)}` 
-        }
+        href =  this.$commonJS.checkViewer(this.row.guid)
         const anchor = document.createElement('a');
         const fileName = 'download';
         if ('download' in anchor) {
@@ -85,31 +80,7 @@ export default {
         }
     },
       
-    downLoad() {
-      if (this.row.originalName) { 
-        this.downLoadFile(this.row)
-        return false
-      }
-            if(this.reportId){
-                const href = `/api/report/api/download/downloadFile?url=${encodeURIComponent(this.row.url)}`
-                const anchor = document.createElement('a');
-                const fileName = 'download';
-                if ('download' in anchor) {
-                anchor.href = href;
-                anchor.setAttribute("download", fileName);
-                anchor.className = "download-js-link";
-                anchor.innerHTML = "downloading...";
-                anchor.style.display = "none";
-                document.body.appendChild(anchor);
-                setTimeout(function () {
-                    anchor.click();
-                    document.body.removeChild(anchor);
-                }, 66);
-                return true;
-                }
-            }
-            downLoad2(this.row.url) 
-        },
+
     },
 }
 </script>

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

@@ -4,6 +4,7 @@
     <contrast ref="contrast"></contrast>
     <!-- 批注 -->
     <annotation ref="annotation"></annotation>
+    <my-ImageViewer v-if="showImg" :on-close="closeViewer" :url-list="[imgSrc]"></my-ImageViewer>
   </div>
 </template>
 
@@ -12,6 +13,7 @@ import {mapGetters} from 'vuex'
 import contrast from '@/views/components/dialog/menuDialog/contrast.vue'
 import annotation from '@/views/components/dialog/menuDialog/annotation.vue'
 export default {
+  name: 'myCommonUse',
   components: {
     contrast,
     annotation,
@@ -19,6 +21,8 @@ export default {
   props: {},
   data() {
     return {
+      showImg:false,
+      imgSrc:'',
     };
   },
   watch: {},
@@ -27,9 +31,18 @@ export default {
   },
   created() {},
   mounted() {
-    window.selectMark = this.selectMark
+    // window.selectMark = this.selectMark
   },
   methods: {
+    //查看图片
+    checkImg(e){
+      this.imgSrc = e.target.src
+    	this.showImg = true
+    },
+    //关闭图片弹窗
+    closeViewer(){
+      this.showImg = false
+    },
      //点击图标回显数据
      selectMark(id, selectType) {
       var Id = id.substring(1,id.length)

+ 2 - 2
src/views/layout/mixins/index.js

@@ -4,8 +4,8 @@ import Store from '@/store'
 export const webSocket = {
   methods: {
     connectWebSocket(userId) {
-      let webSocket = new WebSocket(`ws://${this.$c.staticURL}:8879/api/xiaoshi/ws/` + userId)
-      // let webSocket = new WebSocket(`ws://192.168.1.18:8877/api/xiaoshi/ws/` + userId)
+      // let webSocket = new WebSocket(`ws://${this.$c.staticURL}:8879/api/xiaoshi/ws/` + userId)
+      let webSocket = new WebSocket(`ws://${this.$c.WebSocketPath}/api/xiaoshi/ws/` + userId)
       Store.commit('SET_WEB_SOCKET', webSocket)
       webSocket.onopen = () => {
         console.log('WebSocket连接成功')

+ 0 - 1
src/views/product/components/index.vue

@@ -283,7 +283,6 @@ export default {
     },
     //预览图片
     checkImage(row){
-      // this.imgSrc =  `http://192.168.1.14:8801/fileManager/downloadFile?fileId=${item.systemFileList[0].guid}`
       this.imgSrc = this.$commonJS.checkViewer(row.systemFileList[0].guid)
       this.showImg = true
     },

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 2
src/views/project/patentCollection/components/mixins/index.js


+ 0 - 343
src/views/project/patentCollection/components/mixins/index2.js

@@ -1,343 +0,0 @@
-export const patentKeywordsHighlight = {
- 
-  computed: {
-    highlight() {
-      return this.$store.state.patent.highlight
-    },
-    contrastList() {
-      return this.$store.state.report.contrastList
-    }
-  },
-  mounted() {
-    window.mouseenter1=this.mouseenter1
-     window.mouseleave1=this.mouseleave1
-  },
-  methods: {
-    mouseenter1(e, id) {
-      var dom = document.getElementsByClassName(id)
-      var message = this.getMessage(id)
-      // 普通for循环可以拿到dom节点,forEach是拿不到dom节点
-      for (let i = 0; i < dom.length - 1; i++){
-        dom[i].classList.add('greenColor')
-        this.getChildNodesAdd(dom[i].childNodes)
-      }
-          // e.target是获取当前的,dom获取的是所有的class相同的节点
-        e.target.parentNode.classList.add("pizhuLightHeigh");
-        if (message.remark) {
-          e.target.parentNode.appendChild(this.addPara(message.remark,e));
-        }
-    },
-    // 添加背景色
-    getChildNodesAdd(dom) {
-      if (dom.length > 0) {
-        for (let m = 0; m < dom.length; m++){
-          if (dom[m].nodeType == 1) {
-            dom[m].classList.add('greenColor')
-          }
-          if (dom[m].childNodes.length > 0) {
-            this.getChildNodesAdd(dom[m].childNodes)
-          }
-        }
-      }
-    },
-    // 删除背景色
-    getChildNodesRemove(dom) {
-      if (dom.length > 0) {
-        for (let m = 0; m < dom.length; m++){
-          if (dom[m].nodeType == 1) {
-            dom[m].classList.remove('greenColor')
-          }
-          if (dom[m].childNodes.length > 0) {
-            this.getChildNodesRemove(dom[m].childNodes)
-          }
-        }
-      }
-    },
-    getMessage(Id) {
-      return this.contrastList.find(item => {
-        return item.id == Id
-      })
-    },
-    addPara(val, e) {
-      //创建div标签
-       var p = document.createElement("div");
-      //添加class
-      p.classList.add('showPiZhu')
-      if (e.clientY - 200 < 200 && e.clientX + 200 > document.documentElement.clientWidth) {
-        p.setAttribute('style','left:-200px')
-      }else if ((e.clientX + 200 > document.documentElement.clientWidth && e.clientY + 200 > document.documentElement.clientHeight) || e.clientX + 200 > document.documentElement.clientWidth) {
-         p.setAttribute('style','bottom:25px;left:-200px;') 
-      } else if((e.clientY + 200 > document.documentElement.clientHeight && e.clientX-200 < 200) || (e.clientY + 200 > document.documentElement.clientHeight && e.clientX-200 > 200)) {
-        p.setAttribute('style','bottom:20px;left:10px')
-      }
-      //创建文本节点
-      var text = document.createTextNode(val);
-      //将文本节点追加到元素节点中
-      p.appendChild(text);
-       return p
-  },
-    mouseleave1(e, id) {
-      var dom = document.getElementsByClassName(id)
-      e.target.parentNode.classList.remove("pizhuLightHeigh");
-      var message = this.getMessage(id)
-      if (message.remark) {
-        document.getElementsByClassName('showPiZhu')[0].remove()
-      }
-      for (let i = 0; i < dom.length - 1; i++){
-        dom[i].classList.remove('greenColor')
-        this.getChildNodesRemove(dom[i].childNodes)
-      }
-    },
-    getViewDom1(row, field,key) {
-      if(!row){
-        return '';
-      }
-      var html = ''
-      if(row.length == 1){
-        var str = row[0][key]
-        if(!str){
-          return ''
-        }
-        var arr = str.split(/\r\n/g)
-        arr.forEach(item=>{
-          html = html + `<p class="common"> ${item} </p>`
-        })
-      }else{
-        row.forEach(item => {
-          if(item[key]){
-             html = html + `<p class="common"> ${item[key]} </p>`
-          }
-        
-       })
-      }
-      
-     return this.getViewDom(html,field)
-    },
-    getViewDom(text, field) {
-      if(!text){
-        return ""
-      }
-      if (this.contrastList.length > 0) {
-        for (let i = 0; i < this.contrastList.length; i++) {
-          if (this.contrastList[i].patentNo == this.patent.patentNo) {
-            if (this.contrastList[i].scratchField.indexOf(field) != -1) {
-              var a = {
-                color: this.contrastList[i].color,
-                Type: this.contrastList[i].scratchType,
-                Id: this.contrastList[i].id,
-                column: this.contrastList[i].scratchField,
-                index: Number(this.contrastList[i].position),
-                text: this.contrastList[i].text,
-                remark: this.contrastList[i].remark,
-                temNode: text
-              }
-              text = this.AddClass1(a);
-            }
-          }
-        }
-      }
-
-       
-      if (!this.highlight.enable || !text) {
-        return text
-      }
-      try {
-
-        this.highlight.configs.map(item => {
-          const keywords = item.keywords.split(';')
-          for (let keyword of keywords) {
-            if (!keyword) {
-              continue
-            }
-            let sText = text
-            let num = -1
-            const rStr = new RegExp(keyword, "g")
-            const rHtml = new RegExp("\<.*?\>", "ig")
-            const sKey = `<span style="background: ${item.color};color: #fff">${keyword}</span>`
-            const aHtml = sText.match(rHtml)
-            sText = sText.replace(rHtml, '{~}')
-            sText = sText.replace(rStr, sKey)
-            sText = sText.replace(/{~}/g, () => {
-              num++
-              return aHtml[num]
-            })
-            text = sText
-          }
-        })
-
-      } catch (e) {
-      }
-      return text
-    },
-    SplitHtmlTag1(el) {
-      let temInnerHtml = el.trim();
-      let pattern = /<[^>]+>/g;
-      let Indexs = [];
-      let i = 0
-      var match = null
-      while ((match = pattern.exec(temInnerHtml)) != null) {
-        Indexs[i] = match;
-        i++;
-      }
-      var splitStrings = new Array();
-      i = 0;
-      var currentIndex = 0;
-      for (var index = 0; index < Indexs.length; index++) {
-        if (Indexs[index].index > currentIndex) {
-          splitStrings[i] = { "text": temInnerHtml.substring(currentIndex, Indexs[index].index), "type": "text" };
-          i++;
-          splitStrings[i] = { "text": Indexs[index][0], "type": "tag" };
-          i++;
-        } else {
-          splitStrings[i] = { "text": Indexs[index][0], "type": "tag" };
-          i++;
-        }
-        currentIndex = Indexs[index].index + Indexs[index][0].length;
-      }
-      if (currentIndex < temInnerHtml.length) {
-        splitStrings[i] = { "text": temInnerHtml.substring(currentIndex, temInnerHtml.length), "type": "text" };
-      }
-
-      return splitStrings;
-
-    },
-    AddClass1(selectObject) {
-      let el = selectObject.temNode;
-      // 将当前页面获取到的字符串进行处理,返回当前页面所有的标签及文本
-      var splitStrings = this.SplitHtmlTag1(el);
-      let bgColor = selectObject.color;
-      // 添加线及高亮
-      let startTag = '<span class="' + selectObject.Id + '" id="' + selectObject.Id + '" style="background-color:' + selectObject.color + '">';
-      if (selectObject.Type == 0) {
-        startTag = '<span class="' + selectObject.Id + '" id="' + selectObject.Id + '" style="border-bottom:2px solid ' + selectObject.color + '">';
-      }
-      if (selectObject.Type == 2) {
-        startTag = '<span class = "' + selectObject.Id + '" id="' + selectObject.Id + '" style = "text-decoration-line: underline;text-decoration-style: wavy ;text-decoration-color: ' + selectObject.color + '">';
-      }
-      // let imgTag = '<span  class="' + selectObject.Id + '" style="background-color:white !important;"><i class="el-icon-location-outline" style="vertical-align: super;background-color:white !important;" onclick="selectMark(\'' + selectObject.Id + '\')"  onmouseenter="mouseenter1(event,\'' + selectObject.Id + '\')"  onmouseleave="mouseleave1(event,\'' + selectObject.Id + '\')"></i></span>';
-      let imgTag = '<span  class="' + selectObject.Id + '" style="background-color:white !important;"><i class="iconfont icon-xinxi3" style="vertical-align: super;background-color:white !important;" onclick="selectMark(\'' + selectObject.Id + '\')"  onmouseenter="mouseenter1(event,\'' + selectObject.Id + '\')"  onmouseleave="mouseleave1(event,\'' + selectObject.Id + '\')"></i></span>';
-      let endTag = '</span>';
-      let elText = '';
-
-      splitStrings.forEach(function (item) {
-        if (item.type == 'text') {
-          elText = elText + item.text;
-        }
-      });
-      let Indexs = [];
-      let i = 0
-      if (selectObject.index < 0) {
-        let pattern = new RegExp(selectObject.text.replace(/[\r\n]/g, "").replace(/\ +/g, ""), "g");
-        while ((match = pattern.exec(elText)) != null) {
-          Indexs[i] = match;
-          i++;
-        }
-      } else {
-        Indexs[i] = [selectObject.text];
-        Indexs[i].index = selectObject.index;
-      }
-      Indexs.forEach(function (match) {
-        let currentIndex = 0;
-        let temSplitStrings = new Array();
-        splitStrings.forEach(function (item) {
-          if (item.type == 'text') {
-            if (item.text) {
-              if (match.index >= currentIndex && match.index < (currentIndex + item.text.length)) {
-                if (selectObject.column.indexOf('权利要求') != -1) {
-                  item.text = item.text.replace(/\r/g, ' ')
-                  if (item.text.match(/\r/g)) {
-                    match.index -= 1
-                  }
-
-                }
-                if (selectObject.column.indexOf('说明书') != -1) {
-                  // var b = selectObject.temNode.replace(/<[^>]+>/g, '')
-                  // if (b.substring(0, match.index).indexOf('\r') == -1) {
-                  //   var a = b.substring(0, match.index).match(/\n/g)
-                  //   if (a) {
-                  //     match.index -= a.length
-                  //   }
-                  // }
-                  item.text = item.text.replace(/\r/g, "")
-                }
-                
-                if ((match.index + match[0].length) <= (currentIndex + item.text.length) && item.text.indexOf(match[0]) != -1) {
-
-                  if (match.index > currentIndex) {
-                    temSplitStrings.push({ text: item.text.substring(0, match.index - currentIndex), type: 'text' });
-                  }
-                  temSplitStrings.push({ text: startTag, type: 'tag' });
-                  temSplitStrings.push({ text: match[0], type: 'text' });
-                  temSplitStrings.push({ text: imgTag, type: 'tag' });
-                  // }
-                  temSplitStrings.push({ text: endTag, type: 'tag' });
-
-                  if ((match.index + match[0].length) < (currentIndex + item.text.length)) {
-                    temSplitStrings.push({ text: item.text.substring((match.index + match[0].length) - currentIndex), type: 'text' });
-                  }
-                } else {
-                  if (item.text.indexOf(match[0]) != -1) {
-                    if (match.index > currentIndex) {
-                      temSplitStrings.push({ text: item.text.substring(0, match.index - currentIndex), type: 'text' });
-                    }
-                    if (temSplitStrings.length > 1) {
-                      temSplitStrings.push({ text: startTag, type: 'tag' });
-                    } else {
-                      temSplitStrings.push({ text: startTag, type: 'tag' });
-                    }
-
-                    temSplitStrings.push({ text: item.text.substring(match.index - currentIndex), type: 'text' });
-                    temSplitStrings.push({ text: endTag, type: 'tag' });
-                  } else {
-                    temSplitStrings.push({ text: item.text.substring(0, match.index - currentIndex), type: 'text' });
-                    temSplitStrings.push({ text: startTag, type: 'tag' });
-                    temSplitStrings.push({ text: item.text.substring( match.index - currentIndex,item.text.length), type: 'text' });
-                    temSplitStrings.push({ text: endTag, type: 'tag' });
-                  }
-                }
-              } else {
-                if ((match.index + match[0].length) <= (currentIndex + item.text.length) && (match.index + match[0].length) > currentIndex) {
-
-                  temSplitStrings.push({ text: startTag, type: 'tag' });
-                  temSplitStrings.push({ text: item.text.substring(0, match.index + match[0].length - currentIndex), type: 'text' });
-
-                  temSplitStrings.push({ text: imgTag, type: 'tag' });
-
-                  temSplitStrings.push({ text: endTag, type: 'tag' });
-                  if ((match.index + match[0].length) < (currentIndex + item.text.length)) {
-                    temSplitStrings.push({ text: item.text.substring((match.index + match[0].length - currentIndex)), type: 'text' });
-                  }
-                } else {
-                  if (match.index < currentIndex && (match.index + match[0].length) >= (currentIndex + item.text.length)) {
-
-                    temSplitStrings.push({ text: startTag, type: 'tag' });
-                    temSplitStrings.push(item);
-                    temSplitStrings.push({ text: endTag, type: 'tag' });
-                  } else {
-
-                    temSplitStrings.push(item);
-                  }
-                }
-              }
-
-              currentIndex = currentIndex + item.text.length;
-            } else {
-              temSplitStrings.push(item);
-            }
-          } else {
-            temSplitStrings.push(item);
-          }
-        });
-
-        splitStrings = temSplitStrings;
-      });
-
-      let temInnerHtml = '';
-      splitStrings.forEach(function (item) {
-        temInnerHtml = temInnerHtml + item.text;
-      });
-      return temInnerHtml;
-
-    },
-  }
-}

+ 2 - 2
src/views/project/patentCollection/components/views/Abstract.vue

@@ -25,8 +25,8 @@
 
                 </div>
                 <div class="picture text-align_center patent-abstract-image-container">
-                  <el-image :src="outsize?patent.pictureGuid:$commonJS.checkViewer(patent.pictureGuid)"
-                    :preview-src-list="[outsize?patent.pictureGuid:$commonJS.checkViewer(patent.pictureGuid)]"
+                  <el-image :src="outside?patent.pictureGuid:$commonJS.checkViewer(patent.pictureGuid)"
+                    :preview-src-list="[outside?patent.pictureGuid:$commonJS.checkViewer(patent.pictureGuid)]"
                     style="margin:0 auto;vertical-align:middle;"
                     :style="{ width: patent.imgWidth ? patent.imgWidth : '100%', height: patent.imgHeight ? patent.imgHeight : '100%' }">
                     <div slot="error" class="image-slot">

+ 2 - 2
src/views/project/patentCollection/components/views/Picture.vue

@@ -21,8 +21,8 @@
           </el-tooltip>
         </div>
         <div class="picture text-align_center" style="height: 200px;width:100%;line-height:200px;">
-          <el-image :src="outsize?item.pictureGuid:$commonJS.checkViewer(item.pictureGuid)"
-            :preview-src-list="[outsize?item.pictureGuid:$commonJS.checkViewer(item.pictureGuid)]" style="margin:0 auto;vertical-align:middle;"
+          <el-image :src="outside?item.pictureGuid:$commonJS.checkViewer(item.pictureGuid)"
+            :preview-src-list="[outside?item.pictureGuid:$commonJS.checkViewer(item.pictureGuid)]" style="margin:0 auto;vertical-align:middle;"
             :style="{ width: item.imgWidth ? item.imgWidth : '100%', height: item.imgHeight ? item.imgHeight : '100%' }">
             <div slot="error" class="image-slot">
               <img src="https://www.patentstar.com.cn/img/Common/nopic.jpg" alt="" style="">

+ 2 - 2
src/views/project/patentCollection/components/views/Table.vue

@@ -26,8 +26,8 @@
                 <tr>
                   <td>
                     <div class="patent-abstract-image text-align_center">
-                      <el-image :src="outsize?scope.row.pictureGuid:$commonJS.checkViewer(scope.row.pictureGuid)"
-                        :preview-src-list="[outsize?scope.row.pictureGuid:$commonJS.checkViewer(scope.row.pictureGuid)]" style="vertical-align:middle;"
+                      <el-image :src="outside?scope.row.pictureGuid:$commonJS.checkViewer(scope.row.pictureGuid)"
+                        :preview-src-list="[outside?scope.row.pictureGuid:$commonJS.checkViewer(scope.row.pictureGuid)]" style="vertical-align:middle;"
                         :style="{ width: scope.row.imgWidth ? scope.row.imgWidth : '100%', height: scope.row.imgHeight ? scope.row.imgHeight : '100%' }">
                         <div slot="error" class="image-slot">
                           <img src="https://www.patentstar.com.cn/img/Common/nopic.jpg" alt="" style="">

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

@@ -30,7 +30,10 @@
               </div>
             </div>
             <!-- <PatentMark :patentNo="patent.patentNo" @biaozhu="getBiaoZhu"></PatentMark> -->
-            <div style="display: flex;justify-content: space-between;margin-right: 10px;align-items: center;">
+            <div v-if="outside">
+              <el-button type="primary" size="small" @click="importToProject">导入专利</el-button>
+            </div>
+            <div style="display: flex;justify-content: space-between;margin-right: 10px;align-items: center;" v-else>
               <el-dropdown size="medium" style="margin-right:10px" v-if="$permission('/workspace/createReport')">
                 <el-button type="primary" size="small">
                   创建报告<i class="el-icon-arrow-down el-icon--right"></i>
@@ -114,6 +117,7 @@
     </el-container>
     <!-- 创建报告 -->
     <addAndEditReport ref="addAndEditReport"></addAndEditReport>
+    <projectListDialog ref="projectListDialog" :importData="condition"></projectListDialog>
   </div>
 </template>
 
@@ -129,6 +133,7 @@ import { projectData, handleData } from '../../patentCollection/components/mixin
 
 import PatentField from './PatentField.vue'
 import addAndEditReport from '@/views/report/components/dialog/addAndEditReport.vue'
+import projectListDialog from "@/views/components/import/conditionImport/components/projectListDialog.vue";
 export default {
   components: {
     PatentBasic,
@@ -139,7 +144,8 @@ export default {
     PatentStatus,
     PatentPDF,
     PatentField,
-    addAndEditReport
+    addAndEditReport,
+    projectListDialog
   },
   mixins: [projectData, handleData],
   props: {
@@ -282,13 +288,28 @@ export default {
       }
     }
   },
-  computed: {},
+  computed: {
+    condition(){
+      return this.$s.getSession('import') || {}
+    }
+  },
   created() { },
   mounted() {
 
     this.getPatent()
   },
   methods: {
+    //导入到专题库
+    importToProject() {
+      var form = {
+        ...this.condition,
+        startNumber: 0,
+        endNumber: 0,
+        isAddPatentNos: [this.patent.patentNo],
+        isDeletePatentNos: [],
+      }
+      this.$refs.projectListDialog.open(form);
+    },
     getBiaoZhu() {
 
     },

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

@@ -76,7 +76,7 @@ export const patentDetails={
         },
         //打开弹窗
         showMenu(e){
-            var menuContent = null
+            var menuContent = []
             if(this.reportType == 1 || this.reportType == 2){
                 menuContent=[
                     {

+ 5 - 5
src/views/report/InvalidResponse/components/dialog/addEvidenceReason.vue

@@ -35,7 +35,7 @@
             <div>
                 <div  style="display:flex;justify-content:space-between;padding-bottom:10px">
                     <div>无效证据</div>
-                    <div v-if="!ifSecondInvalid">
+                    <div v-if="!ifSecondInvalid || showFeature">
                         <el-button type="primary" size="small" @click="featuresHistory" v-if="['4','8'].indexOf(form.statutesId) ==-1">特征拆分历史</el-button>
                         <el-button type="primary" size="small" @click="splitClaim" v-if="['4','8'].indexOf(form.statutesId) ==-1">自动拆分</el-button>
                         <el-button type="primary" size="small" @click="addFeature">添加特征</el-button>
@@ -53,7 +53,7 @@
                         <el-table-column prop="featureOrder" label="特征内容" >
                             <template slot-scope="scope">
                                 <div v-if="['4','8'].indexOf(form.statutesId) ==-1">
-                                   <div v-if="!ifSecondInvalid">
+                                   <div v-if="!ifSecondInvalid || showFeature">
                                         <el-input type="textarea" autosize v-model="scope.row.featureText" @blur="change(scope.row)"></el-input>
                                     </div>
                                     <div v-else>
@@ -153,7 +153,8 @@ export default {
         row:{},
         descriptions:'',
         editProofGroupDescription:false,
-        addFeatures:[]
+        addFeatures:[],
+        showFeature:false
     };
   },
   watch: {},
@@ -254,7 +255,6 @@ export default {
    },
     //打开弹窗
     open(form,feature){
-        console.log(feature)
         this.form = form
         this.features = []
         this.addFeatures = []
@@ -303,7 +303,7 @@ export default {
                 }
                 data = this.features.concat(this.addFeatures)
             }else{
-                data = this.feature
+                data = this.features
             }
             this.btnLoading = true
             var params = {

+ 1 - 1
src/views/report/InvalidResponse/components/powerManage/powerManage.vue

@@ -155,7 +155,7 @@ export default {
                 }
             })
             if(obj){
-                return obj.comment
+                return obj.description
             }
         }
         return ''