Skip to content

FormGroup 折叠表单组 ​

简介 ​

FormGroup 是 ElSpace 的高阶组件,用于把表单字段分组 —— 可选带标题、边框和折叠。 有 title 时会渲染边框,collapsible 打开后点标题即可收起 / 展开。

size、direction、alignment、wrap 等 ElSpace 的能力都会原样透传, 所以横向排列、纵向堆叠、自定义间距都可以直接用。

放在 Form 里使用时,校验失败会自动展开包含出错字段的分组: 收起状态下字段是被 display: none 藏起来的,FormItem 却仍然参与校验, 错误信息用户根本看不见。

代码演示 ​

基础用法 ​

有 title 时渲染标题与边框;没有 title 时只是一个分组容器,不渲染边框。

可折叠 ​

设置 collapsible 后点标题即可收起 / 展开,标题左侧会出现指示箭头。

collapsed 支持 v-model:collapsed,所以折叠状态也可以完全交给外部控制。

标题位置 ​

position 控制标题贴在左边、居中还是右边,默认在左。

边框样式 ​

border-style 支持 solid / dashed / dotted / none, 不设置时沿用 ElSpace 的边框变量(实线);none 可以只保留标题和留白。

自定义标题与提示 ​

用 title 插槽自定义标题内容(比如补一个标签),用 tooltip 插槽自定义标题旁边的提示气泡。

间距、方向与对齐 ​

size 默认 [32, 0](横向间距 32、纵向 0),传数组可以分别控制两个方向的间距。

alignment 在各项高度不一致时才有视觉效果 —— 比如下面第三个分组里,多行输入框比单行输入框高。

嵌套分组 ​

分组可以嵌套,内层同样可以折叠。

校验失败自动展开 ​

第二个分组默认收起,点「提交」后会自动展开;配合表单的滚动定位,能直接看到是哪个字段出错。

不需要这个行为时,把 switch-to-invalid 设为 false。

API ​

FormGroupProps ​

继承 element-plus 的 Space Attributes,并有以下额外属性。

属性描述类型默认值
alignment主轴对齐方式'stretch' | 'center' | 'flex-start' | 'flex-end''flex-start'
size间距number | 'default' | 'small' | 'large' | [number, number][32, 0]
wrap是否自动换行booleantrue
title分组标题,有标题时渲染边框VNodeChild-
tooltip标题旁的提示内容VNodeChild-
border-style边框样式'none' | 'solid' | 'dashed' | 'dotted'-
position标题位置'left' | 'right' | 'center''left'
collapsible是否可折叠boolean-
collapsed是否收起(支持 v-model:collapsed)boolean-
switch-to-invalid校验失败时自动展开,把出错的字段露出来booleantrue

FormGroupSlots ​

插槽名描述
default分组内容
title自定义标题
tooltip自定义提示内容

FormGroupEmits ​

事件名描述参数
update:collapsed折叠状态变化(collapsed: boolean)

基于 MIT 许可发布