Input 输入框
通过鼠标或键盘输入字符
基础用法
Input输入框的type为'text', 是type的默认值,所以可以不配置
显示配置
禁用状态
通过 disabled 属性指定是否禁用 input 组件
显示配置
复合型输入框
后置内容
可以通过配置append来增加一个后置内容。
显示配置
可以通过配置append来增加一个后置按钮。
显示配置
过滤内容
设置filter为'number',可以将值转换成数值,也可以配置一个函数来自由转换。
显示配置
去掉首尾空格
设置trim为true',可以去掉首尾空格。
显示配置
显示详情
通过配置 tooltip,在输入时显示提示内容。
显示配置
Input Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| name | 绑定值 | string | — | — |
| text | 表单标签 | string | — | — |
| placeholder | 输入框占位文本 | string | — | — |
| disabled | 是否禁用 | boolean / FilterFunction | — | false |
| clearable | 是否可清空 | boolean | — | true |
| tooltip | 输入时显示内容 | string / ToolTipConfigType | — | — |
| trim | 是否去掉首尾空格 | boolean | — | false |
| filter | 过滤值 | string / Function | number | - |
| prepend | 前置内容 | string | — | - |
| append | 后置内容 | string / Object | — | - |
| onChange | 值变化时触发的函数 | OnChangeHandler | — | - |
查看 FilterFunction / OnChangeHandler / ToolTipConfigType 及关联类型定义
ts
export type FilterFunction<T = boolean> = (
mForm: FormState | undefined,
data: {
model: FormValue;
values: FormValue;
parent?: FormValue;
formValue: FormValue;
prop: string;
config: any;
index?: number;
getFormValue: (prop: string) => any;
},
) => T;ts
export type OnChangeHandler = (mForm: FormState | undefined, value: any, data: OnChangeHandlerData) => any;ts
export interface OnChangeHandlerData {
model: FormValue;
values?: Readonly<FormValue> | null;
parent?: FormValue;
formValue?: FormValue;
config: Readonly<any>;
prop: string;
changeRecords: ChangeRecord[];
setModel: (prop: string, value: any) => void;
setFormValue: (prop: string, value: any) => void;
}ts
export interface ChangeRecord {
propPath?: string;
value: any;
}ts
export type FormValue = Record<string | number, any>;ts
export type ToolTipConfigType = string | { text?: string; placement?: string };配置类型
查看 TextConfig 配置类型定义
ts
export interface TextConfig extends FormItem, Input {
type?: 'text';
tooltip?: string;
/** 是否可清空 */
clearable?: boolean;
prepend?: string;
/** 后置元素,一般为标签或按钮 */
append?:
| string
| {
text: string;
value?: 0 | 1;
type: 'button';
handler?: (
mForm: FormState | undefined,
data: {
model: any;
values?: Readonly<FormValue> | null;
formValue?: FormValue;
setModel: (prop: string, value: any) => void;
setFormValue: (prop: string, value: any) => void;
},
) => void | Promise<void>;
};
}ts
export interface FormItem {
/** vnode的key值,默认是遍历数组时的index */
__key?: string | number;
/** 表单域标签的的宽度,例如 '50px'。支持 auto。 */
labelWidth?: string | number;
/** label 标签的title属性 */
labelTitle?: string;
className?: string;
/** 字段名 */
name?: string | number;
/** 额外的提示信息,和 help 类似,当提示文案同时出现时,可以使用这个。 */
extra?: string | FilterFunction<string>;
/** 配置提示信息 */
tooltip?: ToolTipConfigType | FilterFunction<ToolTipConfigType>;
/** 是否置灰 */
disabled?: boolean | FilterFunction;
/** 使用表单中的值作为key,例如配置了text,则使用model.text作为key */
key?: string;
/** 是否显示 */
display?: boolean | 'expand' | FilterFunction<boolean | 'expand'>;
/** 值发生改变时调用的方法 */
onChange?: OnChangeHandler;
/** label 标签的文本 */
text?: string | FilterFunction<string>;
/** 右侧感叹号 */
tip?: string;
filter?: 'number' | OnChangeHandler;
/** 是否去除首尾空格 */
trim?: boolean;
/** 默认值 */
defaultValue?: any | DefaultValueFunction;
/** 表单验证规则 */
rules?: Rule[];
extensible?: boolean;
dynamicKey?: string;
/** 是否需要显示`展开更多配置` */
expand?: boolean;
style?: Record<string, any>;
fieldStyle?: Record<string, any>;
labelPosition?: 'top' | 'left' | 'right';
}ts
export interface Input {
/** 输入框没有内容时显示的文案 */
placeholder?: string;
}append Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| type | 内容类型 | string | button | — |
| text | 文本内容 | string | — | — |
| handler | 点击操作 | Function | — | - |