Skip to content

表单基础

基础用法

传入 columns 即可快速构建一个表单。

名称
状态
标签
执行进度
评分
是否显示
图片
时间
数量
城市
地区
要求
梦想
到期时间
说明
0 / 10

自定义排版

每一个表单默认是使用 ElRowElCol 组件进行排版的。

可以通过 rowPropscolProps 自定义全局排版,其中每个 column 都支持 colProps 配置项,它将覆盖全局的 colProps 配置项。

名称
状态
标签
执行进度
评分
是否显示
图片
时间
数量
城市
地区
要求
梦想
到期时间
说明
0 / 10

多级显示

columns 的 prop 支持 x.y.z 形式的 多(无限)级数据形式。

文本
我是一段有想法的文本 - 自定义
name
tag
tag1
请选择

隐藏 label

表单整体的 showLabel 设置为 false 时, 隐藏 label。配置 columns 中的 showLabel 可以控制单个表单项的 label 是否显示,优先级会更高。

名称
名称1
名称2
状态

options 字典

column 中配置 options 属性来给 ElSelectElCascader 等表单组件添加字典数据,支持数组,computed、函数和 Promise。

ProForm 内置字典缓存功能,无需担心重复调用接口问题。

如果 options 的 key 不是 labelvalue,则通过 optionField 指定 labelvalue 的字段。

状态
状态
城市
地区
要求
要求1
梦想

数据属性联动

状态
要求1
名称1
标签1
名称2
标签2

v-model 修饰符的使用

对于输入框想添加 .trim.number.lazy 这些修饰符,可以配置 columnselPropsmodelModifiers 属性。

autocomplete
input
input
textarea

width 指定宽度

通过 width 配置表单的宽度,默认为 100%

名称
状态
标签
执行进度
评分
是否显示
图片
时间
数量

divider 分割线

elel-divider 时,可以传入 elProps.labelSize 来指定 label 大小。

底部按钮位置

通过 footerAlign 配置底部按钮的位置,可选值有 leftcenterright

原因
状态

底部按钮插槽

通过 footer 插槽可以自定义底部按钮。

原因
状态

如果您只想额外添加底部按钮,可以通过 footer-before(前) 或 footer-after(后) 插槽进行拓展。

这两个插槽可以接收三个参数,分别是:

  • handleSubmit:点击提交按钮时触发的函数
  • handleReset:点击重置按钮时触发的函数
  • model:表单数据

Tip 图标自定义

通过 tooltip-icon 插槽,可以自定义 Tip 图标。

输入框

树形表单

eltree 时,将使用 Teek 基于 ElTree 封装的树形表单,elProps 支持配置 ElTree 的所有属性。

除了 ElTree 的属性外,还支持以下属性:

  • checkBaseValueTypev-model 返回的格式,可选值为 keysnodes,其中 keys 返回选中的节点 nodeKeynodes 为返回选中的节点,默认 keys
  • expandSelected:初始化时存在默认选中的节点,是否展开选中节点的所有父节点,默认 false
  • checkbox:是否开启工具栏,默认 false
  • search:是否开启搜索功能,默认 false
  • select:是否开启全选/全不选功能,默认 false
获取 keys
暂无数据
{ "tree": [ 1 ] }

所有内置的 ElementPlus 表单

在项目里,除了 ElementPlus 的表单类型外,还支持以下类型:

  • WangEditor:富文本编辑器
  • Tinymce:富文本编辑器
  • IconPicker:图标选择器
autocomplete
cascader
cascader-multiple
checkbox
color-picker
year
years
month
date
dates
datetime
week
datetimerange
daterange
monthrange
select
select-multiple
input
input-number
textarea
4 / 10
rate
switch
radio
slider
time-picker
time-select
transfer

tree-select
请选择
input-tag
tagtag1
select-v2
select-v2-multiple
mention
segmented
checkbox-select
checkbox-select-multiple
tree
暂无数据
text
{ "autocomplete": "vue", "cascader": [ "0", "0-0", "0-0-0" ], "cascaderMultiple": [ [ "0", "0-0", "0-0-0" ], [ "0", "0-0", "0-0-1" ], [ "0", "0-0", "0-0-2" ] ], "checkbox": [ "0" ], "colorPicker": "rgba(255, 69, 0, 0.68)", "year": "2024", "years": [ "2024", "2005" ], "month": "2024-02", "date": "2024-03-05", "dates": [ "2024-03-05", "2024-03-06" ], "datetime": "2024-03-19 00:00:00", "week": "2024-03-19", "datetimerange": [ "2024-03-07 00:00:00", "2024-03-09 00:00:00" ], "daterange": [ "2024-02-29", "2024-03-29" ], "monthrange": [ "2024-03", "2024-05" ], "select": "0", "selectMultiple": [ "0", "1" ], "input": "单行文本", "textarea": "多行文本", "inputNumber": 4, "rate": 3, "switch": true, "radio": "0", "slider": 50, "timePicker": "2024-03-18 09:55:31", "timeSelect": "09:55:31", "transfer": [ 1, 2, 3, 4, 5, 6 ], "plusDatePicker": [ "2024-03-18 09:55:31", "2024-03-20 09:55:31" ], "inputTag": [ "tag", "tag1" ], "selectV2": "Option 1", "selectV2Multiple": [ "Option 1", "Option 2" ], "mention": "Fuphoenixes", "segmented": "Mon", "checkboxSelect": "option1", "checkboxSelectMultiple": [ "option1", "option2" ], "text": "我是一段文本" }