From c6a73afb76842fee3d9ac1ca90b1159e2fd28608 Mon Sep 17 00:00:00 2001 From: pfl <14579250+shadowman1@user.noreply.gitee.com> Date: Fri, 30 May 2025 17:58:46 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=9C=80=E6=B1=82=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=89=8D=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81=E5=AE=8C=E5=96=84?= =?UTF-8?q?=202=E3=80=81=E7=BC=BA=E9=99=B7=E7=AE=A1=E7=90=86=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=89=8D=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TestPlanDefectController.java | 25 ++++ .../controller/TestPlanProjectController.java | 32 +++++ .../com/test/test/mapper/TestCaseMapper.java | 6 + .../test/test/mapper/TestDefectMapper.java | 5 + .../test/mapper/TestPlanDefectMapper.java | 8 ++ .../test/test/mapper/TestProjectMapper.java | 7 + .../test/mapper/TestProjectPlanMapper.java | 7 + .../test/service/ITestPlanDefectService.java | 17 +++ .../test/service/ITestPlanProjectService.java | 23 +++ .../impl/TestPlanDefectServiceImpl.java | 27 ++++ .../impl/TestPlanProjectServiceImpl.java | 40 ++++++ .../resources/mapper/test/TestCaseMapper.xml | 20 +++ .../mapper/test/TestDefectMapper.xml | 26 ++++ .../mapper/test/TestPlanDefectMapper.xml | 19 ++- .../mapper/test/TestProjectMapper.xml | 24 ++++ .../mapper/test/TestProjectPlanMapper.xml | 17 +++ test-ui/src/api/test/bug.js | 20 ++- test-ui/src/api/test/project.js | 29 +++- .../views/test/bug/components/bugDetail.vue | 136 ++++++++++++++++++ .../views/test/bug/components/defectPlan.vue | 65 +++++++++ .../test/bug/components/defectProject.vue | 74 ++++++++++ test-ui/src/views/test/bug/index.vue | 44 +++++- test-ui/src/views/test/project/index.vue | 50 ++++++- .../project/projectDetail/projectDetail.vue | 109 ++++++++++++++ .../project/projectDetail/relateCaseTable.vue | 54 +++++++ .../projectDetail/relateDefectTable.vue | 73 ++++++++++ .../test/project/projectDetail/relatePlan.vue | 63 ++++++++ 27 files changed, 1011 insertions(+), 9 deletions(-) create mode 100644 test-ui/src/views/test/bug/components/bugDetail.vue create mode 100644 test-ui/src/views/test/bug/components/defectPlan.vue create mode 100644 test-ui/src/views/test/bug/components/defectProject.vue create mode 100644 test-ui/src/views/test/project/projectDetail/projectDetail.vue create mode 100644 test-ui/src/views/test/project/projectDetail/relateCaseTable.vue create mode 100644 test-ui/src/views/test/project/projectDetail/relateDefectTable.vue create mode 100644 test-ui/src/views/test/project/projectDetail/relatePlan.vue diff --git a/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java b/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java index 38cd050..879ae3f 100644 --- a/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java +++ b/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java @@ -6,7 +6,10 @@ import com.test.common.core.domain.AjaxResult; import com.test.common.core.page.TableDataInfo; import com.test.common.enums.BusinessType; import com.test.common.utils.poi.ExcelUtil; +import com.test.test.domain.TestPlan; import com.test.test.domain.TestPlanDefect; +import com.test.test.domain.TestProject; +import com.test.test.domain.qo.IDQO; import com.test.test.domain.qo.TestPlanDefectQO; import com.test.test.domain.qo.TestPlanDefectRelQO; import com.test.test.domain.vo.TestPlanDefectVo; @@ -92,4 +95,26 @@ public class TestPlanDefectController extends BaseController { return toAjax(testPlanDefectService.deleteTestPlanDefectByIds(ids)); } + + /** + * 查询缺陷关联测试计划列表 + */ + @PostMapping("/defectPlanList") + public TableDataInfo defectPlanList(@RequestBody IDQO qo) + { + startPage(); + List list = testPlanDefectService.selectDefectPlanList(qo.getId()); + return getDataTable(list); + } + + /** + * 查询缺陷关联需求列表 + */ + @PostMapping("/defectProjectList") + public TableDataInfo defectProjectList(@RequestBody IDQO qo) + { + startPage(); + List list = testPlanDefectService.selectDefectProjectList(qo.getId()); + return getDataTable(list); + } } diff --git a/test-test/src/main/java/com/test/test/controller/TestPlanProjectController.java b/test-test/src/main/java/com/test/test/controller/TestPlanProjectController.java index 138ed8c..9cf7bfa 100644 --- a/test-test/src/main/java/com/test/test/controller/TestPlanProjectController.java +++ b/test-test/src/main/java/com/test/test/controller/TestPlanProjectController.java @@ -2,6 +2,8 @@ package com.test.test.controller; import com.test.common.core.controller.BaseController; import com.test.common.core.page.TableDataInfo; +import com.test.test.domain.TestCase; +import com.test.test.domain.TestDefect; import com.test.test.domain.qo.IDQO; import com.test.test.domain.vo.TestPlanProjectVo; import com.test.test.service.ITestPlanProjectService; @@ -36,4 +38,34 @@ public class TestPlanProjectController extends BaseController { List list = testPlanProjectService.selectTestPlanProjectList(qo.getId()); return getDataTable(list); } + + /** + * 查询需求关联测试计划列表 + */ + @PostMapping("/relatePlanList") + public TableDataInfo relatePlanList(@RequestBody IDQO qo) { + startPage(); + List list = testPlanProjectService.selectRelatePlanList(qo.getId()); + return getDataTable(list); + } + + /** + * 查询需求关联用例列表 + */ + @PostMapping("/relateCaseList") + public TableDataInfo relateCaseList(@RequestBody IDQO qo) { + startPage(); + List list = testPlanProjectService.selectRelateCaseList(qo.getId()); + return getDataTable(list); + } + + /** + * 查询需求关联缺陷列表 + */ + @PostMapping("/relateDefectList") + public TableDataInfo relateDefectList(@RequestBody IDQO qo) { + startPage(); + List list = testPlanProjectService.selectRelateDefectList(qo.getId()); + return getDataTable(list); + } } diff --git a/test-test/src/main/java/com/test/test/mapper/TestCaseMapper.java b/test-test/src/main/java/com/test/test/mapper/TestCaseMapper.java index 345abe6..9dc16d5 100644 --- a/test-test/src/main/java/com/test/test/mapper/TestCaseMapper.java +++ b/test-test/src/main/java/com/test/test/mapper/TestCaseMapper.java @@ -1,6 +1,7 @@ package com.test.test.mapper; import com.test.test.domain.TestCase; +import com.test.test.domain.TestDefect; import com.test.test.domain.qo.TestCaseListQO; import java.util.List; @@ -49,4 +50,9 @@ public interface TestCaseMapper * 批量删除用例 */ int deleteTestCaseByIds(Long[] ids); + + /** + * 查询关联的用例列表 + */ + List selectRelateCaseList(Long projectId); } diff --git a/test-test/src/main/java/com/test/test/mapper/TestDefectMapper.java b/test-test/src/main/java/com/test/test/mapper/TestDefectMapper.java index 1558e78..31964c6 100644 --- a/test-test/src/main/java/com/test/test/mapper/TestDefectMapper.java +++ b/test-test/src/main/java/com/test/test/mapper/TestDefectMapper.java @@ -60,4 +60,9 @@ public interface TestDefectMapper * @return 结果 */ public int deleteTestDefectByIds(Long[] ids); + + /** + * 查询关联的缺陷列表 + */ + List selectRelateDefectList(Long projectId); } diff --git a/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java b/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java index 79105ed..38c9863 100644 --- a/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java +++ b/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java @@ -1,5 +1,6 @@ package com.test.test.mapper; +import com.test.test.domain.TestPlan; import com.test.test.domain.TestPlanDefect; import com.test.test.domain.qo.TestPlanDefectQO; import com.test.test.domain.vo.TestPlanDefectVo; @@ -67,4 +68,11 @@ public interface TestPlanDefectMapper * @return */ List selectRelList(TestPlanDefect testPlanDefect); + + /** + * 查询缺陷关联计划列表 + * @param defectId + * @return + */ + List selectDefectPlanList(Long defectId); } diff --git a/test-test/src/main/java/com/test/test/mapper/TestProjectMapper.java b/test-test/src/main/java/com/test/test/mapper/TestProjectMapper.java index c9be9c1..057c527 100644 --- a/test-test/src/main/java/com/test/test/mapper/TestProjectMapper.java +++ b/test-test/src/main/java/com/test/test/mapper/TestProjectMapper.java @@ -40,5 +40,12 @@ public interface TestProjectMapper { * @return */ int updateTestProject(TestProject testProject); + + /** + * 查询缺陷关联的测试计划 + * @param defectId + * @return + */ + List selectRelateProjectList(Long defectId); } diff --git a/test-test/src/main/java/com/test/test/mapper/TestProjectPlanMapper.java b/test-test/src/main/java/com/test/test/mapper/TestProjectPlanMapper.java index 236a769..bdf7503 100644 --- a/test-test/src/main/java/com/test/test/mapper/TestProjectPlanMapper.java +++ b/test-test/src/main/java/com/test/test/mapper/TestProjectPlanMapper.java @@ -19,4 +19,11 @@ public interface TestProjectPlanMapper { * @return */ List selectTestPlanProjectList(Long planId); + + /** + * 查询需求关联计划列表 + * @param projectId + * @return + */ + List selectRelatePlanList(Long projectId); } diff --git a/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java b/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java index 60ef329..92efed8 100644 --- a/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java +++ b/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java @@ -1,7 +1,10 @@ package com.test.test.service; +import com.test.test.domain.TestPlan; import com.test.test.domain.TestPlanDefect; +import com.test.test.domain.TestProject; +import com.test.test.domain.qo.IDQO; import com.test.test.domain.qo.TestPlanDefectQO; import com.test.test.domain.qo.TestPlanDefectRelQO; import com.test.test.domain.vo.TestPlanDefectVo; @@ -62,4 +65,18 @@ public interface ITestPlanDefectService * @return 结果 */ public int deleteTestPlanDefectById(Long id); + + /** + * 查询缺陷关联的测试计划列表 + * @param defectId + * @return + */ + List selectDefectPlanList(Long defectId); + + /** + * 查询缺陷关联的需求列表 + * @param defectId + * @return + */ + List selectDefectProjectList(Long defectId); } diff --git a/test-test/src/main/java/com/test/test/service/ITestPlanProjectService.java b/test-test/src/main/java/com/test/test/service/ITestPlanProjectService.java index 0e97df5..78a37e0 100644 --- a/test-test/src/main/java/com/test/test/service/ITestPlanProjectService.java +++ b/test-test/src/main/java/com/test/test/service/ITestPlanProjectService.java @@ -1,5 +1,7 @@ package com.test.test.service; +import com.test.test.domain.TestCase; +import com.test.test.domain.TestDefect; import com.test.test.domain.vo.TestPlanProjectVo; import java.util.List; @@ -14,4 +16,25 @@ public interface ITestPlanProjectService { * @return */ List selectTestPlanProjectList(Long planId); + + /** + * 查询需求关联测试计划列表 + * @param projectId + * @return + */ + List selectRelatePlanList(Long projectId); + + /** + * 查询需求关联用例列表 + * @param projectId + * @return + */ + List selectRelateCaseList(Long projectId); + + /** + * 查询需求关联缺陷列表 + * @param projectId + * @return + */ + List selectRelateDefectList(Long projectId); } diff --git a/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java index 50aa2dc..bb56c61 100644 --- a/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java @@ -1,11 +1,15 @@ package com.test.test.service.impl; import com.test.common.utils.DateUtils; +import com.test.test.domain.TestPlan; import com.test.test.domain.TestPlanDefect; +import com.test.test.domain.TestProject; +import com.test.test.domain.qo.IDQO; import com.test.test.domain.qo.TestPlanDefectQO; import com.test.test.domain.qo.TestPlanDefectRelQO; import com.test.test.domain.vo.TestPlanDefectVo; import com.test.test.mapper.TestPlanDefectMapper; +import com.test.test.mapper.TestProjectMapper; import com.test.test.service.ITestPlanDefectService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -25,6 +29,9 @@ public class TestPlanDefectServiceImpl implements ITestPlanDefectService @Resource private TestPlanDefectMapper testPlanDefectMapper; + @Resource + private TestProjectMapper testProjectMapper; + /** * 查询测试计划测试缺陷关联 * @@ -118,4 +125,24 @@ public class TestPlanDefectServiceImpl implements ITestPlanDefectService { return testPlanDefectMapper.deleteTestPlanDefectById(id); } + + /** + * 查询缺陷关联计划列表 + * @param defectId + * @return + */ + @Override + public List selectDefectPlanList(Long defectId) { + return testPlanDefectMapper.selectDefectPlanList(defectId); + } + + /** + * 查询缺陷关联需求列表 + * @param defectId + * @return + */ + @Override + public List selectDefectProjectList(Long defectId) { + return testProjectMapper.selectRelateProjectList(defectId); + } } diff --git a/test-test/src/main/java/com/test/test/service/impl/TestPlanProjectServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestPlanProjectServiceImpl.java index 053a06a..9d77a9b 100644 --- a/test-test/src/main/java/com/test/test/service/impl/TestPlanProjectServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/TestPlanProjectServiceImpl.java @@ -1,6 +1,10 @@ package com.test.test.service.impl; +import com.test.test.domain.TestCase; +import com.test.test.domain.TestDefect; import com.test.test.domain.vo.TestPlanProjectVo; +import com.test.test.mapper.TestCaseMapper; +import com.test.test.mapper.TestDefectMapper; import com.test.test.mapper.TestProjectPlanMapper; import com.test.test.service.ITestPlanProjectService; import jakarta.annotation.Resource; @@ -18,6 +22,12 @@ public class TestPlanProjectServiceImpl implements ITestPlanProjectService { @Resource private TestProjectPlanMapper testProjectPlanMapper; + @Resource + private TestCaseMapper testCaseMapper; + + @Resource + private TestDefectMapper testDefectMapper; + /** * 查询测试计划需求关联列表 * @param planId @@ -27,4 +37,34 @@ public class TestPlanProjectServiceImpl implements ITestPlanProjectService { public List selectTestPlanProjectList(Long planId) { return testProjectPlanMapper.selectTestPlanProjectList(planId); } + + /** + * 查询需求关联计划列表 + * @param projectId + * @return + */ + @Override + public List selectRelatePlanList(Long projectId) { + return testProjectPlanMapper.selectRelatePlanList(projectId); + } + + /** + * 查询需求关联用例列表 + * @param projectId + * @return + */ + @Override + public List selectRelateCaseList(Long projectId) { + return testCaseMapper.selectRelateCaseList(projectId); + } + + /** + * 查询需求关联缺陷列表 + * @param projectId + * @return + */ + @Override + public List selectRelateDefectList(Long projectId) { + return testDefectMapper.selectRelateDefectList(projectId); + } } diff --git a/test-test/src/main/resources/mapper/test/TestCaseMapper.xml b/test-test/src/main/resources/mapper/test/TestCaseMapper.xml index 6132466..0604956 100644 --- a/test-test/src/main/resources/mapper/test/TestCaseMapper.xml +++ b/test-test/src/main/resources/mapper/test/TestCaseMapper.xml @@ -138,4 +138,24 @@ #{id} + + diff --git a/test-test/src/main/resources/mapper/test/TestDefectMapper.xml b/test-test/src/main/resources/mapper/test/TestDefectMapper.xml index 22c7704..be1d0e1 100644 --- a/test-test/src/main/resources/mapper/test/TestDefectMapper.xml +++ b/test-test/src/main/resources/mapper/test/TestDefectMapper.xml @@ -148,4 +148,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + diff --git a/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml b/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml index 0c7dee6..3ea2cb0 100644 --- a/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml +++ b/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml @@ -74,7 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into test_plan_defect id, @@ -124,4 +124,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + diff --git a/test-test/src/main/resources/mapper/test/TestProjectMapper.xml b/test-test/src/main/resources/mapper/test/TestProjectMapper.xml index 32316bf..1a3177f 100644 --- a/test-test/src/main/resources/mapper/test/TestProjectMapper.xml +++ b/test-test/src/main/resources/mapper/test/TestProjectMapper.xml @@ -155,4 +155,28 @@ WHERE id = #{id} + + \ No newline at end of file diff --git a/test-test/src/main/resources/mapper/test/TestProjectPlanMapper.xml b/test-test/src/main/resources/mapper/test/TestProjectPlanMapper.xml index 925587e..e52652c 100644 --- a/test-test/src/main/resources/mapper/test/TestProjectPlanMapper.xml +++ b/test-test/src/main/resources/mapper/test/TestProjectPlanMapper.xml @@ -45,4 +45,21 @@ WHERE tpp.plan_id = #{planId} AND tpp.del_flag = '0' + + \ No newline at end of file diff --git a/test-ui/src/api/test/bug.js b/test-ui/src/api/test/bug.js index ec96b94..dee6e81 100644 --- a/test-ui/src/api/test/bug.js +++ b/test-ui/src/api/test/bug.js @@ -5,7 +5,9 @@ const api = { addBug: 'test/defect/addBug', delBug: 'test/defect/delBug', getBugDetail: 'test/defect/bugDetail', - updateBug: 'test/defect/editBug' + updateBug: 'test/defect/editBug', + getDefectPlanList: 'testPlan/defect/defectPlanList', + getDefectProjectList: 'testPlan/defect/defectProjectList', } export function getBugList(data) { @@ -49,3 +51,19 @@ export function updateBug(data) { }) } +export function getDefectPlanList(id) { + return request({ + url: api.getDefectPlanList, + method: 'post', + data: {id} + }) +} + +export function getDefectProjectList(id) { + return request({ + url: api.getDefectProjectList, + method: 'post', + data: {id} + }) +} + diff --git a/test-ui/src/api/test/project.js b/test-ui/src/api/test/project.js index 3fef8c1..1aa057a 100644 --- a/test-ui/src/api/test/project.js +++ b/test-ui/src/api/test/project.js @@ -6,7 +6,10 @@ const api = { addProject: 'test/project/addProject', delProject: 'test/project/delProject', getProjectDetail: 'test/project/projectDetail', - updateProject: 'test/project/editProject' + updateProject: 'test/project/editProject', + relatePlanList: 'test/testPlanProject/relatePlanList', + relateCaseList: 'test/testPlanProject/relateCaseList', + relateDefectList: 'test/testPlanProject/relateDefectList', } export function managerList(data) { @@ -58,3 +61,27 @@ export function updateProject(data) { }) } +export function getRelatePlanList(id) { + return request({ + url: api.relatePlanList, + method: 'post', + data: {id} + }) +} + +export function getRelateCaseTableList(id) { + return request({ + url: api.relateCaseList, + method: 'post', + data: {id} + }) +} + +export function getRelateDefectList(id) { + return request({ + url: api.relateDefectList, + method: 'post', + data: {id} + }) +} + diff --git a/test-ui/src/views/test/bug/components/bugDetail.vue b/test-ui/src/views/test/bug/components/bugDetail.vue new file mode 100644 index 0000000..fe7eca6 --- /dev/null +++ b/test-ui/src/views/test/bug/components/bugDetail.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/test-ui/src/views/test/bug/components/defectPlan.vue b/test-ui/src/views/test/bug/components/defectPlan.vue new file mode 100644 index 0000000..5031780 --- /dev/null +++ b/test-ui/src/views/test/bug/components/defectPlan.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/test-ui/src/views/test/bug/components/defectProject.vue b/test-ui/src/views/test/bug/components/defectProject.vue new file mode 100644 index 0000000..7c334c8 --- /dev/null +++ b/test-ui/src/views/test/bug/components/defectProject.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/test-ui/src/views/test/bug/index.vue b/test-ui/src/views/test/bug/index.vue index 41dac41..baa5c85 100644 --- a/test-ui/src/views/test/bug/index.vue +++ b/test-ui/src/views/test/bug/index.vue @@ -62,7 +62,7 @@ - + @@ -80,7 +80,7 @@ @@ -237,6 +237,25 @@ 确 定 + + + @@ -245,10 +264,13 @@ import {managerList} from "@/api/test/project"; import {addBug, delBug, getBugDetail, getBugList, updateBug} from "@/api/test/bug"; import SimpleOptions from "@/components/FormItem/option/SimpleOptions.vue"; import {requestDownload} from "@/utils/request"; +import BugDetail from "@/views/test/bug/components/bugDetail.vue"; +import DefectPlan from "@/views/test/bug/components/defectPlan.vue"; +import DefectProject from "@/views/test/bug/components/defectProject.vue"; export default { name: 'defect', - components: {SimpleOptions}, + components: {DefectProject, DefectPlan, BugDetail, SimpleOptions}, dicts: ['severity_level', 'bug_type', 'bug_status'], data() { return { @@ -294,6 +316,10 @@ export default { addOpen: false, //编辑弹窗 editOpen: false, + detailOpen: false, + activeIndex: '1', + defectId: 0, + managerName: '', selectedRows: [], selectedData: [], managerList: [], @@ -336,6 +362,16 @@ export default { }, }, methods: { + handleRowClick(row) { + this.defectId = row.id + this.activeIndex = '1' + this.managerName = row.manager + this.detailOpen = true; + this.title = row.serialNumber; + }, + handleSelect(key) { + this.activeIndex = key + }, handleSelectionChange(selection) { this.selectedRows = selection; }, @@ -437,6 +473,8 @@ export default { getBugDetail(id).then((res) => { this.editForm = res.data this.editForm.manager = parseInt(res.data.manager, 10); + this.editForm.dev = parseInt(res.data.dev, 10); + this.editForm.test = parseInt(res.data.test, 10); this.editOpen = true }) }, diff --git a/test-ui/src/views/test/project/index.vue b/test-ui/src/views/test/project/index.vue index 7108931..028b57d 100644 --- a/test-ui/src/views/test/project/index.vue +++ b/test-ui/src/views/test/project/index.vue @@ -71,7 +71,7 @@ - + @@ -90,7 +90,7 @@ @@ -234,6 +234,32 @@ 确 定 + + + + + 取 消 + + @@ -241,10 +267,14 @@ import {addProject, delProject, getProjectDetail, getProjectList, managerList, updateProject} from "@/api/test/project"; import SimpleOptions from "@/components/FormItem/option/SimpleOptions.vue"; import {requestDownload} from "@/utils/request"; +import ProjectDetail from "@/views/test/project/projectDetail/projectDetail.vue"; +import RelatePlan from "@/views/test/project/projectDetail/relatePlan.vue"; +import RelateCaseTable from "@/views/test/project/projectDetail/relateCaseTable.vue"; +import RelateDefectTable from "@/views/test/project/projectDetail/relateDefectTable.vue"; export default { name: 'project', - components: {SimpleOptions}, + components: {RelatePlan, ProjectDetail, SimpleOptions , RelateCaseTable , RelateDefectTable}, dicts: ['priority_level', 'project_source', 'project_type', 'status'], data() { return { @@ -281,6 +311,8 @@ export default { total: 0, list: [], title: '', + projectId: 0, + managerName: '', // 遮罩层 loading: false, editSubmitLoading: false, @@ -289,9 +321,11 @@ export default { addOpen: false, //编辑弹窗 editOpen: false, + detailOpen: false, selectedRows: [], selectedData: [], managerList: [], + activeIndex: '1', queryParams: { serialNumber: '', outline: '', @@ -327,6 +361,16 @@ export default { }, }, methods: { + handleRowClick(row) { + this.projectId = row.id + this.activeIndex = '1' + this.managerName = row.manager + this.detailOpen = true; + this.title = row.serialNumber; + }, + handleSelect(key) { + this.activeIndex = key + }, handleSelectionChange(selection) { this.selectedRows = selection; }, diff --git a/test-ui/src/views/test/project/projectDetail/projectDetail.vue b/test-ui/src/views/test/project/projectDetail/projectDetail.vue new file mode 100644 index 0000000..a17595a --- /dev/null +++ b/test-ui/src/views/test/project/projectDetail/projectDetail.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/test-ui/src/views/test/project/projectDetail/relateCaseTable.vue b/test-ui/src/views/test/project/projectDetail/relateCaseTable.vue new file mode 100644 index 0000000..c839131 --- /dev/null +++ b/test-ui/src/views/test/project/projectDetail/relateCaseTable.vue @@ -0,0 +1,54 @@ + + + + diff --git a/test-ui/src/views/test/project/projectDetail/relateDefectTable.vue b/test-ui/src/views/test/project/projectDetail/relateDefectTable.vue new file mode 100644 index 0000000..0303d9e --- /dev/null +++ b/test-ui/src/views/test/project/projectDetail/relateDefectTable.vue @@ -0,0 +1,73 @@ + + + + + + diff --git a/test-ui/src/views/test/project/projectDetail/relatePlan.vue b/test-ui/src/views/test/project/projectDetail/relatePlan.vue new file mode 100644 index 0000000..8e33cc8 --- /dev/null +++ b/test-ui/src/views/test/project/projectDetail/relatePlan.vue @@ -0,0 +1,63 @@ + + + + +