Skip to content

BizExportButton 导出按钮 ​

导出按钮:确认 → loading(防重复点击)→ 下载 → 成功提示。三条导出通道:request(业务侧返回 Blob,组件零接口)、task-request + task-poll(服务端异步任务,进度轮询 + 直链下载)、rows(纯前端本地导出,注入数据直接生成 CSV,零后端依赖)。

基础用法 ​

点击 → 确认 → 按钮转 loading → 自动触发浏览器下载(1s 模拟耗时)。
传入返回 Blob 的 request 与文件名,其余(确认/loading/下载/反馈)组件全部包办。

其他用法 ​

最近结果:(未导出)
:confirm="false" 免确认直接导出;失败时 error 事件与兜底提示。

列表工具栏导出 ​

当前筛选:车间 = 一号导出成功后自动触发浏览器下载
列表页场景:按当前筛选条件导出(自定义确认文案说明范围),全量导出走 :confirm="false" 免确认直出;request 生成 csv(真实项目为服务端文件流)。

大数据量异步导出 ​

确认后按钮 loading 直到文件就绪(示例压缩为 1.5s)
大数据导出场景:服务端生成慢(示例 1.5s),按钮全程 loading,确认文案说明耗时预期。

多格式导出 ​

报表场景:csv(快、无格式)与 xlsx(含格式)两个导出入口并存,免确认直出。

按勾选范围导出 ​

确认文案随勾选实时变化
口径场景:包含明细 / 仅异常两个开关实时拼进确认文案——导出前把口径说清楚。

内置导出设置(列勾选 + 格式切换) ​

点开即见导出设置:列全选/单勾(不选不能开始),xlsx / csv 切换后文件名自动带扩展名。
columns + formats 配置后确认弹窗升级为「导出设置」:列全选/单勾、xlsx / csv 切换,选项随 request(options) 传给业务侧,文件名自动追加所选格式扩展名。

内置异步任务导出 ​

配置列勾选 + 异步任务:建任务 → 进度条 → 成功自动触发 fileUrl 直链下载;「后台运行」不打断服务端生成。
task-request + task-poll:建任务 → 进度弹窗(percent,可「后台运行」)→ 终态 success 自动触发 fileUrl 直链下载,task-complete 携带任务 id 可登记任务中心;可与 columns/formats 组合。

纯前端本地导出 ​

注入 rows(不传 request)即走本地通道:前端直接生成 CSV 文件(\uFEFF BOM 头防 Excel 中文乱码、RFC 4180 转义逗号/引号/换行、公式注入防护——= + - @ 开头的值前置单引号避免 Excel 误执行),零后端依赖——无导出接口的旧系统、配置数据备份、当前页小数据量导出的最省方案。

本地导出(列勾选 + formatter) ​

本地导出同样支持列勾选;列 formatter 把状态码映射中文、金额千分位——导出内容与页面展示口径一致。

本地导出(表格当前筛选联动) ​

rows 是响应式数据:与 BizTable 共享同一筛选结果,「导出当前页」即所见即所得;大数据量(10 万行级)仍建议走服务端异步任务通道。

Props ​

属性名类型默认值说明
filenamestring''下载文件名(含扩展名;配多格式时自动追加所选格式扩展名,本地导出固定 .csv)
request(options?) => Promise<Blob>—同步导出实现(与 task-request / rows 三选一),resolve 二进制内容
rowsRecord<string, unknown>[]—纯前端本地导出(与 request / task-request 三选一,request 优先):注入数据行前端直接生成 CSV(BOM 防 Excel 乱码);未配 columns 时按首行字段名推导导出列
task-request(options?) => Promise<string>—异步导出:提交建任务,resolve 任务 id
task-poll(taskId) => Promise<BizExportTaskStatus>—异步导出:轮询任务状态直到终态
poll-intervalnumber1500轮询间隔(ms)
columnsBizExportColumn[]—可导出列(配置后确认弹窗出现列勾选,默认全选);formatter 为本地导出(rows 模式)取值格式化,缺省直接取 row[prop]
formats('xlsx' | 'csv')[]—可选格式(多项时确认弹窗出现格式切换)
confirmbooleantrue无 columns/formats 时是否先弹确认框
confirm-textstring'确认导出当前数据吗?'确认弹窗内容
success-textstring'导出成功'成功提示文案

按钮本体属性(type / size / icon / disabled...)经 v-bind="$attrs" 透传 BizButton → el-button。

Events ​

事件名参数说明
success(filename: string)下载触发成功
error(reason: unknown)request 抛错 / 任务终态 failed(组件已给失败提示)
task-complete(taskId, status: BizExportTaskStatus)异步任务终态(含任务 id)

Slots ​

插槽名说明
default按钮文本

Expose ​

属性/方法说明
—透传 BizButton 实例能力