|
@@ -214,6 +214,20 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-form-item label="父任务" prop="parentTaskId" class="mini-treeselect">
|
|
|
|
+ <treeselect v-model="form.parentTaskId" :options="taskOptions"
|
|
|
|
+ :open-on-click="true"
|
|
|
|
+ :normalizer="taskNormalizer"
|
|
|
|
+ :disabled="form.status==='4'||form.status==='5'||form.status==='6'"
|
|
|
|
+ placeholder="请选择">
|
|
|
|
+ <label slot="option-label"
|
|
|
|
+ slot-scope="{ node, shouldShowCount, count, labelClassName, countClassName }">
|
|
|
|
+ <span style="font-weight: normal">{{ node.id + '、' + node.label }}</span>
|
|
|
|
+ </label>
|
|
|
|
+ </treeselect>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-row>
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
<el-form-item label="开始时间" prop="beginDate">
|
|
<el-form-item label="开始时间" prop="beginDate">
|
|
@@ -350,12 +364,14 @@
|
|
import {
|
|
import {
|
|
listTask,
|
|
listTask,
|
|
getTask,
|
|
getTask,
|
|
- delTask,
|
|
|
|
addTask,
|
|
addTask,
|
|
updateTask,
|
|
updateTask,
|
|
auditTask,
|
|
auditTask,
|
|
splitTask,
|
|
splitTask,
|
|
- projectAuditConfigs, taskAuditConfigs, addTaskFeedback, delTaskWithReason
|
|
|
|
|
|
+ taskAuditConfigs,
|
|
|
|
+ addTaskFeedback,
|
|
|
|
+ delTaskWithReason,
|
|
|
|
+ getTasksByProjectId
|
|
} from "@/api/task/task";
|
|
} from "@/api/task/task";
|
|
import {getProjectTree, getProject} from "@/api/task/project";
|
|
import {getProjectTree, getProject} from "@/api/task/project";
|
|
import {getDeptUserTree, getAuditUsers, resetUserPwd} from "@/api/system/user";
|
|
import {getDeptUserTree, getAuditUsers, resetUserPwd} from "@/api/system/user";
|
|
@@ -449,7 +465,8 @@ export default {
|
|
]
|
|
]
|
|
},
|
|
},
|
|
confirmOpen: false,
|
|
confirmOpen: false,
|
|
- conflictTasks: []
|
|
|
|
|
|
+ conflictTasks: [],
|
|
|
|
+ taskOptions: []
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
@@ -538,8 +555,8 @@ export default {
|
|
// 取消按钮(分解任务)
|
|
// 取消按钮(分解任务)
|
|
async splitCancel() {
|
|
async splitCancel() {
|
|
await this.$refs.split.reset();
|
|
await this.$refs.split.reset();
|
|
- // this.splitForm = {}
|
|
|
|
this.splitOpen = false;
|
|
this.splitOpen = false;
|
|
|
|
+ this.auditForm = {}
|
|
},
|
|
},
|
|
|
|
|
|
/** 查看任务详情*/
|
|
/** 查看任务详情*/
|
|
@@ -579,8 +596,34 @@ export default {
|
|
};
|
|
};
|
|
return newVar;
|
|
return newVar;
|
|
},
|
|
},
|
|
|
|
+ taskNormalizer(node) {
|
|
|
|
+ if (node.children && !node.children.length) {
|
|
|
|
+ delete node.children;
|
|
|
|
+ }
|
|
|
|
+ let newVar = {
|
|
|
|
+ id: node.id,
|
|
|
|
+ label: node.taskName || node.name,
|
|
|
|
+ children: node.children,
|
|
|
|
+ };
|
|
|
|
+ return newVar;
|
|
|
|
+ },
|
|
|
|
+
|
|
treeProjectChange(node) {
|
|
treeProjectChange(node) {
|
|
|
|
+ if (node.id != this.form.projectId) {
|
|
|
|
+ this.form.parentTaskId = undefined
|
|
|
|
+ }
|
|
this.getTaskAuditData(node.id)
|
|
this.getTaskAuditData(node.id)
|
|
|
|
+ this.getTaskTree(node.id)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ getTaskTree(projectId, currentId = null) {
|
|
|
|
+ getTasksByProjectId({projectId: projectId}).then(res => {
|
|
|
|
+ let data = res.data
|
|
|
|
+ if (currentId) {
|
|
|
|
+ data = res.data.filter(item => item.id != currentId)
|
|
|
|
+ }
|
|
|
|
+ this.taskOptions = this.handleTree(data, 'id', 'parentTaskId');
|
|
|
|
+ })
|
|
},
|
|
},
|
|
|
|
|
|
async getTaskAuditData(projectId) {
|
|
async getTaskAuditData(projectId) {
|
|
@@ -618,6 +661,7 @@ export default {
|
|
if (ids.indexOf(this.selectProjectId) < 0) {
|
|
if (ids.indexOf(this.selectProjectId) < 0) {
|
|
this.form.projectId = this.selectProjectId
|
|
this.form.projectId = this.selectProjectId
|
|
this.getTaskAuditData(this.form.projectId)
|
|
this.getTaskAuditData(this.form.projectId)
|
|
|
|
+ this.getTaskTree(this.form.projectId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.$set(this.form, 'priority', '4')
|
|
this.$set(this.form, 'priority', '4')
|
|
@@ -630,6 +674,7 @@ export default {
|
|
this.projectAuditConfigs = res.data
|
|
this.projectAuditConfigs = res.data
|
|
})
|
|
})
|
|
this.getTaskAuditData(row.projectId)
|
|
this.getTaskAuditData(row.projectId)
|
|
|
|
+ this.getTaskTree(row.projectId, row.id)
|
|
let arr = []
|
|
let arr = []
|
|
arr.push(getTask(row.id).then(res => {
|
|
arr.push(getTask(row.id).then(res => {
|
|
this.form = res.data;
|
|
this.form = res.data;
|
|
@@ -714,6 +759,7 @@ export default {
|
|
beginDate: row.beginDate,
|
|
beginDate: row.beginDate,
|
|
endDate: row.endDate,
|
|
endDate: row.endDate,
|
|
planHours: undefined,
|
|
planHours: undefined,
|
|
|
|
+ files: undefined,
|
|
description: undefined
|
|
description: undefined
|
|
}
|
|
}
|
|
this.splitForm.children.push(child)
|
|
this.splitForm.children.push(child)
|