Ver código fonte

专利导入

zhuliu 1 ano atrás
pai
commit
21cd9fae19

+ 217 - 0
src/views/components/import/components/importPatent copy.vue

@@ -0,0 +1,217 @@
+<template>
+    <div class="height_100">
+    <el-container>
+        <el-header>
+            <el-button v-if="importData.importToType != 2" size="small" type="primary" @click="handleManage">自定义栏位管理</el-button>
+        </el-header>
+        <el-container style=" height:calc(100% - 60px)">
+            <el-aside class="height_100" style="padding:10px" width="450px">
+                <div v-loading="loading">
+                    <el-form :model="form"> 
+                        <el-form-item v-if="importData.importToType != 2" label="选择需要关联的标引与分类">
+                            <div style="margin-top:50px">
+                                <span>栏位:</span>
+                                <span>
+                                    <el-select v-model="customFieldId" @change="changeCustomField"  placeholder="请选择">
+                                        <el-option
+                                        v-for="item in customField"
+                                        :key="item.name"
+                                        :label="item.name"
+                                        :value="item.keyValue">
+                                        </el-option>
+                                    </el-select>
+                                </span>
+                            </div>
+                            <div style="margin-top:20px" v-if="customFieldId">
+                                <template v-if="choseField.type === 0 || choseField.type === 2">
+                                    <el-input v-model="choseField.fieldValue" placeholder="请输入内容" size="small" @change="changeValue"></el-input>
+                                </template>
+                                <template v-if="choseField.type === 1">
+                                    <el-date-picker v-model="choseField.fieldValue"  value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期" style="width: 100%;" @change="changeValue"></el-date-picker>
+                                </template>
+                                <!-- <template v-if="choseField.type === 3">
+                                    <el-select v-model="form.json.field[choseField.id].value" size="small" placeholder="请选择" class="width_100">
+                                        <el-option v-for="option in choseField.options" :key="option.name" :value="option.id" :label="option.name"></el-option>
+                                    </el-select>
+                                </template> -->
+                                <template v-if="choseField.type === 4">
+                                    <el-radio-group v-model="choseField.fieldValue">
+                                        <el-radio v-for="option in choseField.options" :key="option.name" :label="option.id" @input="changeValue(option.id,option)">{{ option.name }}</el-radio>
+                                    </el-radio-group>
+                                </template>
+                                <template v-if="choseField.type === 5">
+                                    <el-checkbox-group v-model="choseField.fieldValue" >
+                                        <el-checkbox v-for="option in choseField.options" :key="option.name" :label="option.id" @change="changeValue(option.id,option)">{{ option.name }}</el-checkbox>
+                                    </el-checkbox-group>
+                                </template>
+                                <template v-if="choseField.type === 6">
+                                    <el-tree
+                                        :ref="choseField.id"
+                                        :data="choseField.options"
+                                        node-key="id"
+                                        :props="treeProp"
+                                        :expand-on-click-node="false"
+                                        :default-expand-all="true"
+                                    >
+                                    <span class="custom-tree-node" slot-scope="{ node, data }">
+                                        <el-checkbox-group v-model="choseField.fieldValue" >
+                                            <el-checkbox :label="data.id" @change="changeValue(data.id,data)">{{ data.name }}</el-checkbox>
+                                        </el-checkbox-group>
+                                    </span>
+                                    </el-tree>
+                                </template>
+                            </div>
+                            <div v-if="assoImportTaskFieldVOS.length>0">
+                                <el-tag v-for="(item,index) in assoImportTaskFieldVOS" :key="item.fieldValueId">{{ item.fieldName }} = {{ item.fieldValueStr }} <span><i @click="del(index,item)" class="el-icon-error"></i></span></el-tag>
+                            </div>
+                        </el-form-item>
+                        <el-form-item label="数据来源:" v-if="form.type == 1">
+                            <select style="width:300px;border:0;outline:none" name="" id="" v-model="form.sourceId">
+                            <option value="">请选择数据来源</option>
+                            <option v-for="item in ExcelConfig" :key="item.name" :value="item.id">{{item.name}}</option>
+                            </select>
+                            <el-divider ></el-divider>
+                        </el-form-item>
+
+                        <!-- <template v-if="form.type != 1">
+                            <div>
+                                <el-form-item label="是否更新" prop="ifUpdate">
+                                    <el-switch v-model="form.ifUpdate" :active-value="true" :inactive-value="false" active-color="#13ce66" inactive-color="#ff4949">  </el-switch>
+                                </el-form-item>
+                                <template>
+                                    <div>
+                                        <el-form-item label="更新间隔" prop="dateType">
+                                            <el-select v-model="form.dateType" @change="getDateType" clearable placeholder="请选择更新时间间隔" style="margin-right: 20px;">
+                                            <el-option v-for="item in $constants.updateCycle"
+                                                :key="item.value"
+                                                :label="item.label"
+                                                :value="item.value">
+                                            </el-option>
+                                            </el-select>
+                                        </el-form-item>
+                                        <el-form-item label="选择更新具体时间" v-if="form.dateType" >
+                                            <myTimeChoose :type="form.dateType" @value="handleData" :cron="form.crons" style="width:300px"></myTimeChoose>
+                                        </el-form-item>
+                                    </div>
+                                </template>
+                            </div>
+                        </template> -->
+                        <template v-if="['2','3'].indexOf(form.type) != -1">
+                            <div>
+                                <el-form-item label="导入内容">
+                                    <el-select v-model="importContent"  multiple collapse-tags placeholder="请选择导入内容" >
+                                        <el-option v-for="item in importContents"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                                <el-form-item label="导入方式">
+                                    <!-- <el-switch
+                                        v-model="form.type"
+                                        active-color="#13ce66"
+                                        active-value="2"
+                                        inactive-value="3"
+                                        active-text="专利号"
+                                        inactive-text="文件">
+                                    </el-switch> -->
+                                    <el-radio-group v-model="form.type">
+                                        <el-radio label="2">专利号</el-radio>
+                                        <el-radio label="3">文件</el-radio>
+                                    </el-radio-group>
+                                </el-form-item>
+                                <el-form-item label="专利号:" v-if="form.type == 2">
+                                    <el-input type="textarea" v-model="form.searchCondition" placeholder="请输入专利号(多个专利号同时添加中间请用符号“,”隔开)"></el-input>
+                                </el-form-item> 
+                            </div>
+                        </template>
+                        
+                        <el-form-item label="选择需要上传的文件" v-if="form.type != 2" style="height: 230px;">
+                            <myUpload @on-change="onChange" :autoUpload="true"></myUpload>
+                        </el-form-item>
+                    </el-form>
+                    <el-button v-if="form.type !=1" type="primary" size="small" @click="handleConfirm" style="float:right;width:80px" > 导入</el-button>
+                </div>
+            </el-aside>
+            <el-main style="padding: 0 20px !important;" >
+                <systemTask ref="systemTask" :importToId="form.importToId" :importToType="form.importToType"></systemTask>
+            </el-main>
+        </el-container>
+    </el-container>
+    <Field-Drawer ref="FieldDrawer" @close="closeFieldDrawer"></Field-Drawer>
+
+  </div>
+</template>
+
+<script>
+import mixins from '../mixins/index'
+export default {
+    mixins:[mixins],
+  data() {
+    return {
+      
+      loading:false,
+    }
+  },
+  computed: {
+   
+  },
+  mounted() {
+  },
+  methods: {
+
+    onChange(file, fileList) {
+        if(file.guid){
+            this.form.fileGuid = file.guid
+            this.handleConfirm()
+        }
+    },
+    handleConfirm() {
+        if(this.form.type == 1){
+            if (!this.form.fileGuid) {
+                this.$message.error('请选择文件')
+                return false
+            }
+            if (!this.form.sourceId) {
+                this.$message.error('请选择数据类型')
+                return false
+            }
+        }else{
+           
+            if(this.form.type == 2){
+                if(!this.form.searchCondition){
+                    this.$message.error('请输入专利号')
+                    return false
+                }
+            }else if(this.form.type == 3){
+                if (!this.form.fileGuid) {
+                    this.$message.error('请上传文件')
+                    return false
+                }
+            }
+            var importContent = []
+            this.importContents.forEach(item => {
+                var index = this.importContent.indexOf(item.value)
+                if(index != -1){
+                    importContent.push(1)
+                }else{
+                    importContent.push(0)
+                }
+            });
+            this.form.importContent = Number(importContent.join(''))
+        }
+        this.form.assoImportTaskFieldVOS = this.assoImportTaskFieldVOS
+        // console.log(this.form)
+        this.addImportTask(this.form)
+      
+    }
+  },
+}
+</script>
+
+<style lang="scss">
+.el-divider--horizontal{
+  margin:0
+}
+</style>

