From 8b3512276a99659cb7f5f983620c1b4cbfd27b3a Mon Sep 17 00:00:00 2001 From: wsm <2746563060@qq.com> Date: Tue, 30 Jun 2026 10:04:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(xispeak):=20=E6=96=B0=E5=A2=9EExcel?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=8C=89=E9=92=AE=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=B8=83=E5=B1=80=E5=B0=86=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF/=E6=A8=A1=E6=9D=BF=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=A7=BB=E5=87=BA=E4=B8=8B=E6=8B=89=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- src/views/bg/xispeak/BgXiSpeak.api.ts | 3 +++ src/views/bg/xispeak/BgXiSpeakList.vue | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/views/bg/xispeak/BgXiSpeak.api.ts b/src/views/bg/xispeak/BgXiSpeak.api.ts index c8e34c1..6fba2be 100644 --- a/src/views/bg/xispeak/BgXiSpeak.api.ts +++ b/src/views/bg/xispeak/BgXiSpeak.api.ts @@ -12,6 +12,7 @@ enum Api { exportXls = '/bg/xispeak/bgXiSpeak/exportXls', exportXlsHeaders = '/bg/xispeak/bgXiSpeak/exportXlsHeaders', importExcelByEasyExcel = '/bg/xispeak/bgXiSpeak/importExcelByEasyExcel', + checkExcelByEasyExcel = '/bg/xispeak/bgXiSpeak/checkExcelByEasyExcel', loadTreeData = '/bg/xispeak/bgXiSpeak/loadTreeRoot', getChildList = '/bg/xispeak/bgXiSpeak/childList', getChildListBatch = '/bg/xispeak/bgXiSpeak/getChildListBatch', @@ -28,6 +29,8 @@ export const getExportXlsHeadersUrl = Api.exportXlsHeaders; export const getImportExcelByEasyExcelUrl = Api.importExcelByEasyExcel; +export const getCheckExcelByEasyExcelUrl = Api.checkExcelByEasyExcel; + /** * 导入api * @param params diff --git a/src/views/bg/xispeak/BgXiSpeakList.vue b/src/views/bg/xispeak/BgXiSpeakList.vue index b089d96..a96e2da 100644 --- a/src/views/bg/xispeak/BgXiSpeakList.vue +++ b/src/views/bg/xispeak/BgXiSpeakList.vue @@ -46,6 +46,9 @@ 下载模板 + 模板校验 模板导入 @@ -123,6 +126,7 @@ import { defHttp } from '/@/utils/http/axios'; getImportUrl, getExportXlsHeadersUrl, getImportExcelByEasyExcelUrl, + getCheckExcelByEasyExcelUrl, getChildList, getChildListBatch, updateLaunchType, @@ -802,6 +806,25 @@ import { defHttp } from '/@/utils/http/axios'; await defHttp.uploadFile({ url: getImportExcelByEasyExcelUrl }, { file: data.file }, { success: isReturn }); } + async function handleCheckExcel(data) { + const isReturn = (fileInfo) => { + try { + if (fileInfo.code === 500 || fileInfo.code === 510) { + if (fileInfo.result && Array.isArray(fileInfo.result) && fileInfo.result.length > 0) { + showImportValidationErrors(fileInfo.message || `${data.file.name} 校验失败`, fileInfo.result); + } else { + createMessage.error(fileInfo.message || `${data.file.name} 校验失败`); + } + } else { + createMessage.success(fileInfo.message || `${data.file.name} 校验通过`); + } + } catch { + // ignore + } + }; + await defHttp.uploadFile({ url: getCheckExcelByEasyExcelUrl }, { file: data.file }, { success: isReturn }); + } + function clearQueryParams() { Object.keys(queryParam.value).forEach((key) => { delete queryParam.value[key];