From c187608d95cf92c63cdb9949b59f0690e6a8b837 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 13 Mar 2025 01:09:14 +0800 Subject: [PATCH 1/3] Pr@dev v2@fixds (#15336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix:修复 ftp 中文名称的文件加载失败 * fix:修复创建数据源-远程excel/CSV-填写信息正确-点击校验提示校验成功但报错 --------- Co-authored-by: taojinlong --- .../views/visualized/data/datasource/form/index.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/index.vue b/core/core-frontend/src/views/visualized/data/datasource/form/index.vue index 73ac6017ce..1b38056be1 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/index.vue @@ -402,7 +402,16 @@ const doValidateDs = request => { excelRequest.userName = Base64.encode(request.userName) excelRequest.passwd = Base64.encode(request.passwd) return loadRemoteFile(excelRequest) - .then(() => { + .then(res => { + dsLoading.value = false + if (!res) { + ElMessage.warning(res.msg) + return + } + if (res?.code !== 0) { + ElMessage.warning(res.msg) + return + } ElMessage.success(t('datasource.validate_success')) dsLoading.value = false }) From 58724fab7494c7ef99c543b3280bee727e1c9d54 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Thu, 13 Mar 2025 10:00:42 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/locales/en.ts | 3 ++ core/core-frontend/src/locales/tw.ts | 3 ++ core/core-frontend/src/locales/zh-CN.ts | 3 ++ .../data/datasource/form/ExcelDetail.vue | 28 +++++++++++++++---- .../datasource/form/ExcelRemoteDetail.vue | 7 +++-- .../visualized/data/datasource/form/option.ts | 4 +-- 6 files changed, 38 insertions(+), 10 deletions(-) diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts index 5e1ad41f39..4e83ad2d48 100644 --- a/core/core-frontend/src/locales/en.ts +++ b/core/core-frontend/src/locales/en.ts @@ -1,5 +1,6 @@ export default { common: { + empty: ' ', component: { input: 'Input', textarea: 'Textarea', @@ -10,6 +11,8 @@ export default { dateRange: 'Date Range Picker', add_component_hint: 'Click or drag the component on the left to add a field' }, + local_excel: 'Local Excel/CSV', + remote_excel: 'Remote Excel/CSV', list_selection: 'List selection', date_setting: 'Date setting', openMobileTerminal: 'Open mobile terminal', diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index f67cdf0371..a20237c1ef 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -1,5 +1,6 @@ export default { common: { + empty: '', component: { input: '單行輸入', textarea: '多行輸入', @@ -10,6 +11,8 @@ export default { dateRange: '時間範圍', add_component_hint: '點選或拖曳左側元件新增欄位' }, + local_excel: '本地 Excel/CSV', + remote_excel: '遠端 Excel/CSV', list_selection: '清單選擇', date_setting: '日期設定', openMobileTerminal: '開啟行動端', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 422013fcec..224de85a79 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1,6 +1,9 @@ export default { common: { + empty: '', timeout_tips: '请求超时,请稍后再试', + local_excel: '本地 Excel/CSV', + remote_excel: '远程 Excel/CSV', watermarkManagement: '水印管理', list_selection: '列表选择', date_setting: '日期设置', diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue b/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue index e0b55e0eed..f06feafef8 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue @@ -641,14 +641,31 @@ defineExpose({ :rules="[ { required: true, - message: t('common.please_input') + t('datasource.datasource') + t('common.name') + message: + t('common.please_input') + + t('common.empty') + + t('datasource.datasource') + + t('common.empty') + + t('common.name') } ]" - :label="t('visualization.custom') + t('datasource.datasource') + t('common.name')" + :label=" + t('visualization.custom') + + t('common.empty') + + t('datasource.datasource') + + t('common.empty') + + t('common.name') + " > @@ -787,7 +804,8 @@ defineExpose({ background: #f5f6f7; padding: 16px; .btn-select { - width: 164px; + min-width: 164px; + padding: 0 6px; height: 32px; display: flex; align-items: center; @@ -805,7 +823,7 @@ defineExpose({ } .ed-button.is-text { height: 24px; - width: 74px; + min-width: 74px; line-height: 24px; } .ed-button + .ed-button { diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/ExcelRemoteDetail.vue b/core/core-frontend/src/views/visualized/data/datasource/form/ExcelRemoteDetail.vue index 59b8170501..f9639734d2 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/ExcelRemoteDetail.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/ExcelRemoteDetail.vue @@ -780,7 +780,7 @@ defineExpose({ Date: Thu, 13 Mar 2025 10:21:19 +0800 Subject: [PATCH 3/3] Pr@dev v2@fixds (#15339) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix:校验excel数据源失败 * fix:处理csv空文件异常 --------- Co-authored-by: taojinlong --- .../datasource/provider/ExcelUtils.java | 32 ++++++++++--------- .../visualized/data/datasource/form/index.vue | 4 +-- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java index 6015cd38ec..eb84e609f3 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java @@ -668,21 +668,23 @@ public class ExcelUtils { List fields = new ArrayList<>(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); String s = reader.readLine();// first line - String[] split = s.split(","); - for (int i = 0; i < split.length; i++) { - String filedName = split[i]; - if (StringUtils.isEmpty(filedName)) { - DEException.throwException(Translator.get("i18n_excel_error_first_row")); + if(StringUtils.isNotEmpty(s)){ + String[] split = s.split(","); + for (int i = 0; i < split.length; i++) { + String filedName = split[i]; + if (StringUtils.isEmpty(filedName)) { + DEException.throwException(Translator.get("i18n_excel_error_first_row")); + } + if (filedName.startsWith(UFEFF)) { + filedName = filedName.replace(UFEFF, ""); + } + TableField tableFiled = new TableField(); + tableFiled.setName(filedName); + tableFiled.setOriginName(filedName); + tableFiled.setFieldType(null); + tableFiled.setChecked(true); + fields.add(tableFiled); } - if (filedName.startsWith(UFEFF)) { - filedName = filedName.replace(UFEFF, ""); - } - TableField tableFiled = new TableField(); - tableFiled.setName(filedName); - tableFiled.setOriginName(filedName); - tableFiled.setFieldType(null); - tableFiled.setChecked(true); - fields.add(tableFiled); } List data = csvData(reader, isPreview, fields.size()); @@ -734,7 +736,7 @@ public class ExcelUtils { return excelSheetDataList; } - private static Map downLoadFromFtp(ExcelConfiguration remoteExcelRequest) { + public static Map downLoadFromFtp(ExcelConfiguration remoteExcelRequest) { Map fileNames = new HashMap<>(); String username = ""; String password = ""; diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/index.vue b/core/core-frontend/src/views/visualized/data/datasource/form/index.vue index 1b38056be1..6a154aca3c 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/index.vue @@ -399,8 +399,8 @@ const doValidateDs = request => { let excelRequest = JSON.parse(JSON.stringify(form2.configuration)) excelRequest.datasourceId = form2.id || 0 excelRequest.editType = form2.editType - excelRequest.userName = Base64.encode(request.userName) - excelRequest.passwd = Base64.encode(request.passwd) + excelRequest.userName = Base64.encode(excelRequest.userName) + excelRequest.passwd = Base64.encode(excelRequest.passwd) return loadRemoteFile(excelRequest) .then(res => { dsLoading.value = false