From 68ccaa2a1f64a69c5699a930027ac3893efa94e8 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Tue, 1 Nov 2022 17:58:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=B5=8B=E8=AF=95=E8=AE=A1=E5=88=92):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95=E8=AE=A1=E5=88=92=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=9C=BA=E6=99=AF=E6=8F=90=E7=A4=BA=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E8=A2=AB=E5=88=A0=E9=99=A4=E7=9A=84=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1019236 --user=王孝刚 【测试跟踪】测试计划-场景用例列表-执行单个场景后报告链接跳转提示报告被删除 https://www.tapd.cn/55049933/s/1285572 --- .../TestPlanScenarioCaseController.java | 5 +++++ .../service/TestPlanScenarioCaseService.java | 8 +++++++ .../automation/report/ApiReportViewHeader.vue | 21 +++++++++++++++---- .../comonents/api/TestPlanApiScenarioList.vue | 2 +- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/io/metersphere/track/controller/TestPlanScenarioCaseController.java b/backend/src/main/java/io/metersphere/track/controller/TestPlanScenarioCaseController.java index 7794a24acf..e6414067b0 100644 --- a/backend/src/main/java/io/metersphere/track/controller/TestPlanScenarioCaseController.java +++ b/backend/src/main/java/io/metersphere/track/controller/TestPlanScenarioCaseController.java @@ -123,4 +123,9 @@ public class TestPlanScenarioCaseController { public void orderCase(@RequestBody ResetOrderRequest request) { testPlanScenarioCaseService.updateOrder(request); } + + @GetMapping("/get-scenario-id/{id}") + public String getScenarioId(@PathVariable("id") String planScenarioId) { + return testPlanScenarioCaseService.getScenarioId(planScenarioId); + } } diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanScenarioCaseService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanScenarioCaseService.java index be4f081ddb..2711496718 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanScenarioCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanScenarioCaseService.java @@ -654,4 +654,12 @@ public class TestPlanScenarioCaseService { extTestPlanScenarioCaseMapper.getFailureList(planId, "unExecute"); return buildCases(apiTestCases); } + + public String getScenarioId(String planScenarioId) { + TestPlanApiScenario planApiScenario = testPlanApiScenarioMapper.selectByPrimaryKey(planScenarioId); + if (planApiScenario != null) { + return planApiScenario.getApiScenarioId(); + } + return planScenarioId; + } } diff --git a/frontend/src/business/components/api/automation/report/ApiReportViewHeader.vue b/frontend/src/business/components/api/automation/report/ApiReportViewHeader.vue index e6e0b36000..2d685c055b 100644 --- a/frontend/src/business/components/api/automation/report/ApiReportViewHeader.vue +++ b/frontend/src/business/components/api/automation/report/ApiReportViewHeader.vue @@ -82,6 +82,7 @@ import {generateShareInfoWithExpired} from "@/network/share"; import {getCurrentProjectID, getCurrentWorkspaceId, getUUID} from "@/common/js/utils"; import MsTag from "@/business/components/common/components/MsTag"; + const requireComponent = require.context('@/business/components/xpack/', true, /\.vue$/); const UiDownloadScreenshot = requireComponent.keys().length > 0 ? requireComponent("./ui/automation/report/UiDownloadScreenshot.vue") : {}; @@ -155,6 +156,18 @@ export default { $event.target.blur(); }, redirect() { + let resourceId = this.scenarioId; + if (this.isPlan) { + this.$get('/test/plan/scenario/case/get-scenario-id/' + resourceId , res => { + resourceId = res.data; + this.showDetail(resourceId); + }); + } else { + resourceId = this.scenarioId; + this.showDetail(resourceId); + } + }, + showDetail(resourceId) { let data = this.$router.resolve({ name: this.isUi ? 'uiAutomation' : 'ApiAutomation', query: { @@ -162,7 +175,7 @@ export default { dataType: "scenario", projectId: getCurrentProjectID(), workspaceId: getCurrentWorkspaceId(), - resourceId: this.scenarioId + resourceId: resourceId } }); window.open(data.href, '_blank'); @@ -193,7 +206,7 @@ export default { pram.shareType = 'API_REPORT'; let thisHost = window.location.host; let shareUrl = thisHost + "/shareApiReport"; - if(this.isUi){ + if (this.isUi) { pram.shareType = 'UI_REPORT'; shareUrl = thisHost + "/shareUiReport"; } @@ -202,8 +215,8 @@ export default { }); }, getProjectApplication() { - let path = "/API_SHARE_REPORT_TIME"; - if(this.isUi){ + let path = "/API_SHARE_REPORT_TIME"; + if (this.isUi) { path = "/UI_SHARE_REPORT_TIME"; } this.$get('/project_application/get/' + getCurrentProjectID() + path, res => { diff --git a/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue b/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue index 079b7b5030..1c996a0999 100644 --- a/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue +++ b/frontend/src/business/components/track/plan/view/comonents/api/TestPlanApiScenarioList.vue @@ -186,7 +186,7 @@ - +