@ray-js/smart-ui-typings
Version:
@ray-js/smart-ui 智能小程序 UI 框架的类型声明文件
158 lines (157 loc) • 4.12 kB
TypeScript
import { VantComponent, VantEventHandler } from '../base';
type VantUploaderPreviewSize = string | number;
export interface VantUploaderProps {
/**
* 标识符,可以在回调函数的第二项参数中获取
*/
name?: string | number;
/**
* 接受的文件类型
*
* @default 'image'
*/
accept?: 'all' | 'media' | 'image' | 'file' | 'video';
/**
* 所选的图片的尺寸, 当`accept`为`image`类型时设置所选图片的尺寸
*
* @default ['original','compressed']
*/
sizeType?: ('original' | 'compressed')[];
/**
* 预览图和上传区域的尺寸,默认单位为`px`
*
* @default '80px'
*
* 数组模式
*
* @since `v1.10.3`
*/
'preview-size'?: VantUploaderPreviewSize | [VantUploaderPreviewSize, VantUploaderPreviewSize];
/**
* 是否在上传完成后展示预览图
*
* @default true
*/
'preview-image'?: boolean;
/**
* 是否在点击预览图后展示全屏图片预览
*
* @default true
*/
'preview-full-image'?: boolean;
/**
* 是否开启图片多选,部分安卓机型不支持
*
* @default false
*/
multiple?: boolean;
/**
* 是否禁用文件上传
*
* @default false
*/
disabled?: boolean;
/**
* 是否展示文件上传按钮
*
* @default true
*/
'show-upload'?: boolean;
/**
* 是否展示删除按钮
*
* @default true
*/
deletable?: boolean;
/**
* 图片或者视频选取模式,当`accept`为`image`类型时设置`capture`可选值为`camera`可以直接调起摄像头
*
* @default ['album','camera']
*/
capture?: ('album' | 'camera') | ('album' | 'camera')[];
/**
* 文件大小限制,单位为`byte`
*/
'max-size'?: number;
/**
* 文件上传数量限制
*/
'max-count'?: number;
/**
* 上传区域文字提示
*/
'upload-text'?: string;
/**
* 预览图裁剪模式,可选值参考小程序`image`组件的`mode`属性
*
* @default 'scaleToFill'
*/
'image-fit'?: string;
/**
* 是否开启文件读取前事件
*/
'use-before-read'?: boolean;
/**
* 当`accept`为`video`时生效
*/
camera?: 'back' | 'front';
/**
* 当`accept`为`video`时生效,是否压缩视频
*
* @default true
*/
compressed?: boolean;
/**
* 当`accept`为 `video` 时生效,拍摄视频最长拍摄时间,单位秒
*/
'max-duration'?: number;
/**
* 上传区域图标,可选值见 `Icon` 组件
*
* @default 'plus'
*/
'upload-icon'?: string;
}
export interface VantUploaderFile {
size: number;
type: string;
url: string;
thumb: string;
duration?: number;
height?: number;
width?: number;
}
export interface VantUploaderIndexDetail {
index: number;
}
export interface VantUploaderBaseReadEventDetail extends VantUploaderIndexDetail {
file: VantUploaderFile;
name: string;
}
export interface VantUploaderBeforeReadEventDetail extends VantUploaderBaseReadEventDetail {
callback: (ok: boolean) => void;
}
export interface VantUploaderEvents {
/**
* 文件读取前,在回调函数中返回 `false` 可终止文件读取,绑定事件的同时需要将`use-before-read`属性设置为`true`
*/
'bind:before-read'?: VantEventHandler<VantUploaderBeforeReadEventDetail>;
/**
* 文件读取完成后触发
*/
'bind:after-read'?: VantEventHandler<VantUploaderBaseReadEventDetail>;
/**
* 文件超出大小限制
*/
'bind:oversize'?: VantEventHandler<VantUploaderBaseReadEventDetail>;
/**
* 点击预览图片
*/
'bind:click-preview'?: VantEventHandler<VantUploaderIndexDetail>;
/**
* 删除图片
*/
'bind:delete'?: VantEventHandler<VantUploaderIndexDetail>;
}
export type VantUploader = VantComponent<VantUploaderProps, VantUploaderEvents>;
export {};