taro-ui-vue3
Version:
Taro UI Rewritten in Vue 3.0
102 lines (93 loc) • 2.52 kB
TypeScript
import AtComponent from './base'
interface FileItem {
path: string
size: number
}
export interface File {
url: string
file?: FileItem
/**
* 图片上传的状态
* - `uploading`: 正在上传
* - `failed`: 上传失败
* - `done`: 上传成功
* @default "done"
* @since v1.0.0-alpha18
*/
status?: "uploading" | "failed" | "done"
/**
* 图片上传的状态文案
* @since 1.0.0-alpha18
*/
message?: string
/**
* 自定义字段
* @since 1.0.0-alpha18
*/
[propName: string]: any
}
export interface AtImagePickerProps extends AtComponent {
/**
* 图片文件数组, 元素为对象, 包含属性 url(必选)
*/
files: File[]
/**
* 图片预览模式,详见[微信开发者文档](https://developers.weixin.qq.com/miniprogram/dev/component/image.html)
* @default 'aspectFill'
*/
mode?: 'scaleToFill' | 'aspectFit' | 'aspectFill' | 'widthFix' | 'top' | 'bottom' | 'center' | 'left' | 'right' | 'top left' | 'top right' | 'bottom left' | 'bottom right'
/**
* 是否显示添加图片按钮
* @default true
*/
showAddBtn?: boolean
/**
* 是否支持多选
* @default false
*/
multiple?: boolean
/**
* 单行的图片数量,不能为 0 或负数
* @default 4
*/
length?: number
/**
* 最多可以选择的图片张数
* @since v2.0.2
*/
count?: number
/**
* 所选的图片的尺寸
* - `original`: 原图
* - `compressed`: 压缩图
* @default ["original", "compressed"]
* @since v2.0.2
*/
sizeType?: ("original" | "compressed")[]
/**
* 选择图片的来源
* - `album`: 从相册选图
* - `camera`: 使用相机
* - `user`: 使用前置摄像头 (仅H5纯浏览器使用)
* - `environment`: 使用后置摄像头 (仅H5纯浏览器)
* @default ["album", "camera"]
* @since v2.0.2
*/
sourceType?: ("album" | "camera" | "user" | "environment")[]
/**
* files 值发生变化触发的回调函数, operationType 操作类型有添加,移除,如果是移除操作,则index代表的是移除图片的索引
*/
onChange: (args: {
files: File[],
operationType: 'add' | 'remove',
index?: number
}) => void
/**
* 点击图片触发的回调
*/
onImageClick?: (index: number, file: Object) => void
/**
* 选择失败触发的回调
*/
onFail?: (message: string) => void
}