UNPKG

taro-ui-vue3

Version:

Taro UI Rewritten in Vue 3.0

160 lines (148 loc) 4.02 kB
import { BaseEventOrig, ITouchEvent } from '@tarojs/components/types/common' import { InputProps } from '@tarojs/components/types/Input' import AtComponent from './base' declare type OmitInputProps = Omit< InputProps, | 'className' | 'style' | 'type' | 'onBlur' | 'onFocus' | 'onChange' | 'onConfirm' | 'onKeyboardHeightChange' > declare type InputFunction<T extends string | number, U = any, R = void> = ( value: T, event?: BaseEventOrig<U> ) => R declare type InputBaseEventDetail = { /** 输入值 */ value: string | number } export declare type InputEventDetail = InputBaseEventDetail & { /** 光标位置 */ cursor: number /** 键值 */ keyCode: number } export declare type FocusEventDetail = InputBaseEventDetail & { /** 键盘高度 */ height: number } export declare type BlurEventDetail = InputBaseEventDetail export declare type ConfirmEventDetail = InputBaseEventDetail export declare type KeyboardHeightEventDetail = { /** 键盘高度 */ height: number /** 持续时间 */ duration: number } export interface AtInputProps extends AtComponent, OmitInputProps { /** * 输入框的唯一标识,有传入点击 title 会聚焦输入框 */ name: string /** * 输入框左侧标题,若传入为空,则不显示标题 */ title?: string /** * 输入框类型 * @defalut 'text' */ type?: 'text' | 'number' | 'password' | 'phone' | 'idcard' | 'digit' /** * 是否出现错误 * @default false */ error?: boolean /** * 是否显示清除按钮,需要传入 onChange 事件来改变 value * @default false */ clear?: boolean /** * 是否显示下划线边框 * @default true */ border?: boolean /** * 是否禁止输入,禁止点击按钮 * @default false */ disabled?: boolean /** * 占位符 */ placeholder?: string /** * 指定 placeholder 的样式,只在小程序有效 */ placeholderStyle?: string /** * 指定 placeholder 的样式类,只在小程序有效 */ placeholderClass?: string /** * 是否可编辑 * @default true */ editable?: boolean /** * 键盘弹起时,是否自动上推页面 * @default false */ adjustPosition?: boolean /** * 是否自动聚焦 * @default false */ autoFocus?: boolean /** * 是否聚焦 * @default false */ focus?: boolean /** * 是否必填 * @default false */ required?: boolean /** * 最大长度 * @default 140 */ maxLength?: number /** * 输入框失去焦点时触发的事件,v2.0.3 版本可以获取 event 参数 */ onBlur?: InputFunction<string | number, BlurEventDetail> /** * 输入框被选中时触发的事件,v2.0.3 版本可以获取 event 参数 */ onFocus?: InputFunction<string | number, FocusEventDetail> /** * 输入框值改变时触发的事件,开发者可通过 onChange 事件或 v-model:value 来更新 value 值变化,使用 v-model 时,无需 onChange 函数。 * 小程序中,如果想改变 value 的值,需要 return value 从而改变输入框的当前值, v2.0.3 版本可以获取 event 参数 */ onChange?: InputFunction<string | number, InputEventDetail, any> /** * 点击完成按钮时触发,v2.0.3 版本可以获取 event 参数 */ onConfirm?: InputFunction<string | number, ConfirmEventDetail> /** * 当 editable 为 false 时,点击组件触发的事件,v2.3.3 版本可以获取 event 参数 */ onClick?: (event?: ITouchEvent) => void /** * 键盘高度发生变化的时候触发此事件 */ onKeyboardHeightChange?: ( event?: BaseEventOrig<KeyboardHeightEventDetail> ) => void /** * 点击错误按钮触发的事件,v2.3.3 版本可以获取 event 参数 */ onErrorClick?: (event?: ITouchEvent) => void }