1.1.0 • Published 4 years ago
@aligov/gov-spread v1.1.0
Download
npm publish 失败,暂时没找到原因,先使用 @alife 发布到 tnpm
后续发布到 npm 需要修改为 @aligov/download,包括 demo 以及 package.json
@aligov/gov-spread
下载按钮,支持两种形式:
- 传入 url,点击后直接下载(新标签页打开)
- 先创建文件生成任务,然后轮询任务直到生成下载链接、失败或超过轮询次数限制。
API
直接展示的是一个基于 @alifd/next
中 Button
的按钮,除了后面罗列的参数外,其它额外参数将作为 Button 的属性。
直接下载
直接下载是指点击后就新标签页打开给定的地址,当 props.url
存在时就进入此模式。
参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
---|---|---|---|---|---|
url | 文件访问地址 | Y | string | 直接下载模式下必填 |
异步生成
当无 props.url
时,进入先创建文件生成任务,然后轮询获取文件下载链接的模式。
参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
---|---|---|---|---|---|
createService | 创建文件生成任务 | Y | () => Promise<ITaskId> | 返回任务 id | |
pollingService | 轮询任务 | Y | (taskId: ITaskId) => Promise<IPollingResult> | ||
maxPollingTimes | 最大轮询次数 | N | number | 60 | |
pollingInterval | 轮询时间间隔,单位毫秒 | N | number | 1000 | |
autoDownload | 轮询成功后是否自动下载 | N | boolean | false | |
dialogTitle | dialog title | N | ReactNode | ||
onOk | 文件地址生成后回调 | N | (url: string) => void |
其中,
type ITaskId = number | string
interface IPollingResult {
status: 'init' | 'running' | 'done' | 'failed';
payload?: string;
}
1.1.0
4 years ago