From 78c82517c9ca86e899a631e4893d0c9ccfdd85f7 Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Thu, 9 Apr 2020 17:47:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8Bhead?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProjectController.java | 5 + .../controller/TestCaseController.java | 2 +- .../metersphere/service/ProjectService.java | 4 + .../metersphere/service/TestCaseService.java | 6 +- .../components/track/case/TestCase.vue | 53 +++++--- .../track/case/components/RecentTestCase.vue | 42 ------ .../track/head/TrackHeaderMenus.vue | 120 +++++++++++------- .../track/plan/components/RecentTestPlan.vue | 42 ------ .../track/project/TrackRecentProject.vue | 53 -------- 9 files changed, 118 insertions(+), 209 deletions(-) delete mode 100644 frontend/src/business/components/track/case/components/RecentTestCase.vue delete mode 100644 frontend/src/business/components/track/plan/components/RecentTestPlan.vue delete mode 100644 frontend/src/business/components/track/project/TrackRecentProject.vue diff --git a/backend/src/main/java/io/metersphere/controller/ProjectController.java b/backend/src/main/java/io/metersphere/controller/ProjectController.java index 32ec2477d7..bb92769544 100644 --- a/backend/src/main/java/io/metersphere/controller/ProjectController.java +++ b/backend/src/main/java/io/metersphere/controller/ProjectController.java @@ -42,6 +42,11 @@ public class ProjectController { return projectService.getRecentProjectList(request); } + @GetMapping("/get/{id}") + public Project getProject(@PathVariable String id) { + return projectService.getProjectById(id); + } + @PostMapping("/add") @RequiresRoles(RoleConstants.TEST_MANAGER) public Project addProject(@RequestBody Project project) { diff --git a/backend/src/main/java/io/metersphere/controller/TestCaseController.java b/backend/src/main/java/io/metersphere/controller/TestCaseController.java index f5a8bb4ac2..69be699528 100644 --- a/backend/src/main/java/io/metersphere/controller/TestCaseController.java +++ b/backend/src/main/java/io/metersphere/controller/TestCaseController.java @@ -50,7 +50,7 @@ public class TestCaseController { } @GetMapping("/get/{testCaseId}") - public List getTestCase(@PathVariable String testCaseId){ + public TestCaseWithBLOBs getTestCase(@PathVariable String testCaseId){ return testCaseService.getTestCase(testCaseId); } diff --git a/backend/src/main/java/io/metersphere/service/ProjectService.java b/backend/src/main/java/io/metersphere/service/ProjectService.java index c5b2944c7a..69a378ee29 100644 --- a/backend/src/main/java/io/metersphere/service/ProjectService.java +++ b/backend/src/main/java/io/metersphere/service/ProjectService.java @@ -74,4 +74,8 @@ public class ProjectService { example.setOrderByClause("update_time desc"); return projectMapper.selectByExample(example); } + + public Project getProjectById(String id) { + return projectMapper.selectByPrimaryKey(id); + } } diff --git a/backend/src/main/java/io/metersphere/service/TestCaseService.java b/backend/src/main/java/io/metersphere/service/TestCaseService.java index 1bd310d89d..6dbf5bec4f 100644 --- a/backend/src/main/java/io/metersphere/service/TestCaseService.java +++ b/backend/src/main/java/io/metersphere/service/TestCaseService.java @@ -54,10 +54,8 @@ public class TestCaseService { return testCaseMapper.selectByExample(testCaseExample); } - public List getTestCase(String testCaseId) { - TestCaseExample testCaseExample = new TestCaseExample(); - testCaseExample.createCriteria().andIdEqualTo(testCaseId); - return testCaseMapper.selectByExampleWithBLOBs(testCaseExample); + public TestCaseWithBLOBs getTestCase(String testCaseId) { + return testCaseMapper.selectByPrimaryKey(testCaseId); } public int editTestCase(TestCaseWithBLOBs testCase) { diff --git a/frontend/src/business/components/track/case/TestCase.vue b/frontend/src/business/components/track/case/TestCase.vue index 9792f0a7c6..684f600a11 100644 --- a/frontend/src/business/components/track/case/TestCase.vue +++ b/frontend/src/business/components/track/case/TestCase.vue @@ -52,7 +52,6 @@ data() { return { result: {}, - projectId: null, tableData: [], multipleSelection: [], currentPage: 1, @@ -67,15 +66,19 @@ this.getProjects(); }, mounted() { + if (this.$route.params.projectId){ + this.getProjectById(this.$route.params.projectId) + } if (this.$route.path.indexOf("/track/case/edit") >= 0){ this.openRecentTestCaseEditDialog(); + this.$router.push('/track/case/all'); } }, watch: { '$route'(to, from) { let path = to.path; - if (path.indexOf("/track/case/all") >= 0){ - this.refresh(); + if (to.params.projectId){ + this.getProjectById(to.params.projectId) } if (path.indexOf("/track/case/edit") >= 0){ this.openRecentTestCaseEditDialog(); @@ -87,9 +90,9 @@ getProjects() { this.$get("/project/listAll", (response) => { this.projects = response.data; - if (localStorage.getItem(CURRENT_PROJECT)) { - let lastProject = JSON.parse(localStorage.getItem(CURRENT_PROJECT)); - let hasCurrentProject = false; + let lastProject = JSON.parse(localStorage.getItem(CURRENT_PROJECT)); + if (lastProject) { + let hasCurrentProject = false; for (let i = 0; i < this.projects.length; i++) { if (this.projects[i].id == lastProject.id) { this.currentProject = lastProject; @@ -100,14 +103,9 @@ if (!hasCurrentProject) { this.currentProject = null; } - if(this.projects.length > 0){ - this.currentProject = this.projects[0]; - localStorage.setItem(CURRENT_PROJECT, JSON.stringify(this.projects[0])); - } } else { if(this.projects.length > 0){ - this.currentProject = this.projects[0]; - localStorage.setItem(CURRENT_PROJECT, JSON.stringify(this.projects[0])); + this.setCurrentProject(this.projects[0]); } } // this.checkProject(); @@ -124,8 +122,7 @@ } }, changeProject(project) { - this.currentProject = project; - localStorage.setItem(CURRENT_PROJECT, JSON.stringify(project)); + this.setCurrentProject(project); }, refreshTable(data) { this.$refs.testCaseList.initTableData(data); @@ -161,8 +158,7 @@ }, getProjectByCaseId(caseId) { return this.$get('/test/case/project/' + caseId, async response => { - localStorage.setItem(CURRENT_PROJECT, JSON.stringify(response.data)); - this.refresh(); + this.setCurrentProject(response.data); }); }, refresh() { @@ -173,11 +169,32 @@ openRecentTestCaseEditDialog() { let caseId = this.$route.params.caseId; this.getProjectByCaseId(caseId); - this.refresh(); + // this.refresh(); this.$get('/test/case/get/' + caseId, response => { - this.openTestCaseEditDialog(response.data[0]); + if (response.data) { + this.openTestCaseEditDialog(response.data); + } }); + }, + getProjectById(id) { + if (id && id != 'all'){ + this.$get('/project/get/' + id, response => { + let project = response.data; + this.setCurrentProject(project); + }); + } + if (id === 'all') { + this.refresh(); + } + }, + setCurrentProject(project) { + if (project) { + this.currentProject = project; + localStorage.setItem(CURRENT_PROJECT, JSON.stringify(project)); + } + this.refresh(); } + } } diff --git a/frontend/src/business/components/track/case/components/RecentTestCase.vue b/frontend/src/business/components/track/case/components/RecentTestCase.vue deleted file mode 100644 index 4fb0801186..0000000000 --- a/frontend/src/business/components/track/case/components/RecentTestCase.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/frontend/src/business/components/track/head/TrackHeaderMenus.vue b/frontend/src/business/components/track/head/TrackHeaderMenus.vue index 4bc6e8cfe4..9ba26ad7fc 100644 --- a/frontend/src/business/components/track/head/TrackHeaderMenus.vue +++ b/frontend/src/business/components/track/head/TrackHeaderMenus.vue @@ -1,73 +1,91 @@ - - diff --git a/frontend/src/business/components/track/project/TrackRecentProject.vue b/frontend/src/business/components/track/project/TrackRecentProject.vue deleted file mode 100644 index 71ca9fd860..0000000000 --- a/frontend/src/business/components/track/project/TrackRecentProject.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - -