Skip to content

Form 表单

动态配置式表单组件,支持模板式和函数式两种用法。

基础用法

通过配置快速生成表单。

自定义 label 与 error

TFormItemlabelerror 除字符串外,可配置为 { compType, compProps } 使用动态组件;error 为字符串时作为插槽名,对应插槽内容会渲染在表单项错误区域。

  • labelstring 时作为文本或插槽名;对象时用 getComponent(compType) 渲染,常用于 Tooltip、图标等。
  • errorstring 时作为插槽名;对象时用动态组件渲染错误区域。

动态组件

支持使用 compType 配置不同的表单组件类型,compProps 传递组件属性。

插槽

通过 prop 对应插槽名称。

函数式用法

使用 useEplForm 创建表单组件。

API

属性

属性名说明类型默认值
modelValue / v-model表单数据对象object
items表单项配置TFormItem[][]
rules表单验证规则FormRules

TFormItem 配置

属性名说明类型
label标签文本或自定义标签组件string | { compType: TCompType; compProps?: unknown }
prop字段名string
placeholder占位文本string
span栅格占据的列数number
hidden是否隐藏boolean
compType组件类型string | VNode | Component
compProps组件属性object
error自定义错误展示(插槽名或动态组件)string | { compType: TCompType; compProps?: unknown }

方法

EplForm 通过 ref 暴露底层 ElForm 实例,拥有 ElForm 的全部方法,常用如下:

方法名说明类型
validate验证表单() => Promise<boolean>
resetFields重置表单() => void

useEplForm

基于 useComponent 的函数式创建表单,返回表单组件与实例 ref,通过实例 ref 调用 validate、resetFields 等方法。

ts
const [FormComp, formRef] = useEplForm({
  modelValue,
  rules,
  items,
});
// 校验:formRef.value?.validate()
// 重置:formRef.value?.resetFields()

参数

参数名说明类型
modelValue表单数据对象Ref<object>
rules表单验证规则FormRules
items表单项配置TFormItem[] | ComputedRef<TFormItem[]>

返回值

返回值为元组(也可解构为命名属性):[formComp, formRef]

属性名说明类型
formComp表单组件Component
formRef表单实例的 RefRef<FormInstance | undefined>(ElForm 实例)

通过 formRef.value 调用 ElForm 实例方法,如 validateresetFields 等。