From 681eaebca05f1ffe96e337519705a08b16d4eb8a Mon Sep 17 00:00:00 2001 From: song-cc-rock Date: Mon, 18 Dec 2023 17:17:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=B5=8B=E8=AF=95=E8=B7=9F=E8=B8=AA):=20?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E8=AF=84=E5=AE=A1=E6=94=AF=E6=8C=81=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E6=A8=A1=E5=9D=97=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=1014031 --user=宋昌昌 【测试计划】【用例评审】首页列表展示模块树 https://www.tapd.cn/55049933/s/1444816 --- .../base/domain/TestCaseReview.java | 6 +- .../base/domain/TestCaseReviewExample.java | 142 +++- .../base/domain/TestCaseReviewNode.java | 27 + .../domain/TestCaseReviewNodeExample.java | 790 ++++++++++++++++++ .../io/metersphere/base/domain/TestPlan.java | 7 +- .../base/domain/TestPlanExample.java | 140 ++++ .../metersphere/base/domain/TestPlanNode.java | 27 + .../base/domain/TestPlanNodeExample.java | 790 ++++++++++++++++++ .../base/domain/TestPlanWithBLOBs.java | 3 +- .../src/main/resources/generatorConfig.xml | 3 +- .../components/search/search-components.js | 16 +- .../frontend/src/i18n/lang/en-US.js | 1 + .../frontend/src/i18n/lang/track/en-US.js | 1 + .../frontend/src/i18n/lang/track/zh-CN.js | 1 + .../frontend/src/i18n/lang/track/zh-TW.js | 1 + .../frontend/src/i18n/lang/zh-CN.js | 1 + .../frontend/src/i18n/lang/zh-TW.js | 1 + .../ProjectModuleDefaultNodeEnum.java | 6 +- .../base/mapper/TestCaseReviewMapper.java | 5 +- .../base/mapper/TestCaseReviewMapper.xml | 66 +- .../base/mapper/TestCaseReviewNodeMapper.java | 30 + .../base/mapper/TestCaseReviewNodeMapper.xml | 275 ++++++ .../base/mapper/TestPlanMapper.java | 5 +- .../base/mapper/TestPlanMapper.xml | 82 +- .../base/mapper/TestPlanNodeMapper.java | 30 + .../base/mapper/TestPlanNodeMapper.xml | 275 ++++++ .../mapper/ext/ExtTestCaseReviewMapper.java | 8 +- .../mapper/ext/ExtTestCaseReviewMapper.xml | 30 +- .../ext/ExtTestCaseReviewNodeMapper.java | 18 + .../ext/ExtTestCaseReviewNodeMapper.xml | 151 ++++ .../base/mapper/ext/ExtTestPlanMapper.java | 3 + .../base/mapper/ext/ExtTestPlanMapper.xml | 26 + .../mapper/ext/ExtTestPlanNodeMapper.java | 18 + .../base/mapper/ext/ExtTestPlanNodeMapper.xml | 271 ++++++ .../controller/TestCaseReviewController.java | 15 +- .../TestCaseReviewNodeController.java | 71 ++ .../controller/TestPlanController.java | 11 +- .../controller/TestPlanNodeController.java | 71 ++ .../dto/TestCaseReviewNodeDTO.java | 7 + .../io/metersphere/dto/TestPlanNodeDTO.java | 7 + .../listener/ProjectCreatedListener.java | 15 +- .../plan/request/QueryTestPlanRequest.java | 11 + .../request/TestPlanBatchMoveRequest.java | 15 + .../plan/service/TestPlanService.java | 16 +- .../request/testplan/DragPlanNodeRequest.java | 21 + .../testreview/DragReviewNodeRequest.java | 21 + .../testreview/QueryCaseReviewRequest.java | 6 + .../testreview/ReviewBatchMoveRequest.java | 15 + .../service/TestCaseReviewNodeService.java | 303 +++++++ .../service/TestCaseReviewService.java | 14 +- .../service/TestPlanNodeService.java | 302 +++++++ .../ddl/V14__test_case_review_node.sql | 25 + .../2.10.10/ddl/V15__test_plan_node.sql | 25 + .../dml/V14_1__init_test_case_review_node.sql | 10 + .../dml/V15_1__init_test_plan_node.sql | 10 + .../frontend/src/api/remote/plan/test-plan.js | 4 + .../frontend/src/api/test-case-review-node.js | 27 + test-track/frontend/src/api/test-plan-node.js | 27 + test-track/frontend/src/api/test-review.js | 6 +- .../case/components/ReviewOrPlanBatchMove.vue | 225 +++++ .../module/TestCaseReviewNodeTree.vue | 188 +++++ .../src/business/module/TestPlanNodeTree.vue | 188 +++++ .../frontend/src/business/plan/TestPlan.vue | 72 +- .../business/plan/components/TestPlanEdit.vue | 108 ++- .../business/plan/components/TestPlanList.vue | 79 +- .../src/business/review/TestCaseReview.vue | 66 +- .../review/components/TestCaseReviewEdit.vue | 117 ++- .../review/components/TestCaseReviewList.vue | 93 ++- .../src/business/utils/track-table-header.js | 24 +- test-track/frontend/src/store/state.js | 2 + 70 files changed, 5336 insertions(+), 137 deletions(-) create mode 100644 framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNode.java create mode 100644 framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNodeExample.java create mode 100644 framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNode.java create mode 100644 framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNodeExample.java create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/TestCaseReviewNodeMapper.java create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/TestCaseReviewNodeMapper.xml create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/TestPlanNodeMapper.java create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/TestPlanNodeMapper.xml create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseReviewNodeMapper.java create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestCaseReviewNodeMapper.xml create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanNodeMapper.java create mode 100644 test-track/backend/src/main/java/io/metersphere/base/mapper/ext/ExtTestPlanNodeMapper.xml create mode 100644 test-track/backend/src/main/java/io/metersphere/controller/TestCaseReviewNodeController.java create mode 100644 test-track/backend/src/main/java/io/metersphere/controller/TestPlanNodeController.java create mode 100644 test-track/backend/src/main/java/io/metersphere/dto/TestCaseReviewNodeDTO.java create mode 100644 test-track/backend/src/main/java/io/metersphere/dto/TestPlanNodeDTO.java create mode 100644 test-track/backend/src/main/java/io/metersphere/plan/request/TestPlanBatchMoveRequest.java create mode 100644 test-track/backend/src/main/java/io/metersphere/request/testplan/DragPlanNodeRequest.java create mode 100644 test-track/backend/src/main/java/io/metersphere/request/testreview/DragReviewNodeRequest.java create mode 100644 test-track/backend/src/main/java/io/metersphere/request/testreview/ReviewBatchMoveRequest.java create mode 100644 test-track/backend/src/main/java/io/metersphere/service/TestCaseReviewNodeService.java create mode 100644 test-track/backend/src/main/java/io/metersphere/service/TestPlanNodeService.java create mode 100644 test-track/backend/src/main/resources/db/migration/2.10.10/ddl/V14__test_case_review_node.sql create mode 100644 test-track/backend/src/main/resources/db/migration/2.10.10/ddl/V15__test_plan_node.sql create mode 100644 test-track/backend/src/main/resources/db/migration/2.10.10/dml/V14_1__init_test_case_review_node.sql create mode 100644 test-track/backend/src/main/resources/db/migration/2.10.10/dml/V15_1__init_test_plan_node.sql create mode 100644 test-track/frontend/src/api/test-case-review-node.js create mode 100644 test-track/frontend/src/api/test-plan-node.js create mode 100644 test-track/frontend/src/business/case/components/ReviewOrPlanBatchMove.vue create mode 100644 test-track/frontend/src/business/module/TestCaseReviewNodeTree.vue create mode 100644 test-track/frontend/src/business/module/TestPlanNodeTree.vue diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReview.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReview.java index 6cb5a6150e..1626f0a227 100644 --- a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReview.java +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReview.java @@ -27,7 +27,11 @@ public class TestCaseReview implements Serializable { private String reviewPassRule; + private String nodeId; + + private String nodePath; + private String description; private static final long serialVersionUID = 1L; -} +} \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewExample.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewExample.java index af1dfca24f..a6021102a2 100644 --- a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewExample.java +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewExample.java @@ -843,6 +843,146 @@ public class TestCaseReviewExample { addCriterion("review_pass_rule not between", value1, value2, "reviewPassRule"); return (Criteria) this; } + + public Criteria andNodeIdIsNull() { + addCriterion("node_id is null"); + return (Criteria) this; + } + + public Criteria andNodeIdIsNotNull() { + addCriterion("node_id is not null"); + return (Criteria) this; + } + + public Criteria andNodeIdEqualTo(String value) { + addCriterion("node_id =", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotEqualTo(String value) { + addCriterion("node_id <>", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdGreaterThan(String value) { + addCriterion("node_id >", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdGreaterThanOrEqualTo(String value) { + addCriterion("node_id >=", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdLessThan(String value) { + addCriterion("node_id <", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdLessThanOrEqualTo(String value) { + addCriterion("node_id <=", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdLike(String value) { + addCriterion("node_id like", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotLike(String value) { + addCriterion("node_id not like", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdIn(List values) { + addCriterion("node_id in", values, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotIn(List values) { + addCriterion("node_id not in", values, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdBetween(String value1, String value2) { + addCriterion("node_id between", value1, value2, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotBetween(String value1, String value2) { + addCriterion("node_id not between", value1, value2, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodePathIsNull() { + addCriterion("node_path is null"); + return (Criteria) this; + } + + public Criteria andNodePathIsNotNull() { + addCriterion("node_path is not null"); + return (Criteria) this; + } + + public Criteria andNodePathEqualTo(String value) { + addCriterion("node_path =", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotEqualTo(String value) { + addCriterion("node_path <>", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathGreaterThan(String value) { + addCriterion("node_path >", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathGreaterThanOrEqualTo(String value) { + addCriterion("node_path >=", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathLessThan(String value) { + addCriterion("node_path <", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathLessThanOrEqualTo(String value) { + addCriterion("node_path <=", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathLike(String value) { + addCriterion("node_path like", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotLike(String value) { + addCriterion("node_path not like", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathIn(List values) { + addCriterion("node_path in", values, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotIn(List values) { + addCriterion("node_path not in", values, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathBetween(String value1, String value2) { + addCriterion("node_path between", value1, value2, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotBetween(String value1, String value2) { + addCriterion("node_path not between", value1, value2, "nodePath"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { @@ -937,4 +1077,4 @@ public class TestCaseReviewExample { this(condition, value, secondValue, null); } } -} +} \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNode.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNode.java new file mode 100644 index 0000000000..ee25a82db2 --- /dev/null +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNode.java @@ -0,0 +1,27 @@ +package io.metersphere.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class TestCaseReviewNode implements Serializable { + private String id; + + private String projectId; + + private String name; + + private String parentId; + + private Integer level; + + private Long createTime; + + private Long updateTime; + + private Double pos; + + private String createUser; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNodeExample.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNodeExample.java new file mode 100644 index 0000000000..d1acb13d23 --- /dev/null +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestCaseReviewNodeExample.java @@ -0,0 +1,790 @@ +package io.metersphere.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class TestCaseReviewNodeExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public TestCaseReviewNodeExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(String value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(String value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(String value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(String value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(String value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(String value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLike(String value) { + addCriterion("id like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotLike(String value) { + addCriterion("id not like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(String value1, String value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(String value1, String value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andProjectIdIsNull() { + addCriterion("project_id is null"); + return (Criteria) this; + } + + public Criteria andProjectIdIsNotNull() { + addCriterion("project_id is not null"); + return (Criteria) this; + } + + public Criteria andProjectIdEqualTo(String value) { + addCriterion("project_id =", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotEqualTo(String value) { + addCriterion("project_id <>", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdGreaterThan(String value) { + addCriterion("project_id >", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdGreaterThanOrEqualTo(String value) { + addCriterion("project_id >=", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdLessThan(String value) { + addCriterion("project_id <", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdLessThanOrEqualTo(String value) { + addCriterion("project_id <=", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdLike(String value) { + addCriterion("project_id like", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotLike(String value) { + addCriterion("project_id not like", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdIn(List values) { + addCriterion("project_id in", values, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotIn(List values) { + addCriterion("project_id not in", values, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdBetween(String value1, String value2) { + addCriterion("project_id between", value1, value2, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotBetween(String value1, String value2) { + addCriterion("project_id not between", value1, value2, "projectId"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("`name` is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("`name` is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("`name` =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("`name` <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("`name` >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("`name` >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("`name` <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("`name` <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("`name` like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("`name` not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("`name` in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("`name` not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("`name` between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("`name` not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(String value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(String value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(String value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(String value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(String value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(String value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLike(String value) { + addCriterion("parent_id like", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotLike(String value) { + addCriterion("parent_id not like", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(String value1, String value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(String value1, String value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andLevelIsNull() { + addCriterion("`level` is null"); + return (Criteria) this; + } + + public Criteria andLevelIsNotNull() { + addCriterion("`level` is not null"); + return (Criteria) this; + } + + public Criteria andLevelEqualTo(Integer value) { + addCriterion("`level` =", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotEqualTo(Integer value) { + addCriterion("`level` <>", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThan(Integer value) { + addCriterion("`level` >", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThanOrEqualTo(Integer value) { + addCriterion("`level` >=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThan(Integer value) { + addCriterion("`level` <", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThanOrEqualTo(Integer value) { + addCriterion("`level` <=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelIn(List values) { + addCriterion("`level` in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotIn(List values) { + addCriterion("`level` not in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelBetween(Integer value1, Integer value2) { + addCriterion("`level` between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotBetween(Integer value1, Integer value2) { + addCriterion("`level` not between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Long value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Long value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Long value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Long value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Long value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Long value1, Long value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Long value1, Long value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Long value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Long value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Long value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Long value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Long value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Long value1, Long value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Long value1, Long value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andPosIsNull() { + addCriterion("pos is null"); + return (Criteria) this; + } + + public Criteria andPosIsNotNull() { + addCriterion("pos is not null"); + return (Criteria) this; + } + + public Criteria andPosEqualTo(Double value) { + addCriterion("pos =", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosNotEqualTo(Double value) { + addCriterion("pos <>", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosGreaterThan(Double value) { + addCriterion("pos >", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosGreaterThanOrEqualTo(Double value) { + addCriterion("pos >=", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosLessThan(Double value) { + addCriterion("pos <", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosLessThanOrEqualTo(Double value) { + addCriterion("pos <=", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosIn(List values) { + addCriterion("pos in", values, "pos"); + return (Criteria) this; + } + + public Criteria andPosNotIn(List values) { + addCriterion("pos not in", values, "pos"); + return (Criteria) this; + } + + public Criteria andPosBetween(Double value1, Double value2) { + addCriterion("pos between", value1, value2, "pos"); + return (Criteria) this; + } + + public Criteria andPosNotBetween(Double value1, Double value2) { + addCriterion("pos not between", value1, value2, "pos"); + return (Criteria) this; + } + + public Criteria andCreateUserIsNull() { + addCriterion("create_user is null"); + return (Criteria) this; + } + + public Criteria andCreateUserIsNotNull() { + addCriterion("create_user is not null"); + return (Criteria) this; + } + + public Criteria andCreateUserEqualTo(String value) { + addCriterion("create_user =", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotEqualTo(String value) { + addCriterion("create_user <>", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserGreaterThan(String value) { + addCriterion("create_user >", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserGreaterThanOrEqualTo(String value) { + addCriterion("create_user >=", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLessThan(String value) { + addCriterion("create_user <", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLessThanOrEqualTo(String value) { + addCriterion("create_user <=", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLike(String value) { + addCriterion("create_user like", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotLike(String value) { + addCriterion("create_user not like", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserIn(List values) { + addCriterion("create_user in", values, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotIn(List values) { + addCriterion("create_user not in", values, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserBetween(String value1, String value2) { + addCriterion("create_user between", value1, value2, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotBetween(String value1, String value2) { + addCriterion("create_user not between", value1, value2, "createUser"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlan.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlan.java index e2537051f9..3304b5a692 100644 --- a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlan.java +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlan.java @@ -1,8 +1,7 @@ package io.metersphere.base.domain; -import lombok.Data; - import java.io.Serializable; +import lombok.Data; @Data public class TestPlan implements Serializable { @@ -42,5 +41,9 @@ public class TestPlan implements Serializable { private Boolean repeatCase; + private String nodeId; + + private String nodePath; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanExample.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanExample.java index 85cbda9d95..9c495ffbe4 100644 --- a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanExample.java +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanExample.java @@ -1273,6 +1273,146 @@ public class TestPlanExample { addCriterion("repeat_case not between", value1, value2, "repeatCase"); return (Criteria) this; } + + public Criteria andNodeIdIsNull() { + addCriterion("node_id is null"); + return (Criteria) this; + } + + public Criteria andNodeIdIsNotNull() { + addCriterion("node_id is not null"); + return (Criteria) this; + } + + public Criteria andNodeIdEqualTo(String value) { + addCriterion("node_id =", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotEqualTo(String value) { + addCriterion("node_id <>", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdGreaterThan(String value) { + addCriterion("node_id >", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdGreaterThanOrEqualTo(String value) { + addCriterion("node_id >=", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdLessThan(String value) { + addCriterion("node_id <", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdLessThanOrEqualTo(String value) { + addCriterion("node_id <=", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdLike(String value) { + addCriterion("node_id like", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotLike(String value) { + addCriterion("node_id not like", value, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdIn(List values) { + addCriterion("node_id in", values, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotIn(List values) { + addCriterion("node_id not in", values, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdBetween(String value1, String value2) { + addCriterion("node_id between", value1, value2, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodeIdNotBetween(String value1, String value2) { + addCriterion("node_id not between", value1, value2, "nodeId"); + return (Criteria) this; + } + + public Criteria andNodePathIsNull() { + addCriterion("node_path is null"); + return (Criteria) this; + } + + public Criteria andNodePathIsNotNull() { + addCriterion("node_path is not null"); + return (Criteria) this; + } + + public Criteria andNodePathEqualTo(String value) { + addCriterion("node_path =", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotEqualTo(String value) { + addCriterion("node_path <>", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathGreaterThan(String value) { + addCriterion("node_path >", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathGreaterThanOrEqualTo(String value) { + addCriterion("node_path >=", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathLessThan(String value) { + addCriterion("node_path <", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathLessThanOrEqualTo(String value) { + addCriterion("node_path <=", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathLike(String value) { + addCriterion("node_path like", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotLike(String value) { + addCriterion("node_path not like", value, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathIn(List values) { + addCriterion("node_path in", values, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotIn(List values) { + addCriterion("node_path not in", values, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathBetween(String value1, String value2) { + addCriterion("node_path between", value1, value2, "nodePath"); + return (Criteria) this; + } + + public Criteria andNodePathNotBetween(String value1, String value2) { + addCriterion("node_path not between", value1, value2, "nodePath"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNode.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNode.java new file mode 100644 index 0000000000..1ad4735978 --- /dev/null +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNode.java @@ -0,0 +1,27 @@ +package io.metersphere.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class TestPlanNode implements Serializable { + private String id; + + private String projectId; + + private String name; + + private String parentId; + + private Integer level; + + private Long createTime; + + private Long updateTime; + + private Double pos; + + private String createUser; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNodeExample.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNodeExample.java new file mode 100644 index 0000000000..6a4492c9d7 --- /dev/null +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanNodeExample.java @@ -0,0 +1,790 @@ +package io.metersphere.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class TestPlanNodeExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public TestPlanNodeExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(String value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(String value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(String value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(String value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(String value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(String value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLike(String value) { + addCriterion("id like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotLike(String value) { + addCriterion("id not like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(String value1, String value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(String value1, String value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andProjectIdIsNull() { + addCriterion("project_id is null"); + return (Criteria) this; + } + + public Criteria andProjectIdIsNotNull() { + addCriterion("project_id is not null"); + return (Criteria) this; + } + + public Criteria andProjectIdEqualTo(String value) { + addCriterion("project_id =", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotEqualTo(String value) { + addCriterion("project_id <>", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdGreaterThan(String value) { + addCriterion("project_id >", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdGreaterThanOrEqualTo(String value) { + addCriterion("project_id >=", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdLessThan(String value) { + addCriterion("project_id <", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdLessThanOrEqualTo(String value) { + addCriterion("project_id <=", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdLike(String value) { + addCriterion("project_id like", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotLike(String value) { + addCriterion("project_id not like", value, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdIn(List values) { + addCriterion("project_id in", values, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotIn(List values) { + addCriterion("project_id not in", values, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdBetween(String value1, String value2) { + addCriterion("project_id between", value1, value2, "projectId"); + return (Criteria) this; + } + + public Criteria andProjectIdNotBetween(String value1, String value2) { + addCriterion("project_id not between", value1, value2, "projectId"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("`name` is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("`name` is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("`name` =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("`name` <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("`name` >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("`name` >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("`name` <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("`name` <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("`name` like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("`name` not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("`name` in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("`name` not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("`name` between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("`name` not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(String value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(String value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(String value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(String value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(String value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(String value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLike(String value) { + addCriterion("parent_id like", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotLike(String value) { + addCriterion("parent_id not like", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(String value1, String value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(String value1, String value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andLevelIsNull() { + addCriterion("`level` is null"); + return (Criteria) this; + } + + public Criteria andLevelIsNotNull() { + addCriterion("`level` is not null"); + return (Criteria) this; + } + + public Criteria andLevelEqualTo(Integer value) { + addCriterion("`level` =", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotEqualTo(Integer value) { + addCriterion("`level` <>", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThan(Integer value) { + addCriterion("`level` >", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThanOrEqualTo(Integer value) { + addCriterion("`level` >=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThan(Integer value) { + addCriterion("`level` <", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThanOrEqualTo(Integer value) { + addCriterion("`level` <=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelIn(List values) { + addCriterion("`level` in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotIn(List values) { + addCriterion("`level` not in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelBetween(Integer value1, Integer value2) { + addCriterion("`level` between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotBetween(Integer value1, Integer value2) { + addCriterion("`level` not between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Long value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Long value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Long value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Long value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Long value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Long value1, Long value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Long value1, Long value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Long value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Long value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Long value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Long value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Long value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Long value1, Long value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Long value1, Long value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andPosIsNull() { + addCriterion("pos is null"); + return (Criteria) this; + } + + public Criteria andPosIsNotNull() { + addCriterion("pos is not null"); + return (Criteria) this; + } + + public Criteria andPosEqualTo(Double value) { + addCriterion("pos =", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosNotEqualTo(Double value) { + addCriterion("pos <>", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosGreaterThan(Double value) { + addCriterion("pos >", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosGreaterThanOrEqualTo(Double value) { + addCriterion("pos >=", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosLessThan(Double value) { + addCriterion("pos <", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosLessThanOrEqualTo(Double value) { + addCriterion("pos <=", value, "pos"); + return (Criteria) this; + } + + public Criteria andPosIn(List values) { + addCriterion("pos in", values, "pos"); + return (Criteria) this; + } + + public Criteria andPosNotIn(List values) { + addCriterion("pos not in", values, "pos"); + return (Criteria) this; + } + + public Criteria andPosBetween(Double value1, Double value2) { + addCriterion("pos between", value1, value2, "pos"); + return (Criteria) this; + } + + public Criteria andPosNotBetween(Double value1, Double value2) { + addCriterion("pos not between", value1, value2, "pos"); + return (Criteria) this; + } + + public Criteria andCreateUserIsNull() { + addCriterion("create_user is null"); + return (Criteria) this; + } + + public Criteria andCreateUserIsNotNull() { + addCriterion("create_user is not null"); + return (Criteria) this; + } + + public Criteria andCreateUserEqualTo(String value) { + addCriterion("create_user =", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotEqualTo(String value) { + addCriterion("create_user <>", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserGreaterThan(String value) { + addCriterion("create_user >", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserGreaterThanOrEqualTo(String value) { + addCriterion("create_user >=", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLessThan(String value) { + addCriterion("create_user <", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLessThanOrEqualTo(String value) { + addCriterion("create_user <=", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLike(String value) { + addCriterion("create_user like", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotLike(String value) { + addCriterion("create_user not like", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserIn(List values) { + addCriterion("create_user in", values, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotIn(List values) { + addCriterion("create_user not in", values, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserBetween(String value1, String value2) { + addCriterion("create_user between", value1, value2, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotBetween(String value1, String value2) { + addCriterion("create_user not between", value1, value2, "createUser"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanWithBLOBs.java b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanWithBLOBs.java index dacf41201c..cb49df0cff 100644 --- a/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanWithBLOBs.java +++ b/framework/sdk-parent/domain/src/main/java/io/metersphere/base/domain/TestPlanWithBLOBs.java @@ -1,11 +1,10 @@ package io.metersphere.base.domain; +import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.io.Serializable; - @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) diff --git a/framework/sdk-parent/domain/src/main/resources/generatorConfig.xml b/framework/sdk-parent/domain/src/main/resources/generatorConfig.xml index ba500144d3..669a876ffb 100644 --- a/framework/sdk-parent/domain/src/main/resources/generatorConfig.xml +++ b/framework/sdk-parent/domain/src/main/resources/generatorConfig.xml @@ -63,7 +63,8 @@ - +
+
+ + + + + + + + - diff --git a/test-track/frontend/src/business/review/components/TestCaseReviewEdit.vue b/test-track/frontend/src/business/review/components/TestCaseReviewEdit.vue index f092e6d826..912e59c89c 100644 --- a/test-track/frontend/src/business/review/components/TestCaseReviewEdit.vue +++ b/test-track/frontend/src/business/review/components/TestCaseReviewEdit.vue @@ -9,7 +9,6 @@ width="60%"> - - - + + @@ -48,8 +57,6 @@ - - - - + + + + + + + + @@ -126,14 +139,17 @@ import TestPlanStatusButton from "../../plan/common/TestPlanStatusButton"; import {getCurrentProjectID} from "metersphere-frontend/src/utils/token"; import {listenGoBack, removeGoBackListener} from "metersphere-frontend/src/utils" import MsInputTag from "metersphere-frontend/src/components/new-ui/MsInputTag"; +import MsSelectTree from "metersphere-frontend/src/components/select-tree/SelectTree"; import i18n from "@/i18n"; import {getMaintainer} from "@/api/project"; import {saveOrUpdateTestCaseReview} from "@/api/test-review"; import MsInstructionsIcon from "metersphere-frontend/src/components/MsInstructionsIcon"; +import {getTestCaseReviewNodes} from "@/api/test-case-review-node"; +import {buildTree} from "@/business/utils/sdk-utils"; export default { name: "TestCaseReviewEdit", - components: {MsInputTag, TestPlanStatusButton, MsInstructionsIcon}, + components: {MsInputTag, TestPlanStatusButton, MsInstructionsIcon, MsSelectTree}, data() { return { isStepTableAlive: true, @@ -147,7 +163,9 @@ export default { description: '', endTime: '', followIds: [], - reviewPassRule: 'SINGLE' + reviewPassRule: 'SINGLE', + nodeId: '', + nodePath: '' }, dbProjectIds: [], rules: { @@ -155,6 +173,7 @@ export default { {required: true, message: this.$t('test_track.review.input_review_name'), trigger: 'blur'}, {max: 200, message: this.$t('test_track.length_less_than') + '200', trigger: 'blur'} ], + nodeId: [{required: true, message: this.$t("api_test.environment.module_warning"), trigger: "change"}], userIds: [{required: true, message: this.$t('test_track.review.input_reviewer'), trigger: 'change'}], stage: [{required: true, message: this.$t('test_track.plan.input_plan_stage'), trigger: 'change'}], description: [{max: 200, message: this.$t('test_track.length_less_than') + '200', trigger: 'blur'}], @@ -164,6 +183,12 @@ export default { formLabelWidth: "110px", operationType: '', reviewerOptions: [], + treeNodes: null, + moduleObj: { + id: "id", + label: "name", + }, + defaultNode: null }; }, computed: { @@ -174,13 +199,63 @@ export default { return this.operationType === 'edit'; } }, + created() { + this.getNodeTrees(); + }, methods: { + getNodeTrees() { + getTestCaseReviewNodes(this.projectId, {}) + .then(r => { + let treeNodes = r.data; + treeNodes.forEach(node => { + buildTree(node, {path: ''}); + }); + this.treeNodes = treeNodes; + this.setDefaultModule(); + }); + }, + setDefaultModule() { + if (this.defaultNode == null) { + this.setUnplannedModule(this.treeNodes); + } else { + this.form.nodeId = this.defaultNode.data.id; + let node = this.findTreeNode(this.treeNodes); + if (node) { + this.form.nodePath = node.path; + } else { + // 如果模块已删除,设置为未规划模块 + this.setUnplannedModule(this.treeNodes); + } + } + }, + findTreeNode(nodeArray) { + for (let i = 0; i < nodeArray.length; i++) { + let node = nodeArray[i]; + if (node.id === this.form.nodeId) { + return node; + } else { + if (node.children && node.children.length > 0) { + let findNode = this.findTreeNode(node.children); + if (findNode != null) { + return findNode; + } + } + } + } + }, + setUnplannedModule(treeNodes) { + // 创建不带模块ID,设置成为规划模块 + this.form.nodeId = treeNodes[0].id; + this.form.nodePath = treeNodes[0].path; + }, reload() { this.isStepTableAlive = false; this.$nextTick(() => (this.isStepTableAlive = true)); }, - openCaseReviewEditDialog(caseReview) { + openCaseReviewEditDialog(caseReview, selectDefaultNode) { this.resetForm(); + this.defaultNode = selectDefaultNode; + this.getNodeTrees(); this.setReviewerOptions(); this.operationType = 'save'; if (caseReview) { @@ -286,6 +361,8 @@ export default { this.form.projectIds = []; this.form.userIds = []; this.form.followIds = []; + this.form.nodeId = ''; + this.form.nodePath = ''; return true; }); } @@ -306,6 +383,12 @@ export default { return false; } return true; + }, + setModule(id, data) { + if (data) { + this.form.nodeId = id; + this.form.nodePath = data.path; + } } } } @@ -316,5 +399,19 @@ export default { font-size: 10px; color: #909399; } + +.review-tag { + height: 40px!important; +} + + + diff --git a/test-track/frontend/src/business/review/components/TestCaseReviewList.vue b/test-track/frontend/src/business/review/components/TestCaseReviewList.vue index 6304e3acc5..de3aade0fd 100644 --- a/test-track/frontend/src/business/review/components/TestCaseReviewList.vue +++ b/test-track/frontend/src/business/review/components/TestCaseReviewList.vue @@ -7,19 +7,20 @@ @@ -42,6 +43,17 @@ :label="$t('test_track.review.review_project')" min-width="120px"/> + + + + + @@ -145,17 +158,21 @@ import MsUpdateTimeColumn from "metersphere-frontend/src/components/table/MsUpda import MsTableFollowOperator from "metersphere-frontend/src/components/table/MsTableFollowOperator"; import MsTagsColumn from "metersphere-frontend/src/components/table/MsTagsColumn"; import { + batchMoveCaseReview, deleteTestCaseReview, editTestCaseReviewFollows, getTestCaseReviewFollow, getTestCaseReviewProject, - getTestCaseReviewReviewer, testReviewList } from "@/api/test-review"; +import {mapState} from "pinia"; +import {useStore} from "@/store"; +import ReviewOrPlanBatchMove from "@/business/case/components/ReviewOrPlanBatchMove.vue"; export default { name: "TestCaseReviewList", components: { + ReviewOrPlanBatchMove, MsTagsColumn, MsTableFollowOperator, MsUpdateTimeColumn, @@ -175,6 +192,7 @@ export default { }, data() { return { + loading: false, page: getPageInfo(), type: TEST_CASE_REVIEW_LIST, headerItems: Test_Case_Review, @@ -196,6 +214,13 @@ export default { {text: this.$t('test_track.plan.plan_status_finished'), value: 'Finished'}, {text: this.$t('test_track.plan.plan_status_archived'), value: 'Archived'} ], + batchOperators: [ + { + name: this.$t('test_track.case.batch_move_case'), + handleClick: this.handleBatchMove, + permissions: ['PROJECT_TRACK_REVIEW:READ+EDIT'] + } + ], operators: [ { tip: this.$t('commons.edit'), @@ -226,12 +251,57 @@ export default { }); this.initTableData(); }, + props: { + treeNodes: { + type: Array + }, + currentNode: { + type: Object + }, + currentSelectNodes: { + type: Array + } + }, computed: { projectId() { return getCurrentProjectID(); }, + ...mapState(useStore, { + moduleOptions: 'testCaseReviewModuleOptions', + }), + nodePathMap() { + let map = new Map(); + if (this.moduleOptions) { + this.moduleOptions.forEach((item) => { + map.set(item.id, item.path); + }); + } + return map; + } }, methods: { + refresh() { + this.$refs.testCaseReviewTable.clear(); + this.$refs.testCaseReviewTable.isSelectDataAll(false); + this.initTableData(this.currentSelectNodes); + }, + moveSave(param) { + param.condition = this.condition; + param.projectId = this.projectId; + batchMoveCaseReview(param).then(() => { + this.$refs.testCaseReviewBatchMove.btnDisable = false; + this.$success(this.$t('commons.save_success'), false); + this.$refs.testCaseReviewBatchMove.close(); + this.refresh(); + }).catch(() => { + this.$refs.testCaseReviewBatchMove.btnDisable = false; + }); + }, + handleBatchMove() { + let batchSelectCount = this.$refs.testCaseReviewTable.selectDataCounts; + let firstSelectRow = this.$refs.testCaseReviewTable.selectRows.values().next().value; + this.$refs.testCaseReviewBatchMove.open(firstSelectRow.name, this.treeNodes, this.$refs.testCaseReviewTable.selectIds, batchSelectCount, this.moduleOptions, '评审'); + }, currentUser: () => { return getCurrentUser(); }, @@ -239,12 +309,20 @@ export default { const list = deepClone(this.tableLabel); this.$refs.headerCustom.open(list); }, - initTableData() { + initTableData(nodeIds) { + this.loading = true; + this.condition.nodeIds = []; this.condition.workspaceId = getCurrentWorkspaceId(); if (!this.projectId) { return; } this.condition.projectId = this.projectId; + if (nodeIds && Array.isArray(nodeIds) && nodeIds.length > 0) { + this.condition.nodeIds = nodeIds; + } + // 设置搜索条件, 用于刷新树 + this.$emit('setCondition', this.condition); + this.$emit('refreshTree'); testReviewList(this.page.currentPage, this.page.pageSize, this.condition) .then((response) => { let data = response.data; @@ -261,6 +339,7 @@ export default { } }); this.tableData = tableData; + this.loading = false; for (let i = 0; i < this.tableData.length; i++) { let param = {id: this.tableData[i].id}; getTestCaseReviewProject(param) @@ -299,7 +378,7 @@ export default { this.$warning(this.$t('commons.check_project_tip')); return; } - this.$emit('openCaseReviewEditDialog'); + this.$emit('openCaseReviewEditDialog', null, this.currentNode); }, handleEdit(caseReview) { this.$emit('caseReviewEdit', caseReview); @@ -311,14 +390,14 @@ export default { let reviewId = caseReview.id; deleteTestCaseReview(reviewId) .then(() => { - this.initTableData(); + this.initTableData(this.currentSelectNodes); this.$success(this.$t('commons.delete_success')); }) }, search() { // 添加搜索条件时,当前页设置成第一页 this.page.currentPage = 1; - this.initTableData(); + this.initTableData(this.currentSelectNodes); }, saveFollow(row) { let param = {}; diff --git a/test-track/frontend/src/business/utils/track-table-header.js b/test-track/frontend/src/business/utils/track-table-header.js index d0b1c2befb..4a68383c19 100644 --- a/test-track/frontend/src/business/utils/track-table-header.js +++ b/test-track/frontend/src/business/utils/track-table-header.js @@ -25,12 +25,13 @@ const TRACK_HEADER = { {id: 'stage', key: '4', label: 'test_track.plan.plan_stage'}, {id: 'testRate', key: '5', label: 'test_track.home.test_rate'}, {id: 'projectName', key: '6', label: 'test_track.plan.plan_project'}, - {id: 'plannedStartTime', key: '7', label: 'test_track.plan.planned_start_time'}, - {id: 'plannedEndTime', key: '8', label: 'test_track.plan.planned_end_time'}, - {id: 'actualStartTime', key: '9', label: 'test_track.plan.actual_start_time'}, - {id: 'actualEndTime', key: 'a', label: 'test_track.plan.actual_end_time'}, - {id: 'tags', key: 'b', label: 'commons.tag'}, - {id: 'scheduleStatus', key: 'c', label: 'commons.trigger_mode.schedule'}, + {id: 'nodePath', key: '7', label: 'test_track.case.module'}, + {id: 'plannedStartTime', key: '8', label: 'test_track.plan.planned_start_time'}, + {id: 'plannedEndTime', key: '9', label: 'test_track.plan.planned_end_time'}, + {id: 'actualStartTime', key: 'a', label: 'test_track.plan.actual_start_time'}, + {id: 'actualEndTime', key: 'b', label: 'test_track.plan.actual_end_time'}, + {id: 'tags', key: 'c', label: 'commons.tag'}, + {id: 'scheduleStatus', key: 'd', label: 'commons.trigger_mode.schedule'}, {id: 'passRate', key: 'e', label: 'commons.pass_rate'}, {id: 'createUser', key: 'f', label: 'commons.create_user'}, {id: 'testPlanTestCaseCount', key: 'g', label: 'test_track.plan.test_plan_test_case_count'}, @@ -145,11 +146,12 @@ const TRACK_HEADER = { {id: 'name', key: '1', label: 'test_track.review.review_name'}, {id: 'reviewer', key: '2', label: 'test_track.review.reviewer'}, {id: 'projectName', key: '3', label: 'test_track.review.review_project'}, - {id: 'creatorName', key: '4', label: 'test_track.review.creator'}, - {id: 'status', key: '5', label: 'test_track.review.review_status'}, - {id: 'createTime', key: '6', label: 'commons.create_time'}, - {id: 'endTime', key: '7', label: 'test_track.review.end_time'}, - {id: 'tags', key: '8', label: 'commons.tag'}, + {id: 'nodePath', key: '4', label: 'test_track.case.module'}, + {id: 'creatorName', key: '5', label: 'test_track.review.creator'}, + {id: 'status', key: '6', label: 'test_track.review.review_status'}, + {id: 'createTime', key: '7', label: 'commons.create_time'}, + {id: 'endTime', key: '8', label: 'test_track.review.end_time'}, + {id: 'tags', key: '9', label: 'commons.tag'}, // {id: 'testRate', key: '9', label: 'review.review_rate'}, {id: 'caseCount', key: 'a', label: 'api_test.definition.api_case_number'}, {id: 'passRate', key: 'b', label: 'commons.pass_rate'}, diff --git a/test-track/frontend/src/store/state.js b/test-track/frontend/src/store/state.js index 135466696a..9516a7ab89 100644 --- a/test-track/frontend/src/store/state.js +++ b/test-track/frontend/src/store/state.js @@ -6,6 +6,8 @@ export default { testCaseSelectNodeIds: [], testCasePublicSelectNodeIds: [], testCaseModuleOptions: [], + testCaseReviewModuleOptions: [], + testPlanModuleOptions: [], testReviewSelectNode: {}, testReviewSelectNodeIds: [], testPlanViewSelectNode: {},