|
@@ -97,6 +97,7 @@
|
|
|
type="text"
|
|
|
icon="el-icon-edit"
|
|
|
@click="handleAudit(scope.row)"
|
|
|
+ :disabled="scope.row.progressValue!=100"
|
|
|
v-hasPermi="['task:task:audit']"
|
|
|
>审核
|
|
|
</el-button>
|
|
@@ -179,25 +180,14 @@
|
|
|
v-model="form.executor"
|
|
|
:options="userList"
|
|
|
@change="(val)=>selectExecutor(val,'form')"
|
|
|
- :props="{ expandTrigger: 'hover',value:'id',label:'label' }"
|
|
|
+ :props="{ expandTrigger: 'hover',value:'id',label:'name' }"
|
|
|
:show-all-levels="false"></el-cascader>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="共同执行人" prop="coExecutor">
|
|
|
<dept-user-tree :userList="userList" @selected="selectCoExecutor"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="任务附件">
|
|
|
- <!-- <el-upload-->
|
|
|
- <!-- class="upload-demo"-->
|
|
|
- <!-- action="https://jsonplaceholder.typicode.com/posts/"-->
|
|
|
- <!-- :on-preview="handlePreview"-->
|
|
|
- <!-- :on-remove="handleRemove"-->
|
|
|
- <!-- :before-remove="beforeRemove"-->
|
|
|
- <!-- multiple-->
|
|
|
- <!-- :limit="3"-->
|
|
|
- <!-- :on-exceed="handleExceed"-->
|
|
|
- <!-- :file-list="fileList">-->
|
|
|
- <!-- <el-button size="small" type="primary">点击上传</el-button>-->
|
|
|
- <!-- </el-upload>-->
|
|
|
+ <file-upload @getFileUrl="getFileUrl" @removeFile="removeFile"></file-upload>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="任务描述">
|
|
|
<el-input v-model="form.description" type="textarea" placeholder="请输入内容"></el-input>
|
|
@@ -210,11 +200,11 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 详情/审核任务对话框 -->
|
|
|
- <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="500px" append-to-body>
|
|
|
+ <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="680px" append-to-body>
|
|
|
<task-detail :detail-form="detailForm"></task-detail>
|
|
|
<div v-if="detailTitle=='审核任务'" style="margin-top: 10px">
|
|
|
- <el-form ref="auditForm" :model="auditForm" label-width="100px">
|
|
|
- <el-form-item label="审核意见">
|
|
|
+ <el-form ref="auditForm" :model="auditForm" :rules="auditRules" label-width="100px">
|
|
|
+ <el-form-item label="审核意见" prop="auditResult">
|
|
|
<el-radio-group v-model="auditForm.auditResult">
|
|
|
<el-radio label="1">确认完成</el-radio>
|
|
|
<el-radio label="0">驳回</el-radio>
|
|
@@ -225,7 +215,7 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
+ <div v-if="detailTitle=='审核任务'" slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" size="small" @click="submitAudit">确 定</el-button>
|
|
|
<el-button size="small" @click="detailCancel">取 消</el-button>
|
|
|
</div>
|
|
@@ -242,28 +232,27 @@
|
|
|
<el-button type="text" size="medium" icon="el-icon-circle-plus-outline"
|
|
|
style="float: right; padding: -1px 3px" @click="addChild"></el-button>
|
|
|
</el-form-item>
|
|
|
- <el-card shadow="always" v-for="(c,index) in splitForm.children" :key="index">
|
|
|
+ <el-card shadow="always" v-for="(child,index) in splitForm.children" :key="index">
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span>子任务{{ index + 1 }}</span>
|
|
|
<el-button type="text" icon="el-icon-close" @click="delChild(index)"
|
|
|
style="float: right; padding: 3px 0"></el-button>
|
|
|
</div>
|
|
|
- <el-form label-width="80px">
|
|
|
- <el-form-item label="任务名称">
|
|
|
- <el-input v-model="c.taskName" size="small" style="width: 350px"/>
|
|
|
+ <el-form ref="splitChild" :rules="rules" label-width="80px">
|
|
|
+ <el-form-item label="任务名称" prop="taskName">
|
|
|
+ <el-input v-model="child.taskName" size="small" style="width: 350px"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="执行人" prop="executor">
|
|
|
<el-cascader
|
|
|
- ref="dut"
|
|
|
- v-model="c.executor"
|
|
|
+ v-model="child.executor"
|
|
|
:options="userList"
|
|
|
@change="(val)=>selectExecutor(val,'splitForm',index)"
|
|
|
- :props="{ expandTrigger: 'hover',value:'id',label:'label' }"
|
|
|
+ :props="{ expandTrigger: 'hover',value:'id',label:'name' }"
|
|
|
:show-all-levels="false"></el-cascader>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="起止时间">
|
|
|
<el-date-picker
|
|
|
- v-model="c.rangeDate"
|
|
|
+ v-model="child.rangeDate"
|
|
|
type="daterange"
|
|
|
size="small"
|
|
|
value-format="yyyy-MM-dd"
|
|
@@ -300,6 +289,7 @@ import {getDeptUserTree} from "@/api/system/user";
|
|
|
import DateUtil from "@/utils/date"
|
|
|
import TaskDetail from "./components/taskDetail"
|
|
|
import DeptUserTree from "@/components/DeptUserTree"
|
|
|
+import FileUpload from "@/components/FileUpload"
|
|
|
|
|
|
const statusMap = {
|
|
|
'0': {name: '待查看', color: '#E8EBEE'},
|
|
@@ -311,7 +301,7 @@ const statusMap = {
|
|
|
}
|
|
|
export default {
|
|
|
name: "Task",
|
|
|
- components: {TaskDetail, DeptUserTree},
|
|
|
+ components: {TaskDetail, DeptUserTree, FileUpload},
|
|
|
data() {
|
|
|
return {
|
|
|
categoryList: [],
|
|
@@ -360,7 +350,12 @@ export default {
|
|
|
executor: [
|
|
|
{required: true, message: "执行人不能为空", trigger: "change"}
|
|
|
]
|
|
|
- }
|
|
|
+ },
|
|
|
+ auditRules: {
|
|
|
+ auditResult: [
|
|
|
+ {required: true, message: "审核意见不能为空", trigger: "change"}
|
|
|
+ ]
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -461,17 +456,29 @@ export default {
|
|
|
selectCoExecutor(val) {
|
|
|
this.form.coExecutor = val.join();
|
|
|
},
|
|
|
+ getFileUrl(val) {
|
|
|
+ this.form['files'] = this.form.files || []
|
|
|
+ this.form.files.push(val)
|
|
|
+ },
|
|
|
+ removeFile(val) {
|
|
|
+ this.form.files.splice(val)
|
|
|
+ },
|
|
|
/** 审核按钮操作 */
|
|
|
handleAudit(row) {
|
|
|
getTask(row.id).then(res => {
|
|
|
this.detailForm = res.data;
|
|
|
+ this.auditForm = {
|
|
|
+ taskId: row.id,
|
|
|
+ auditResult: undefined,
|
|
|
+ auditOpinion: undefined
|
|
|
+ }
|
|
|
this.detailOpen = true;
|
|
|
this.detailTitle = "审核任务";
|
|
|
})
|
|
|
},
|
|
|
/** 分解按钮操作 */
|
|
|
handleSplit(row) {
|
|
|
- getDeptUserTree().then(res => {
|
|
|
+ getDeptUserTree('').then(res => {
|
|
|
this.userList = res.data
|
|
|
this.splitForm = {
|
|
|
parentId: row.id,
|
|
@@ -483,16 +490,17 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
-
|
|
|
/** 提交按钮 */
|
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
this.form.beginDate = this.form.rangeDate[0]
|
|
|
this.form.endDate = this.form.rangeDate[1]
|
|
|
+ this.form.fileUrl = JSON.stringify(this.form.files)
|
|
|
addTask(this.form).then(res => {
|
|
|
this.$message.success("新增成功");
|
|
|
this.open = false;
|
|
|
+ this.reset();
|
|
|
this.getList();
|
|
|
});
|
|
|
}
|
|
@@ -501,7 +509,15 @@ export default {
|
|
|
|
|
|
/** 审核提交按钮 */
|
|
|
submitAudit() {
|
|
|
-
|
|
|
+ this.$refs["auditForm"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ auditTask(this.auditForm).then(res => {
|
|
|
+ this.getList()
|
|
|
+ this.detailOpen = false
|
|
|
+ this.$message.success("操作成功");
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
/** 分解任务提交按钮 */
|
|
|
submitSplit() {
|