vuecssuiant-designantdreactantantd-vueenterprisefrontendui-designvue-antdvue-antd-uivue3vuecomponent
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.1 KiB
83 lines
3.1 KiB
import type { ExtractPropTypes, PropType } from 'vue'; |
|
|
|
export type BeforeUploadFileType = File | Blob | boolean | string; |
|
|
|
export type Action = string | ((file: RcFile) => string | PromiseLike<string>); |
|
|
|
export const uploadProps = () => { |
|
return { |
|
capture: [Boolean, String] as PropType<boolean | 'user' | 'environment'>, |
|
multipart: { type: Boolean, default: undefined }, |
|
name: String, |
|
disabled: { type: Boolean, default: undefined }, |
|
componentTag: String as PropType<any>, |
|
action: [String, Function] as PropType<Action>, |
|
method: String as PropType<UploadRequestMethod>, |
|
directory: { type: Boolean, default: undefined }, |
|
data: [Object, Function] as PropType< |
|
Record<string, unknown> | ((file: RcFile | string | Blob) => Record<string, unknown>) |
|
>, |
|
headers: Object as PropType<UploadRequestHeader>, |
|
accept: String, |
|
multiple: { type: Boolean, default: undefined }, |
|
onBatchStart: Function as PropType< |
|
(fileList: { file: RcFile; parsedFile: Exclude<BeforeUploadFileType, boolean> }[]) => void |
|
>, |
|
onReject: Function as PropType<(fileList: RcFile[]) => void>, |
|
onStart: Function as PropType<(file: RcFile) => void>, |
|
onError: Function as PropType< |
|
(error: Error, ret: Record<string, unknown>, file: RcFile) => void |
|
>, |
|
onSuccess: Function as PropType< |
|
(response: Record<string, unknown>, file: RcFile, xhr: XMLHttpRequest) => void |
|
>, |
|
onProgress: Function as PropType<(event: UploadProgressEvent, file: RcFile) => void>, |
|
beforeUpload: Function as PropType< |
|
( |
|
file: RcFile, |
|
FileList: RcFile[], |
|
) => BeforeUploadFileType | Promise<void | BeforeUploadFileType> |
|
>, |
|
customRequest: Function as PropType<(option: UploadRequestOption) => void>, |
|
withCredentials: { type: Boolean, default: undefined }, |
|
openFileDialogOnClick: { type: Boolean, default: undefined }, |
|
prefixCls: String, |
|
id: String, |
|
onMouseenter: Function as PropType<(e: MouseEvent) => void>, |
|
onMouseleave: Function as PropType<(e: MouseEvent) => void>, |
|
onClick: Function as PropType<(e: MouseEvent | KeyboardEvent) => void>, |
|
}; |
|
}; |
|
|
|
export type UploadProps = Partial<ExtractPropTypes<ReturnType<typeof uploadProps>>>; |
|
|
|
export interface UploadProgressEvent extends Partial<ProgressEvent> { |
|
percent?: number; |
|
} |
|
|
|
export type UploadRequestMethod = 'POST' | 'PUT' | 'PATCH' | 'post' | 'put' | 'patch'; |
|
|
|
export type UploadRequestHeader = Record<string, string>; |
|
|
|
export interface UploadRequestError extends Error { |
|
status?: number; |
|
method?: UploadRequestMethod; |
|
url?: string; |
|
} |
|
|
|
export interface UploadRequestOption<T = any> { |
|
onProgress?: (event: UploadProgressEvent) => void; |
|
onError?: (event: UploadRequestError | ProgressEvent, body?: T) => void; |
|
onSuccess?: (body: T, xhr?: XMLHttpRequest) => void; |
|
data?: Record<string, unknown>; |
|
filename?: string; |
|
file: Exclude<BeforeUploadFileType, File | boolean> | RcFile; |
|
withCredentials?: boolean; |
|
action: string; |
|
headers?: UploadRequestHeader; |
|
method: UploadRequestMethod; |
|
} |
|
|
|
export interface RcFile extends File { |
|
uid: string; |
|
}
|
|
|