diff --git a/src/components/CURD/PageContent.vue b/src/components/CURD/PageContent.vue index 0d173cb6..90f04842 100644 --- a/src/components/CURD/PageContent.vue +++ b/src/components/CURD/PageContent.vue @@ -452,7 +452,7 @@
*.xlsx / *.xls { + const importTemplate = props.contentConfig.importTemplate; + if (typeof importTemplate === "string") { + window.open(importTemplate); + } else if (typeof importTemplate === "function") { + importTemplate().then((response) => { const fileData = response.data; const fileName = decodeURI( response.headers["content-disposition"].split(";")[1].split("=")[1] @@ -742,7 +742,7 @@ function handleDownloadTemplate() { saveXlsx(fileData, fileName); }); } else { - ElMessage.error("未配置importsTemplate"); + ElMessage.error("未配置importTemplate"); } } // 导入确认 diff --git a/src/components/CURD/types.ts b/src/components/CURD/types.ts index c2082033..af0cd7f9 100644 --- a/src/components/CURD/types.ts +++ b/src/components/CURD/types.ts @@ -92,10 +92,10 @@ export interface IContentConfig { exportAction?: (queryParams: T) => Promise; // 前端全量导出的网络请求函数(需返回promise) exportsAction?: (queryParams: T) => Promise; + // 导入模板 + importTemplate?: string | (() => Promise); // 后端导入的网络请求函数(需返回promise) importAction?: (file: File) => Promise; - // 前端导入模板 - importsTemplate?: string | (() => Promise); // 前端导入的网络请求函数(需返回promise) importsAction?: (data: IObject[]) => Promise; // 主键名(默认为id) diff --git a/src/views/demo/curd/config/content.ts b/src/views/demo/curd/config/content.ts index bda6a058..8a79fecb 100644 --- a/src/views/demo/curd/config/content.ts +++ b/src/views/demo/curd/config/content.ts @@ -29,7 +29,7 @@ const contentConfig: IContentConfig = { return UserAPI.import(1, file); }, exportAction: UserAPI.export, - importsTemplate: UserAPI.downloadTemplate, + importTemplate: UserAPI.downloadTemplate, importsAction(data) { // 模拟导入数据 console.log("importsAction", data);