Skip to content

Table 表格 - 多级表头

当数据结构比较复杂时,可以使用多级表头来展现数据的层次关系。

基础多级表头

只需在列配置中添加 children 属性,即可轻松实现多级表头。底层会自动根据数据嵌套深度计算 rowspancolspan

日期
配送信息
姓名
地址
省份
市区
详细地址
邮编
2024-05-01
张三
广东
深圳
南山区
518000
2024-05-02
李四
北京
北京
朝阳区
100000
2024-05-03
王五
上海
上海
浦东新区
200120
2024-05-04
赵六
广东
广州
天河区
510000
基础多级表头

三级及以上表头

children 可以无限级嵌套,从而支持极为复杂的表头结构。表格内部采用高性能递归重构算法,确保即使在深层嵌套下也能保持丝滑的渲染性能。

项目名称
研发指标
进度监控
质量保证
开发进度 (%)
测试进度 (%)
缺陷数
质量等级
核心引擎
88
75
12
A
UI 框架
95
90
3
S
数据中心
70
45
25
B
多级嵌套表头

多级表头与行列合并

多级表头可以与 span-method 完美配合。通常用于展示具有归属关系的分类数据,通过表头分组和单元格合并,使报表更具可读性。

商品分类
商品详情
大类
小类
名称
单价 (元)
库存
办公用品
书写工具
签字笔
5
100
圆珠笔
2
200
纸张
A4 纸
25
50
电子产品
外设
鼠标
50
80
键盘
120
30
多级表头合并行

可折叠多级表头

利用 Vue 的响应式特性和 computed 属性,可以实现动态展开/收起的多级表头。这对于需要展示大量详细指标、但又希望保持界面简洁的报表非常有用。

员工姓名
绩效明细
总得分
张三
88
李四
85
王五
95
动态展开/收起表头

API 补充

TableColumn 接口中,支持以下属性配置:

属性说明类型默认值
key列唯一标识string
prop列字段名string
label列标题string
width列宽number | string
minWidth最小列宽number | string
maxWidth最大列宽number | string
align内容对齐方式'left' | 'center' | 'right''left'
headerAlign表头对齐方式'left' | 'center' | 'right'
fixed固定列'left' | 'right' | true
sortable是否可排序boolean | 'custom'false
resizable是否可调整列宽booleantrue
showOverflowTooltip是否显示溢出提示boolean | objectfalse
className列类名string
headerClassName表头类名string
style列样式CSSProperties
headerStyle表头样式CSSProperties
visible是否可见booleantrue
children子列配置(实现多级表头)TableColumn[]
type列类型'selection' | 'index' | 'expand' | 'radio'
render自定义单元格渲染(params) => VNode
headerRender自定义表头渲染(params) => VNode
indexMethod序号列自定义方法(index: number) => number | string
selectable勾选框是否可选判断函数(row, index) => boolean
sortBy指定排序字段string | ((row) => unknown)
sortMethod自定义排序方法(a, b, order) => number
ellipsis省略号配置boolean | EllipsisConfigfalse
formatter单元格格式化方法(row, column, cellValue, index) => string | VNode

注意事项:

  1. 设置了 children 的列,其 prop 属性通常会被忽略,因为该列仅作为分组容器。
  2. fixed 属性建议设置在最外层(如示例中的“日期”列)或是最底层的具体数据列,中间的分组列不要重复设置固定属性。

Released under the MIT License.