Skip to content

配置项

FormColumn 配置项

属性名说明类型默认值
propElFormItemprop 属性,当表单数据 model 为对象时,prop 也是 modelkeystring
label标签,ElFormItemlabel 属性string / number
showLabel是否显示 label booleantrue
width表单组件宽度string / number
el使用的表单组件名string ElInput
elProps表单组件的 Props,会透传到表单组件object
elSlots表单组件的插槽object
options字典枚举数据array
optionsProp指定 Optionskey,优先从缓存获取对应 keyOptions 数据string
optionField指定 optionslabelvaluechildrendisabledkeyobject
colPropsElCol Propsobject
defaultValue表单属性的默认值any
order表单排序(从大到小)number
destroy是否销毁表单,true 销毁,false 不销毁,类似于 v-ifboolean / function false
hidden是否隐藏表单,true 隐藏,false 不隐藏,类似于 v-show boolean false
formItemPropsElFormItem propsobject
clearable是否显示清除按钮booleantrue
tooltiplabel 右侧 ElToolTip 提示string / object
valueFormat表单绑定的值格式string
renderLabel自定义 label 标题function
renderLabelHTML自定义 label 内容渲染(返回 HTML),优先级低于 render,高于插槽function
render自定义渲染 ElFormItem 下的表单组件function
editable是否为编辑态booleantrue
...其他扩展属性,支持所有 ElFormItem Attributes......

El 组件类型

el 属性除了输入大驼峰 Camel-Case 语法,也支持输入烤肉串 Kebab-Case 语法,例如:输入 ElInput,也可以输入 el-input

El 字面量对应 ElementPlus 组件对应内置组件说明
ElInputel-input
ElInputNumberel-inputNumber
ElSelectel-select
ElSelectV2el-selectV2
ElTreeel-tree
ElTreeSelectel-treeSelect
ElCascaderel-cascader
ElDatePickerel-datePicker根据 type 自动设置 valueFormatYYYY-MM-DD HH:mm:ss 等格式
ElTimePickerel-timePicker根据 type 自动设置 valueFormatYYYY-MM-DD HH:mm:ss 等格式
ElTimeSelectel-timeSelect
ElSwitchel-switch
ElSliderel-slider
ElRadioel-radio
ElRadioGroupel-radio-group
ElRadioButtonel-radio-button
ElCheckboxel-checkbox
ElCheckboxGroupel-checkbox-group
ElCheckboxButtonel-checkboxButton
ElAutocompleteel-autocomplete
ElRateel-rate
ElColorPickerel-colorPicker
ElTransferel-transfer
ElDividerel-divider
ElUploadel-upload
ElInputTagel-input-tag
ElMentionel-mention
ElSegmentedel-segmented
ElTextel-text
CheckBoxSelectcheck-box-select基于 ElCheckboxElCheckboxGroupElRadio 二次封装
WangEditorwang-editor富文本编辑器
Tinymcetinymce富文本编辑器
IconPickericon-picker图标选择器

自定义 El 组件类型

除了上述的 El 组件类型,你可以自定义一些 El 组件,然后通过字面量快速使用。

pro/form-item/src/helper/components.ts 文件中添加自定义 El 组件。

FormElComponentEnum 新增 El 字面量,Key 要求全大写,使用 _ 连接单词,Value 要求大驼峰命名,如:

ts
export enum FormElComponentEnum {
  MY_COMPONENT = "MyComponent",
}

formELComponentsMap 实现 El 组件,组件引入的命名和上方 FormElComponentEnum 新增 Value 一致。

ts
import { MyComponent } from "@/components/core/point-tag";

const formELComponentsMap: Record<FormPascalCaseComponentName, Component> = {
  MyComponent, // 和 FormElComponentEnum 的 Value 命名一致
};

超级组件会给自定义 El 组件传入一些 Props 属性,具体请看在 pro/form-item/src/index.vue 的最后代码( <component v-else-if="formEl" :is="formELComponentsMap[formEl]"></component> 处)。

你可以参考 pro/form-item/src/components 目录下的组件,这些是内置的自定义 El 组件。

提示

如果你的组件比较简单,不想额外定义新的组件文件,可以使用 defineComponent 现场定义。

ProForm 配置项

Attributes

属性名说明类型默认值
model-value / v-model表单绑定值object
columns表单配置信息array FormColumn[][]
elFormPropsElForm Propsobject {}
rowPropsElRow Propsobject RowProps
colPropsElCol Propsobject ColProps
flexLayout是否使用栅格布局booleantrue
cleanModel动态 model,如果 column 发生变化,则重新渲染 model 表单数据(将不存在 columnpropmodel 中去掉)booleanfalse
notCleanModelKeys清除 model 不存在的 prop 时,指定保留 prop,仅当 cleanModeltrue 生效array []
showLabel是否显示 labelbooleantrue
clearable是否显示清除图标,作用于所有表单booleantrue
width表单组件宽度string / number100%
showErrorTip表单提交时,如果校验失败,是否使用 ElMessage 提示错误信息booleantrue
showFooter是否显示 Footer(两个按钮)booleantrue
showReset是否显示重置按钮bolleantrue
footerAlign底部按钮对齐方式string right
submitLoading提交按钮 loadingbooleanfalse
submitText提交按钮文字string提交
resetText重置按钮文字string重置
preventNativeSubmit是否阻止表单提交时默认的表单提交行为(即自动校验表单)booleanfalse
...其他扩展属性,支持所有 ElForm Attributes......

Events

名称说明类型
register注册 ProForm 组件实例和 ElForm 实例function
submit点击提交按钮校验通过触发的事件function
reset点击重置按钮触发的事件function
submitError点击提交按钮校验不通过触发的事件function
change表单变化触发的事件function
...其他扩展属性,支持所有 ElForm Events...

提示

如 el-form 的 validate,如下示例

示例:

模板中

html
<ProForm @validate="handleValidate" />

setup 中

ts
const handleValidate = (prop: FormItemProp, isValid: boolean, message: string) => {
  console.log(dropdownItem);
};

Slots

插槽名说明作用域插槽参数
default表单的内容
form-main覆盖表单 FormMain 组件
footer-before表单底部按钮前
footer表单底部按钮
footer-after表单底部按钮后
tooltip-icontooltip icon
'prop'自定义表单组件,自动根据配置项的 prop 生成对应的插槽
'prop-label'自定义表单项 label,自动根据配置项的 prop 生成对应的插槽

Exposes

名称说明类型
model表单数据object
setValues设置 model 的值function
setProps设置 ProForm 组件的 propsfunction
setColumn设置 columnfunction
addColumn添加 columnfunction
delColumn删除 columnfunction
submitForm点击提交按钮校验通过触发的事件function
resetForm点击重置按钮触发的事件function
elFormInstanceElForm 实例object
proFormMainInstanceFormMain 实例object
getOptionsMap获取所有 options 缓存数据function
getElFormItemInstance获取指定 propElFormItem 实例function
getElInstance获取表单组件实例function

拿到 elFormInstance 后支持所有 ElForm 方法

提示

validate, validateField