Преглед на файлове

专利导入,三种导入方式

zhuliu преди 1 година
родител
ревизия
9808c590d0

+ 15 - 0
src/api/newApi/importAndExport.js

@@ -19,4 +19,19 @@ export default {
     queryImportTask(data) {
         return axios.post('/xiaoshi/importTask/queryImportTask', data)
     },
+
+    /**
+    * 任务的暂停、继续、取消
+    */
+    updateImportTaskState(params) {
+        return axios.get('/xiaoshi/importTask/updateImportTaskState', {params})
+    },
+
+    /**
+    * 检索专利
+    */
+    patentSelect(data) {
+        return axios.post('/xiaoshi/patentStar/select', data)
+    },
+   
 }

+ 20 - 27
src/router/index.js

@@ -524,15 +524,15 @@ const routes = [
         },
         component:() => import('@/views/components/import/conditionImport'),
       },
-      // //检索结果
-      // {
-      //   path: "/searchResult",
-      //   meta: {
-      //     title: '检索结果',
-      //     // button: [],
-      //   },
-      //   component: () => import('@/views/components/import/conditionImport/searchResultIndex.vue'),
-      // },
+      //检索结果
+      {
+        path: "/searchResult",
+        meta: {
+          title: '检索结果',
+          // button: [],
+        },
+        component: () => import('@/views/components/import/conditionImport/searchResultIndex.vue'),
+      },
       // //检索专利详情
       // {
       //   path: "/search/patentDetail",
@@ -542,15 +542,16 @@ const routes = [
       //   },
       //   component: () => import('@/views/components/import/conditionImport/patentDetails/patentIndex.vue'),
       // },
-      //任务清单
-      // {
-      //   path: "/taskList",
-      //   meta: {
-      //     title: '任务清单',
-      //     button: [],
-      //   },
-      //   component: () => import('@/views/task/taskIndex.vue'),
-      // },
+      // 任务清单
+      {
+        path: "/taskList",
+        name:'taskList',
+        meta: {
+          title: '任务清单',
+          sign:'taskList'
+        },
+        component: () => import('@/views/components/import/task/index.vue'),
+      },
       // //标注库
       // {
       //   path: "/indicia",
@@ -560,15 +561,7 @@ const routes = [
       //   },
       //   component: () => import('@/views/indicia'),
       // },
-      // //检索组件
-      // {
-      //   path: "/search",
-      //   meta: {
-      //     title: '检索',
-      //     button: [],
-      //   },
-      //   component: () => import('@/views/components/common/retrieval'),
-      // },
+
       
     ]
   },

+ 141 - 103
src/views/components/import/components/importPatent.vue

@@ -1,110 +1,137 @@
 <template>
-    <div class="import-patent">
+    <div class="height_100">
     <el-container>
         <el-header>
             <el-button size="small" type="primary" @click="handleManage">自定义栏位管理</el-button>
         </el-header>
-        <el-container>
-            <el-aside width="450px">
-                <div class="import-patent-action-main" v-loading="loading">
+        <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 label="专利号:" v-if="[2,3].indexOf(form.type) != -1">
-                            <el-input v-model="queryParams.conditions" placeholder="请输入专利号(多个专利号同时添加中间请用符号“|”隔开)"></el-input>
-                        </el-form-item>
-                    <el-form-item 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" @change="changeValue">
-                                    <el-radio v-for="option in choseField.options" :key="option.name" :label="option.id">{{ 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-form-item 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 :label="data.id" @change="changeValue(data.id,data)">{{ data.name }}</el-checkbox>
+                                        <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>
-                                </span>
-                                </el-tree>
-                            </template>
-                        </div>
-                    </el-form-item>
-                    <el-form-item label="数据来源:">
-                        <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>
+                                <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"
+                        <!-- <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="选择更新具体时间" v-if="form.dateType" >
-                                        <myTimeChoose :type="form.dateType" @value="handleData" :cron="form.crons" style="width:300px"></myTimeChoose>
-                                    </el-form-item>
-                                </div>
-                            </template>
-                        </div>
-                    </template>
-
-                        <el-form-item label="选择需要上传的文件" style="height: 230px;">
+                                    </el-select>
+                                </el-form-item>
+                                <el-form-item label="导入方式">
+                                    <el-switch
+                                        v-model="form.type"
+                                        active-color="#13ce66"
+                                        inactive-color="#ff4949"
+                                        active-value="2"
+                                        inactive-value="3"
+                                        active-text="专利号"
+                                        inactive-text="文件">
+                                    </el-switch>
+                                </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;">
+            <el-main style="padding: 0 20px !important;" >
                 <systemTask ref="systemTask" :importToId="form.importToId"></systemTask>
             </el-main>
         </el-container>
@@ -124,7 +151,9 @@ export default {
       loading:false,
     }
   },
-  computed: {},
+  computed: {
+   
+  },
   mounted() {
   },
   methods: {
@@ -146,16 +175,31 @@ export default {
                 return false
             }
         }else{
-            if (!this.form.fileGuid) {
-                this.form.type = 2
-                this.$message.error('请输入专利号或者上传文件')
-                return false
-            }else{
-                this.form.type = 3
+           
+            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(''))
         }
-        // console.log(this.assoImportTaskFieldVOS)
+        this.form.assoImportTaskFieldVOS = this.assoImportTaskFieldVOS
+        // console.log(this.form)
         this.addImportTask(this.form)
       
     }
