소스 검색

专利挖掘-分配文件任务

zhuhao 1 년 전
부모
커밋
6910c0226d

+ 6 - 0
src/api/newApi/patentMining.js

@@ -42,4 +42,10 @@ export default {
   addProjectOpenExamineTask(data) {
     return axios.post("/xiaoshi/projectTask/addProjectOpenExamineTask", data);
   },
+  /**
+   * 专利挖掘任务查询
+   */
+  queryProjectTask(data) {
+    return axios.post("/xiaoshi/projectTask/queryProjectTask", data);
+  },
 };

+ 47 - 14
src/views/components/dialog/examine.vue

@@ -1,7 +1,8 @@
 <template>
   <!-- 审核任务弹窗 -->
   <div>
-    <el-dialog title="添加审核任务" :visible.sync="showTask" width="500px" @close="handleCloseTask" :close-on-click-modal="false">
+    <el-dialog title="添加审核任务" :visible.sync="showTask" width="500px" @close="handleCloseTask"
+      :close-on-click-modal="false">
       <el-form :model="form" :rules="TaskRules" ref="form" label-width="120px">
         <el-form-item label="任务名称:" prop="name">
           <el-input v-model="form.name" type="text" placeholder="输入任务名称" />
@@ -14,8 +15,8 @@
           </el-select>
         </el-form-item>
         <el-form-item label="截止日期:" prop="deadLineTime">
-          <el-date-picker style="width:100%" v-model="form.deadLineTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
-            placeholder="选择日期">
+          <el-date-picker style="width:100%" v-model="form.deadLineTime" value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime" placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="审核备注:" prop="description">
@@ -71,7 +72,7 @@ export default {
         data: [],
       },
       // 父组件form表单数据
-      parentForm:{},
+      parentForm: {},
     }
   },
   computed: {},
