Skip to content

FormDrawer ​

FormDrawer 是配置驱动的表单抽屉,支持 add / edit / view 三种模式、声明式 dependencies 联动、字段级 rules 校验。

add 模式 ​

新填表单,所有字段可编辑。

edit 模式 ​

预填值,字段可编辑。

view 模式 ​

只读,footer 仅显示「关闭」。

声明式联动 ​

dependencies 配置字段显隐。

API ​

Props ​

属性类型默认值说明
modelValueboolean—是否显示抽屉,v-model(必填)
titlestring—抽屉标题(必填)
formDataRecord<string, unknown>—表单数据对象,字段值双向引用(必填)
fieldsFormField[]—字段定义(必填)
rulesRecord<string, FormFieldRule[]>—el-form 级校验规则
loadingbooleanfalse提交 loading,控制确认按钮与字段禁用
widthstring'500px'抽屉宽度
mode'add' | 'edit' | 'view''add'抽屉模式;view 时全字段禁用且 footer 仅显示「关闭」

Events ​

事件名参数说明
update:modelValue(value: boolean)抽屉显隐变化
submit(data: Record<string, unknown>)点击「确认」且表单校验通过后触发,data 为 formData 的浅拷贝

Slots ​

名称说明
field-<prop>自定义某个字段的控件,<prop> 对应 FormField.prop;作用域参数:field: FormField

TIP

组件 footer 由内部根据 mode 渲染(view 仅「关闭」,其余为「取消」「确认」),未对外暴露 footer 插槽。

暴露方法 ​

方法签名说明
validateField(prop: string) => Promise<void>手动触发某字段校验,用于联动后重校验关联字段

FormField 类型 ​

字段类型默认说明
propstring—字段名(必填)
labelstring—标签(必填)
typeFormFieldType—控件类型(必填),见下
optionsFormFieldOption[]—select / radio 的选项
treeDataTreeNodeData[]—treeSelect 的树形数据
treeProps{ label: string; children: string; disabled?: string }—treeSelect 的节点 props
placeholderstring—占位文案,默认走 i18n
defaultunknown—字段默认值
spannumber24el-col span
disabledbooleanfalse是否禁用
dependenciesFormFieldDependency[]—声明式联动;所有 dependency.show 返回 true 时字段才可见
rulesFormFieldRule[]—字段级校验规则,透传到 el-form-item

FormFieldType 取值:input / textarea / number / select / radio / checkbox / switch / date / password / treeSelect / cascader。

FormFieldDependency 类型 ​

字段类型说明
triggerstring触发字段名
show(values: Record<string, unknown>, ctx: { mode: FormDrawerMode }) => boolean返回 true 时字段可见,values 为 formData

基于 MIT 协议发布