element3
Version:
A Component Library for Vue3
148 lines (115 loc) • 3.63 kB
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: object
withCredentials: boolean
file: File
data: object
filename: string
action: string
onProgress: (e: ElUploadProgressEvent) => void
onSuccess: (response: any) => void
onError: (err: ErrorEvent) => void
}
export const ElUpload: IUpload
/** Upload Component */
interface IUpload extends ElementUIComponent {
/** Request URL (required) */
action: string
/** Request headers */
headers: object
/** Whether uploading multiple files is permitted */
multiple: boolean
/** Additions options of request */
data: object
/** 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
}