+ 35 - 45
src/views/components/import/components/importPatent.vue

@@ -1,12 +1,13 @@
 <template>
-    <div class="height_100">
+    <div class="height_100 importContent">
     <el-container>
         <el-header>
-            <el-button v-if="importData.importToType != 2" size="small" type="primary" @click="handleManage">自定义栏位管理</el-button>
+            <div class="head">
+               <el-button v-if="importData.importToType != 2" size="small" type="primary" @click="handleManage">自定义栏位管理</el-button> 
+            </div>
         </el-header>
-        <el-container style=" height:calc(100% - 60px)">
-            <el-aside class="height_100" style="padding:10px" width="450px">
-                <div v-loading="loading">
+            <el-main class="height_100" style="padding:10px">
+                <div class="content" v-loading="loading">
                     <el-form :model="form"> 
                         <el-form-item v-if="importData.importToType != 2" label="选择需要关联的标引与分类">
                             <div style="margin-top:50px">
@@ -66,36 +67,12 @@
                             </div>
                         </el-form-item>
                         <el-form-item label="数据来源:" v-if="form.type == 1">
-                            <select style="width:300px;border:0;outline:none" name="" id="" v-model="form.sourceId">
+                            <select style="width:calc(100% - 100px);border:0;outline:none" name="" id="" v-model="form.sourceId">
                             <option value="">请选择数据来源</option>
                             <option v-for="item in ExcelConfig" :key="item.name" :value="item.id">{{item.name}}</option>
                             </select>
                             <el-divider ></el-divider>
                         </el-form-item>
