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 9a8e381c1f..f499b8eacb 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 6930ce6025..669dd7a199 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 1798133e8e..e6ec55e692 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 356d658489..19456e0fa6 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 a0d8fb57a8..11c9135293 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java @@ -893,12 +893,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 -> { @@ -927,4 +921,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 f0b4d03f19..51178116a6 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 ed2bab1a28..d002fbccfc 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 31b6d3d606..6177a35ca1 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 8aa8a75769..bfc578213b 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 @@