Skip to content

Form 表单 ​

何时使用 ​

收集、校验并提交一组表单数据时使用。支持嵌套字段路径,如 user.email。

基础校验 ​

综合表单 ​

组合输入框、单选、多选、选择器、开关等控件。

×
0 / 80

顶部标签 ​

API ​

Form Props ​

属性说明类型默认值必填
model表单数据对象,字段需可响应式Record<string, unknown>—是
rules校验规则表,key 支持嵌套路径如 user.emailFormRules{}否
disabled禁用整表内可继承的控件booleanfalse否
size向下提供的默认尺寸'small' | 'default' | 'large'—否
labelWidth统一标签宽度,如 '88px'string—否
labelPosition标签布局'left' | 'right' | 'top''right'否

FormRules / FormRule ​

字段说明类型
required是否必填boolean
message错误文案string
trigger触发时机,如 'blur' / 'change'string | string[]
min / max字符串长度或数组长度限制number
pattern正则校验RegExp
type期望类型'string' | 'number' | 'boolean' | 'array'
validator自定义异步/同步校验(rule, value, callback) => void

Form Expose ​

通过 ref 调用:

方法说明签名
validate校验全部已注册字段() => Promise<boolean>
validateField校验单个字段(prop: string) => Promise<boolean>
resetFields恢复各字段初始值并清空校验() => void
clearValidate清空校验态;可传字段名或字段名数组(props?: string | string[]) => void

Form Slots ​

插槽名说明
default放置若干 DanFormItem

FormItem Props ​

属性说明类型默认值必填
label标签文本string—否
prop对应 model 的字段路径,支持 a.b.cstring—校验时必填
required强制显示必填星号;不传则根据 rules 推断boolean—否
labelWidth覆盖 Form 的标签宽度string—否

FormItem Slots ​

插槽名说明
default表单控件(Input / Select 等)
label自定义标签内容

FormItem 行为 ​

  • 挂载时记录初始值,供 resetFields 使用。
  • 子控件触发 change / blur 时按 rule.trigger 过滤后校验。
  • 校验失败时在控件下方显示首条错误信息。

注意事项 ​

  • model 请使用 reactive / ref 对象,确保双向绑定生效。
  • 嵌套路径如 profile.email 要求 model.profile 事先存在。