@@ -167,10 +211,4 @@ export default {
 .el-divider--horizontal{
   margin:0
 }
-.import-patent {
-    height: 100%;
-    .import-patent-action-main{
-        padding: 10px;
-    }
-}
 </style>

+ 418 - 448
src/views/components/import/conditionImport/components/projectListDialog.vue

@@ -1,483 +1,367 @@
 <template>
   <div>
-    <el-dialog title="导入到报告" :visible.sync="dialogVisible" width="500px" :before-close="handleClose">
-        <div>
-            <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-              <!-- <el-form-item label="任务名称">
-                <div>
-                  <el-input v-model="form.taskName" placeholder="请输入任务名称"></el-input>
-                </div>
-              </el-form-item> -->
-                <el-form-item label="选择报告" prop="reportId">
-                    <div class="selectButton">
-                        <el-select v-model="form.reportId" filterable remote clearable @change="changeProjectId" placeholder="请选择报告" :loading="loading" v-SelectLazyLoading="lazyLoading" :remote-method="remoteMethod">
-                            <el-option
-                            v-for="item in reportList"
-                            :key="item.id"
-                            :label="item.name"
-                            :value="item.id"
-                            >
-                            </el-option>
-                        </el-select>
-                        <!-- <el-button @click="addProject"><i class="el-icon-plus"></i></el-button> -->
-                    </div>
-                </el-form-item>
-                <!-- <template v-if="form.reportId" >
-                    <div style="margin:10px 0;">
-                        <p>选择需要关联的标引与分类</p>
-                            <el-table :data="tableData" :show-header="false">
-                                <el-table-column type="expand">
-                                    <template slot-scope="props">
-                                        <el-form label-position="top" class="custom-field-form">
-                                            <template v-if="props.row.field === 'folder'">
-                                                <el-tree
-                                                    ref="folderTree"
-                                                    :data="customField.folder"
-                                                    check-strictly
-                                                    :default-checked-keys="form.json.field.folder"
-                                                    show-checkbox
-                                                    node-key="id"
-                                                    :props="defaultProps"
-                                                    @check-change="changeFolder"
-                                                ></el-tree>
-                                            </template>
-                                            <template v-else v-for="(item, index) in customField[props.row.field]">
-                                                <el-form-item :label="`${index + 1}. ${item.name}`">
-                                                    <template v-if="item.type === 0 || item.type === 2">
-                                                    <el-input v-model="form.json.field[item.id].value" placeholder="请输入内容" size="small"></el-input>
-                                                    </template>
-                                                    <template v-if="item.type === 1">
-                                                    <el-date-picker v-model="form.json.field[item.id].value" value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期" style="width: 100%;"></el-date-picker>
-                                                    </template>
-                                                    <template v-if="item.type === 3">
-                                                    <el-select v-model="form.json.field[item.id].value" size="small" placeholder="请选择" class="width_100">
-                                                        <el-option v-for="option in item.option" :value="option.id" :label="option.name"></el-option>
-                                                    </el-select>
-                                                    </template>
-                                                    <template v-if="item.type === 4">
-                                                    <el-radio-group v-model="form.json.field[item.id].value">
-                                                        <el-radio v-for="option in item.option" :label="option.id">{{ option.name }}</el-radio>
-                                                    </el-radio-group>
-                                                    </template>
-                                                    <template v-if="item.type === 5">
-                                                    <el-checkbox-group v-model="form.json.field[item.id].value">
-                                                        <el-checkbox v-for="option in item.option" :label="option.id">{{ option.name }}</el-checkbox>
-                                                    </el-checkbox-group>
-                                                    </template>
-                                                    <template v-if="item.type === 6">
-                                                    <el-tree
-                                                        :ref="item.id"
-                                                        :data="item.option"
-                                                        check-strictly
-                                                        :default-checked-keys="form.json.field[item.id].value"
-                                                        show-checkbox
-                                                        node-key="id"
-                                                        :props="defaultProps"
-                                                        @check-change="changeField(item.id)"
-                                                    ></el-tree>
-                                                    </template>
-                                                </el-form-item>
-                                            </template>
-                                        </el-form>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="name" show-overflow-tooltip>
-                                    <template slot-scope="scope">
-                                        <div style="display:flex;justify-content: space-between;align-items:center">
-                                            <span>{{ scope.row.name }}</span>
-                                            <span v-if="scope.row.field === 'folder'"><el-button type="primary" size="small" @click="handleFolder(form.reportId)" :disabled="!($permission('/workspace/common/folder_manage') && $r(form.reportId,[1,2]))">文件夹管理</el-button></span>
-                                            <span v-else><el-button type="primary" size="small" @click="handleManage(form.reportId)" :disabled="!($permission('/workspace/common/customField') && $r(form.reportId,[1,2]))">自定义栏位管理</el-button></span>
-                                        </div>
-                                    </template>
-                                </el-table-column>
-                            </el-table>
-                    </div>
-                </template> -->
-                <el-form-item label="作为对比文件">
+    <el-dialog
+      :title="title"
+      :visible.sync="dialogVisible"
+      width="500px"
+      :before-close="handleClose"
+    >
+      <div>
+        <el-form ref="form" :model="form" :rules="rules" >
+          <el-form-item label="导入到:">
+            <el-select v-model="form.importToType" clearable @change="changeImportToType" placeholder="请选择">
+                <el-option
+                  v-for="(item,key) in importToTypes"
+                  :key="item"
+                  :label="item"
+                  :value="key"
+                >
+                </el-option>
+              </el-select>
+          </el-form-item>
+          <el-form-item v-if="form.importToType || form.importToType == 0 " :label="'选择' + (importToTypes[form.importToType]?importToTypes[form.importToType]:'')" prop="importToId">
+            <div >
+              <el-select v-model.number="form.importToId" filterable remote clearable @change="changeProjectId" placeholder="请选择" v-SelectLazyLoading="lazyLoading" :remote-method="remoteMethod">
+                <el-option
+                  v-for="item in ods.data"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="parseInt(item.id)"
+                >
+                </el-option>
+              </el-select>
+            <!-- <el-button @click="addProject"><i class="el-icon-plus"></i></el-button> -->
+            </div>
+          </el-form-item>
+          <!-- <el-form-item label="作为对比文件">
                   <el-switch
                     v-model="form.asCompare"
                     active-value="1"
                     active-text="是"
                     inactive-text="否">
                   </el-switch>
-                </el-form-item>
-                <el-form-item label="下载内容">
-                    <el-select v-model="form.configCells" multiple collapse-tags style="width:100%">
-                        <el-option v-for="item in patentField"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="定期更新" prop="taskType">
-                    <el-switch v-model="form.taskType" :active-value="1" :inactive-value="0" active-color="#13ce66" inactive-color="#ff4949" @change="changeTaskType"></el-switch>
-                </el-form-item>
-                <template>
-                    <div v-show="form.taskType">
-                    <el-form-item label="更新间隔" prop="dateType">
-                        <el-select v-model="form.dateType" @change="getDateType" clearable placeholder="请选择更新时间间隔"  style="width:100%">
-                        <el-option v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value">
-                        </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="具体更新时间" v-if="form.dateType"  style="width:100%">
-                        <timeChoose :type="form.dateType" @value="handleData" :cron="form.crons"></timeChoose>
-                    </el-form-item>
-                </div>
-                </template>
-            </el-form>
-            <div class="button">
-                <el-button type="primary" size="small" @click="onSubmit" :loading="btnLoading">导入</el-button>
-                <el-button size="small" @click="handleClose">取消</el-button>
+                </el-form-item> -->
+          <el-form-item label="选择需要关联的标引与分类" v-if="form.importToId">
+            <div style="margin-top: 50px" v-if="form.importToType!=2">
+              <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>
-    </el-dialog>
-   
-<!-- 
-    <project-form-drawer @submit="submitProjectForm" :common-data="commonData" ref="projectFormDrawer"/>
+            <div style="margin-top: 40px" 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 === 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>
 
-    <project-field-drawer @close="handleClose2" ref="projectFieldDrawer" />
 
-    <project-folder-dialog @close="updateFolder" ref="projectFolderDialog" /> -->
+          <el-form-item label="下载内容">
+            <el-select
+              v-model="importContent"
+              multiple
+              collapse-tags
+            >
+              <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="是否更新" 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 v-if="form.ifUpdate">
+            <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>
+        </el-form>
+        <div class="button">
+          <el-button
+            type="primary"
+            size="small"
+            @click="onSubmit"
+            :loading="btnLoading"
+            >导入</el-button
+          >
+          <el-button size="small" @click="handleClose">取消</el-button>
+        </div>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import timeChoose from "@/views/workspace/components/common/timeChoose.vue";
+import mixins from "../../mixins";
 export default {
-  components: {
-    timeChoose,
-  },
+  components: {},
+  mixins: [mixins],
   props: [],
   data() {
     return {
-      isLazy:true,
-      loading:false,
-      btnLoading:false,
-      customField:{},
-      tableData:[
-        {
-            name: '标引',
-            field: 'index'
-        }, 
-        {
-            name: '分类',
-            field: 'classify'
-        }, 
-        {
-            name: '文件夹',
-            field: 'folder'
-        }
-      ],
-      defaultProps: {
-        children: 'children',
-        label: 'name'
-      },
-      dialogVisible:false,
-      form: {},
-      queryParams:{
-        size:10,
-        current:1
-      },
-      reportList: [],
-      commonData:{},
-      options: [
-        {label:'每天',value:'day'},
-        {label:'每周',value:'week'},
-        {label:'每月',value:'month'},
-        {label:'每年',value:'year'},
-      ],
-    //   /1.著录项目 2.权要 3.说明书文本 4.说明书pdf 6.摘要附图
-      patentField:[
-        {
-            value:'1',
-            label:'著录项目'
+      title: "",
+      btnLoading: false,
+      dialogVisible: false,
+      importToTypes:{
+          0: "专题库",
+          1: "报告",
+          2: "产品",
         },
-        {
-            value:'2',
-            label:'权利要求'
-        },
-        {
-            value:'3',
-            label:'说明书文本'
-        },
-        {
-            value:'4',
-            label:'说明书pdf'
-        },
-        {
-            value:'6',
-            label:'摘要附图'
-        },
-      ],
-      rules: {
-          reportId: [
-            { required: true, message: '请选择报告', trigger: 'change' }
-          ],
-      }
+      ods:{
+          data:[],
+          queryParams:{
+            current:1,
+            size:10
+          },
+          loading:false,
+      },
+      rules:{}
     };
   },
   watch: {},
   computed: {},
   created() {},
   mounted() {
-    // this.$api.getCommonData({ keys: 'QUERY_GROUP,ENTERPRISE_APPLICATION_SCENARIO,INVESTIGATION_TYPE' }).then(response => {
-    //   this.commonData = response.data
-    // })
-    this.getReportList();
   },
   methods: {
-    open(form){
-        this.form = { 
-            ...form,
-            configCells:['1','2','3','4','6'],
-            taskType2:4,
-            taskType:0,
-            configId:2,
-            json: {
-                reportId: 0,
-                field: [],
-                folder: {}
-            }
-        }
-       if(this.form.reportId){
-        this.$set(this.form,'reportId',Number(this.form.reportId))
-        this.queryParams = {
-            current:1,
-            size:10,
-            reportId:this.form.reportId
-          }
-          var index = this.reportList.findIndex(item=>{
-            return item.id == this.form.reportId
-          })
-          if(index==-1){
-            this.$api.QueryReport(this.queryParams).then(response=>{
-              if(response.code == 200){
-                this.loading = false;
-                this.reportList = [...this.reportList, ...response.data];
-                this.queryParams.reportId = null
-              }
-            }).catch(error=>{
-              this.loading = false;
-            })
-          }
-          
-       } 
-        this.dialogVisible=true
-    },
-    //关闭弹窗
-    handleClose(){
-      this.$refs.form.resetFields()
-      this.dialogVisible=false
-    },
-    //导入
-    onSubmit(){
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          
-          this.form.fieldList = []
-          this.form.folderIds = this.form.json.field.folder
-          for (let id in this.form.json.field) {
-              const field = this.form.json.field[id]
-              if (!field) {
-                  continue;
-              }
-              const type = field.type
-              const value = field.value
-              if (value) {
-              if (type === 5 || type === 6) {
-                  value.map(option => {
-                      this.form.fieldList.push({
-                      fieldId: parseInt(id),
-                      type: type,
-                      optionId: option
-                  })
-                  })
-              } else {
-                  this.form.fieldList.push({
-                  fieldId: parseInt(id),
-                  type: type,
-                  optionId: [0, 1, 2].indexOf(type) === -1 ? value : 0,
-                  text: value
-                  })
-              }
-              }
-          }
-          if(!this.form.asCompare){
-            this.form.asCompare = 0
-          }
-          this.btnLoading = true
-          this.$api.addTask(this.form).then(response=>{
-            if(response.code == 200){
-              this.$message.success(response.data)
-              this.btnLoading = false
-              this.handleClose()
-              this.getConfirm()
-            }
-          }).catch(error=>{
-            this.loading = false;
-          })
-        }
-      })
-    },
-    //弹窗
-    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',
-      })
-      window.open(router.href,'_blank')
-    },
-    //切换专题库
-    changeProjectId(val){
-        // if(val){
-        //    this.getCustomField(val) 
-        // }
-        
-    },
-    //获取标引类型
-    getCustomField(reportId) {
-      this.$api.getCustomField({ reportId: reportId }).then(response => {
-        this.customField = response.data;
-        ['index', 'classify'].map(key => {
-          this.customField[key].map(item => {
-            let value = null
-            if (item.type === 5 || item.type === 6) {
-              value = []
-            }
-            this.$set(this.form.json.field, item.id, { type: item.type, value })
-          })
-        })
-      })
-    },
-    //打开自定义栏位弹窗
-    handleManage(reportId) {
-      this.$refs.projectFieldDrawer.open(reportId)
-    },
-    //关闭自定义栏位弹窗并更新自定义栏位数据
-    handleClose2(reportId) {
-      this.getCustomField(reportId)
+    open(form) {
+      this.form = {
+        ...form,
+      };
+      if (this.form.importToType) {
+        this.title = `导入到${this.importToTypes[this.form.importToType]}`;
+      } else [(this.title = `导入专利`)];
+      if (this.form.importToId) {
+
+      }
+      this.dialogVisible = true;
     },
-    //获取选中的分类节点
-    changeField(id){
-        this.form.json.field[id].value = this.$refs[id][0].getCheckedKeys()
+    changeImportToType(val){
+      this.ods = {
+        name:'',
+        data:[],
+        queryParams:{
+          current:1,
+          size:10
+        },
+        loading:false,
+      }
+      this.$set(this.form,'importToId','')
+      this.getData(val)
     },
-    //打开文件夹管理弹窗
-    handleFolder(reportId) {
-      this.$refs.projectFolderDialog.open(reportId)
+    getData(val){
+      var val1 = Number(val)
+      switch(val1){
+        case 0:
+          this.getProject()
+          break;
+        case 1:
+          this.getReport()
+          break;
+        case 2:
+          this.getProduct()
+          break;
+      }
     },
-    //关闭文件夹弹窗并更新数据
-    updateFolder(reportId) {
-      this.$api.getProjectFolderList({ reportId: reportId, patentTotal: false }).then(response => {
-        this.customField.folder = response.data
+    //获取专题库数据
+    async getProject(){
+      var obj = this.ods
+      obj.loading = true;
+      let params = {
+        ...obj.queryParams,//分页信息
+        searchQuery:obj.name?`name=${obj.name}`:'',//检索条件
+        orderDTOList: [
+          {
+            orderBy: "createTime",
+            orderType: 1
+          },
+        ]//排序
+      }
+      await this.$api.queryPatentProject(params).then(response => {
+        if(response.code == 200){
+          obj.loading = false;
+          obj.data.push(...response.data.data)
+          obj.queryParams.total = response.data.total
+        }
       })
     },
-    //获取选中的文件夹
-    changeFolder(data, checked, indeterminate){
-        this.form.json.field.folder = this.$refs.folderTree.getCheckedKeys()
-    },
-    //获取更新周期
-    getDateType(val) {
-      this.form.crons = ''
-    },
-    //是否定期更新
-    changeTaskType(val){
-        if(!val){
-            this.form.dateType = ''
-            this.form.crons = ''
+    //获取报告
+    async getReport(){
+      var obj = this.ods
+      obj.loading = true;
+      let params = {
+        ...obj.queryParams,//分页信息
+        searchQuery:obj.name?`name=${obj.name}`:'',//检索条件
+        orderDTOList: [
+          {
+            orderBy: "createTime",
+            orderType: 1
+          },
+        ]//排序
+      }
+      await this.$api.queryReportProject(params).then(response => {
+        if(response.code == 200){
+          obj.loading = false;
+          obj.data.push(...response.data.data)
+          obj.queryParams.total = response.data.total
         }
+      })
     },
-     // 获取时间
-     handleData(val) {
-      if (this.form.dateType=='') {
-        this.$message.error('请先选择更新周期')
-        return false
+    //获取产品
+    async getProduct(){
+      var obj = this.ods
+      obj.loading = true;
+      let params = {
+        ...obj.queryParams,//分页信息
+        searchQuery:obj.name?`product_name=${obj.name}`:'',//检索条件
+        orderDTOList: [
+          {
+            orderBy: "createTime",
+            orderType: 1
+          },
+        ]//排序
       }
-      this.form.crons=val
+      await this.$api.queryProduct(params).then(response => {
+        if(response.code == 200){
+          obj.loading = false;
+          obj.data.push(...response.data.data)
+          obj.queryParams.total = response.data.total
+        }
+      })
     },
-    
-    // 下拉框懒加载
-    lazyLoading() {
-      if(!this.isLazy){
+
+     //懒加载事件
+     lazyLoading(){
+      var obj = this.ods
+      if(obj.queryParams.current * obj.queryParams.size>=obj.queryParams.total){
         return false
       }
-      this.queryParams.current++;
-      this.getReportList();
+      obj.queryParams.current += 1
+      this.getData(this.form.importToType)
     },
     //远程搜索
-    remoteMethod(query) {
-      this.isLazy = true
-        if (query !== '') {
-          this.loading = true;
-          this.queryParams = {
-            current:1,
-            size:10,
-            name:query
-          }
-          this.$api.QueryReport(this.queryParams).then(response=>{
-            if(response.code == 200){
-              this.loading = false;
-              this.reportList = response.data
-            }
-          }).catch(error=>{
-            this.loading = false;
-          })
-        } else {
-          this.queryParams.name = null
-          this.reportList = [];
-          this.getReportList()
-        }
-      },
-    //查询报告列表
-    getReportList() {
-      if(!this.isLazy){
-        return false
-      }
-      this.$api.QueryReport(this.queryParams).then(response=>{
-        if(response.code == 200){
-          if(response.data && response.data.length == 0){
-            this.isLazy = false
-          }
-          if(this.form.reportId){
-            var index = response.data.findIndex(item=>{
-              return item.id == this.form.reportId
-            })
-            if(index!=-1){
-              response.data.splice(index,1)
-            }
-          }
-          this.reportList = [...this.reportList, ...response.data];
-        }
-      }).catch(error=>{
-      })
+    remoteMethod(query){
+      var obj = this.ods
+      obj.data=[]
+      obj.queryParams.current = 1
+      obj.name = query
+      this.getData(this.form.importToType)
     },
+
     //打开新增专题库弹窗
     addProject() {
       this.$refs.projectFormDrawer.open(
@@ -492,10 +376,96 @@ export default {
         "新增专题库"
       );
     },
-    //更新列表
-    submitProjectForm(type) {
-      this.getReportList()
+
+    //关闭弹窗
+    handleClose() {
+      this.$refs.form.resetFields();
+      this.dialogVisible = false;
     },
+    //导入
+    onSubmit() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          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)
+        }
+      });
+    },
+    //弹窗
+    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",
+      });
+      window.open(router.href, "_blank");
+    },
+    //切换项目
+    changeProjectId(val) {
+      if(this.form.importToId && this.form.importToType != 2){
+        this.customFieldId = ''
+            //获取所有栏位
+            this.getAllCustomField()
+      }else{
+        var obj = this.ods.data.find(item=>{
+          return item.id == val
+        })
+        this.choseField = {
+            id:obj.id,
+            name:obj.name,
+            type:6,
+            isProduct:2,
+            fieldValue:[]
+          }
+        this.customFieldId = val
+        this.getProductTree()
+      }
+    },
+
+    //打开自定义栏位弹窗
+    handleManage(reportId) {
+      this.$refs.projectFieldDrawer.open(reportId);
+    },
+
+
+
+
   },
 };
 </script>
@@ -503,15 +473,15 @@ export default {
 @import "@/assets/css/selectButton.scss";
 </style>
 <style lang="scss" scoped>
-.MessageBoxClass{
+.MessageBoxClass {
   color: red;
 }
-.MessageBoxClass:hover{
-  cursor:pointer;
-  border-bottom:1px solid red ;
+.MessageBoxClass:hover {
+  cursor: pointer;
+  border-bottom: 1px solid red;
 }
-.button{
-    display: flex;
-    justify-content: center;
+.button {
+  display: flex;
+  justify-content: center;
 }
 </style>

+ 15 - 9
src/views/components/import/conditionImport/components/search_history.vue

@@ -95,7 +95,7 @@
 <script>
 export default {
   components: {},
-  props:['reportId'],
+  props:['importData'],
   data() {
     return {
       height:document.documentElement.clientHeight,
@@ -178,13 +178,16 @@ export default {
       // }).catch(error=>{
 
       // })
+      var a = {
+        condition:this.form.conditions,
+        DBType:this.form.dbType,
+        importToId:this.importData.importToId,
+        retrieveRecordId:null
+      }
       const router = this.$router.resolve({
                 path: '/searchResult',
                 query: {
-                    condition:this.form.conditions,
-                    DBType:this.form.dbType,
-                    reportId:this.reportId?this.reportId:null,
-                    retrieveRecordId:null
+                  data:JSON.stringify(a)
                 }
             })
             // this.$s.setSession('retrieveRecordId',0)
@@ -194,13 +197,16 @@ export default {
     },
     //执行检索历史
     executeSearch(row){
+      var a = {
+        condition:row.conditions,
+        DBType:row.dbType,
+        importToId:this.importData.importToId,
+        retrieveRecordId:null
+      }
       const router = this.$router.resolve({
                 path: '/searchResult',
                 query: {
-                    condition:row.conditions,
-                    DBType:row.dbType,
-                    reportId:this.reportId?this.reportId:null,
-                    retrieveRecordId:null
+                  data:JSON.stringify(a)
                 }
             })
             // this.$s.setSession('retrieveRecordId',row.id)

+ 3 - 10
src/views/components/import/conditionImport/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div style="background:white">
-    <search :reportId="reportId" :asCompare="asCompare" :projectId="projectId"></search>
+    <search :importData="importData"></search>
   </div>
 </template>
 
@@ -17,16 +17,9 @@ export default {
   },
   watch: {},
   computed: {
-    reportId(){
-        return this.$route.query.reportId
-    },
-    projectId() {
-      return this.$route.query.projectId
-    },
-    asCompare() {
-      return this.$route.query.asCompare
+    importData() {
+      return this.$route.query
     }
-    
   },
   created() {},
   mounted() {

+ 11 - 8
src/views/components/import/conditionImport/search.vue

@@ -23,7 +23,7 @@
 
         <el-dialog title="检索历史" :visible.sync="dialogVisible" width="1200px" :close-on-click-modal="false">
             <div>
-                <searchHistory ref="searchHistory" :reportId="reportId" :projectId="projectId"></searchHistory> 
+                <searchHistory ref="searchHistory" :importData="importData"></searchHistory> 
             </div>
         </el-dialog>
         
@@ -35,6 +35,7 @@ import AdvancedSearch from './AdvancedSearch.vue';
 import customSearch from './customSearch.vue'
 
 import searchHistory from './components/search_history.vue';
+import mixins from '../mixins/index'
 export default {
     components:{
         FormSearch,
@@ -42,7 +43,8 @@ export default {
         customSearch,
         searchHistory
     },
-    props:['reportId','asCompare','projectId'],
+    mixins:[mixins],
+    props:[],
     data() {
         return {
             isComponent:'FormSearch',
@@ -88,15 +90,16 @@ export default {
             this.isComponent = val
         },
         search(val){
+            var a = {
+                condition:val,
+                DBType:this.DBType,
+                retrieveRecordId:null,
+                ...this.importData
+            }
             this.$router.push({
                 path: '/searchResult',
                 query: {
-                    condition:val,
-                    DBType:this.DBType,
-                    reportId:this.reportId?this.reportId:null,
-                    projectId:this.projectId?this.projectId:null,
-                    retrieveRecordId:null,
-                    asCompare:this.asCompare
+                    data:JSON.stringify(a)
                 }
             })
             // this.$s.setSession('retrieveRecordId',0)

+ 69 - 90
src/views/components/import/conditionImport/searchResult.vue

@@ -7,23 +7,44 @@
       >
         <div>
           <el-button-group class="margin-left_10">
-            <el-tooltip v-for="item in viewList" class="item" effect="dark" :content="item.title" placement="top">
+            <el-tooltip v-for="item in viewList" :key="item.value" class="item" effect="dark" :content="item.title" placement="top">
               <el-button @click="handleChangeView(item)" size="small" :type="viewSelected === item.value ? 'primary' : ''" :icon="item.btn"></el-button>
             </el-tooltip>
           </el-button-group>
-          <span v-if="selectedTotal>0" >
-            已勾选 <b>{{ selectedTotal }}</b> 条
-          </span>
+          
         </div>
         
         <div style="max-width:calc(100% - 620px)">
-          <p><span>条件:</span>{{ condition }}</p>
+          <p><span>条件:</span>{{ searchData.condition }}</p>
         </div>
         <div>
-          <el-button type="primary" size="small" @click="importToProject">导入到报告</el-button>
+          <el-button type="primary" size="small" @click="importToProject">导入专利</el-button>
           <el-button size="small" type="warning" @click="handleFieldManage">显示栏位管理</el-button>
+        </div>
+      </el-header>
+      <el-main id="patent-list-container" v-loading="loading">
+        <div>
+          <component
+            ref="patentViewList"
+            :is="viewSelected"
+            :column="columnList"
+            @select-change="handleSelect"
+            :selected.sync="queryParams.selected"
+            :patentNoList.sync="patentNoList"
+            :view-field="patentViewField"
+            @on-sort="handleSort"
+            @addSelect="getChoosePatentNo"
+          ></component>
+        </div>
+      </el-main>
+      <el-footer class="workspace-content-patent-page foot-total">
+        <div>
+          <span v-if="selectedTotal>0" >
+            已勾选 <b>{{ selectedTotal }}</b> 条
+          </span>
           <el-popover placement="bottom" title="" width="220" trigger="click">
             <el-main class="patent-fast-edit-popover" v-loading="selectNumberLoading">
+              <div class="btn" @click="handleCancelSelectNumber">取消选择</div>
               <div class="btn" @click="handleSelectNumber(0)">本页选择</div>
               <div class="btn" @click="handleSelectNumber(1)">全部选择</div>
               <el-divider></el-divider>
@@ -37,61 +58,50 @@
             </el-main>
             <el-button type="info" size="small" class="margin-left_10" slot="reference"> 选择专利<i class="el-icon-arrow-down el-icon--right"></i></el-button>
           </el-popover>
-          <el-button type="text" size="small" class="margin-left_10" @click="handleCancelSelectNumber">取消选择</el-button>
         </div>
-      </el-header>
-      <el-main id="patent-list-container" v-loading="loading">
-        <div :style="{height:divHeight+'px'}">
-          <component
-            ref="patentViewList"
-            :is="viewSelected"
-            @select-change="handleSelect"
-            :selected.sync="queryParams.selected"
-            :patentNoList.sync="patentNoList"
-            :view-field="patentViewField"
-            @on-sort="handleSort"
-            @addSelect="getChoosePatentNo"
-          ></component>
+        <div class="foot-total">
+          <span class="total">共{{ total }}条</span>
+            <el-pagination
+              background
+              layout="total, sizes, prev, pager, next, jumper"
+              :current-page.sync="queryParams.current"
+              :page-size.sync="queryParams.size"
+              :page-sizes="pageSizes"
+              :page-count="getPageCount()"
+              @current-change="handleCurrentChange"
+              @size-change="getList"
+            >
+            </el-pagination>
         </div>
-      </el-main>
-      <el-footer class="workspace-content-patent-page foot-total">
-        <span class="total">共{{ total }}条</span>
-        <el-pagination
-          background
-          layout="total, sizes, prev, pager, next, jumper"
-          :current-page.sync="queryParams.current"
-          :page-size.sync="queryParams.size"
-          :page-sizes="pageSizes"
-          :page-count="getPageCount()"
-          @current-change="handleCurrentChange"
-          @size-change="getList"
-        >
-        </el-pagination>
       </el-footer>
     </el-container>
 
-    <patent-view-field @reset="getPatentViewField(true)" @update="updatePatentViewField" ref="patentViewField"/>
-    <Project-List-Dialog ref="projectListDialog"></Project-List-Dialog>
+
+    <field ref="field" type="patentProject" @getFieldList="getFieldList"></field>
+    <projectListDialog ref="projectListDialog" :importData="searchData"></projectListDialog>
   </div>
 </template>
 
 <script>
-import PatentViewField from "@/views/product/components/relatedPatents/components/dialog/PatentViewField.vue";
-import PatentTableListView from "./view/Table";
-import PatentAbstractListView from "./view/Abstract";
-import PatentPictureListView from "./view/Picture";
-import ProjectListDialog from "./components/projectListDialog.vue";
+import PatentTableListView from "@/views/project/patentCollection/components/views/Table.vue";
+// import PatentAbstractListView from "@/views/project/patentCollection/components/views/Abstract";
+// import PatentPictureListView from "@/views/project/patentCollection/components/views/Picture";
+import field from '@/views/components/dialog/fields.vue';
+import projectListDialog from "./components/projectListDialog.vue";
 export default {
   components: {
-    PatentViewField,
     PatentTableListView,
-    PatentAbstractListView,
-    PatentPictureListView,
-    ProjectListDialog,
+    // PatentAbstractListView,
+    // PatentPictureListView,
+    field,
+    projectListDialog
+  },
+  props: {
+    searchData:{}
   },
-  props: ["condition", "DBType",'reportId','retrieveRecordId','asCompare'],
   data() {
     return {
+      columnList:[],
       pageSizes:[10, 20, 30, 40, 50],
       viewSelected: "patent-table-list-view",
       viewList: [
@@ -133,7 +143,6 @@ export default {
       endNumber: 0,
       quickSelect: false,
       quickSelectArr:[],
-      divHeight:null
     };
   },
   watch: {},
@@ -144,30 +153,25 @@ export default {
   },
   created() {},
   async mounted() {
+    this.columnList = await this.$commonJS.getCustomField('patent')
     if(this.$s.getSession('queryParams')&&this.$s.getSession('queryParams').params.retrieveRecordId){
         this.queryParams.retrieveRecordId = this.$s.getSession('queryParams').params.retrieveRecordId
       }
-    this.$nextTick(()=>{
-      this.divHeight = document.getElementsByClassName('el-main')[0].offsetHeight - 250
-    })
-  await  this.getList();
-    this.getPatentViewField();
+    
+  await this.getList();
     
   },
   methods: {
     //导入到专题库
     importToProject() {
       var form = {
-        conditions:this.condition,
-        DBType:this.DBType,
+        ...this.searchData,
         orderBy:this.queryParams.OrderBy,
         orderByType:this.queryParams.OrderByType,
         startNumber:this.selectedTotal>0?this.startNumber:1,
         endNumber:this.selectedTotal>0?this.endNumber:this.total,
         isAddPatentNos:this.queryParams.isAdd,
         isDeletePatentNos:this.queryParams.isDelete,
-        reportId:this.reportId,
-        asCompare:this.asCompare,
       }
       this.$refs.projectListDialog.open(form);
     },
@@ -223,8 +227,8 @@ export default {
     async getList() {
       let queryParams = JSON.parse(JSON.stringify(this.queryParams));
       var params = {
-        CurrentQuery: this.condition, //检索式
-        DBType: this.DBType, //”CN”或”WD”,表示检索中文库或世界库
+        CurrentQuery: this.searchData.condition, //检索式
+        DBType: this.searchData.DBType, //”CN”或”WD”,表示检索中文库或世界库
         PageNum: this.queryParams.current, //页码(最多 200 页)
         RowCount: this.queryParams.size, //每页返回条数(最多 50 条)
         OrderBy: this.queryParams.OrderBy, //排序字段:“AD”,“PD”,“GD”, “ID”(检索引擎自生成字段,排序顺序固定)
@@ -233,11 +237,10 @@ export default {
       };
       // console.log(this.$s.getSession('retrieveRecordId'),)
       queryParams.params = params;
-      queryParams.reportId = this.reportId
       this.$store.commit("SET_PATENT_PARAMS", queryParams);
       this.$store.commit("SET_PATENT_RECORDS", []);
       this.loading = true;
-      await this.$api.patentSelectImport(params).then((response) => {
+      await this.$api.patentSelect(params).then((response) => {
           if (response.code == 200) {
             this.total = response.data.total;
             this.$set(this.queryParams,'startNumber',this.endNumber > 0 ? this.startNumber : 1)
@@ -277,38 +280,13 @@ export default {
         this.viewSelected = item.value;
         this.getList();
       }
-return 
-
-      this.viewSelected = item.value;
-      if (this.viewSelected === "patent-picture-list-view") {
-        this.$set(this.queryParams, "size", 20);
-      } else {
-        this.queryParams.size = 10;
-      }
-      // await this.getPatentViewField();
-      this.getList();
     },
     async handleFieldManage() {
-      // await this.getPatentViewField()
-      this.$refs.patentViewField.open(
-        this.patentViewField,
-        this.queryParams.retrieveRecordId,
-        this.viewSelected
-      );
+      this.$refs.field.open(this.columnList)
     },
-    async getPatentViewField(refresh) {
-      var arr = ['标签','简单同族','Inpadoc同族','扩展同族','[标]权利人','[标]申请人','引用专利数量','被引用数量','权利要求数']
-      let params = {
-        project:this.queryParams.retrieveRecordId,
-        type: "list",
-        view: this.viewSelected,
-        refresh: refresh,
-      };
-      const { data } = await this.$api.getUserSettingField(params);
-      this.patentViewField = data.filter(item=>{ return arr.indexOf(item.name) == -1});
-    },
-    updatePatentViewField(data) {
-      this.patentViewField = data;
+    //获取自定义栏位
+    getFieldList(data) {
+      this.fieldList = data
     },
     //快速选择
     handleSelectNumber(type) {
@@ -465,13 +443,14 @@ return
 }
 .foot-total{
   display: flex;
+  justify-content: space-between;
   align-items: center;
 }
 .patent-fast-edit-popover {
   padding: 0 !important;
   .btn {
     color: #000;
-    line-height: 40px;
+    line-height: 30px;
     border-radius: 5px;
     padding-left: 10px;
     text-align: left;

+ 3 - 15
src/views/components/import/conditionImport/searchResultIndex.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <search-Result :condition="condition"  :DBType="DBType" :reportId="reportId" :retrieveRecordId="retrieveRecordId" :asCompare="asCompare"></search-Result>
+    <search-Result :searchData="searchData"></search-Result>
   </div>
 </template>
 
@@ -17,21 +17,9 @@ export default {
   },
   watch: {},
   computed: {
-    condition(){
-        return this.$route.query.condition
+    searchData(){
+        return JSON.parse(this.$route.query.data)
     },
-    DBType(){
-        return this.$route.query.DBType
-    },
-    reportId(){
-        return this.$route.query.reportId
-    },
-    retrieveRecordId(){
-      return this.$route.query.retrieveRecordId
-    },
-    asCompare(){
-      return this.$route.query.asCompare
-    }
   },
   methods: {},
   created() {},

+ 7 - 7
src/views/components/import/conditionImport/view/Table.vue

@@ -26,7 +26,7 @@
       </el-table-column>
       <el-table-column label="专利号" show-overflow-tooltip align="center" width="180">
         <template slot="header">
-          <patent-table-view-sort title="专利号" prop="patentNo" @on-sort="onSort" />
+          <!-- <patent-table-view-sort title="专利号" prop="patentNo" @on-sort="onSort" /> -->
         </template>
         <template slot-scope="scope">
           <el-popover placement="right-start" width="500" trigger="hover" >
@@ -64,7 +64,7 @@
       </el-table-column>
       <el-table-column v-for="column in columnList" :label="column.name" show-overflow-tooltip align="center">
         <template slot="header">
-          <patent-table-view-sort :title="column.name" :prop="column.key" :reportId="reportId" @on-sort="onSort" />
+          <!-- <patent-table-view-sort :title="column.name" :prop="column.key" :reportId="reportId" @on-sort="onSort" /> -->
         </template>
         <template slot-scope="scope">
           <div style="" v-for="data in getColumnValue(scope.row, column)">
@@ -95,15 +95,15 @@
 </template>
 
 <script>
-import { commonMixins } from "@/views/workspace/folder/articles/components/mixins.js"
-import { patentViewList, patentKeywordsHighlight } from '@/views/workspace/folder/components/mixins.js'
-import PatentTableViewSort from "./TableSort";
+// import { commonMixins } from "@/views/workspace/folder/articles/components/mixins.js"
+// import { patentViewList, patentKeywordsHighlight } from '@/views/workspace/folder/components/mixins.js'
+// import PatentTableViewSort from "./TableSort";
 
 export default {
   props: ['viewField'],
-  mixins: [patentViewList, patentKeywordsHighlight,commonMixins],
+  // mixins: [patentViewList, patentKeywordsHighlight,commonMixins],
   components: {
-    PatentTableViewSort
+    // PatentTableViewSort
   },
   data() {
     return {

+ 65 - 10
src/views/components/import/mixins/index.js

@@ -29,15 +29,38 @@ export default{
                 children:'child',
                 label: 'name'
             },
-            assoImportTaskFieldVOS:[]
+            assoImportTaskFieldVOS:[],
+            importContent:[]
+        }
+    },
+    computed:{
+        importContents(){
+            return this.$store.state.dictMessage.dictMessage.IMPORT_CONTENT
         }
     },
     mounted() {
         if(this.form.type == 1){
             this.getExcelConfig()
         }
-        //获取所有栏位
-        this.getAllCustomField()
+        if(!this.form.importToId){
+            return false
+        }
+        if(this.form.importToId && this.form.importToType != 2){
+            //获取所有栏位
+            this.getAllCustomField()
+        }else{
+       
+              this.choseField = {
+                  id:this.form.importToId,
+                  name:this.form.name,
+                  type:6,
+                  isProduct:2,
+                  fieldValue:[]
+                }
+              this.customFieldId = this.form.importToId
+              this.getProductTree()
+        }
+        
     },
     methods: {
         changeValue(value,data){
@@ -45,7 +68,7 @@ export default{
                 var index = this.assoImportTaskFieldVOS.findIndex(item=>{
                     return item.fieldValueId == value
                 })
-                if(obj){
+                if(index!=-1){
                     this.assoImportTaskFieldVOS.splice(index,1)
                 }else{
                     this.assoImportTaskFieldVOS.push(
@@ -53,7 +76,10 @@ export default{
                             projectId:this.form.importToId,
                             fieldType:this.choseField.type,//类型
                             fieldId:this.choseField.id,//栏位ID
-                            fieldValueId:value
+                            fieldValueId:value,
+                            keyValue:this.choseField.keyValue,
+                            fieldValueStr:data.name,
+                            fieldName:this.choseField.name
                         }
                     )
                 }
@@ -69,12 +95,29 @@ export default{
                             projectId:this.form.importToId,
                             fieldType:this.choseField.type,//类型
                             fieldId:this.choseField.id,//栏位ID
-                            fieldValueId:value
+                            fieldValueId:value,
+                            keyValue:this.choseField.keyValue,
+                            fieldValueStr:data?data.name:value,
+                            fieldName:this.choseField.name
                         }
                     )
                 }
             }
         },
+        del(index,item){
+            this.assoImportTaskFieldVOS.splice(index,1)
+            var obj = this.customField.find(item=>{
+                return item.keyValue == item.keyValue
+            })
+            if(obj){
+                var index = obj.fieldValue.indexOf(item.fieldValueId)
+                if(obj.type == 5 || obj.type == 6){
+                    obj.fieldValue.splice(index,1)
+                }else{
+                    obj.fieldValue = ''
+                }
+            }
+        },
         //修改选择的栏位
         changeCustomField(val){
             if(!val){
@@ -88,7 +131,7 @@ export default{
                     return false
                 }else{
                     if(this.choseField.isProduct){
-                        this.getProduct()
+                        this.getProductTree()
                     }else{
                         this.getFieldOption()
                     }
@@ -106,7 +149,7 @@ export default{
               })
         },
         //获取产品架构
-        getProduct(){
+        getProductTree(){
             let params = {
                 name: this.choseField.name,//名称
                 type: this.choseField.isProduct,//类型:1产品类别,2产品,3技术分类,4自定义树
@@ -124,6 +167,12 @@ export default{
             const [project,product] = await Promise.allSettled([this.getProjectField(),this.getProjectDetails()])
             var projectField = project.status =='fulfilled'?project.value:[]
             this.projectDetails= product.status =='fulfilled'?product.value:{}
+            if(this.ods){
+                this.ods.data = [
+                    this.projectDetails
+                ]
+                this.$set(this.form,'importToId',this.form.importToId)
+            }
             if(this.projectDetails.productOrCategory){
                 projectField.push(
                     {
@@ -143,6 +192,7 @@ export default{
                 }
             })
             this.customField =projectField
+             
         },
         //获取自定义栏位
         async getProjectField(){
@@ -159,6 +209,11 @@ export default{
         },
         //获取项目信息
         async getProjectDetails(){
+            if(this.form.importToType != 0){
+                return {
+                    status:''
+                }
+            }
             var params = {
                 searchQuery: `id=${this.form.importToId}`,//检索条件
                 orderDTOList: [],//排序
@@ -175,7 +230,7 @@ export default{
             this.$refs.FieldDrawer.open(this.form.importToId)
         },
         closeFieldDrawer(){
-
+            this.getAllCustomField()
         },
         //添加导入任务
         addImportTask(form){
@@ -183,7 +238,7 @@ export default{
             this.loading = true
             this.$api.addImportTask(form).then(response => {
                 this.$message.success('任务创建成功')
-                this.form.fileGuid = null
+                this.form = this.importData
                 this.btnLoading = false
                 this.loading = false
                 this.getQueueList()

+ 63 - 80
src/views/components/import/task/components/index.vue

@@ -13,10 +13,16 @@
                     <span>{{ (scope.$index + 1) + ((queryParams.current - 1) * queryParams.size) }}</span>
                 </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" align="center" sortable="custom">
+            <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">
                 <template slot-scope="scope">
                     <div v-if="item.value == 'type'" v-html="$commonJS.getColumnData(scope.row, item,null,{data:importType})"></div>
                     <div v-else-if="item.value == 'state'" v-html="$commonJS.getColumnData(scope.row, item,null,{data:state})"></div>
+                    <div v-else-if="item.value == 'percentage'" style="display:flex;">
+                        <div style="width:100%">
+                            <el-progress :text-inside="true" :stroke-width="20" :percentage="scope.row.percentage>100?100:scope.row.percentage" :color="customColors"></el-progress>
+                        </div>
+                        <div style="min-width: 50px;">{{ scope.row.doneNum }}/{{ scope.row.allNum }}</div>
+                    </div>
                     <div v-else  v-html="$commonJS.getColumnData(scope.row, item)"></div>
                 </template>
             </el-table-column>
@@ -24,27 +30,28 @@
             <el-table-column label="操作" align="center" width="150">
               <template slot-scope="scope" >
                 <div  class="operate">
-                  <el-link type="primary" @click.native="handleDownload(scope.row)" v-if="$permission('/workspace/common/taskDownload') && ((scope.row.type == 1 || scope.row.type == 2) && (scope.row.status !== 0 || scope.row.status !== 1))">
+                  <!-- <el-link type="primary" @click.native="handleDownload(scope.row)" v-if="$permission('/workspace/common/taskDownload') && ((scope.row.type == 1 || scope.row.type == 2) && (scope.row.state !== 0 || scope.row.state !== 1))">
                     <el-tooltip class="item" effect="dark" content="下载" placement="top">
                       <i class="iconfont icon-xiazai"></i>
                     </el-tooltip>  
-                  </el-link>
+                  </el-link> -->
                  
-                  <el-link class="margin-left_10" type="primary"  @click="handleSuspend(scope.row)" v-if="scope.row.status==1 || scope.row.status==4">
+                  <el-link class="margin-left_10" type="primary"  @click="updateImportTaskState(scope.row,4)" v-if="scope.row.state==1 || scope.row.state==0">
                     <el-tooltip class="item" effect="dark" content="暂停" placement="top">
-                      <i class="iconfont icon-zanting1" v-if="scope.row.status==1"></i>
+                      <i class="iconfont icon-zanting1"></i>
                     </el-tooltip>
+                  </el-link>
+                  <el-link class="margin-left_10" type="primary"  @click="updateImportTaskState(scope.row,0)" v-if="scope.row.state==4">
                     <el-tooltip class="item" type="primary" effect="dark" content="继续" placement="top">
-                      <i class="iconfont icon-zanting" v-if="scope.row.status==4"></i> 
+                      <i class="iconfont icon-zanting" ></i> 
                     </el-tooltip>
                   </el-link>
-                  
                   <el-link class="margin-left_10" type="primary"  v-if="scope.row.taskType == 1" @click="updateLog(scope.row)">
                       <el-tooltip class="item" effect="dark" content="更新记录" placement="top">
                         <i class="iconfont icon-banbengengxinjilu" style="font-size:18px"></i>
                       </el-tooltip>
                     </el-link>
-                    <el-link class="margin-left_10" type="danger" @click.native="cancel(scope.row)" v-if="(scope.row.status!=2 && scope.row.status!=5) || scope.row.taskType == 1" >
+                    <el-link class="margin-left_10" type="danger" @click.native="updateImportTaskState(scope.row,5)" v-if="(scope.row.state!=2 && scope.row.state!=5) || scope.row.taskType == 1" >
                     <el-tooltip class="item" effect="dark" content="取消" placement="top">
                       <i class="iconfont icon-quxiaorenwu1"></i>
                     </el-tooltip> 
@@ -95,7 +102,13 @@ export default {
         columnList:[],//搜索的栏位
         showView:false,
 
-
+        customColors: [
+        {color: '#f56c6c', percentage: 20},
+        {color: '#e6a23c', percentage: 40},
+        {color: '#5cb87a', percentage: 60},
+        {color: '#1989fa', percentage: 80},
+        {color: '#6f7ad3', percentage: 100}
+      ],
     };
   },
   watch: {},
@@ -140,43 +153,43 @@ export default {
       webSocket.onmessage = (e) => {
         const { code, data, message } = JSON.parse(e.data)
         console.log({ code, data, message });
-        if (code === 903 || code === 904) {
-          const index = this.tableData.findIndex(item=>{return item.id == data.taskId})
-          // const index = this.taskData.findIndex(item=>{return item.id == data.id})
-          if (index === -1) {
-            if(data.projectId == this.projectId){
-              this.getList()
-            }
+        // if (code === 903 || code === 904) {
+        //   const index = this.tableData.findIndex(item=>{return item.id == data.taskId})
+        //   // const index = this.taskData.findIndex(item=>{return item.id == data.id})
+        //   if (index === -1) {
+        //     if(data.projectId == this.projectId){
+        //       this.getList()
+        //     }
             
-            // this.taskData.unshift(data)
-          } else {
-            var arr = this.tableData[index]
-            arr.index = data.index
-            arr.percentage = data.percentage
-            arr.successNum =  data.index
-            arr.status =  data.taskStatus
-            this.$set(this.tableData, index, arr)
-          }
-          if (data.complete) {
-            if(data.taskType!=2){
-              this.$message.success(`导入任务完成`)
-               for(var i = 0;i<this.tableData.length;i++){
-                if(this.tableData[i].complete==true){
-                  this.tableData.splice(i,1)
-                }
-              }
-            }else{
-              this.$message.success(`导出任务完成`)
-            }
+        //     // this.taskData.unshift(data)
+        //   } else {
+        //     var arr = this.tableData[index]
+        //     arr.index = data.index
+        //     arr.percentage = data.percentage
+        //     arr.successNum =  data.index
+        //     arr.state =  data.taskStatus
+        //     this.$set(this.tableData, index, arr)
+        //   }
+        //   if (data.complete) {
+        //     if(data.taskType!=2){
+        //       this.$message.success(`导入任务完成`)
+        //        for(var i = 0;i<this.tableData.length;i++){
+        //         if(this.tableData[i].complete==true){
+        //           this.tableData.splice(i,1)
+        //         }
+        //       }
+        //     }else{
+        //       this.$message.success(`导出任务完成`)
+        //     }
             
-            // console.log(this.form)
+        //     // console.log(this.form)
            
-            this.getList()
-          }
-        } else if (code === 803 || code === 804) {
-          this.$message.error(message)
-          this.getList()
-        }
+        //     this.getList()
+        //   }
+        // } else if (code === 803 || code === 804) {
+        //   this.$message.error(message)
+        //   this.getList()
+        // }
       }
     },
     //显示视图?
@@ -279,43 +292,13 @@ export default {
       this.getList()
     },
      // 网站导入暂停,继续任务操作
-     async handleSuspend(row) {
-    //   if (row.status==1) {//暂停pauseJobTask
-    //    await this.$api.pauseJobTask({taskId: row.id}).then(res => {
-    //       if (res.code == 200) {
-    //         row.status==4
-    //         this.$message.success('已成功暂停该任务')
-    //       }
-    //     })
-    //   } else if (row.status==4) {//继续
-    //    await this.$api.resumeJobTask({taskId: row.id}).then(res => {
-    //       if (res.code == 200) {
-    //         row.status==res.data
-    //         this.$message.success('继续执行该任务')
-    //       }
-    //     })
-    //   }
-    },
-     // 实时进度取消
-     cancel(row) {
-        // let task = {
-        //     taskId: row.id,
-        // }
-        // this.$api.cancelTask(task).then(res => {
-        //     if (res.code==200) {
-        //         this.$message.success('任务已取消')
-        //         if(this.taskData){
-        //             var index = this.taskData.findIndex(item=>{return item.id == row.id})
-        //             if(index!=-1){
-        //                 this.taskData.splice(index,1)
-        //             }
-        //         }else{
-        //             row.status = 5
-        //             this.getList()
-        //         }
-        //     }
-        // }).catch(error => {
-        // })
+    async updateImportTaskState(row,state) {
+        this.$api.updateImportTaskState({taskId:row.id,state:state}).then(response=>{
+            if(response.code == 200){
+                this.$set(row,'state',state)
+                this.$message.success('操作成功')
+            }
+        })
     },
   },
 };

+ 1 - 0
src/views/layout/index.vue

@@ -86,6 +86,7 @@ export default {
       await this.$store.dispatch('getSystemField', this.projectId)
     }
     this.guide()
+    this.connectWebSocket(this.userinfo.id)
   },
   methods: {
     guide(){

+ 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://192.168.1.18:8877/api/xiaoshi/ws/` + userId)
       // let webSocket = new WebSocket(`ws://139.224.24.90:8871/permission/api/ws/` + userId)
-      let webSocket = new WebSocket(`ws://139.224.24.90:8880/permission/api/ws/` + userId)
       Store.commit('SET_WEB_SOCKET', webSocket)
       webSocket.onopen = () => {
         console.log('WebSocket连接成功')
@@ -35,7 +35,7 @@ export const commonData={
       this.$api.getUserInfo().then(response => {
         localStorage.tenant = response.data.tenantId
         this.$store.commit('SET_USERINFO', response.data)
-        this.connectWebSocket(response.data.id)
+        
       })
     },
     //获取字典项

+ 1 - 1
src/views/project/components/drawer/form.vue

@@ -33,7 +33,7 @@
             <el-form-item label="负责人" prop="person">
               <el-select style="width:100%" v-model.number="ruleForm.headId" filterable remote clearable placeholder="请选择"
                 :loading="personnelList.loading" v-SelectLazyLoading="loadHead" :remote-method="remoteMethod">
-                <el-option v-for="item in personnelList.data" :key="item.id" :label="item.name" :value="item.id">
+                <el-option v-for="item in personnelList.data" :key="item.id" :label="item.name" :value="parseInt(item.id)">
                 </el-option>
               </el-select>
             </el-form-item>