yanzhen-design-vue
Version:
48 lines (47 loc) • 1.74 kB
TypeScript
import { FileType as AFileType, UploadFile as AUploadFile } from 'ant-design-vue/es/upload/interface';
import { isImageUrl as isAntImageUrl } from 'ant-design-vue/es/upload/utils';
import { RcFile } from 'ant-design-vue/es/vc-upload/interface';
import { Ref } from 'vue';
export interface UploadFileOriginInfo {
fileIcon?: string;
fileName?: string;
fileAddress?: string;
url?: string;
name?: string;
createUserName?: string;
insertTimeForHis?: string;
[key: string]: any;
}
export type UploadRequestKeyType = 'getPrivateFileUrls' | 'previewFile' | 'customRequest';
export type UploadRequestMapType = {
[k in UploadRequestKeyType]: Promise<any>;
};
export type UploadFile<T = any> = AFileType | UploadFileType<T>;
export type UploadFileList<T = any> = string | UploadFile<T>;
export type UploadFiles<T> = T | T[];
export interface UploadFileType<T = any> extends AUploadFile<T> {
originInfo?: UploadFileOriginInfo;
isImage?: boolean;
}
export interface UploadFileRuleValue<T = any> {
file: UploadFile<T> | Exclude<File | Blob | boolean, File | boolean> | RcFile;
fileList?: UploadFileList<T>[];
selectFileList?: UploadFileList<T>[];
isImageType?: boolean;
}
export interface UploadFileRule {
message: string | Ref<string>;
validator: (rule: UploadFileRule, value: UploadFileRuleValue) => boolean;
}
export interface UploadFileInfoOptions {
actionType?: 'set' | 'get';
isImageUrl?: typeof isAntImageUrl;
percent?: Record<string, number>;
originInfos?: Record<string, Partial<UploadFileOriginInfo>>;
map?: Record<UploadFileType['uid'], UploadFileType>;
}
export interface MaxSizeErrorType {
type: string;
useDocMsg: boolean;
maxSize: number;
}