import fileSaver from 'file-saver'
const exportExcelDemo = async () => {
message.loading('导出数据中');
const res = await downloadExcelDemo({ indexRuleId, year, quarter, areaLevel
})
if (res?.data) {
message.success('导出成功');
const fileName = decodeURIComponent(
res.response.headers.get('content-
disposition').replace('attachment;filename=', ''),
);
fileSaver.saveAs(res.data, fileName);
}
message.destroy();
}
上述代码中引入了 file-saver 插件,使用该插件进行文件的下载,downloadExcelDemo 是请求后端提供的获取文件的接口。
接口写法如下:request 是使用了umi-request 进行的封装
// 模版导出
export function downloadExcelDemo(params) {
return request('/index/multiRegionalReportDownloadExcelDemo', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(params),
responseType: 'blob',
getResponse: true,
});
}