nav: path: /components group: title: 信息输入 order: 12
Form 表单包含数据录入、校验以及相应的样式。Form 组件需要 component2 支持。
使用 validateStatus: success
及 footer slot
来自定义错误样式。
通过使用 FormItem、createForm 可自定义表单项。示例里 form-checklist
、form-location
为自定义表单项组件。
所有 Form 组件都包括的属性
| 属性 | 说明 | 类型 | 默认值 |
| -----|-----|-----|-----|
| dependencies | 设置依赖字段,查看详细说明 | string[] | - |
| footer | 底部 slot,接收 errors、status | slot | - |
| name | 名称 | string | - |
| label | 文本 | string | - |
| labelWidth | 文本宽度 | string | - |
| position | 布局,可选 horizontal
vertical
| string | horizontal |
| validateStatus | 校验状态,如不设置,则会根据校验规则自动生成,可选 default
success
error
validating
| string | - |
| help | 提示信息,如不设置,则会根据校验规则自动生成 | string | - |
| header | 顶部 slot,接收 errors、status | slot | - |
| tooltip | 表单项提示信息 | string|slot | - |
| required | 必填样式设置。如不设置,则会根据校验规则自动生成 | boolean | false |
| message | 校验错误信息。如不设置,则会根据校验规则自动生成 | string | false |
| requiredMark | 必填选填的标记样式,可选 asterisk
text-required
text-optional
| string | asterisk |
属性 | 说明 | 类型 | |
---|---|---|---|
rules | 可选,校验规则 | 查看rules | |
initialValues | 可选,初始值 | Record | |
validateMessages | 可选,校验消息 | 查看validateMessages |
属性 | 说明 | 类型 | |
---|---|---|---|
addItem | 添加表单项 | (formItem: Ref) => void | |
updateRules | 更新 form 的校验规则,每次都需要传入全量的 rules | (rules: Rules) => void, Rules 的类型可以查看rules | |
getFieldValue | 得到表单项的值 | (name: string) => any | |
getFieldsValue | 获取一组字段名对应的值。不传 nameList 则返回全部 fields 对 | (nameList?: string[]) => Record | |
getFieldValidatorStatus | 得到表单校验状态 | (name: string) => ValidatorStatus | |
getFieldsValidatorStatus | 得到一组表单校验状态。不传 nameList 则返回全部 fields 对 | (nameList?: string[]) => Record | |
reset | 重置表单为初始值 | () => void | |
isFieldTouched | 判断表单项是否被修改过 | () => boolean | |
onValueChange | 侦听指定表单项的值修改,查看详细说明 | (name: string, (changedValue: any, allValues: Record) => void) => void | |
onValuesChange | 侦听表单项的值修改,查看详细说明 | ((changedValues: Record, allValues: Record) => void) => void | |
setFieldValue | 设置表单项的值 | (name: string, value: any) => void; | |
setFieldsValue | 设置表单项的值 | (values: Record) => void; | |
setFieldValidatorStatus | 设置表单校验状态 | (name: string, validatorStatus: ValidatorStatus) => void | |
setFieldsValidatorStatus | 设置一组表单校验状态 | (fieldsValidatorStatus: Record) => void | |
setInitialValues | 设置表单初始值 | (initialValues: Record) => void | |
submit | 提交表单,返回 promise 表单值,校验错误会抛出 | () => Promise> |
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
stepperClassName | 对应 Stepper 组件的 className |
string | - |
stepperStyle | 对应 Stepper 组件的 style |
string | - |
与 CheckGroup
相同,但添加了如下属性:
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
checkboxLabel | 对应 CheckGroup 组件的 label |
slot | - |
checkboxPosition | 对应 CheckGroup 组件的 position |
string | - |
与 RadioGroup
相同,但添加了如下属性:
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
radioLabel | 对应 RadioGroup 组件的 label |
slot | - |
radioPosition | 对应 RadioGroup 组件的 position |
string | - |
与 Picker
相同,但添加了如下属性:
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
arrow | 右侧箭头,可选 right 、up 、down ,传 true 为 right |
string | boolean | - |
与 DatePicker
相同,但添加了如下属性:
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
arrow | 右侧箭头,可选 right 、up 、down ,传 true 为 right |
string | boolean | - |
与 RangePicker
相同,但添加了如下属性:
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
arrow | 右侧箭头,可选 right 、up 、down ,传 true 为 right |
string | boolean | - |
与 CascaderPicker
相同,但添加了如下属性:
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
arrow | 右侧箭头,可选 right 、up 、down ,传 true 为 right |
string | boolean | - |
与 Slider
相同。
与 Selector
相同。
与 ImageUpload
相同。
createForm
是一个 mixin
,用于自定义表单项。
import { createForm } from 'antd-mini/es/Form/form';
Component({
mixins: [createForm()],
methods: {
onChange(value) {
this.emit('onChange', value);
},
},
});
createForm
会为组件增加以下内容:
data
{
formData: {
value: undefined, // 表单项的值
status: 'default', // 表单项的校验状态,包括 `default`、`success`、`error`、`validating`
errors: [], // 错误信息
},
}
methods
// 修改表单项时,需调用 `emit` 方法。自定义表单项组件在值改变时,应该调用此方法。
function emit(trigger: 'onChange' | 'onBlur' | 'onFocus', value: any): void;
想要了解更多方法,请参考 createForm
方法相关文档。使用 formData
和 emit
即可完成自定义表单项的实现。