import { ReactNode } from 'react'; import type { ButtonProps } from 'antd'; import type { DownloadRequestProps, PropsWithMakeFilePropsType } from './utils'; export interface IProDownloadProps extends ButtonProps { /** * @description 下载资源获取来源:api:通过接口获取,url:通过静态资源链接获取 * @default api */ source?: string; /** * @description 下载请求的地址 * @default (必选) */ url: string; /** * @description 下载请求的地址 * @deprecated 弃用,请使用url进行替换 * @default (非必选) */ action?: string; /** * @description 下载请求的类型 * @default post */ method?: 'post' | 'get'; /** * @description 下载所需额外参数或返回上传额外参数的方法 * @default - */ params?: any; /** * @description 下载保存的文件名 * @default (必选) */ fileName?: string; /** * @description 设置上传的请求头部,IE10 以上有效 * @default - */ headers?: object; /** * @description 禁用状态 * @default false */ disabled?: boolean; /** 格式化数据 */ transformResponse?: (data: any) => any; /** * @description 上传文件之前的钩子,若返回 false 则停止下载。支持返回一个 Promise 对象,Promise 对象 reject 时则停止下载 * @default - */ beforeDownload?: (() => boolean | Promise); /** * @description service 执行完成时触发 * @default - */ onFinish?: () => void; /** * @description 下载按钮的填充内容 * @default - */ downLoadRequest?: DownloadRequestProps; downLoadBlobUrl?: PropsWithMakeFilePropsType; children?: string | ReactNode; [key: string]: any; }