|
@@ -11,6 +11,7 @@
|
|
|
>
|
|
|
<article v-if="!isDeleteStatus">
|
|
|
<el-form ref="form" :model="form" :rules="form_rules" label-width="100px" :label-position="'left'">
|
|
|
+ <h2>排期内容</h2>
|
|
|
<el-form-item label="排期类型" prop="type">
|
|
|
<el-select v-model="form.type" clearable placeholder="请选择" style="width: 100%" :disabled="disabled">
|
|
|
<el-option v-for="item in taskScheduleEvent" :key="item.code" :label="item.msg" :value="item.code" />
|
|
@@ -26,9 +27,13 @@
|
|
|
<sel-date-picker :start-end.sync="form.dayList" :detail-day-list="detailDayList" @getDetailDay="getDetailDay" />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="描述">
|
|
|
+ <el-form-item label="描述" class="item-desc">
|
|
|
<el-input v-model="form.desc" autocomplete="off" placeholder="请输入问题描述内容..." :disabled="disabled" />
|
|
|
</el-form-item>
|
|
|
+ <h2>关联任务</h2>
|
|
|
+ <el-form-item label="业务线" prop="bizId">
|
|
|
+ {{ bizName }}
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="关联任务" prop="taskList">
|
|
|
<el-select
|
|
|
v-model="selectTask"
|
|
@@ -95,7 +100,7 @@ const _ = require('lodash')
|
|
|
import searchPeople from '@/components/select/searchPeople'
|
|
|
import normalDialog from '@/components/dialog/normalDialog'
|
|
|
import selDatePicker from '@/components/picker/SelDatePicker'
|
|
|
-import { taskList, configShowTaskEnum } from '@/api/taskIndex'
|
|
|
+import { taskList, configShowTaskEnum, taskGet } from '@/api/taskIndex'
|
|
|
import { getSeprateDayInfo, scheduleCreate, scheduleGet, scheduleUpdate, scheduleDelete } from '@/api/projectViewDetails'
|
|
|
import danger from '@/assets/感叹@2x.png'
|
|
|
import '@/styles/PublicStyle/index.scss'
|
|
@@ -111,6 +116,11 @@ export default {
|
|
|
default: false,
|
|
|
required: true
|
|
|
},
|
|
|
+ type: { // 类型,项目下的project,需求下的requirement,任务下的task
|
|
|
+ type: String,
|
|
|
+ default: 'project',
|
|
|
+ required: false
|
|
|
+ },
|
|
|
title: {
|
|
|
type: String,
|
|
|
default: '新建排期',
|
|
@@ -142,6 +152,7 @@ export default {
|
|
|
dangerImg: danger,
|
|
|
form_rules: {
|
|
|
type: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],
|
|
|
+ bizId: [{ required: true, message: '业务线不能为空', trigger: 'blur' }],
|
|
|
peopleList: [{ required: true, message: '参与人员不能为空', trigger: 'blur' }],
|
|
|
dayList: [{ required: true, message: '排期不能为空', trigger: 'blur' }],
|
|
|
taskList: [{ required: true, message: '关联任务不能为空', trigger: 'blur' }]
|
|
@@ -207,16 +218,29 @@ export default {
|
|
|
},
|
|
|
created() {
|
|
|
this.getType()
|
|
|
- this.getNowTask()
|
|
|
+ if (this.type === 'task' && this.detailData === null) {
|
|
|
+ this.init()
|
|
|
+ } else {
|
|
|
+ this.getNowTask()
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
+ async init() { // 任务页面下获取当前任务
|
|
|
+ const res = await taskGet(this.$route.query.id)
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.tasksOptions = [res.data]
|
|
|
+ this.tasksDetailList = [res.data]
|
|
|
+ this.form.taskList = [res.data.id]
|
|
|
+ }
|
|
|
+ },
|
|
|
getSomeScheduleData(obj) { // 当传入部分详细信息时候
|
|
|
const len = obj.dayList.length
|
|
|
this.form = {
|
|
|
...this.form,
|
|
|
dayList: [obj.dayList[0], obj.dayList[len - 1]]
|
|
|
}
|
|
|
- this.bizId = obj.bizId
|
|
|
+ this.bizId = obj.bizId.code
|
|
|
+ this.bizName = obj.bizId.name
|
|
|
this.detailDayList = obj.dayList || []
|
|
|
this.schedule =
|
|
|
obj.dayList[0] === obj.dayList[len - 1]
|
|
@@ -251,13 +275,13 @@ export default {
|
|
|
this.taskScheduleEvent = resEnum.data.taskScheduleEvent
|
|
|
}
|
|
|
},
|
|
|
- async getNowTask() { // 获取当前项目下任务
|
|
|
+ async getNowTask() { // 获取当前项目/需求下任务
|
|
|
if (!this.$route.query.id) {
|
|
|
return
|
|
|
}
|
|
|
- const res = await taskList({
|
|
|
- projectId: this.$route.query.id
|
|
|
- })
|
|
|
+ const params = {}
|
|
|
+ params[this.type] = this.$route.query.id
|
|
|
+ const res = await taskList(params)
|
|
|
if (res.code === 200) {
|
|
|
this.tasksOptions = res.data
|
|
|
}
|
|
@@ -363,10 +387,22 @@ article {
|
|
|
.blue {
|
|
|
color: #409EFF;
|
|
|
}
|
|
|
+ h2 {
|
|
|
+ color: #333333;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ padding-left: 10px;
|
|
|
+ }
|
|
|
}
|
|
|
>>>.el-form {
|
|
|
padding: 0 156px 0 60px;
|
|
|
}
|
|
|
+.item-desc {
|
|
|
+ >>>.el-form-item__label {
|
|
|
+ padding-left: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
.picker-hidden {
|
|
|
opacity: 0;
|
|
|
position: absolute;
|