mirror of
https://gitee.com/ElemeFE/element.git
synced 2024-11-29 18:57:36 +08:00
125 lines
3.5 KiB
TypeScript
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: object,
|
|
withCredentials: boolean,
|
|
file: File,
|
|
data: object,
|
|
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: 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;
|
|
}
|