ivue-material-plus
Version:
A high quality UI components Library with Vue.js
59 lines (53 loc) • 1.35 kB
text/typescript
import {
UploaderFileListItem,
UploaderResultType,
UploaderMaxSize,
} from '../../../utils/helpers';
type PromiseOrNot<T> = T | Promise<T>;
export type UploaderAfterRead = (
items: UploaderFileListItem | UploaderFileListItem[],
detail: {
name: string | number;
index: number;
}
) => void;
export type UploaderBeforeRead = (
file: File | File[],
detail: {
name: string | number;
index: number;
}
) => PromiseOrNot<File | File[] | undefined>;
export interface Props {
type: string;
accept: string;
dragAccept?: any[];
multiple: boolean;
disabled: boolean;
resultType: UploaderResultType;
modelValue: UploaderFileListItem[];
maxSize: UploaderMaxSize;
maxCount: number | string;
afterRead: UploaderAfterRead;
beforeRead: UploaderBeforeRead;
name: number | string;
failedIcon: string;
deletable: boolean;
showUpload: boolean;
previewSize: number | string;
previewImage: boolean;
beforeDelete: any;
previewFullImage: boolean;
previewImageInitialIndex?: number;
bodyOverflow: boolean;
imageFit: string;
readonly: boolean;
capture?: string;
}
export interface Data {
fileList: UploaderFileListItem[];
dragOver: boolean;
imagePreview: boolean;
imagePreviewList: string[];
imagePreviewInitialIndex: number;
}