@@ -79,7 +80,7 @@ export default {
 
   },
   methods: {
-    open(data,type) {
+    open(data, type) {
       this.showTask = true
       // 判断文件是否都上传完毕
       if (data.systemFileList && data.systemFileList.length > 0) {
@@ -109,19 +110,51 @@ export default {
            * 3对比任务
            * 4协同任务
            * 5任务审核任务
+           * 6文件分配任务审核
            */
-          this.form.handlerType=0
+          
+          if (['@'].includes(this.form.handler)) {//是邮箱为1
+            this.form.handlerType = 1
+          } else {//是id为0
+            this.form.handlerType = 0
+          }
           let params = {
             patentDigProjectDTO: this.parentForm,
-            projectTaskDTO :this.form,
+            projectTaskDTO: this.form,
+          }
+          // 区分是哪种审核
+          switch (this.form.type) {
+            case 1://专利挖掘项目审核
+                this.addProjectOpenExamineTask(params)
+              break;
+            case 6://专利挖掘项目-文件分配任务审核
+
+              break;
+
+            default:
+              break;
           }
-          this.$api.addProjectOpenExamineTask(params).then(res => {
-            if (res.code == 200) {
-              this.$message.success('已发送审核任务')
-              this.$emit('taskForm', '已发送审核任务')
-              this.handleCloseTask()
-            }
-          })
+
+        }
+      })
+    },
+    // 专利挖掘项目-文件分配任务审核
+    task(params) {
+      this.$api.task(params).then(res => {
+        if (res.code == 200) {
+          this.$message.success('已发送审核任务')
+          this.$emit('taskForm', '已发送审核任务')
+          this.handleCloseTask()
+        }
+      })
+    },
+    // 专利挖掘项目审核
+    addProjectOpenExamineTask(params) {
+      this.$api.addProjectOpenExamineTask(params).then(res => {
+        if (res.code == 200) {
+          this.$message.success('已发送审核任务')
+          this.$emit('taskForm', '已发送审核任务')
+          this.handleCloseTask()
         }
       })
     },

+ 116 - 101
src/views/patentMining/components/dialog/handleTask2.vue

@@ -4,23 +4,30 @@
     <el-dialog ref="dialog" :title="title" :visible.sync="dialogVisible" width="800px" :before-close="handleClose"
       :close-on-click-modal="false">
 
-      <el-upload class="upload-demo" ref="upload" action="#" :auto-upload="true" :show-file-list="false"
-        :on-change="onChange" multiple >
-        <el-button size="small" type="primary">上传文件</el-button>
-      </el-upload>
+      <el-form :model="form" status-icon :rules="rules" ref="form" label-position="top" label-width="120px"
+        class="demo-form">
+        <el-form-item label="附件(已保存):">
+          <el-table class="elTable" :data="tableData" border style="width: 100%"
+            header-row-class-name="custom-table-header">
+            <el-table-column prop="name" label="文件名称" align="center"></el-table-column>
+            <el-table-column prop="time" label="文件上传时间" align="center"> </el-table-column>
+            <el-table-column prop="type" label="文件类型" align="center"> </el-table-column>
+            <el-table-column label="操作" align="center" width="140">
+              <el-button @click="deleteFile" size="small" type="text" style="color: red;">删除</el-button>
+            </el-table-column>
+          </el-table>
+        </el-form-item>
+        <el-form-item label="附件(未保存):" prop="systemFileList">
+          <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove"
+            style="height: 180px;" :autoUpload="true"></myUpload>
+        </el-form-item>
+        <el-form-item label="说明:">
+          <el-input type="textarea" :rows="2" placeholder="请输入说明内容" v-model="form.description"></el-input>
+        </el-form-item>
+      </el-form>
+
+
 
-      <el-table class="elTable" :data="tableData" border style="width: 100%" header-row-class-name="custom-table-header">
-        <el-table-column prop="name" label="文件名称" align="center"></el-table-column>
-        <el-table-column prop="time" label="文件上传时间" align="center"> </el-table-column>
-        <el-table-column prop="type" label="文件类型" align="center"> </el-table-column>
-        <el-table-column label="操作" align="center" width="140">
-          <el-button @click="deleteFile" size="small" type="text" style="color: red;">删除</el-button>
-        </el-table-column>
-      </el-table>
-      <div class="explain">
-        <span>说明:</span>
-        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
-      </div>
 
       <span slot="footer" class="dialog-footer">
         <el-button @click="handleClose" size="small">取 消</el-button>
@@ -30,35 +37,16 @@
       </span>
     </el-dialog>
 
-
-    <el-dialog title="审核任务" :visible.sync="auditTask" width="600px" :before-close="auditTaskClose"
-      :close-on-click-modal="false">
-      <el-form :model="examineForm" status-icon :rules="examineRules" ref="examineForm" label-width="120px"
-        class="demo-ruleForm">
-        <el-form-item label="任务名称:" prop="name">
-          <el-input v-model="examineForm.name" placeholder="请输入任务名称"></el-input>
-        </el-form-item>
-        <el-form-item label="审核人:" prop="examineId">
-          <el-select v-model="examineForm.examineId" placeholder="请选择审核人" style="width: 100%;">
-            <el-option v-for="item in examinePerson" :key="item.value" :label="item.label" :value="item.value">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="任务备注:" prop="remark">
-          <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="examineForm.remark"></el-input>
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="auditTaskClose" size="small">取 消</el-button>
-        <el-button @click="sure" size="small" type="primary">确 定</el-button>
-      </span>
-    </el-dialog>
+    <examine ref="examine" @taskForm="handleTaskForm"></examine>
   </div>
 </template>
 
 <script>
+import examine from '@/views/components/dialog/examine.vue'
 export default {
-  components: {},
+  components: {
+    examine,
+  },
   props: {},
   data() {
     return {
@@ -70,20 +58,19 @@ export default {
           type: 'excel',
         }
       ],
+      form: {
+        systemFileList: [],
+      },
+      rules: {
+        // systemFileList: [{ required: true, message: '请选择附件', trigger: 'blur' },],
+      },
       dialogVisible: false,
       // auditTask: false,
       // 备注
       textarea: '',
-      // 审核弹窗
-      examineForm: {},
-      examinePerson: [],
-      examineRules: {
-        name: [{ required: true, message: '请输入任务名称', trigger: 'blur' },],
-        examineId: [{ required: true, message: '请选择审核人', trigger: 'change' },],
-      },
       // 是否是处理任务?
       isLook: false,
-      row:null,
+      row: null,
     };
   },
   watch: {},
@@ -91,41 +78,29 @@ export default {
   created() { },
   mounted() { },
   methods: {
-    // 删除文件
-    deleteFile(row) { },
-    // 上传文件
-    onChange(file, fileList) { 
-      if (file) {
-        this.uploadFile(file)
+
+    // 上传的文件监听
+    onchangeFile(file, fileList) {
+      if (file.guid) {
+        let index = this.form.systemFileList.findIndex(item => {
+          return item.uid == file.uid
+        })
+        if (index != -1) {
+          this.form.systemFileList.splice(index, 1, file)
+        }
+      } else {
+        this.form.systemFileList.push(file.raw)
       }
+
     },
-    // 上传附件
-    uploadFile(file){
-      let formData = new FormData()
-      formData.append('sourceId',this.$constants.sourceId)
-      formData.append('files',file.raw)
-      this.$api.uploadFile(formData).then(response=>{
-        if(response.code == 200){
-          file.guid = response.data[0]
-          file.raw.guid = response.data[0]
-          // this.$emit("on-change", file)
-        }
+    // 删除上传的文件
+    onRemove(file, fileList) {
+      let index = this.form.systemFileList.findIndex(item => {
+        return item.uid == file.uid
       })
-    },
-    // 查询文件列表
-    getFileList() {
-      let params = {
-        id:this.row.id,
+      if (index != -1) {
+        this.form.systemFileList.splice(index, 1)
       }
-      this.$api.getFileList(params).then(response => { 
-        if (response.code == 200) {
-          this.tableData = response.data.data
-          this.textarea=response.data.textarea
-        }
-      }).catch(error => {
-        this.tableData = []
-        this.textarea=''
-      })
     },
     //打开弹窗
     open(row, val) {
@@ -135,39 +110,78 @@ export default {
       // }else{
       //     this.title = '创建任务'
       // }
-      this.row=row
+      this.row = row
       this.isLook = val
       this.title = '任务名称:' + row.name
+      // this.getTableList()
       this.dialogVisible = true
     },
+    // 查询已保存的项目
+    getTableList() {
+      let params = {
+        id: this.row.id
+      }
+      this.$api.getTableList(params).then(res => {
+        if (res.code == 200) {
+          this.tableData = res.data
+        }
+      })
+    },
+    // 删除文件
+    deleteFile(row) {
+      this.deleteFiles([row.id])
+    },
+    deleteFiles(ids) {
+      this.$api.dele(ids).then(res => {
+        if (res.code == 200) {
+          this.getTableList()
+          this.$message.success('删除已保存的文件成功')
+        }
+      })
+    },
     //关闭弹窗
     handleClose() {
       this.dialogVisible = false
     },
-    //提交数据
-    submit() {
-      this.examineForm.name = this.$refs.dialog.title.split(':')[1]
-      // this.examineForm.name =
-      this.auditTask = true
-    },
     // 保存
-    handleSave() { },
-    // 审核弹窗确定
-    sure() {
-      this.$refs.examineForm.validate((valid) => {
-        if (valid) {
+    handleSave() {
+      // 判断文件是否都上传完毕
+      if (this.form.systemFileList && this.form.systemFileList.length > 0) {
+        this.form.fileGuids = []
+        for (let i = 0; i < this.form.systemFileList.length; i++) {
+          if (this.form.systemFileList[i].guid) {
+            this.form.fileGuids.push(this.form.systemFileList[i].guid)
+          } else {
+            this.$message.error('文件未全部上传,请耐心等待')
+            return false
+          }
+        }
+      } else {
+        return false
+      }
+      this.form.id=this.row.id
+      this.$api.add(this.form).then(res => {
+        if (res.code == 200) {
+          this.$message.success('保存文件成功')
           this.handleClose()
-          this.auditTaskClose()
-        } else {
-          this.$message.error('信息未输入完整')
         }
-      });
+      })
+    },
+    //提交审核
+    submit() {
+      this.$refs.form.validate((valid) => { 
+        if (valid) {
+          this.$refs.examine.open(this.form,6)
+        }
+      })
+      // this.examineForm.name = this.$refs.dialog.title.split(':')[1]
+      // // this.examineForm.name =
+      // this.auditTask = true
     },
-    // 审核弹窗关闭
-    auditTaskClose() {
-      this.$refs.examineForm.resetFields()
-      this.examineForm = {}
-      this.auditTask = false
+    // 审核弹窗发送的值
+    handleTaskForm(val) {
+      this.$emit('isSuccess', '新增成功')
+      this.handleClose()
     },
   },
 
@@ -198,4 +212,5 @@ export default {
       font-size: 16px;
     }
   }
-}</style>
+}
+</style>

+ 18 - 8
src/views/patentMining/components/excavateTask/excavateTask.vue

@@ -61,7 +61,7 @@
     <createTask ref="createTaskDialog"></createTask>
     <handleTask1 ref="handleTask1Dialog"></handleTask1>
     <!-- <handleTask2 ref="handleTask2Dialog"></handleTask2> -->
-    <handleTask2 ref="handleTask2Dialog"></handleTask2>
+    <handleTask2 ref="handleTask2Dialog" @isSuccess="isSuccess"></handleTask2>
     <auditRecords ref="auditRecords" ></auditRecords>
   </div>
 </template>
@@ -178,9 +178,16 @@ export default {
     // },
   },
   mounted() {
-    // this.getList()
+    this.getList()
+    this.getColumn()
   },
   methods: {
+    // 子组件新增审核任务成功
+    isSuccess(val) {
+      if (val == '新增成功') {
+        this.getList()
+      }
+    },
     // 创建任务事件
     createTask() {
       this.$refs.createTaskDialog.open({})
@@ -242,7 +249,7 @@ export default {
     },
     //获取table栏位及分组字段、检索字段
     async getColumn() {
-      let params = ['reportProject']
+      let params = ['projectTask']
       await this.$api.getParamsCommon(params).then(res => {
         if (res.code == 200) {
           let conditionDTOList = JSON.parse(JSON.stringify(res.data[0].conditionDTOList))
@@ -260,7 +267,7 @@ export default {
       // })
     },
     // 左侧搜索
-    search() {
+    search(val) {
       let params = {}
       val.forEach(item => {
         if (item.type == 3) {
@@ -292,13 +299,16 @@ export default {
     },
     // 初始化请求数据
     getList() {
+      let searchOption = {
+        projectId:this.id,
+        ...this.searchOption
+      }
       let params = {
         ...this.queryParams,//分页信息
-        searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
+        searchQuery: this.$commonJS.objectToString(searchOption),//检索条件
         orderDTOList: this.sort,//排序信息
-        id: this.id,
       }
-      this.$api.query(params).then(response => {
+      this.$api.queryProjectTask(params).then(response => {
         if (response.code == 200) {
           this.tableData = response.data.data
           this.queryParams.current = response.data.current
@@ -306,7 +316,7 @@ export default {
           this.queryParams.total = response.data.total
         }
       }).catch(error => {
-        this.tableData = []
+        // this.tableData = []
         this.queryParams.total = 0
       })
     },

+ 7 - 2
src/views/patentMining/components/mixins/index2.js

@@ -23,7 +23,7 @@ export const column = {
         {
           name: "发起人",
           type: "String",
-          value: "createPerson",
+          value: "createName",
         },
         {
           name: "处理人",
@@ -38,13 +38,18 @@ export const column = {
         {
           name: "截止时间",
           type: "DateTime",
-          value: "endTime",
+          value: "deadLineTime",
         },
         {
           name: "状态",
           type: "String",
           value: "status",
         },
+        {
+          name: "备注",
+          type: "String",
+          value: "status",
+        },
       ],
     }
   },