|
@@ -8,7 +8,7 @@
|
|
<el-form-item v-if="releaseType === 'create'" label="报告名称" prop="reportName" :rules="[{ required: true, message: '报告名称不能为空', trigger: 'change'}]"><br>
|
|
<el-form-item v-if="releaseType === 'create'" label="报告名称" prop="reportName" :rules="[{ required: true, message: '报告名称不能为空', trigger: 'change'}]"><br>
|
|
<el-input v-model="fromCreateData.reportName" size="small" style="width:100%;" placeholder="请输入报告名称名称" />
|
|
<el-input v-model="fromCreateData.reportName" size="small" style="width:100%;" placeholder="请输入报告名称名称" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <div class="backStyle">模版内容</div>
|
|
|
|
|
|
+ <div class="backStyle">{{ releaseType === 'create'? "报告内容" : '模版内容' }}</div>
|
|
|
|
|
|
<el-row class="from-margin">
|
|
<el-row class="from-margin">
|
|
<el-col :span="12" class="Layout_space_between">
|
|
<el-col :span="12" class="Layout_space_between">
|
|
@@ -30,24 +30,15 @@
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
<el-row class="from-margin">
|
|
<el-row class="from-margin">
|
|
- <el-col :span="12" class="Layout_flex_start">
|
|
|
|
- <span class="from-name">是否延期: </span>
|
|
|
|
- <template>
|
|
|
|
- <el-radio-group v-model="from.isDelay" :disabled="releaseType === 'new'">
|
|
|
|
- <el-radio :label="0">否</el-radio>
|
|
|
|
- <el-radio :label="1">是</el-radio>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </template>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col v-show="fromCreateData.isDelay === 1" :span="12" class="Layout_space_between">
|
|
|
|
- <span class="from-namea"><span v-if="releaseType === 'create'" style="color:red;">*</span>准出延期原因 : </span>
|
|
|
|
- <el-input v-model="from.delayReason" size="small" :disabled="releaseType === 'new'" placeholder="请输入准出原因" style="width: 80%;" />
|
|
|
|
|
|
+ <el-col v-show="from.isDelay === 1" :span="24" class="Layout_space_between">
|
|
|
|
+ <span class="from-namea"><span v-if="releaseType === 'create'" style="color:red;">*</span>提测延期原因 : </span>
|
|
|
|
+ <el-input v-model="from.delayReason" size="small" :disabled="releaseType === 'new'" placeholder="请输入准出原因" style="width: 100%;" />
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
{{ from.devPlanTimeStart }}
|
|
{{ from.devPlanTimeStart }}
|
|
<el-row class="from-margin">
|
|
<el-row class="from-margin">
|
|
<el-col :span="12" class="Layout_space_between">
|
|
<el-col :span="12" class="Layout_space_between">
|
|
- <span class="from-name">计划开发时间: </span>
|
|
|
|
|
|
+ <span class="from-name">计划开发时间:</span>
|
|
<el-date-picker v-model="from.devPlanTimeStart" type="daterange" :disabled="releaseType === 'new'" size="small" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy.MM.dd" value-format="yyyy.MM.dd" style="width: -webkit-fill-available;" />
|
|
<el-date-picker v-model="from.devPlanTimeStart" type="daterange" :disabled="releaseType === 'new'" size="small" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy.MM.dd" value-format="yyyy.MM.dd" style="width: -webkit-fill-available;" />
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12" class="Layout_space_between">
|
|
<el-col :span="12" class="Layout_space_between">
|
|
@@ -66,9 +57,11 @@
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</template>
|
|
</template>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="12" class="Layout_flex_start">
|
|
|
|
|
|
+ <el-col v-if="from.followVersion === 1" :span="12" class="Layout_flex_start">
|
|
<span class="from-namer">跟版客户端</span>
|
|
<span class="from-namer">跟版客户端</span>
|
|
- <el-input v-model="from.involveAppString" :disabled="releaseType === 'new'" size="small" />
|
|
|
|
|
|
+ <el-select v-model="from.involveAppString" filterable remote size="small" :disabled="releaseType === 'new'" clearable placeholder="请选择" style="width: -webkit-fill-available;">
|
|
|
|
+ <el-option v-for="item in appClient" :key="item.code" :label="item.msg" :value="item.code" />
|
|
|
|
+ </el-select>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
@@ -76,15 +69,15 @@
|
|
<el-col :span="12" class="Layout_flex_start">
|
|
<el-col :span="12" class="Layout_flex_start">
|
|
<span class="from-name"><span style="color: red;">*</span>CodeReview:</span>
|
|
<span class="from-name"><span style="color: red;">*</span>CodeReview:</span>
|
|
<template>
|
|
<template>
|
|
- <el-radio-group v-model="from.radio" :disabled="releaseType === 'new'">
|
|
|
|
|
|
+ <el-radio-group v-model="from.isCodeReview" :disabled="releaseType === 'new'">
|
|
<el-radio :label="0">否</el-radio>
|
|
<el-radio :label="0">否</el-radio>
|
|
<el-radio :label="1">是</el-radio>
|
|
<el-radio :label="1">是</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</template>
|
|
</template>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="12" class="Layout_space_between">
|
|
|
|
|
|
+ <el-col v-if="from.isCodeReview === 1" :span="12" class="Layout_space_between">
|
|
<span class="from-namer"><span style="color: red;">*</span>执行人:</span>
|
|
<span class="from-namer"><span style="color: red;">*</span>执行人:</span>
|
|
- <searchTeam :value.sync="from.tester" :clearable="true" :multiple="true" :size="'small'" :disabled="releaseType === 'new'" style="width: 100%;" />
|
|
|
|
|
|
+ <searchTeam :value.sync="from.codeReviewExecutor" :clearable="true" :multiple="true" :size="'small'" :disabled="releaseType === 'new'" style="width: 100%;" />
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</el-form>
|
|
</el-form>
|
|
@@ -97,7 +90,7 @@
|
|
style="width: 100%; margin-bottom: 20px;"
|
|
style="width: 100%; margin-bottom: 20px;"
|
|
show-overflow-tooltip="true"
|
|
show-overflow-tooltip="true"
|
|
>
|
|
>
|
|
- <el-table-column prop="bugName" label="需求" align="center" min-width="100" show-overflow-tooltip>
|
|
|
|
|
|
+ <el-table-column prop="bugName" label="需求" align="center" min-width="250" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span class="didi-hover">{{ scope.row.bugName }}</span>
|
|
<span class="didi-hover">{{ scope.row.bugName }}</span>
|
|
</template>
|
|
</template>
|
|
@@ -115,7 +108,8 @@
|
|
import '@/styles/PublicStyle/index.scss' // 公共css
|
|
import '@/styles/PublicStyle/index.scss' // 公共css
|
|
import searchTeam from '@/components/select/searchTeam' // 人员搜索
|
|
import searchTeam from '@/components/select/searchTeam' // 人员搜索
|
|
import normalArea from '@/components/input/normalArea' // 富文本
|
|
import normalArea from '@/components/input/normalArea' // 富文本
|
|
-import { settingAddReportModule, settingUpdateReportModule, settingGetReportModuleById, reportdelivertestInitReportRelease, reportdelivertestCreate, reportdelivertestGetRequiresByTaskIds } from '@/api/reportTemplate' // 模版添删改查
|
|
|
|
|
|
+import { configShowTaskEnum } from '@/api/taskIndex'
|
|
|
|
+import { settingAddReportModule, settingUpdateReportModule, settingGetReportModuleById, reportdelivertestInitReportRelease, reportdelivertestCreate, reportdelivertestGetRequiresByTaskIds, reportdelivertestUpdate } from '@/api/reportTemplate' // 模版添删改查
|
|
|
|
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
@@ -134,44 +128,43 @@ export default {
|
|
taskId: [], // 创建准出的任务
|
|
taskId: [], // 创建准出的任务
|
|
fromCreateData: {}, // from
|
|
fromCreateData: {}, // from
|
|
from: {},
|
|
from: {},
|
|
|
|
+ appClient: [], // 跟版客户端
|
|
releaseType: '' // 新建模版还是新建准出报告
|
|
releaseType: '' // 新建模版还是新建准出报告
|
|
}
|
|
}
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
templateId: {
|
|
templateId: {
|
|
handler(newV) {
|
|
handler(newV) {
|
|
- if (newV !== 1 && newV !== 2) {
|
|
|
|
- console.log(newV, 'tmepId')
|
|
|
|
- this.tpltId = newV
|
|
|
|
- this.tpltId ? this.settingGetReportModuleById(newV) : ''
|
|
|
|
- }
|
|
|
|
- if (newV === 1) {
|
|
|
|
- this.fromCreateData.content = `
|
|
|
|
|
|
+ console.log(newV, '更新')
|
|
|
|
+ if (newV.id) {
|
|
|
|
+ console.log(newV, '有数据')
|
|
|
|
+ this.fromCreateData = newV
|
|
|
|
+ this.from = newV
|
|
|
|
+ } else {
|
|
|
|
+ if (newV !== 1 && newV !== 2) {
|
|
|
|
+ console.log(newV, 'tmepId')
|
|
|
|
+ this.tpltId = newV
|
|
|
|
+ this.tpltId ? this.settingGetReportModuleById(newV) : ''
|
|
|
|
+ }
|
|
|
|
+ if (newV === 1) {
|
|
|
|
+ this.tpltId = newV
|
|
|
|
+ this.fromCreateData.content = `
|
|
<p>背景</p><br>
|
|
<p>背景</p><br>
|
|
<div>测试内容</div>
|
|
<div>测试内容</div>
|
|
<p>功能测试</p>
|
|
<p>功能测试</p>
|
|
- <table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>页面</th><th>模块</th><th>接口</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
|
|
- <p>兼容性测试-机型兼容</p>
|
|
|
|
- <table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="8%"><col width="8%"><col width="8%"><col width="8%"><col width="8%"><col width="8%"><col width="8%"></colgroup><thead><tr><th>机型</th><th>操作系统</th><th>分辨率</th><th>测试结果</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
|
|
- <p>兼容性测试-网络兼容</p>
|
|
|
|
- <table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="8%"><col width="8%"><col width="8%"><col width="8%"><col width="8%"><col width="8%"><col width="8%"></colgroup><thead><tr><th>网络类型</th><th>测试结果</th></tr></thead><tbody><tr><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td></tr></tbody></table>
|
|
|
|
- <p>产品验收</p>
|
|
|
|
<table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>验收项</th><th>验收点</th><th>验收人</th><th>验收结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
<table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>验收项</th><th>验收点</th><th>验收人</th><th>验收结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
`
|
|
`
|
|
- }
|
|
|
|
- if (newV === 2) {
|
|
|
|
- this.fromCreateData.content = `
|
|
|
|
|
|
+ }
|
|
|
|
+ if (newV === 2) {
|
|
|
|
+ this.tpltId = newV
|
|
|
|
+ this.fromCreateData.content = `
|
|
<p>背景</p><br>
|
|
<p>背景</p><br>
|
|
<div>测试内容</div>
|
|
<div>测试内容</div>
|
|
<p>功能测试</p>
|
|
<p>功能测试</p>
|
|
<table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>页面</th><th>模块</th><th>接口</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
<table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="20%"><col width="20%"><col width="20%"><col width="20%"></colgroup><thead><tr><th>页面</th><th>模块</th><th>接口</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
- <p>可靠性测试</p>
|
|
|
|
- <table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="8%"><col width="8%"><col width="8%"><col width="8%"></colgroup><thead><tr><th>子类</th><th>描述</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
|
|
- <p>稳定性测试</p>
|
|
|
|
- <table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="8%"><col width="8%"><col width="8%"><col width="8%"></colgroup><thead><tr><th>子类</th><th>描述</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
|
|
- <p>安全性测试</p>
|
|
|
|
<table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="8%"><col width="8%"><col width="8%"><col width="8%"></colgroup><thead><tr><th>子类</th><th>描述</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
<table border="1" style="border: 1px solid #DEE2E7" width="100%"><colgroup><col width="8%"><col width="8%"><col width="8%"><col width="8%"></colgroup><thead><tr><th>子类</th><th>描述</th><th>测试结果</th><th>备注</th></tr></thead><tbody><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>
|
|
`
|
|
`
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
immediate: true
|
|
immediate: true
|
|
@@ -193,6 +186,9 @@ export default {
|
|
immediate: true
|
|
immediate: true
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ created() {
|
|
|
|
+ this.configShowTaskEnum()
|
|
|
|
+ },
|
|
methods: {
|
|
methods: {
|
|
async reportdelivertestInitReportRelease(val) { // 报告时间
|
|
async reportdelivertestInitReportRelease(val) { // 报告时间
|
|
const res = await reportdelivertestInitReportRelease({ taskIds: val })
|
|
const res = await reportdelivertestInitReportRelease({ taskIds: val })
|
|
@@ -205,6 +201,12 @@ export default {
|
|
this.tableData = res.data.list
|
|
this.tableData = res.data.list
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ async configShowTaskEnum() {
|
|
|
|
+ const res = await configShowTaskEnum()
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.appClient = res.data.appClient // 涉及客户端
|
|
|
|
+ }
|
|
|
|
+ },
|
|
async settingGetReportModuleById(val) { // 获取自定义模版内容
|
|
async settingGetReportModuleById(val) { // 获取自定义模版内容
|
|
const res = await settingGetReportModuleById(val)
|
|
const res = await settingGetReportModuleById(val)
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
@@ -212,21 +214,45 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
- // 创建准出报告
|
|
|
|
- reportreleaseCreate() {
|
|
|
|
|
|
+ // 创建提测报告
|
|
|
|
+ reportreleaseCreate(val) {
|
|
this.$refs.fromCreateData.validate((valid) => {
|
|
this.$refs.fromCreateData.validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
- const data = this.fromCreateData
|
|
|
|
- data.taskIds = this.taskId
|
|
|
|
- data.reportName = this.fromCreateData.moduleName
|
|
|
|
- data.bizId = localStorage.getItem('bizId')
|
|
|
|
- data.moduleId = this.tpltId
|
|
|
|
- reportdelivertestCreate(data).then(res => {
|
|
|
|
- if (res.code === 200) {
|
|
|
|
- console.log(res)
|
|
|
|
- }
|
|
|
|
- this.$emit('SaveNextStep')
|
|
|
|
- })
|
|
|
|
|
|
+ if (val) {
|
|
|
|
+ const data = this.fromCreateData
|
|
|
|
+ data.deliverTestPlanTime = this.from.deliverTestPlanTime
|
|
|
|
+ data.delayReason = this.from.delayReason
|
|
|
|
+ data.deliverTestActualTime = this.from.deliverTestActualTime
|
|
|
|
+ data.devActualTimeStart = this.from.devActualTimeStart
|
|
|
|
+
|
|
|
|
+ data.followVersion = this.from.followVersion
|
|
|
|
+ data.involveAppString = this.from.involveAppString
|
|
|
|
+
|
|
|
|
+ data.isCodeReview = this.from.isCodeReview
|
|
|
|
+ data.codeReviewExecutor = this.from.codeReviewExecutor
|
|
|
|
+ data.taskIds = this.taskId
|
|
|
|
+ data.bizId = localStorage.getItem('bizId')
|
|
|
|
+ data.moduleId = this.tpltId
|
|
|
|
+ reportdelivertestUpdate(data).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.$message({ type: 'success', message: '更新成功' })
|
|
|
|
+ this.$emit('SaveNextStep', res.data)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ const data = {}
|
|
|
|
+ data.reportName = this.fromCreateData.reportName
|
|
|
|
+ data.content = this.fromCreateData.content
|
|
|
|
+ data.taskIds = this.taskId
|
|
|
|
+ data.bizId = localStorage.getItem('bizId')
|
|
|
|
+ data.moduleId = this.tpltId
|
|
|
|
+ reportdelivertestCreate(data).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.$message({ type: 'success', message: '创建成功' })
|
|
|
|
+ this.$emit('SaveNextStep', res.data)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
@@ -280,7 +306,7 @@ export default {
|
|
color:#666666;
|
|
color:#666666;
|
|
opacity:1;
|
|
opacity:1;
|
|
.from-name {
|
|
.from-name {
|
|
- width: 140px !important;
|
|
|
|
|
|
+ width: 150px !important;
|
|
}
|
|
}
|
|
.from-namea {
|
|
.from-namea {
|
|
width: 119px !important;
|
|
width: 119px !important;
|