add:测试计划关联测试报告编辑API

This commit is contained in:
pfl
2025-06-27 18:25:56 +08:00
parent 924f5a935f
commit c12be119a3
4 changed files with 73 additions and 10 deletions

View File

@@ -76,4 +76,14 @@ public class TestReportController extends BaseController {
return toAjax(testReportService.updateExecuteCaseReport(testReport)); return toAjax(testReportService.updateExecuteCaseReport(testReport));
} }
/**
* 修改测试计划关联测试报告
* @param testReport
*/
@Log(title = "测试报告", businessType = BusinessType.UPDATE)
@PostMapping("/updateExecuteCaseReport")
public AjaxResult updateExecuteCaseReport(@RequestBody TestReport testReport) {
return toAjax(testReportService.updateExecuteCaseReport(testReport));
}
} }

View File

@@ -10,6 +10,7 @@ const api = {
addTestReport: 'test/testReport/addTestReport', addTestReport: 'test/testReport/addTestReport',
getTestReportList: 'test/testReport/reportList', getTestReportList: 'test/testReport/reportList',
delExecuteCaseReport: 'test/testReport/delExecuteCaseReport', delExecuteCaseReport: 'test/testReport/delExecuteCaseReport',
updateExecuteCaseReport: 'test/testReport/updateExecuteCaseReport',
getPlanOverview:'test/testPlan/planOverview', getPlanOverview:'test/testPlan/planOverview',
getPlanCaseTrendData: 'test/testPlan/planCaseTrendData', getPlanCaseTrendData: 'test/testPlan/planCaseTrendData',
} }
@@ -86,6 +87,14 @@ export function delExecuteCaseReport(id) {
}) })
} }
export function updateExecuteCaseReport(data) {
return request({
url: api.updateExecuteCaseReport,
method: 'post',
data: data
})
}
export function getPlanOverview(id) { export function getPlanOverview(id) {
return request({ return request({
url: api.getPlanOverview, url: api.getPlanOverview,

View File

@@ -106,8 +106,14 @@ export default {
} }
} }
}, },
activated() {
this.$nextTick(() => {
console.log('getlist')
this.getList()
})
},
mounted() { mounted() {
this.getList()
}, },
methods: { methods: {
handleRowClick(row){ handleRowClick(row){

View File

@@ -3,7 +3,7 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="24" class="page-header"> <el-col :span="24" class="page-header">
<el-page-header :title="reportTitle" @back="goBack" ></el-page-header> <el-page-header :title="reportTitle" @back="goBack" ></el-page-header>
<div class="header-buttons"> <div class="header-buttons" v-if="isEdit">
<span>测试结果</span> <span>测试结果</span>
<el-select v-model="selectedResult" placeholder="请选择"> <el-select v-model="selectedResult" placeholder="请选择">
<el-option <el-option
@@ -15,17 +15,29 @@
</el-select> </el-select>
<el-button type="primary" icon="el-icon-setting" @click="configureModule">配置模块</el-button> <el-button type="primary" icon="el-icon-setting" @click="configureModule">配置模块</el-button>
<el-button type="primary" size="medium" @click="saveReport">保存报告</el-button> <el-button type="primary" size="medium" @click="saveReport">保存报告</el-button>
<el-button type="danger" size="medium" @click="isEdit = false">取消编辑</el-button>
</div>
<div class="header-buttons" v-else>
<el-button type="primary" icon="el-icon-setting" @click="configureModule">下载报告</el-button>
<el-button type="primary" size="medium" @click="isEdit = true">编辑报告</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="report-container" :class="testStatusClass"> <div class="report-container" :class="testStatusClass">
<div class="report-header"> <div class="report-header">
<div class="report-title"> <div class="report-title" v-if="isEdit">
<span>{{ reportTitle }}</span> <el-input v-model="reportTitle" style="width: 300px" placeholder="请输入报告名称"/>
<div class="report-info">
<span>关联项目中移商业保理平台</span>
<span>测试阶段{{ reportType }}</span>
</div>
</div> </div>
<div class="report-info"> <div class="report-title" v-else>
<span>关联项目中移商业保理平台</span> <span>{{ reportTitle }}</span>
<span>测试阶段{{ reportType }}</span> <div class="report-info">
<span>关联项目中移商业保理平台</span>
<span>测试阶段{{ reportType }}</span>
</div>
</div> </div>
</div> </div>
@@ -73,6 +85,7 @@
<script> <script>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import router from "@/router"; import router from "@/router";
import {updateExecuteCaseReport} from "@/api/test/testPlan";
export default { export default {
name: 'report', name: 'report',
@@ -85,6 +98,8 @@ export default {
}, },
data() { data() {
return { return {
isEdit: false,
reportId: '',
reportType: '', reportType: '',
reportTitle: '', reportTitle: '',
reportData: {}, reportData: {},
@@ -114,6 +129,7 @@ export default {
}; };
}, },
created() { created() {
this.reportId = this.$route.query.id;
this.reportTitle = this.$route.query.name; this.reportTitle = this.$route.query.name;
this.reportType = this.$route.query.type; this.reportType = this.$route.query.type;
this.reportData = JSON.parse(this.$route.query.report); this.reportData = JSON.parse(this.$route.query.report);
@@ -252,9 +268,31 @@ export default {
}, },
saveReport() { saveReport() {
// 保存报告的逻辑 let reportData = {
console.log('Save report'); caseNum: this.reportData.caseNum,
} name: this.reportData.name,
passNum: this.reportData.passNum,
result: this.selectedResult // 使用外部的 result 值替换
};
// 构造要提交的数据对象
const reportDataToSave = {
id: this.reportId,
name: this.reportTitle,
result: this.selectedResult,
report: JSON.stringify(reportData)
};
updateExecuteCaseReport(reportDataToSave)
.then(response => {
this.$message.success('报告保存成功');
// 可选:更新页面状态为非编辑模式
this.isEdit = false;
})
.catch(error => {
this.$message.error('报告保存失败');
console.error('保存报告失败:', error);
});
},
}, },
} }
</script> </script>