diff --git a/core/core-frontend/src/api/datasource.ts b/core/core-frontend/src/api/datasource.ts index 8d85bf637e..ef14354ba6 100644 --- a/core/core-frontend/src/api/datasource.ts +++ b/core/core-frontend/src/api/datasource.ts @@ -152,6 +152,7 @@ export const uploadFile = async (data): Promise<IResponse> => { .post({ url: '/datasource/uploadFile', data, + loading: true, headersType: 'multipart/form-data;' }) .then(res => { diff --git a/core/core-frontend/src/config/axios/service.ts b/core/core-frontend/src/config/axios/service.ts index 5e63f9c618..fc68c6859a 100644 --- a/core/core-frontend/src/config/axios/service.ts +++ b/core/core-frontend/src/config/axios/service.ts @@ -210,7 +210,7 @@ service.interceptors.response.use( ) { ElMessage({ type: 'error', - message: error.message, + message: error.response?.data?.msg ? error.response?.data?.msg : error.message, showClose: true }) } else if (error?.config?.url.startsWith('/xpackComponent/content')) { 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 9d06d385d1..3c5c7704a8 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 @@ -354,11 +354,24 @@ const uploadExcel = () => { formData.append('type', '') formData.append('editType', param.value.editType) formData.append('id', param.value.id || 0) - return uploadFile(formData).then(res => { - upload.value?.clearFiles() - uploadAgain.value?.clearFiles() - uploadSuccess(res) - }) + loading.value = true + return uploadFile(formData) + .then(res => { + upload.value?.clearFiles() + uploadAgain.value?.clearFiles() + uploadSuccess(res) + loading.value = false + }) + .catch(error => { + if (error.code === 'ECONNABORTED') { + ElMessage({ + type: 'error', + message: error.message, + showClose: true + }) + } + loading.value = false + }) } const excelForm = ref() const submitForm = () => { @@ -394,6 +407,7 @@ defineExpose({ require-asterisk-position="right" :model="param" label-position="top" + v-loading="loading" > <el-form-item v-if="sheetFile.name" diff --git a/sdk/common/src/main/java/io/dataease/filter/HtmlResourceFilter.java b/sdk/common/src/main/java/io/dataease/filter/HtmlResourceFilter.java index c84453aafe..cdeda6baae 100644 --- a/sdk/common/src/main/java/io/dataease/filter/HtmlResourceFilter.java +++ b/sdk/common/src/main/java/io/dataease/filter/HtmlResourceFilter.java @@ -1,5 +1,7 @@ package io.dataease.filter; +import io.dataease.result.ResultMessage; +import io.dataease.utils.JsonUtil; import jakarta.servlet.*; import jakarta.servlet.FilterConfig; import jakarta.servlet.http.HttpServletResponse; @@ -36,7 +38,14 @@ public class HtmlResourceFilter implements Filter, Ordered { httpResponse.setHeader(HttpHeaders.EXPIRES, "0"); } // 继续执行过滤器链 - filterChain.doFilter(servletRequest, httpResponse); + try { + filterChain.doFilter(servletRequest, httpResponse); + }catch (Exception e){ + httpResponse.setContentType("application/json"); + httpResponse.setCharacterEncoding("UTF-8"); + httpResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST); + httpResponse.getWriter().write(JsonUtil.toJSONString(new ResultMessage(HttpServletResponse.SC_BAD_REQUEST,e.getMessage())).toString()); + } } @Override