zhuliu 1 year ago
parent
commit
5a20b5b692

+ 18 - 6
src/utils/model/RichText/index.vue

@@ -57,7 +57,11 @@ export default {
           {
             name: "高亮",
             method: "highlight",
-          }
+          },
+          // {
+          //   name: "取消全部高亮",
+          //   method: "cancel",
+          // }
         ],
         selectObj:null,
         show:false
@@ -91,10 +95,15 @@ export default {
 
 
     clickBtn(method){
+     
       var SplitHtmls = this.SplitHtmlTag1(this.$refs.myEditBox.innerHTML)
+      var html = this.$refs.myEditBox.innerHTML
+      if(method == 'cancel'){
+        html = html.replace(/<highlight>/g,'').replace(/<\/highlight>/g,'')
+      }else{
+        html = this.changeHtml(SplitHtmls,method)
+      }
       //  var html = this.addTag(SplitHtmls,method)
-       var html = this.changeHtml(SplitHtmls,method)
-      //  html = html.replace(/<highlight>/g,'').replace(/<\/highlight>/g,'')
       this.content = html
 
       this.$emit('input',html)
@@ -176,7 +185,7 @@ export default {
       }
       if (e.keyCode === 13) {
           e.preventDefault(); // 阻止默认操作
-          document.execCommand("insertHTML", false, "<br><br>"); // 插入换行
+          document.execCommand("insertHTML", false, "<br>"); // 插入换行
       }
     },
     //粘贴
@@ -192,7 +201,9 @@ export default {
       for (let i = 0; i < items.length; i++) {
         if (items[i].type.indexOf("text") !== -1) {
           var text =  (event.originalEvent || event).clipboardData.getData('text/plain') ||'';
-          text = text.replace(/\n{1,}/g,'<br>').replace(/&lt;/g,'<').replace(/&gt;/g,'>')
+          // text = text.replace(/\n{1,}/g,'<br>').replace(/&lt;/g,'<').replace(/&gt;/g,'>')
+          text = text.replace(/\n{1,}/g,'<br>')
+          text = this.parsedText(text)
           document.execCommand('insertHTML', true, text)
 
           // var text2 = `<span>${text}</span>`
@@ -226,7 +237,8 @@ export default {
       var randNum=Math.floor(Math.random()*(9999-1000))+1000;;
       var new_img = '<img key="'+ randNum +'" src="' + str + '" onClick="vm.checkImg(event)" style="width:80px;height: 80px;border: 1px solid #f9f6f675;vertical-align:middle">';
       document.execCommand('insertText', false, new_img)
-      var alltext =  this.$refs.myEditBox.innerHTML.replace(/&lt;/g,'<').replace(/&gt;/g,'>')
+      // var alltext =  this.$refs.myEditBox.innerHTML.replace(/&lt;/g,'<').replace(/&gt;/g,'>')
+      var alltext =  this.parsedText(this.$refs.myEditBox.innerHTML)
       this.$refs.myEditBox.innerHTML = alltext
       // 创建新的光标对象
 //       var range = document.createRange();

+ 1 - 1
src/views/components/import/conditionImport/AdvancedSearch.vue

@@ -27,7 +27,7 @@
                
             </div>
             <div><b>国别代码:</b></div>
-            <div>
+            <div style="display:flex;flex-wrap:wrap;justify-content: space-between;">
                 <span v-for="(item) in countryList" :key="item.value"><span class="red">{{ item.value }}</span>&nbsp;{{ item.label }}&nbsp;&nbsp;</span>
             </div>
         </div>

+ 51 - 7
src/views/components/import/conditionImport/customSearch.vue

@@ -5,11 +5,14 @@
              <div>
                 <div class="clearfix">
                     <span><el-checkbox v-model="checked" @change="change">全部国家地区</el-checkbox></span>
-                    <span style="float: right; padding: 3px 0" type="text">{{ checkList.length }}/{{countryList.length}}</span>
+                    <span style="float: right; padding: 3px 0" type="text">{{ checkList.length }}/{{countryList1.length}}</span>
                 </div>
-                    <div style="overflow-y:auto;overflow-x:hidden;" :style="{height:height-120+'px'}">
+                    <div style="padding:10px">
+                      <el-input style="width:100%" v-model="suggest" @input="querySearch" placeholder="请输入内容"></el-input>
+                    </div>
+                    <div style="overflow-y:auto;overflow-x:hidden;" :style="{height:height-180+'px'}">
                        <el-checkbox-group v-model="checkList">
-                        <div v-for="item in countryList" :key="item.value" class="item">
+                        <div v-for="item in countryList1" :key="item.value" class="item">
                             <el-checkbox :label="item.value">{{ item.label }}({{ item.value }})</el-checkbox>
                         </div>
                             
@@ -31,7 +34,7 @@
 export default {
   components: {
   },
-  props: ['countryList','DBType'],
+  props: ['countryList','DBType','selected'],
   data() {
     return {
         height:document.getElementsByClassName('el-main')[0].clientHeight,
@@ -77,11 +80,13 @@ export default {
             ],
             //搜索值
             field:JSON.parse(JSON.stringify(this.$constants.searchField)),
+            countryList1:[],
+            suggest:''
     };
   },
   watch: {
     'checkList'(val){
-      if(val.length == this.countryList.length){
+      if(val.length == this.countryList1.length){
         this.checked = true
       }else{
         this.checked = false
@@ -94,19 +99,55 @@ export default {
   computed: {},
   created() {},
   mounted() {
+    if(this.selected){
+      this.checkList = JSON.parse(JSON.stringify(this.selected))
+    }
+    this.countryList1 = this.countryList.filter(item=>item.value!='CN')
     this.getField()
   },
   methods: {
+    querySearch() {
+        var restaurants = this.countryList.filter(item=>item.value!='CN')
+        var results = this.suggest ? restaurants.filter(this.createFilter(this.suggest)) : restaurants;
+        this.countryList1 = results
+       
+      },
+      createFilter(queryString) {
+        return (restaurant) => {
+          return (restaurant.label.indexOf(queryString) !== -1 || restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) !== -1);
+        };
+      },
     getField(){
+      // var a = JSON.parse(JSON.stringify(this.$constants.searchField))
+      // this.field = a.map(item=>{ 
+      //   item.children = item.children.filter(item1 =>{return item1.value!='GJ' && item1.type != (this.DBType != 'WD'?'2':'1')}) 
+      //   return item
+      // })
+
       var a = JSON.parse(JSON.stringify(this.$constants.searchField))
       this.field = a.map(item=>{ 
         item.children = item.children.filter(item1 =>{return item1.value!='GJ' && item1.type != (this.DBType != 'WD'?'2':'1')}) 
         return item
+      }).filter(item=>{
+        return item.children.length>0
       })
     },
     search(val){
       if(this.DBType == 'WD' && this.checkList.length>0){
-        var str = `${val} AND (GJ=${this.checkList})`
+        if(val){
+          if(this.checkList.length==1){
+            var a = `GJ=${this.checkList[0]}`
+          }else{
+            var a = `GJ=(${this.checkList.join(" OR ")})`
+          }
+          var str = `${val} AND ${a}`
+        }else{
+          if(this.checkList.length==1){
+            var str = `GJ=${this.checkList[0]}`
+          }else{
+            var str = `GJ=(${this.checkList.join(" OR ")})`
+          }
+        }
         this.$emit('search',str)
       }else{
         this.$emit('search',`${val}`)
@@ -115,7 +156,7 @@ export default {
     },
     change(val){
       if(val){
-        this.checkList = this.countryList.map(item=>item.value)
+        this.checkList = this.countryList1.filter(item=>item.value!='CN').map(item=>item.value)
       }else{
         this.checkList = []
       }
@@ -129,6 +170,9 @@ export default {
     // padding-left:20px ;
     padding:10px 20px ;
     border-bottom: 1px solid #eeeeee;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
   }
   .item{
     padding:10px 20px;

+ 54 - 2
src/views/components/import/conditionImport/search.vue

@@ -18,7 +18,7 @@
         </div>
         
         <div style="width:70%;margin:0 auto;">
-            <component :is='isComponent' @search="search" :countryList="countryList" :DBType="DBType"></component>
+            <component :is='isComponent' @search="search" :countryList="countryList" :DBType="DBType" :selected="selected"></component>
         </div>
 
         <el-dialog title="检索历史" :visible.sync="dialogVisible" width="1200px" :append-to-body="true" :close-on-click-modal="false">
@@ -51,6 +51,7 @@ export default {
             countryList:[],
             DBType:"CN",
             dialogVisible:false,
+            selected:['US','DE','JP','GB','FR','KR','RU','CH','EP','WO']
         }
     },
     mounted() {
@@ -59,6 +60,33 @@ export default {
     methods: {
         //获取国家
         getCountry(){
+            // var str = 'AD 安道尔 AE 阿拉伯联合酋长国 AF 阿富汗 AG 安提瓜和巴布达 AI 安圭拉岛 AL 阿尔巴尼亚 AM 亚'
+            //         +'美尼亚 AN 荷属安的列斯群岛 AO 安哥拉 AP 非洲地区工业产权组织(ARIPO) AR 阿根廷 AT 奥地'
+            //         +'利 AU 澳大利亚 AW 阿鲁巴岛(荷) BA 波斯尼亚和黑塞哥维那(波黑) BB 巴巴多斯 BD 孟加拉 AZ'
+            //         +'阿塞拜疆 BE 比利时 BF 布基纳法索 BG 保加利亚 BH 巴林 BI 布隆迪 BJ 贝宁 BM 百慕大 BN 文'
+            //         +'莱 BO 玻利维亚 BR 巴西 BS 巴哈马 BT 不丹 BV 布韦岛 BW 博茨瓦那 BX 比、荷、卢经济联盟商'
+            //         +'标局及外观设计局 BY 白俄罗斯 BZ 伯利兹 CA 加拿大 CD 刚果民主共和国 CF 中非共和国 CG 刚'
+            //         +'果 CH 瑞士 CI 科特迪瓦 CK 库克群岛 CL 智利 CM 喀麦隆 CN 中国 CO 哥伦比亚 CR 哥斯达黎'
+            //         +'加 CU 古巴 CV 佛得角 CY 塞浦路斯 CZ 捷克共和国 DE 德国 DJ 吉布提 DK 丹麦 DM 多米尼克'
+            //         +'DO 多米尼加共和国 DZ 阿尔及利亚 EA 欧亚专利组织(EAPO) EC 厄瓜多尔 EE 爱沙尼亚 EG 埃'
+            //         +'及 EH 西撒哈拉 EM 内部市场协调局(OHIM) EP 欧洲专利局(EPO) ER 厄立特里亚 ES 西班牙 ET 埃'
+            //         +'塞俄比亚 FI 芬兰 FJ 斐济 FK 福克兰群岛(马尔维纳斯群岛) FO 法罗群岛 FR 法国 GA 加蓬 GB 英'
+            //         +'国 GD 格林纳达 GH 加纳 GC 海湾地区阿拉伯国家合作委员会专利局(GCC) GE 格鲁吉亚 GI 直布罗'
+            //         +'陀 GL 格陵兰 GM 冈比亚 GN 几内亚 GQ 赤道几内亚 GR 希腊 GS 南乔治亚和南三维治群岛 GT'
+            //         +'危地马拉 GW 几内亚比绍 GY 圭亚那 HK 中华人民共和国香港特别行政区 HN 洪都拉斯 HR 克罗地'
+            //         +'亚 HT 海地 HU 匈牙利  WO 世界知识产权组织国际局(WIPO) ID 印度尼西亚 IE 爱尔兰 IL 以色'
+            //         +'列 IN 印度 IQ 伊拉克 IR 伊朗,伊斯兰共和国'
+            //     var regx = new RegExp("[A-Z]{2} ", "g")
+            //     var a = str.split(regx)
+            //     a.splice(0,1)
+            //     var b = str.match(regx)
+            //     b.forEach((item,index)=>{
+            //         this.countryList.push({
+            //             label:a[index],
+            //             value:item
+            //         })
+            //     })
+            var important = ['CN','US','DE','JP','GB','FR','KR','RU','CH','EP','WO']
             var str = 'AD 安道尔 AE 阿拉伯联合酋长国 AF 阿富汗 AG 安提瓜和巴布达 AI 安圭拉岛 AL 阿尔巴尼亚 AM 亚'
                     +'美尼亚 AN 荷属安的列斯群岛 AO 安哥拉 AP 非洲地区工业产权组织(ARIPO) AR 阿根廷 AT 奥地'
                     +'利 AU 澳大利亚 AW 阿鲁巴岛(荷) BA 波斯尼亚和黑塞哥维那(波黑) BB 巴巴多斯 BD 孟加拉 AZ'
@@ -82,9 +110,33 @@ export default {
                 b.forEach((item,index)=>{
                     this.countryList.push({
                         label:a[index],
-                        value:item
+                        value:item.trim()
                     })
                 })
+                this.countryList.push(
+                    {
+                        label:'美国',
+                        value:'US'
+                    },
+                    {
+                        label:'日本',
+                        value:'JP'
+                    },
+                    {
+                        label:'俄罗斯',
+                        value:'RU'
+                    },
+                    {
+                        label:'韩国',
+                        value:'KR'
+                    },
+                )
+               var a = this.countryList.filter(item=>{return important.indexOf(item.value)!=-1})
+               a.sort((i,y)=>{
+                return important.indexOf(i.value) - important.indexOf(y.value)
+               })
+               var b = this.countryList.filter(item=>{return important.indexOf(item.value)==-1})
+               this.countryList = a.concat(b)
         },
         changeComponent(val){
             this.isComponent = val

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

@@ -309,6 +309,7 @@ export default {
       var params = {
         ...this.queryParams,
         searchQuery: this.$commonJS.objectToString(searchOption),
+        ...searchFiled2,
         orderDTOList: this.sort
       }
       this.$api.queryImportTask(params).then(res => {

+ 2 - 0
src/views/project/components/drawer/form.vue

@@ -373,6 +373,8 @@ export default {
           this.getEventList()
         }
         
+      }else{
+        this.getEventList()
       }
 
       this.personnelList.data = []

+ 21 - 3
src/views/report/components/dialog/addAndEditReport.vue

@@ -187,6 +187,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <span slot="button">
+                      <i class="el-icon-plus"></i>
+                    </span>
                   </mySelectButton>
                 </el-form-item>
               </el-col>
@@ -275,6 +278,8 @@
     
     <!-- 添加无效请求书 -->
     <addFlowPath ref="addFlowPath" @save="getFlowPath"></addFlowPath>
+
+    <addEvent ref="addEvent"  @isSuccess="handleSuccess"></addEvent>
   </div>
 </template>
 
@@ -283,11 +288,13 @@ import { mapGetters } from 'vuex'
 import addMatter from '../matter/addMatters.vue'
 import ClientTable from '@/views/client'
 import addFlowPath from '@/views/report/InvalidResponse/components/dialog/editFlowPath.vue'
+import addEvent from '@/views/event/components/dialog/addEvent.vue'; 
 export default {
   components: {
     addMatter,
     ClientTable,
-    addFlowPath
+    addFlowPath,
+    addEvent
   },
   props: {},
   data() {
@@ -572,9 +579,18 @@ export default {
      */
     //打开事件弹窗
     addEvent() {
-
+      var form = {
+        
+      }
+      this.$refs.addEvent.open(form, 1)
+    },
+    //事件新增成功
+    handleSuccess(){
+      this.eventList.data=[]
+      this.eventList.queryParams.current = 1
+      this.eventList.name = ''
+      this.getEventList()
     },
-
     /**
      * 事件
      */
@@ -700,6 +716,8 @@ export default {
             }
           })
           this.changeEvent(this.form.eventId)
+        }else{
+          this.getEventList()
         }
         a = '创建'
       }

+ 17 - 4
src/views/report/components/patentList/components/customFields/components/tab1.vue

@@ -210,20 +210,33 @@ export default {
     },
     // 全选
     handleSelectAll(val) {
-      if (val.id) {//自定义字段的全选
+      if (val.findKind == -1) {//自定义字段的全选
         val.check = val.options.map(item => {
-          return item.id
+          return item.name
         })
       } else {//专利本身的全选,没有id
         val.check = val.options.map(item => {
-          return item.name
+          return item.id
         })
       }
+      if (!val.checkData) {
+        val.checkData=[]
+      }
+      for(var i = 0;i<val.check.length;i++){
+        var obj = {
+          field:val.value,
+          value:val.check[i]
+        }
+        val.checkData.push(obj)
+      }
+        
 
     },
     // 取消
     handleSelectCancel(val) {
-      val.check = []
+      // val.check = []
+      this.$set(val,'check',[])
+      this.$set(val,'checkData',[])
     },
     // 加载更多
     handleLoading(val) {

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

@@ -81,7 +81,7 @@
                     class="el-icon-arrow-down el-icon--right"></i></el-button>
               </el-popover>
 
-              <div v-show="patentNoList.length" class="margin-left_10">
+              <div v-show="selectedTotal>0" class="margin-left_10">
                 <el-dropdown size="medium">
                   <el-button type="primary" size="small">
                     批量操作<i class="el-icon-arrow-down el-icon--right"></i>