-
-                        <!-- <template v-if="form.type != 1">
-                            <div>
-                                <el-form-item label="是否更新" prop="ifUpdate">
-                                    <el-switch v-model="form.ifUpdate" :active-value="true" :inactive-value="false" active-color="#13ce66" inactive-color="#ff4949">  </el-switch>
-                                </el-form-item>
-                                <template>
-                                    <div>
-                                        <el-form-item label="更新间隔" prop="dateType">
-                                            <el-select v-model="form.dateType" @change="getDateType" clearable placeholder="请选择更新时间间隔" style="margin-right: 20px;">
-                                            <el-option v-for="item in $constants.updateCycle"
-                                                :key="item.value"
-                                                :label="item.label"
-                                                :value="item.value">
-                                            </el-option>
-                                            </el-select>
-                                        </el-form-item>
-                                        <el-form-item label="选择更新具体时间" v-if="form.dateType" >
-                                            <myTimeChoose :type="form.dateType" @value="handleData" :cron="form.crons" style="width:300px"></myTimeChoose>
-                                        </el-form-item>
-                                    </div>
-                                </template>
-                            </div>
-                        </template> -->
                         <template v-if="['2','3'].indexOf(form.type) != -1">
                             <div>
                                 <el-form-item label="导入内容">
@@ -108,14 +85,6 @@
                                     </el-select>
                                 </el-form-item>
                                 <el-form-item label="导入方式">
-                                    <!-- <el-switch
-                                        v-model="form.type"
-                                        active-color="#13ce66"
-                                        active-value="2"
-                                        inactive-value="3"
-                                        active-text="专利号"
-                                        inactive-text="文件">
-                                    </el-switch> -->
                                     <el-radio-group v-model="form.type">
                                         <el-radio label="2">专利号</el-radio>
                                         <el-radio label="3">文件</el-radio>
@@ -128,16 +97,16 @@
                         </template>
                         
                         <el-form-item label="选择需要上传的文件" v-if="form.type != 2" style="height: 230px;">
-                            <myUpload @on-change="onChange" :autoUpload="true"></myUpload>
+                            <myUpload @on-change="onChange" :fileList="files"  :autoUpload="true"></myUpload>
                         </el-form-item>
                     </el-form>
-                    <el-button v-if="form.type !=1" type="primary" size="small" @click="handleConfirm" style="float:right;width:80px" > 导入</el-button>
+                    <div class="foot">
+                      <el-button type="primary" size="small" @click="handleConfirm" style="width:80px" > 导入</el-button>  
+                    </div>
+                    
                 </div>
-            </el-aside>
-            <el-main style="padding: 0 20px !important;" >
-                <systemTask ref="systemTask" :importToId="form.importToId" :importToType="form.importToType"></systemTask>
             </el-main>
