import { BaseProps } from '.' import { LogFile } from '../../../entity/system-log/log-file' import { FileType, UploadFileStatus } from 'ant-design-vue/lib/upload/interface' import { ResultModel } from '../../../http/result-model' /** * 上传属性 */ export interface UploadProps extends BaseProps { /** * 上传文件之前的钩子,参数为上传的文件,若返回 false 则停止上传。支持返回一个 Promise 对象, * Promise 对象 reject 时则停止上传,resolve 时开始上传( resolve 传入 File 或 Blob 对象则上传 resolve 传入对象)。 * @param file * @param fileList */ beforeUpload?: (file: UploadFile, fileList: Array) => boolean /** * 上传所需参数或返回上传参数的方法 */ data?: object | ((file: UploadFile) => object) /** * 支持上传文件夹(caniuse) */ directory?: boolean /** * 自定义缩略图是否使用 标签进行显示 * @param file */ isImageUrl?: (file: UploadFile) => boolean /** * 上传列表的内建样式,支持三种基本样式 */ listType?: 'text' | 'picture' | 'picture-card' /** * 限制上传数量。当为 1 时,始终用最新上传的文件代替当前文件 */ maxCount?: number /** * 限制文件大小 */ maxSize?: number /** * 上传请求的 http method */ method?: string /** * 是否支持多选文件,ie10+ 支持。开启后按住 ctrl 可选择多个文件。 */ multiple?: boolean /** * 发到后台的文件参数名 */ name?: string /** * 点击打开文件对话框 */ openFileDialogOnClick?: boolean /** * 自定义文件预览逻辑 * @param file */ previewFile?: (file: File | Blob) => Promise /** * 自定义进度条样式 * ProgressProps(仅支持 type="line") */ progress?: { strokeWidth: 2; showInfo: false; strokeColor: string } /** * 是否展示 uploadList, 可设为一个对象,用于单独设定 showPreviewIcon 和 showRemoveIcon */ showUploadList?: boolean | { showPreviewIcon?: boolean; showRemoveIcon?: boolean; showDownloadIcon?: boolean } /** * 服务端渲染时需要打开这个 */ supportServerRender?: boolean /** * 上传请求时是否携带 cookie */ withCredentials?: boolean /** * 需要接收id还是url */ type: 'id' | 'url' /** * 默认的文件展示列表 */ fileList?: Array /** * 接受上传的文件类型, 详见 input accept Attribute * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept */ accept?: string /** * 返回的数组数据是否需要合并 */ join?: boolean /** * 额外需要返回的字段 */ extraNames?: UploadExtraProps } export interface UploadFile { uid: string size: number name: string fileName?: string lastModified?: number lastModifiedDate?: Date url?: string status?: UploadFileStatus percent?: number thumbUrl?: string originFileObj?: FileType response?: ResultModel error?: string linkProps?: string type?: string xhr?: ResultModel preview?: string } export interface UploadExtraProps { // 文件id id?: string // url url?: string }