From de3faf3ca5cdd242a91a02953355fc669949521a Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Sat, 9 May 2020 11:36:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=A8=A1=E5=9D=97=E7=AD=89?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=B8=A6=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/listener/TestCaseDataListener.java | 15 ++++++++++++--- .../track/case/components/TestCaseEdit.vue | 7 ++++++- .../track/case/components/TestCaseMove.vue | 9 ++------- .../business/components/track/common/NodeEdit.vue | 9 ++++++--- .../track/plan/components/TestPlanEdit.vue | 7 ++++++- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java b/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java index 6f37017e3d..b400c1fe07 100644 --- a/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java +++ b/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java @@ -7,7 +7,9 @@ import io.metersphere.base.domain.TestCaseWithBLOBs; import io.metersphere.commons.constants.TestCaseConstants; import io.metersphere.commons.utils.BeanUtils; import io.metersphere.service.TestCaseService; +import org.apache.commons.lang3.StringUtils; +import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.UUID; @@ -38,12 +40,19 @@ public class TestCaseDataListener extends EasyExcelListener { public String validate(TestCaseExcelData data, String errMsg) { String nodePath = data.getNodePath(); StringBuilder stringBuilder = new StringBuilder(errMsg); - if ( nodePath.split("/").length > TestCaseConstants.MAX_NODE_DEPTH + 1) { + String[] nodes = nodePath.split("/"); + + if ( nodes.length > TestCaseConstants.MAX_NODE_DEPTH + 1) { stringBuilder.append("节点最多为" + TestCaseConstants.MAX_NODE_DEPTH + "层;"); } - if ( nodePath.trim().contains(" ")) { - stringBuilder.append("所属模块不能包含空格"); + + for (int i = 0; i < nodes.length; i++) { + if (i != 0 && StringUtils.equals(nodes[i].trim(), "")) { + stringBuilder.append("所属模块不能为空格"); + break; + } } + if (!userIds.contains(data.getMaintainer())) { stringBuilder.append("该工作空间下无该用户:" + data.getMaintainer() + ";"); } diff --git a/frontend/src/business/components/track/case/components/TestCaseEdit.vue b/frontend/src/business/components/track/case/components/TestCaseEdit.vue index 4f969158f9..acdc85bebc 100644 --- a/frontend/src/business/components/track/case/components/TestCaseEdit.vue +++ b/frontend/src/business/components/track/case/components/TestCaseEdit.vue @@ -13,7 +13,7 @@ :label="$t('test_track.case.name')" :label-width="formLabelWidth" prop="name"> - + @@ -313,6 +313,11 @@ if(localStorage.getItem(CURRENT_PROJECT)) { param.projectId = JSON.parse(localStorage.getItem(CURRENT_PROJECT)).id; } + param.name = param.name.trim(); + if (param.name == '') { + this.$warning(this.$t('test_track.case.input_name')); + return; + } this.$post('/test/case/' + this.operationType, param, () => { this.$success(this.$t('commons.save_success')); this.dialogFormVisible = false; diff --git a/frontend/src/business/components/track/case/components/TestCaseMove.vue b/frontend/src/business/components/track/case/components/TestCaseMove.vue index 0240d2f6b3..8f1e6ef5bb 100644 --- a/frontend/src/business/components/track/case/components/TestCaseMove.vue +++ b/frontend/src/business/components/track/case/components/TestCaseMove.vue @@ -5,7 +5,7 @@ :before-close="close" width="20%"> - { this.$success(this.$t('commons.save_success')); diff --git a/frontend/src/business/components/track/common/NodeEdit.vue b/frontend/src/business/components/track/common/NodeEdit.vue index 46e4bd8f24..988282824d 100644 --- a/frontend/src/business/components/track/common/NodeEdit.vue +++ b/frontend/src/business/components/track/common/NodeEdit.vue @@ -12,7 +12,7 @@ :label="$t('test_track.module.name')" :label-width="formLabelWidth" prop="name"> - + @@ -69,7 +69,10 @@ if (valid) { let param = {}; let url = this.buildParam(param); - + if (param.name.trim() == '') { + this.$warning(this.$t('test_track.case.input_name')); + return; + } this.$post(url, param, () => { this.$success(this.$t('commons.save_success')); this.$emit('refresh'); @@ -95,7 +98,7 @@ param.id = this.node.id; param.level = this.node.level; } - param.name = this.form.name; + param.name = this.form.name.trim(); param.label = this.form.name; if (localStorage.getItem(CURRENT_PROJECT)) { param.projectId = JSON.parse(localStorage.getItem(CURRENT_PROJECT)).id; diff --git a/frontend/src/business/components/track/plan/components/TestPlanEdit.vue b/frontend/src/business/components/track/plan/components/TestPlanEdit.vue index c2322c567c..dfeb4cd842 100644 --- a/frontend/src/business/components/track/plan/components/TestPlanEdit.vue +++ b/frontend/src/business/components/track/plan/components/TestPlanEdit.vue @@ -15,7 +15,7 @@ :label="$t('test_track.plan.plan_name')" :label-width="formLabelWidth" prop="name"> - + @@ -149,6 +149,11 @@ if (valid) { let param = {}; Object.assign(param, this.form); + param.name = param.name.trim(); + if (param.name == '') { + this.$warning(this.$t('test_track.plan.input_plan_name')); + return; + } param.workspaceId = localStorage.getItem(WORKSPACE_ID); this.$post('/test/plan/' + this.operationType, param, () => { this.$success(this.$t('commons.save_success'));