From b92369f3abb872408648e6c3467953fb469ad6ab Mon Sep 17 00:00:00 2001 From: metersphere-bot <78466014+metersphere-bot@users.noreply.github.com> Date: Thu, 1 Apr 2021 18:09:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=88=E7=82=B9=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=86=8D=E7=82=B9=E8=84=91=E5=9B=BE=EF=BC=8C=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E8=84=91=E5=9B=BE=E4=B8=8D=E6=98=AF=E5=AF=B9=E5=BA=94=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84=E8=84=91=E5=9B=BE=20(#1790)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 解决冲突 * refactor: 用例评审点击模块展示对应脑图 * refactor: 测试计划用例点击模块展示对应脑图 * fix: 先点模块再点脑图,评审脑图不是对应模块的脑图 * fix: 动态更新模块树 * refactor: 代码规范 Co-authored-by: chenjianxing Co-authored-by: BugKing --- .../base/mapper/ext/ExtTestCaseMapper.java | 3 +- .../base/mapper/ext/ExtTestCaseMapper.xml | 8 +++- .../mapper/ext/ExtTestCaseReviewMapper.xml | 20 +++++---- .../track/controller/TestCaseController.java | 8 ++-- .../track/service/TestCaseService.java | 10 ++--- .../common/components/MsModuleMinder.vue | 40 +++++++++++++++--- .../components/track/case/TestCase.vue | 41 ++++++++++--------- .../track/case/components/TestCaseCreate.vue | 15 ++++--- .../track/case/components/TestCaseEdit.vue | 36 +++++++--------- .../track/case/components/TestCaseList.vue | 15 +++---- .../track/common/TestCaseNodeTree.vue | 13 ++++++ .../track/common/minder/TestCaseMinder.vue | 36 ++++++++++++++-- .../track/common/minder/TestPlanMinder.vue | 20 +++++++++ .../track/common/minder/TestReviewMinder.vue | 32 +++++++++++++-- .../functional/FunctionalTestCaseList.vue | 3 -- .../functional/TestPlanFunctional.vue | 13 +++--- .../review/components/TestCaseReviewEdit.vue | 29 +++++++++---- .../view/components/TestReviewFunction.vue | 14 +++---- .../components/TestReviewTestCaseList.vue | 12 +++--- frontend/src/common/js/utils.js | 10 +++++ frontend/src/store/getters.js | 10 ++++- frontend/src/store/index.js | 12 +++++- frontend/src/store/mutations.js | 11 ++++- 23 files changed, 286 insertions(+), 125 deletions(-) diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.java b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.java index 9a8e381c1..f499b8eac 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.java +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.java @@ -1,6 +1,7 @@ package io.metersphere.base.mapper.ext; import io.metersphere.base.domain.TestCase; +import io.metersphere.base.domain.TestCaseWithBLOBs; import io.metersphere.controller.request.BaseQueryRequest; import io.metersphere.track.dto.TestCaseDTO; import io.metersphere.track.request.testcase.QueryTestCaseRequest; @@ -76,5 +77,5 @@ public interface ExtTestCaseMapper { int getTestPlanPassCase(@Param("planId") String planId); - + List listForMinder(@Param("request") QueryTestCaseRequest request); } diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.xml index 6930ce602..669dd7a19 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseMapper.xml @@ -416,5 +416,11 @@ ) as temp + - \ No newline at end of file + diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseReviewMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseReviewMapper.xml index 1798133e8..e6ec55e69 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseReviewMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseReviewMapper.xml @@ -11,6 +11,16 @@ from test_case_review join project on project.id = test_case_review.project_id left join user on test_case_review.creator = user.id + + + order by + + test_case_review.${order.name} ${order.type} + + + + + and test_case_review.name like CONCAT('%', #{request.name},'%') @@ -19,13 +29,7 @@ and test_case_review.project_id = #{request.projectId} - - order by - - test_case_review.${order.name} ${order.type} - - - + - \ No newline at end of file + diff --git a/backend/src/main/java/io/metersphere/track/controller/TestCaseController.java b/backend/src/main/java/io/metersphere/track/controller/TestCaseController.java index 1747f0a3c..e504263ec 100644 --- a/backend/src/main/java/io/metersphere/track/controller/TestCaseController.java +++ b/backend/src/main/java/io/metersphere/track/controller/TestCaseController.java @@ -58,10 +58,10 @@ public class TestCaseController { return testCaseService.listTestCase(request); } - @GetMapping("/list/detail/{projectId}") - public List listDetail(@PathVariable String projectId) { - checkPermissionService.checkProjectOwner(projectId); - return testCaseService.listTestCaseDetail(projectId); + @PostMapping("/list/minder") + public List listDetail(@RequestBody QueryTestCaseRequest request) { + checkPermissionService.checkProjectOwner(request.getProjectId()); + return testCaseService.listTestCaseForMinder(request); } /*jenkins项目下所有接口和性能测试用例*/ diff --git a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java index d51e8955b..fba30e63e 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java @@ -857,12 +857,6 @@ public class TestCaseService { return extTestCaseMapper.list(request); } - public List listTestCaseDetail(String projectId) { - TestCaseExample testCaseExample = new TestCaseExample(); - testCaseExample.createCriteria().andProjectIdEqualTo(projectId); - return testCaseMapper.selectByExampleWithBLOBs(testCaseExample); - } - public void minderEdit(TestCaseMinderEditRequest request) { List data = request.getData(); data.forEach(item -> { @@ -891,4 +885,8 @@ public class TestCaseService { example.createCriteria().andProjectIdEqualTo(projectId); return testCaseMapper.selectByExample(example); } + + public List listTestCaseForMinder(QueryTestCaseRequest request) { + return extTestCaseMapper.listForMinder(request); + } } diff --git a/frontend/src/business/components/common/components/MsModuleMinder.vue b/frontend/src/business/components/common/components/MsModuleMinder.vue index f0b4d03f1..51178116a 100644 --- a/frontend/src/business/components/common/components/MsModuleMinder.vue +++ b/frontend/src/business/components/common/components/MsModuleMinder.vue @@ -44,6 +44,9 @@ export default { default() { return [] } + }, + selectNode: { + type: Object, } }, data() { @@ -53,16 +56,15 @@ export default { data: { text: this.$t('test_track.review_view.all_case'), disable: true, - id: "root", - path: "" + id: 'root', }, children: [] }, - "template":"default" + template: 'default' }, isActive: true, isFullScreen: false, - height: "" + height: '' } }, created() { @@ -71,7 +73,11 @@ export default { watch: { dataMap() { this.$nextTick(() => { - this.parse(this.importJson.root, this.treeNodes); + if (this.selectNode && this.selectNode.data) { + this.handleNodeSelect(this.selectNode); + } else { + this.parse(this.importJson.root, this.treeNodes); + } this.reload(); }) } @@ -109,7 +115,6 @@ export default { text: item.name, id: item.id, disable: true, - path: root.data.path + "/" + item.name, expandState:"collapse" }, } @@ -125,6 +130,29 @@ export default { }, setJsonImport(data) { this.importJson = data; + }, + handleNodeSelect(node) { + if (node && node.data) { + let nodeData = node.data; + let importJson = this.getImportJsonBySelectNode(nodeData); + this.parse(importJson.root, nodeData.children); + this.setJsonImport(importJson); + this.reload(); + } + }, + getImportJsonBySelectNode(nodeData) { + let importJson = { + root: { + data: { + text: nodeData.name, + id: nodeData.id, + disable: true, + }, + children: [] + }, + template: "default" + }; + return importJson; } } } diff --git a/frontend/src/business/components/track/case/TestCase.vue b/frontend/src/business/components/track/case/TestCase.vue index ed2bab1a2..d002fbccf 100644 --- a/frontend/src/business/components/track/case/TestCase.vue +++ b/frontend/src/business/components/track/case/TestCase.vue @@ -28,10 +28,7 @@ -1) { + data.nodeId = item.id; + break; + } + } + } this.handleCaseCreateOrEdit(data, type); if (this.$refs.minder) { this.$refs.minder.refresh(); @@ -325,15 +332,12 @@ export default { this.testCaseReadOnly = true; }, refresh(data) { - this.selectNodeIds = []; - this.selectParentNodes = []; - this.selectNode = {}; + this.$store.commit('setTestCaseSelectNode', {}); + this.$store.commit('setTestCaseSelectNodeIds', []); this.refreshTable(); this.setTable(data); - }, setTable(data) { - console.log(data) for (let index in this.tabs) { let tab = this.tabs[index]; if (tab.name === this.activeName) { @@ -367,9 +371,6 @@ export default { }, setCondition(data) { this.condition = data; - }, - setModuleOptions(data) { - this.moduleOptions = data; } } } diff --git a/frontend/src/business/components/track/case/components/TestCaseCreate.vue b/frontend/src/business/components/track/case/components/TestCaseCreate.vue index 31b6d3d60..6177a35ca 100644 --- a/frontend/src/business/components/track/case/components/TestCaseCreate.vue +++ b/frontend/src/business/components/track/case/components/TestCaseCreate.vue @@ -95,12 +95,15 @@ export default { watch: { treeNodes() { this.getModuleOptions(); - }, + } }, computed: { projectId() { return this.$store.state.projectId }, + moduleOptions() { + return this.$store.state.testCaseModuleOptions; + } }, methods: { saveTestCase(saveAs) { @@ -134,12 +137,12 @@ export default { }) }, getModuleOptions() { - let moduleOptions = []; - this.treeNodes.forEach(node => { - buildNodePath(node, {path: ''}, moduleOptions); - }); + // let moduleOptions = []; + // this.treeNodes.forEach(node => { + // buildNodePath(node, {path: ''}, moduleOptions); + // }); if(this.currentModule!==undefined){ - moduleOptions.forEach(item => { + this.moduleOptions.forEach(item => { if (this.currentModule.id === item.id) { this.currentModule.path = item.path; } diff --git a/frontend/src/business/components/track/case/components/TestCaseEdit.vue b/frontend/src/business/components/track/case/components/TestCaseEdit.vue index 96e8d81ef..aea39df94 100644 --- a/frontend/src/business/components/track/case/components/TestCaseEdit.vue +++ b/frontend/src/business/components/track/case/components/TestCaseEdit.vue @@ -277,7 +277,7 @@