DownloadManager 下载管理

管理下载任务的组件,支持任务列表、下载状态追踪、下载进度提示等功能。

安装

npm
yarn
pnpm
bun
deno
npx shadcn@latest add https://codebase.anyask.dev/r/download-manager.json

基础用法

传入 getDownloadTaskListdownload 两个必需的异步函数,分别用于获取下载任务列表和触发下载。组件会显示「下载管理」和「下载」两个按钮,点击「下载」后会弹出成功通知,提示文件已生成。

Ref 方法

通过 ref 可以调用 showSuccessNotification 方法显示下载成功通知,可自定义通知消息。

const downloadManagerRef = useRef<DownloadManagerRef>(null);

// 触发下载后显示通知
downloadManagerRef.current?.showSuccessNotification('数据已生成');

自定义配置

文件有效期

通过 expireDays 设置下载文件的有效期(天数),默认为 3 天。通知中会提示用户有效期信息。

下载提示文案

通过 downloadTooltip 自定义「下载」按钮的悬停提示文案。

通知配置

通过 notificationProps 配置 Ant Design Notification 组件的属性,如位置 placement、显示时长 duration 等。

下载状态

组件支持三种下载任务状态:

状态说明操作
CREATED已完成,可下载显示「下载」按钮
PROCESSING处理中下载按钮禁用
FAILED失败下载按钮禁用

API

DownloadManagerProps

属性说明类型默认值
className自定义类名string-
notificationProps通知配置ArgsProps-
downloadTriggerSpmKey触发下载的埋点 keystring-
downloadFileSpmKey文件列表下载文件的埋点 keystring-
downloadManagerSpmKey下载管理按钮的埋点 keystring-
getDownloadTaskList下载任务列表请求方法(params: DownloadTaskListParams) => Promise<DownloadTaskListResult>-
download触发下载请求方法() => Promise<DownloadResult | any>-
expireDays下载文件有效期(天数)number3
downloadTooltip下载按钮的提示文案ReactNode-

DownloadManagerRef

方法说明类型
showSuccessNotification显示成功通知(message?: string) => void

DownloadTaskListResult

属性说明类型
data下载任务列表DownloadTask[]
total总条数number

DownloadTask

属性说明类型
id任务 IDstring | number
fileName文件名string
gmtCreate提交时间string | number
gmtModified生成时间string | number
status状态DownloadStatusEnum
url下载地址string
[key: string]其他字段any