-        </el-container>
+
     </el-container>
     <Field-Drawer ref="FieldDrawer" @close="closeFieldDrawer"></Field-Drawer>
 
@@ -152,6 +121,7 @@ export default {
     return {
       
       loading:false,
+      files:[]
     }
   },
   computed: {
@@ -162,9 +132,10 @@ export default {
   methods: {
 
     onChange(file, fileList) {
+        this.files = [file.raw]
         if(file.guid){
             this.form.fileGuid = file.guid
-            this.handleConfirm()
+            // this.handleConfirm()
         }
     },
     handleConfirm() {
@@ -214,4 +185,23 @@ export default {
 .el-divider--horizontal{
   margin:0
 }
+</style>
+<style lang="scss" scoped>
+    .importContent{
+        width: 100%;
+        .head{
+            width: 100%;
+            display: flex;
+            justify-content: flex-end;
+        }
+        .content{
+            width: 50%;
+            min-width: 500px;
+            margin: auto;
+        }
+        .foot{
+            display: flex;
+            justify-content: flex-end;
+        }
+    }
 </style>

+ 3 - 38
src/views/components/import/conditionImport/components/projectListDialog.vue

@@ -166,7 +166,7 @@
             >
             </el-switch>
           </el-form-item>
-          <template v-if="form.ifUpdate">
+          <template v-if="form.ifUpdate == true">
             <div>
               <el-form-item label="更新间隔" prop="dateType">
                 <el-select
@@ -413,43 +413,8 @@ export default {
         }
       });
     },
-    //弹窗
-    getConfirm() {
-      const h = this.$createElement;
-      this.$msgbox({
-        title: "提示",
-        message: h("p", null, [
-          h("span", null, "任务正在导入,查看任务进度请前往 "),
-          h(
-            "span",
-            {
-              class: "MessageBoxClass",
-              on: {
-                click: () => {
-                  this.toTaskList();
-                  // 通过close关闭消息弹窗,this.$confirm就是this.$confirm.close(false),其他同理
-                  this.$msgbox.close(false);
-                },
-              },
-            },
-            "任务清单"
-          ),
-        ]),
-        type: "warning",
-        showConfirmButton: false,
-      }).then((action) => {});
-    },
-    //跳转到任务清单
-    toTaskList() {
-      // 传专题库id是查到当前专题库的导入任务,不传是查看所有导入任务
-      const router = this.$router.resolve({
-        path: "/taskList",
-        query:{
-          importToId:this.form.importToId
-        }
-      });
-      window.open(router.href, "_blank");
-    },
+    
+    
     //切换项目
     changeProjectId(val) {
       if(this.form.importToId && this.form.importToType != 2){

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

@@ -245,7 +245,8 @@ export default{
                 this.form = this.importData
                 this.btnLoading = false
                 this.loading = false
-                this.getQueueList()
+                // this.getQueueList()
+                this.getConfirm()
             }).catch(error => {
                 this.btnLoading = false
                 this.loading = false
@@ -254,6 +255,42 @@ export default{
         getQueueList() {
             this.$refs.systemTask.getList()
         },
+        //弹窗
+        getConfirm() {
+            const h = this.$createElement;
+            this.$msgbox({
+                title: "提示",
+                message: h("p", null, [
+                    h("span", null, "任务正在导入,查看任务进度请前往"),
+                    h(
+                    "span",
+                    {
+                        class: "MessageBoxClass",
+                        on: {
+                        click: () => {
+                            this.toTaskList();
+                            // 通过close关闭消息弹窗,this.$confirm就是this.$confirm.close(false),其他同理
+                            this.$msgbox.close(false);
+                        },
+                        },
+                    },
+                    "任务清单"
+                    ),
+                ]),
+                type: "warning",
+                showConfirmButton: false,
+            }).then((action) => {});
+        },
+        //跳转到任务清单
+        toTaskList() {
+            // 传专题库id是查到当前专题库的导入任务,不传是查看所有导入任务
+            this.$router.push({
+                path: "/taskList",
+                query:{
+                    importToId:this.form.importToId
+                }
+            });
+        },
         // 获取时间
         handleData(val) {
             if (this.form.dateType=='') {

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

@@ -98,6 +98,9 @@ export const patentDetails = {
       this.$api[api](params).then(response => {
         if (response.code == 200) {
           this.$set(this.patent,dict[value],response.data[dict[value]])
+          if(value == 5){
+            this.getSrc()
+          }
           this.loading = false
         }
       }).catch(error => {