|
@@ -54,14 +54,6 @@
|
|
|
</div>
|
|
|
<el-form-item label="需求文档" label-width="112px"><el-input v-model="form.mrdUrl" placeholder="请填写" style="width:89.6%;" /></el-form-item>
|
|
|
<el-form-item label="技术文档" label-width="112px"><el-input v-model="form.devUrl" placeholder="请填写" style="width:89.6%;" /></el-form-item>
|
|
|
- <!-- <el-form-item class="submit">
|
|
|
- <el-button type="danger" plain size="mini" @click="$router.go(-1)">取 消</el-button>
|
|
|
- <el-button class="move-button" size="mini" type="primary" @click="createFormData(form)">保 存</el-button>
|
|
|
- </el-form-item> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="block">
|
|
|
- <div class="block-flex">
|
|
|
<div class="line-between">
|
|
|
<el-form-item label="标签" label-width="124px">
|
|
|
<el-input v-model="form.tag" autocomplete="off" placeholder="请填写" style="width:76%;" />
|
|
@@ -75,9 +67,10 @@
|
|
|
@change="handleChangeGroup"
|
|
|
@visible-change="realTimeGroupGet"
|
|
|
/>
|
|
|
+ <!-- <el-input v-model="form.group" autocomplete="off" placeholder="请填写" style="width:76%;" /> -->
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
- <div class="line-between">
|
|
|
+ <div class="line-between-add">
|
|
|
<el-form-item label="产品" label-width="124px">
|
|
|
<el-select v-model="form.pm" multiple filterable placeholder="公司邮箱前缀" style="width:76%;" @visible-change="realTimeChange">
|
|
|
<el-option
|
|
@@ -88,7 +81,7 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开发" label-width="147px" prop="rd">
|
|
|
+ <!-- <el-form-item label="开发" label-width="147px" prop="rd">
|
|
|
<el-select v-model="form.rd" multiple filterable placeholder="公司邮箱前缀" style="width:76%;" @visible-change="realTimeChange">
|
|
|
<el-option
|
|
|
v-for="item in optionsRD"
|
|
@@ -97,34 +90,127 @@
|
|
|
:value="item.email"
|
|
|
/>
|
|
|
</el-select>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item> -->
|
|
|
</div>
|
|
|
- <div class="line-between-add">
|
|
|
- <el-form-item label="测试" label-width="124px" prop="qa">
|
|
|
- <el-select v-model="form.qa" multiple filterable placeholder="公司邮箱前缀" style="width:76%;" @visible-change="realTimeChange">
|
|
|
- <el-option
|
|
|
- v-for="item in optionsQA"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name"
|
|
|
- :value="item.email"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- <el-form-item label="描述" label-width="112px"><el-input v-model="form.description" type="textarea" placeholder="任务描述" rows="3" style="width:89.6%;" /></el-form-item>
|
|
|
+ <!-- <el-form-item class="submit">
|
|
|
+ <el-button type="danger" plain size="mini" @click="$router.go(-1)">取 消</el-button>
|
|
|
+ <el-button class="move-button" size="mini" type="primary" @click="createFormData(form)">保 存</el-button>
|
|
|
+ </el-form-item> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="block">
|
|
|
+ <div class="block" style="padding: 29px 20px;">
|
|
|
<div class="block-flex">
|
|
|
- <div class="line-between">
|
|
|
+ <div v-for="(itemMember, index) in developmentMember" :key="index" class="line-between-customize">
|
|
|
+ <span>开发</span>
|
|
|
+ <el-select v-model="itemMember.rd" filterable clearable placeholder="请选择" style="width: 9%;" @visible-change="realTimeChange">
|
|
|
+ <el-option
|
|
|
+ v-for="item in optionsRD"
|
|
|
+ :key="index + 999 + item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.email"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <span>开发周期</span>
|
|
|
+ <el-tooltip :disabled="itemMember.developmentTimeValue === null || itemMember.developmentTimeValue.length === 0" effect="dark" :content="getKonwTime(itemMember.developmentTimeValue)" placement="top">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="itemMember.developmentTimeValue"
|
|
|
+ :disabled="!itemMember.rd"
|
|
|
+ clearable
|
|
|
+ type="datetimerange"
|
|
|
+ style="width:25%;"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ <span>联调时间</span>
|
|
|
+ <el-tooltip :disabled="itemMember.testTimeValue === null || itemMember.testTimeValue.length === 0" effect="dark" :content="getKonwTime(itemMember.testTimeValue)" placement="top">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="itemMember.testTimeValue"
|
|
|
+ :disabled="!itemMember.rd"
|
|
|
+ clearable
|
|
|
+ type="datetimerange"
|
|
|
+ style="width:25%;"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ <span>提测时间</span>
|
|
|
+ <el-tooltip :disabled="!itemMember.commitTimeValue" effect="dark" :content="getKonwTime(itemMember.commitTimeValue)" placement="top">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="itemMember.commitTimeValue"
|
|
|
+ :disabled="!itemMember.rd"
|
|
|
+ clearable
|
|
|
+ style="width:9%;"
|
|
|
+ type="date"
|
|
|
+ placeholder="提测"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ <span>工作量: {{ totalTimeCom(itemMember.developmentTimeValue, itemMember.testTimeValue) }}d</span>
|
|
|
+ <el-button v-if="index === 0" size="mini" type="primary" icon="el-icon-plus" circle @click="developmentMember.push({rd: '', developmentTimeValue: [], testTimeValue: [], commitTimeValue: ''})" />
|
|
|
+ <el-button v-else size="mini" type="info" icon="el-icon-minus" circle @click="developmentMember.splice(developmentMember.findIndex((itemDelete, indexDelete) => indexDelete === index), 1)" />
|
|
|
+ </div>
|
|
|
+ <div v-for="(itemMember, index) in testMember" :key="999 - index" class="line-between-customize">
|
|
|
+ <span>测试</span>
|
|
|
+ <el-select v-model="itemMember.qa" filterable clearable placeholder="请选择" style="width: 9%;" @visible-change="realTimeChange">
|
|
|
+ <el-option
|
|
|
+ v-for="item in optionsQA"
|
|
|
+ :key="index + 999 + item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.email"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <span>用例时间</span>
|
|
|
+ <el-tooltip :disabled="itemMember.developmentTimeValue === null || itemMember.developmentTimeValue.length === 0" effect="dark" :content="getKonwTime(itemMember.developmentTimeValue)" placement="top">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="itemMember.developmentTimeValue"
|
|
|
+ :disabled="!itemMember.qa"
|
|
|
+ clearable
|
|
|
+ type="datetimerange"
|
|
|
+ style="width:25%;"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ <span>测试时间</span>
|
|
|
+ <el-tooltip :disabled="itemMember.testTimeValue === null || itemMember.testTimeValue.length === 0" effect="dark" :content="getKonwTime(itemMember.testTimeValue)" placement="top">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="itemMember.testTimeValue"
|
|
|
+ :disabled="!itemMember.qa"
|
|
|
+ clearable
|
|
|
+ type="datetimerange"
|
|
|
+ style="width:25%;"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ <span>上线时间</span>
|
|
|
+ <el-tooltip :disabled="!itemMember.commitTimeValue" effect="dark" :content="getKonwTime(itemMember.commitTimeValue)" placement="top">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="itemMember.commitTimeValue"
|
|
|
+ :disabled="!itemMember.qa"
|
|
|
+ clearable
|
|
|
+ style="width:9%;"
|
|
|
+ type="date"
|
|
|
+ placeholder="提测"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ <span>工作量: {{ totalTimeCom(itemMember.developmentTimeValue, itemMember.testTimeValue) }}d</span>
|
|
|
+ <el-button v-if="index === 0" size="mini" type="primary" icon="el-icon-plus" circle @click="testMember.push({qa: '', developmentTimeValue: [], testTimeValue: [], commitTimeValue: ''})" />
|
|
|
+ <el-button v-else size="mini" type="info" icon="el-icon-minus" circle @click="testMember.splice(testMember.findIndex((itemDelete, indexDelete) => indexDelete === index), 1)" />
|
|
|
+ </div>
|
|
|
+ <!-- <div class="line-between">
|
|
|
<el-form-item label="需求评审时间" label-width="166px">
|
|
|
<el-date-picker v-model="form.mrdTime" align="left" size="medium" type="datetime" style="width:76%;" placeholder="选择日期" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="计划提测时间" label-width="189px">
|
|
|
<el-date-picker v-model="form.launchTestPlanTime" align="left" size="medium" type="datetime" style="width:76%;" placeholder="选择日期" />
|
|
|
</el-form-item>
|
|
|
- </div>
|
|
|
- <div class="line-between">
|
|
|
+ </div> -->
|
|
|
+ <!-- <div class="line-between">
|
|
|
<el-form-item label="计划开始开发时间" label-width="166px">
|
|
|
<el-date-picker v-model="form.startDevPlanTime" align="left" size="medium" type="datetime" style="width:76%;" placeholder="选择日期" />
|
|
|
</el-form-item>
|
|
@@ -136,8 +222,13 @@
|
|
|
<el-form-item label="计划上线时间" label-width="166px">
|
|
|
<el-date-picker v-model="form.onlinePlanTime" align="left" size="medium" type="datetime" style="width:76%;" placeholder="选择日期" />
|
|
|
</el-form-item>
|
|
|
+ </div> -->
|
|
|
+ <div class="line-between-customize-remark" style="margin-top:25px">
|
|
|
+ <span>描述</span><el-input v-model="form.description" style="width: 95.7%;" type="textarea" placeholder="任务描述" rows="3" />
|
|
|
+ </div>
|
|
|
+ <div class="line-between-customize-remark" style="margin-top:25px">
|
|
|
+ <span>备注</span><el-input v-model="form.remark" style="width: 95.7%;" type="textarea" placeholder="备注" rows="3" />
|
|
|
</div>
|
|
|
- <el-form-item label="备注" label-width="146px"><el-input v-model="form.remark" type="textarea" placeholder="项目描述" rows="3" style="width:90%;" /></el-form-item>
|
|
|
<el-form-item class="submit">
|
|
|
<el-button type="danger" plain size="mini" @click="$router.go(-1)">取 消</el-button>
|
|
|
<el-button class="move-button" size="mini" type="primary" @click="createFormData(form)">确 定</el-button>
|
|
@@ -149,8 +240,8 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { projectGetTypeMap, updateTaskList, teamMembers } from '@/api/projectPage'
|
|
|
-import { taskListCreate } from '@/api/defectManage'
|
|
|
+import { projectGetTypeMap, updateTaskList, teamMembers, getTaskData } from '@/api/projectPage'
|
|
|
+// import { taskListCreate } from '@/api/defectManage'
|
|
|
import { bugGetEnum } from '@/api/defectManage' // 下拉菜单data
|
|
|
import { listComment } from '@/api/KanBan.js'
|
|
|
import axios from 'axios'
|
|
@@ -159,12 +250,30 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
form: {
|
|
|
+ bizId: '',
|
|
|
type: '',
|
|
|
clientType: '',
|
|
|
- pm: '',
|
|
|
- rd: '',
|
|
|
- qa: ''
|
|
|
+ pm: [],
|
|
|
+ rd: [],
|
|
|
+ qa: [],
|
|
|
+ group: ''
|
|
|
},
|
|
|
+ developmentMember: [
|
|
|
+ {
|
|
|
+ rd: '',
|
|
|
+ developmentTimeValue: [],
|
|
|
+ testTimeValue: [],
|
|
|
+ commitTimeValue: ''
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ testMember: [
|
|
|
+ {
|
|
|
+ qa: '',
|
|
|
+ developmentTimeValue: [],
|
|
|
+ testTimeValue: [],
|
|
|
+ commitTimeValue: ''
|
|
|
+ }
|
|
|
+ ],
|
|
|
optionsGroup: [],
|
|
|
optionsPM: [],
|
|
|
optionsRD: [],
|
|
@@ -193,10 +302,10 @@ export default {
|
|
|
name: [{ required: true, message: '任务名称不能为空', trigger: 'change' }],
|
|
|
priority: [{ required: true, message: '优先级不能为空', trigger: 'change' }],
|
|
|
// stage: [{ required: true, message: '进展不能为空', trigger: 'change' }],
|
|
|
- clientType: [{ required: true, message: '工程模块为空', trigger: 'change' }],
|
|
|
+ clientType: [{ required: true, message: '工程模块为空', trigger: 'change' }]
|
|
|
// pm: [{ required: true, message: '产品人员不能为空', trigger: 'change' }],
|
|
|
- rd: [{ required: true, message: '开发人员不能为空', trigger: 'change' }],
|
|
|
- qa: [{ required: true, message: '测试人员不能为空', trigger: 'change' }]
|
|
|
+ // rd: [{ required: true, message: '开发人员不能为空', trigger: 'change' }],
|
|
|
+ // qa: [{ required: true, message: '测试人员不能为空', trigger: 'change' }]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -228,9 +337,9 @@ export default {
|
|
|
this.errorFun(res.msg)
|
|
|
}
|
|
|
})
|
|
|
- await taskListCreate({ id: this.$route.query.id }).then(res => {
|
|
|
+ await getTaskData(this.$route.query.id).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
- this.form = res.data[0]
|
|
|
+ this.form = res.data
|
|
|
this.typeString = this.bizIdEnumList.filter(value => value.code === this.form.bizId)[0].child
|
|
|
this.getMember() // 保证bizId存在
|
|
|
if (this.form.pm) {
|
|
@@ -242,6 +351,30 @@ export default {
|
|
|
if (this.form.qa) {
|
|
|
this.form.qa = this.form.qa.split(',')
|
|
|
}
|
|
|
+ if (this.form.schedule && this.form.schedule.rdSchedulesList) {
|
|
|
+ this.developmentMember = this.form.schedule.rdSchedulesList.map((eachData) => ({
|
|
|
+ rd: eachData.ename ? eachData.ename : '',
|
|
|
+ developmentTimeValue: eachData.devStartTime ? [new Date(eachData.devStartTime), new Date(eachData.devEndTime)] : [],
|
|
|
+ testTimeValue: eachData.joinStartTime ? [new Date(eachData.joinStartTime), new Date(eachData.joinEndTime)] : [],
|
|
|
+ commitTimeValue: eachData.launchTestTime ? new Date(eachData.launchTestTime) : ''
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ if (this.form.schedule && this.form.schedule.qaSchedulesList) {
|
|
|
+ this.testMember = this.form.schedule.qaSchedulesList.map((eachData) => ({
|
|
|
+ qa: eachData.ename ? eachData.ename : '',
|
|
|
+ developmentTimeValue: eachData.startCaseTime ? [new Date(eachData.startCaseTime), new Date(eachData.endCaseTime)] : [],
|
|
|
+ testTimeValue: eachData.startTestTime ? [new Date(eachData.startTestTime), new Date(eachData.endTestTime)] : [],
|
|
|
+ commitTimeValue: eachData.onlimeTime ? new Date(eachData.onlimeTime) : ''
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ // if (this.form.schedule && this.form.schedule.rdSchedulesList) {
|
|
|
+ // this.developmentMember = this.form.schedule.rdSchedulesList.map((eachData) => ({
|
|
|
+ // rd: eachData.ename ? eachData.ename : '',
|
|
|
+ // developmentTimeValue: eachData.devStartTime ? [eachData.devStartTime, eachData.devEndTime] : [],
|
|
|
+ // testTimeValue: eachData.joinStartTime ? [eachData.joinStartTime, eachData.joinEndTime] : [],
|
|
|
+ // commitTimeValue: eachData.launchTestTime ? eachData.launchTestTime : ''
|
|
|
+ // }))
|
|
|
+ // }
|
|
|
if (this.form.clientType) {
|
|
|
this.businessTypeShow = true
|
|
|
this.businessTypeStr = this.typeString.filter(value => value.code === this.form.type)[0].child
|
|
@@ -255,12 +388,50 @@ export default {
|
|
|
this.form.group = this.groupArray(this.optionsGroup, this.form.group)
|
|
|
}
|
|
|
},
|
|
|
+ // 时间标签
|
|
|
+ getKonwTime(time) {
|
|
|
+ if (!time || time.length === 0) return
|
|
|
+ if (time.length === undefined) return time.getFullYear() + '-' + (time.getMonth() + 1) + '-' + time.getDate()
|
|
|
+ return time.map((eachTime) => {
|
|
|
+ return eachTime.getFullYear() + '-' + (eachTime.getMonth() + 1) + '-' + eachTime.getDate() + ' ' + eachTime.getHours() + ':' + eachTime.getMinutes() + ':' + eachTime.getSeconds()
|
|
|
+ }).join('至')
|
|
|
+ },
|
|
|
+ // 团队处理
|
|
|
+ groupArray(myArr, id) {
|
|
|
+ let res
|
|
|
+ // path,存储路径
|
|
|
+ const getPath = (arr, id, path = []) => {
|
|
|
+ return arr.reduce((a, c) => {
|
|
|
+ if (c.id === id) {
|
|
|
+ res = [...path, c.id]
|
|
|
+ }
|
|
|
+ if (c.child) {
|
|
|
+ return getPath(c.child, id, [...path, c.id])
|
|
|
+ }
|
|
|
+ }, [])
|
|
|
+ }
|
|
|
+ getPath(myArr, id)
|
|
|
+ return res
|
|
|
+ },
|
|
|
// 业务线取子数据
|
|
|
clickChangePlatform(e) {
|
|
|
this.typeString = this.bizIdEnumList.filter(value => value.code === e)[0].child
|
|
|
this.businessTypeStr = []
|
|
|
this.$set(this.form, 'type', '')
|
|
|
this.$set(this.form, 'clientType', '')
|
|
|
+ this.$set(this.form, 'pm', '')
|
|
|
+ this.$set(this.form, 'rd', '')
|
|
|
+ this.$set(this.form, 'qa', '')
|
|
|
+ this.$set(this.form, 'group', '')
|
|
|
+ this.developmentMember = this.developmentMember.map((eachData) => ({
|
|
|
+ ...eachData,
|
|
|
+ rd: ''
|
|
|
+ }))
|
|
|
+ this.testMember = this.testMember.map((eachData) => ({
|
|
|
+ ...eachData,
|
|
|
+ qa: ''
|
|
|
+ }))
|
|
|
+ this.realTimeGroupGet()
|
|
|
this.getMember()
|
|
|
},
|
|
|
// 业务线取子数据
|
|
@@ -273,6 +444,23 @@ export default {
|
|
|
}
|
|
|
this.$set(this.form, 'clientType', '')
|
|
|
},
|
|
|
+ // 相差时间计算
|
|
|
+ totalTimeCom(develop, test) {
|
|
|
+ if (develop === null || develop === undefined) develop = []
|
|
|
+ if (test === null || test === undefined) test = []
|
|
|
+ if (develop.length !== 0 && test.length === 0) {
|
|
|
+ return ((develop[1].getTime() - develop[0].getTime()) / (1000 * 3600 * 24)).toFixed(1)
|
|
|
+ }
|
|
|
+ if (develop.length === 0 && test.length !== 0) {
|
|
|
+ return ((test[1].getTime() - test[0].getTime()) / (1000 * 3600 * 24)).toFixed(1)
|
|
|
+ }
|
|
|
+ if (develop.length !== 0 && test.length !== 0) {
|
|
|
+ return ((test[1].getTime() - test[0].getTime() + develop[1].getTime() - develop[0].getTime()) / (1000 * 3600 * 24)).toFixed(1)
|
|
|
+ }
|
|
|
+ if (develop.length === 0 && test.length === 0) {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ },
|
|
|
// 点击一次更新一次
|
|
|
realTimeChange(e) {
|
|
|
if (e === true) this.getMember()
|
|
@@ -292,30 +480,12 @@ export default {
|
|
|
}
|
|
|
}))
|
|
|
},
|
|
|
- // 团队处理
|
|
|
- groupArray(myArr, id) {
|
|
|
- let res
|
|
|
- // path,存储路径
|
|
|
- const getPath = (arr, id, path = []) => {
|
|
|
- return arr.reduce((a, c) => {
|
|
|
- if (c.id === id) {
|
|
|
- res = [...path, c.id]
|
|
|
- }
|
|
|
- if (c.child) {
|
|
|
- return getPath(c.child, id, [...path, c.id])
|
|
|
- }
|
|
|
- }, [])
|
|
|
- }
|
|
|
- getPath(myArr, id)
|
|
|
- return res
|
|
|
- },
|
|
|
-
|
|
|
// 分组选择
|
|
|
handleChangeGroup(value) {
|
|
|
console.log(value)
|
|
|
},
|
|
|
realTimeGroupGet() {
|
|
|
- return listComment({ bizId: this.form.bizId, type: 1 }).then((res) => {
|
|
|
+ return listComment({ type: 1 }).then((res) => {
|
|
|
const reduceNa = (arr) => {
|
|
|
return arr.reduce((a, c) => {
|
|
|
return c.child.length !== 0 ? [...a, { id: c.commentInfo.id, name: c.commentInfo.content, child: reduceNa(c.child) }] : [...a, { id: c.commentInfo.id, name: c.commentInfo.content }]
|
|
@@ -332,8 +502,20 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ // 处理开发时间提测时间是否为全空
|
|
|
+ filterNa(arr) {
|
|
|
+ return arr.filter((eachData) => {
|
|
|
+ return Object.values(eachData).some(item => item !== '' && (item === null ? item !== null : item.length !== 0))
|
|
|
+ })
|
|
|
+ },
|
|
|
// 新建项目
|
|
|
createFormData(form) {
|
|
|
+ if (!form.schedule) {
|
|
|
+ form.schedule = {
|
|
|
+ rdSchedulesList: [],
|
|
|
+ qaSchedulesList: []
|
|
|
+ }
|
|
|
+ }
|
|
|
this.$refs.form.validate((valid) => {
|
|
|
if (valid) {
|
|
|
form.projectId = this.$route.query.projectId
|
|
@@ -350,6 +532,38 @@ export default {
|
|
|
form.group = form.group[form.group.length - 1]
|
|
|
}
|
|
|
this.emptyJudge(form)
|
|
|
+ if (this.filterNa(this.developmentMember).length !== 0) {
|
|
|
+ const pauseDevelopmentMember = this.filterNa(this.developmentMember)
|
|
|
+ form.schedule.rdSchedulesList = pauseDevelopmentMember.map((eachData) => ({
|
|
|
+ ename: eachData.rd ? eachData.rd : '',
|
|
|
+ name: eachData.rd ? this.optionsRD.filter((eachMember) => eachMember.email === eachData.rd)[0].name : '',
|
|
|
+ role: 'rd',
|
|
|
+ devStartTime: eachData.developmentTimeValue === null || eachData.developmentTimeValue.length === 0 ? '' : eachData.developmentTimeValue[0],
|
|
|
+ devEndTime: eachData.developmentTimeValue === null || eachData.developmentTimeValue.length === 0 ? '' : eachData.developmentTimeValue[1],
|
|
|
+ joinStartTime: eachData.testTimeValue === null || eachData.testTimeValue.length === 0 ? '' : eachData.testTimeValue[0],
|
|
|
+ joinEndTime: eachData.testTimeValue === null || eachData.testTimeValue.length === 0 ? '' : eachData.testTimeValue[1],
|
|
|
+ launchTestTime: eachData.commitTimeValue ? eachData.commitTimeValue : '',
|
|
|
+ workTime: this.totalTimeCom(eachData.developmentTimeValue, eachData.testTimeValue)
|
|
|
+ }))
|
|
|
+ } else {
|
|
|
+ form.schedule.rdSchedulesList = null
|
|
|
+ }
|
|
|
+ if (this.filterNa(this.testMember).length !== 0) {
|
|
|
+ const pauseDevelopmentMember = this.filterNa(this.testMember)
|
|
|
+ form.schedule.qaSchedulesList = pauseDevelopmentMember.map((eachData) => ({
|
|
|
+ ename: eachData.qa ? eachData.qa : '',
|
|
|
+ name: eachData.qa ? this.optionsQA.filter((eachMember) => eachMember.email === eachData.qa)[0].name : '',
|
|
|
+ role: 'qa',
|
|
|
+ startCaseTime: eachData.developmentTimeValue === null || eachData.developmentTimeValue.length === 0 ? '' : eachData.developmentTimeValue[0],
|
|
|
+ endCaseTime: eachData.developmentTimeValue === null || eachData.developmentTimeValue.length === 0 ? '' : eachData.developmentTimeValue[1],
|
|
|
+ startTestTime: eachData.testTimeValue === null || eachData.testTimeValue.length === 0 ? '' : eachData.testTimeValue[0],
|
|
|
+ endTestTime: eachData.testTimeValue === null || eachData.testTimeValue.length === 0 ? '' : eachData.testTimeValue[1],
|
|
|
+ onlimeTime: eachData.commitTimeValue ? eachData.commitTimeValue : '',
|
|
|
+ workTime: this.totalTimeCom(eachData.developmentTimeValue, eachData.testTimeValue)
|
|
|
+ }))
|
|
|
+ } else {
|
|
|
+ form.schedule.qaSchedulesList = null
|
|
|
+ }
|
|
|
this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
this.objData = { taskInfo: form, user: this.userData }
|
|
|
updateTaskList(this.objData).then(res => {
|
|
@@ -395,8 +609,30 @@ export default {
|
|
|
display flex
|
|
|
.block-flex >>> .el-form-item__content
|
|
|
width 100%
|
|
|
+ .block-flex >>> .el-date-editor .el-range-separator
|
|
|
+ padding 0
|
|
|
+ width auto
|
|
|
.force-height >>> .w-e-text-container
|
|
|
height 80px !important
|
|
|
+ .line-between-customize-remark
|
|
|
+ width 100%
|
|
|
+ display flex
|
|
|
+ justify-content space-between
|
|
|
+ align-items center
|
|
|
+ span
|
|
|
+ font-size 14px
|
|
|
+ color rgba(51,59,74,1)
|
|
|
+ white-space nowrap
|
|
|
+ .line-between-customize
|
|
|
+ width 100%
|
|
|
+ height 50px
|
|
|
+ display flex
|
|
|
+ justify-content space-between
|
|
|
+ align-items center
|
|
|
+ span
|
|
|
+ font-size 14px
|
|
|
+ color rgba(51,59,74,1)
|
|
|
+ white-space nowrap
|
|
|
.line-between
|
|
|
width 100%
|
|
|
display flex
|