From 9f8ef336472b1798dc6d6b19ecb1ec7f29d6cb1c Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 28 Jun 2021 13:50:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0excel=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=87=8D=E5=A4=8D=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 21 +++++++++++++++++++ frontend/src/views/dataset/add/AddExcel.vue | 8 +++++++ 2 files changed, 29 insertions(+) diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 4b13db735a..4497013a31 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -946,6 +946,12 @@ public class DataSetTableService { } String[] fieldArray = fields.stream().map(TableFiled::getFieldName).toArray(String[]::new); + + // 校验excel字段是否重名 + if (checkIsRepeat(fieldArray)) { + DataEaseException.throwException(Translator.get("i18n_excel_field_repeat")); + } + if (CollectionUtils.isNotEmpty(data)) { jsonArray = data.stream().map(ele -> { Map map = new HashMap<>(); @@ -1087,4 +1093,19 @@ public class DataSetTableService { } } + + /* + * 判断数组中是否有重复的值 + */ + public static boolean checkIsRepeat(String[] array) { + HashSet hashSet = new HashSet(); + for (int i = 0; i < array.length; i++) { + hashSet.add(array[i]); + } + if (hashSet.size() == array.length) { + return false; + } else { + return true; + } + } } diff --git a/frontend/src/views/dataset/add/AddExcel.vue b/frontend/src/views/dataset/add/AddExcel.vue index 1405edcd4e..434abebf60 100644 --- a/frontend/src/views/dataset/add/AddExcel.vue +++ b/frontend/src/views/dataset/add/AddExcel.vue @@ -132,6 +132,14 @@ export default { this.uploading = true }, uploadFail(response, file, fileList) { + this.path = '' + this.fields = [] + this.sheets = [] + this.data = [] + const datas = this.data + this.$refs.plxTable.reloadData(datas) + this.name = '' + this.fileList = [] this.uploading = false this.$message({ type: 'error',