Skip to content

Table 表格 - 合并与汇总

Table 组件支持合并行列和显示汇总行。

合并行或列

通过 span-method 属性实现合并行或列。

日期
姓名
省份
城市
地址
2024-01-01
张三
北京
朝阳区
建国路88号
北京
海淀区
中关村大街
2024-01-02
李四
上海
浦东新区
陆家嘴
上海
静安区
南京西路
2024-01-03
王五
广东
天河区
珠江新城
合并行

合并表头

通过 columnschildren 属性定义多级表头。父列设置 labelchildren,子列是实际的数据列。表格会自动计算 colspanrowspan,生成分组表头。

基本信息
地址信息
姓名
年龄
省份
城市
详细地址
邮编
张三
28
北京
朝阳区
建国路88号
100020
李四
32
上海
浦东新区
陆家嘴环路
200120
王五
25
广东
天河区
珠江新城
510623
赵六
30
浙江
西湖区
文三路
310012
合并表头

实战:权限管理表格

结合 span-method 行合并与列 render 渲染函数,实现常见的权限配置矩阵。功能模块和详细功能列自动合并相同值的行,权限类型和权限列表通过 h() 渲染勾选框,支持模块/功能/类型/权限四级联动勾选。

功能模块
详细功能
权限类型
权限列表
权限管理表格

表尾合计行

通过 summary-config 配置汇总行,设置 method 自定义汇总逻辑。

姓名
金额1
金额2
张三
1000
500
李四
2000
800
表尾合计行

API

多级表头(合并表头)

通过列配置的 children 属性实现多级表头。

属性说明类型默认值
label分组表头的标题文本string
children子列配置(支持多层嵌套)TableColumn[]
headerAlign表头对齐方式'left' | 'center' | 'right''center'(分组列默认居中)
headerClassName表头自定义类名string
headerStyle表头自定义样式CSSProperties

注意:父列(有 children 的列)只需要设置 label,不需要设置 propcolspanrowspan 由组件自动计算。

span-method 合并方法

参数说明类型
row当前行数据Record<string, unknown>
column当前列配置TableColumn
rowIndex当前行索引number
columnIndex当前列索引number

返回值{ rowspan: number, colspan: number }[rowspan, colspan]

  • rowspan: 0, colspan: 0 表示该单元格被合并(不渲染)
  • rowspan: n 表示跨 n 行,colspan: n 表示跨 n 列

SummaryConfig 汇总配置

属性说明类型默认值
text汇总行第一列的文本string'合计'
position汇总行位置'top' | 'bottom''bottom'
fixed是否固定汇总行booleanfalse
method汇总计算方法({ columns, data }) => Array<string | number | VNode>
className汇总行类名string | ((params) => string)
style汇总行样式CSSProperties | ((params) => CSSProperties)

Column render 渲染函数

参数说明类型
row当前行数据Record<string, unknown>
column当前列配置TableColumn
rowIndex当前行索引number
cellValue当前单元格的值unknown

返回值VNode(使用 Vue h() 函数创建)

Released under the MIT License.