From b959837891444629f310d7be2b80c6d003781377 Mon Sep 17 00:00:00 2001
From: new_new_new <8454518+new-twice@user.noreply.gitee.com>
Date: Tue, 23 Jun 2026 10:37:30 +0000
Subject: [PATCH] =?UTF-8?q?!56=20feat(xispeak):=20=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=80=9A=E8=BF=87=E6=A8=A1=E6=9D=BF=E5=AF=BC=E5=85=A5=E6=8C=89?=
=?UTF-8?q?=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat(xispeak): 新增通过模板导入按钮
* feat(xispeak): 新增下载导入模板按钮
---
src/views/bg/xispeak/BgXiSpeak.api.ts | 6 ++++
src/views/bg/xispeak/BgXiSpeakList.vue | 43 ++++++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/src/views/bg/xispeak/BgXiSpeak.api.ts b/src/views/bg/xispeak/BgXiSpeak.api.ts
index 5001bd0..639403c 100644
--- a/src/views/bg/xispeak/BgXiSpeak.api.ts
+++ b/src/views/bg/xispeak/BgXiSpeak.api.ts
@@ -10,6 +10,8 @@ enum Api {
deleteBgXiSpeak = '/bg/xispeak/bgXiSpeak/delete',
importExcel = '/bg/xispeak/bgXiSpeak/importExcel',
exportXls = '/bg/xispeak/bgXiSpeak/exportXls',
+ exportXlsHeaders = '/bg/xispeak/bgXiSpeak/exportXlsHeaders',
+ importExcelByEasyExcel = '/bg/xispeak/bgXiSpeak/importExcelByEasyExcel',
loadTreeData = '/bg/xispeak/bgXiSpeak/loadTreeRoot',
getChildList = '/bg/xispeak/bgXiSpeak/childList',
getChildListBatch = '/bg/xispeak/bgXiSpeak/getChildListBatch',
@@ -22,6 +24,10 @@ enum Api {
*/
export const getExportUrl = Api.exportXls;
+export const getExportXlsHeadersUrl = Api.exportXlsHeaders;
+
+export const getImportExcelByEasyExcelUrl = Api.importExcelByEasyExcel;
+
/**
* 导入api
* @param params
diff --git a/src/views/bg/xispeak/BgXiSpeakList.vue b/src/views/bg/xispeak/BgXiSpeakList.vue
index fb93d1b..7986aee 100644
--- a/src/views/bg/xispeak/BgXiSpeakList.vue
+++ b/src/views/bg/xispeak/BgXiSpeakList.vue
@@ -43,6 +43,12 @@
导入
+ 下载模板
+ 模板导入
@@ -86,6 +92,7 @@
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage';
import { useModal } from '/@/components/Modal';
+import { defHttp } from '/@/utils/http/axios';
import { useMessage } from '/@/hooks/web/useMessage';
import { startProcessSchedules } from '/@/api/common/api';
import { dateUtil } from '/@/utils/dateUtil';
@@ -107,6 +114,8 @@
batchDeleteBgXiSpeak,
getExportUrl,
getImportUrl,
+ getExportXlsHeadersUrl,
+ getImportExcelByEasyExcelUrl,
getChildList,
getChildListBatch,
updateLaunchType,
@@ -725,6 +734,40 @@
feedbackViewModalRef.value.open(record);
}
+ async function handleDownloadTemplate() {
+ const data = await defHttp.get(
+ { url: getExportXlsHeadersUrl, params: {}, responseType: 'blob', timeout: 60000 },
+ { isTransformResponse: false },
+ );
+ if (!data) {
+ createMessage.warning('文件下载失败');
+ return;
+ }
+ const blob = new Blob([data]);
+ const link = document.createElement('a');
+ link.href = URL.createObjectURL(blob);
+ link.download = '习总书记重要讲话指示批示情况-导入模板.xls';
+ link.click();
+ URL.revokeObjectURL(link.href);
+ }
+
+ async function handleImportByTemplate(data) {
+ const isReturn = (fileInfo) => {
+ try {
+ if (fileInfo.code === 500 || fileInfo.code === 510) {
+ createMessage.error(fileInfo.message || `${data.file.name} 导入失败`);
+ } else {
+ createMessage.success(fileInfo.message || `${data.file.name} 导入成功`);
+ }
+ } catch {
+ // ignore
+ } finally {
+ reload();
+ }
+ };
+ await defHttp.uploadFile({ url: getImportExcelByEasyExcelUrl }, { file: data.file }, { success: isReturn });
+ }
+
function clearQueryParams() {
Object.keys(queryParam.value).forEach((key) => {
delete queryParam.value[key];