element-plus/types/upload.d.ts
2020-09-19 18:09:27 +08:00

125 lines
3.5 KiB
TypeScript

import { ElementUIComponent } from './component'
export type ListType = 'text' | 'picture' | 'picture-card'
export type FileUploadStatus = 'ready' | 'uploading' | 'success' | 'fail'
export interface FileListItem {
name: string
url: string
status?: FileUploadStatus
}
export interface ElUploadInternalRawFile extends File {
uid: number
}
export interface ElUploadInternalFileDetail {
status: FileUploadStatus
name: string
size: number
percentage: number
uid: number
raw: ElUploadInternalRawFile
url?: string
}
export interface ElUploadProgressEvent extends ProgressEvent {
percent: number
}
export interface HttpRequestOptions {
headers: Record<string, unknown>
withCredentials: boolean
file: File
data: Record<string, unknown>
filename: string
action: string
onProgress: (e: ElUploadProgressEvent) => void
onSuccess: (response: any) => void
onError: (err: ErrorEvent) => void
}
/** Upload Component */
export declare class ElUpload extends ElementUIComponent {
/** Request URL (required) */
action: string
/** Request headers */
headers: Record<string, unknown>
/** Whether uploading multiple files is permitted */
multiple: boolean
/** Additions options of request */
data: Record<string, unknown>
/** Key name for uploaded file */
name: string
/** Whether cookies are sent */
withCredentials: boolean
/** Whether to show the uploaded file list */
showFileList: boolean
/** Whether to activate drag and drop mode */
drag: boolean
/** Accepted file types, will not work when thumbnail-mode is true */
accept: string
/** Hook function when clicking the uploaded files */
onPreview: (file: ElUploadInternalFileDetail) => void
/** Hook function when files are removed */
onRemove: (file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void
/** Hook function when uploaded successfully */
onSuccess: (response: any, file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void
/** Hook function when some errors occurs */
onError: (err: ErrorEvent, file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void
/** Hook function when some progress occurs */
onProgress: (event: ElUploadProgressEvent, file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void
/** Hook function when file status change */
onChange: (file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void
/** Hook function before uploading with the file to be uploaded as its parameter. If false or a Promise is returned, uploading will be aborted */
beforeUpload: (file: ElUploadInternalRawFile) => boolean | Promise<File | Blob | boolean>
/** Whether thumbnail is displayed */
thumbnailMode: boolean
/** Default uploaded files */
fileList: FileListItem[]
/** Type of fileList */
listType: ListType
/** Whether to auto upload file */
autoUpload: boolean
/** Override default xhr behavior, allowing you to implement your own upload-file's request */
httpRequest: (options: HttpRequestOptions) => void
/** Whether to disable upload */
disabled: boolean
/** Maximum number of uploads allowed */
limit: number
/** Hook function when limit is exceeded */
onExceed: (file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void
/** Clear the upload file list */
clearFiles (): void;
/** Abort specified file */
abort (file: ElUploadInternalFileDetail): void
/** Upload the file list manually */
submit ():void;
}