TUI

Table 表格
提供灵活的数据渲染能力,支持基础表格、内容省略处理、自定义列渲染、展开行等多种形式。 相较于传统 UI 框架,配置更简洁,插槽更灵活。
常用的表格渲染,可拓展,优势:相较于Element Plus 不需要在写繁琐杂乱的slot插槽来渲染。
auto-fit:自适应宽度, width:固定宽度
table 默认会根据 columns 中的 width 来计算自适应宽度, 如果 width 设置了固定宽度, 除设置了 width 的列不会自适应, 其他列会自适应。
table 设置了 auto-fit: false, 则会根据 columns 中的 width 来计算默认最小宽度, 保证内容在 maxWidth 内不会被截断。
基础用法
最基本的数据渲染,使用 columnsdataSource 完成表格结构渲染。
name
age
address
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black
32
Sydney No. 1 Lake Park
示例代码
vue
固定宽度 + 宽度自适应
cloumns 中配置 width 为固定宽度, 默认为自适应宽度
产品编号
产品名称
供应商ID
供应商密钥
库存数量
保质期(天)
商品出厂时间
商品检验时间
上架时间
更新时间
PRD-001
智能手表 X1
SUP-100
sec-abc123xyz82abc123xyz82881881
120
365
2025-01-15 10:22:33
2025-03-20 15:10:12
2025-01-15 10:22:33
2025-03-20 15:10:12
示例代码
vue
多行文本展示展示
支持多行文本内容的展示,适用于字段内容较长的场景。内容会自动换行显示,保证表格布局的整洁性和可读性。
name
age
address
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black is a good name
32
Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park
示例代码
vue
自动省略展示
使用 showOverflowTooltip 属性,当单元格内容超出列宽时,自动显示省略号,并在悬浮时展示完整内容。 适用于无需自定义内容的列,配置简单高效。
name
age
address
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black is a good name
32
Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park
示例代码
vue
自定义内容 + 悬浮展示
通过 slot 接管列渲染,并手动使用 tooltip 组件展示完整信息。适用于内容结构复杂、需定制格式的场景。
name
age
address
John Brown
32 -- 我接管了这里的内容来超出悬浮展示,你看不到我,你看不到我,你看不到我, 这是一个很长的文案来保证超出悬浮效果展示
New York No. 1 Lake Park
Jim Green
42 -- 我接管了这里的内容来超出悬浮展示,你看不到我,你看不到我,你看不到我, 这是一个很长的文案来保证超出悬浮效果展示
London No. 1 Lake Park
Joe Black
32 -- 我接管了这里的内容来超出悬浮展示,你看不到我,你看不到我,你看不到我, 这是一个很长的文案来保证超出悬浮效果展示
Sydney No. 1 Lake Park
注意:使用 slot 自定义渲染内容时,请确保自行处理 overflow 样式,避免内容溢出遮挡其他列。
示例代码
vue
展开行(expand)
使用特殊 key 为 expand 的列配置项,即可开启每行的展开功能。也可以通过 slot 渲染自定义的展开内容。 可用于显示详情、操作项等拓展数据。
name
age
address
操作
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black is a good name
32
Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park, Sydney No. 1 Lake Park
示例代码
vue
边框效果
通过设置 border 属性控制表格边框样式。支持 boolean / string / null,默认为 false。 可选值如 truefalse,用于满足不同的表格样式需求。
name
age
address
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black
32
Sydney No. 1 Lake Park
示例代码
vue
序号列
设置列 key 为 index 可启用序号列,快速展示当前行的序号。可与 render 配合自定义显示内容。
index
name
age
address
1
John Brown
32
New York No. 1 Lake Park
2
Jim Green
42
London No. 1 Lake Park
3
Joe Black
32
Sydney No. 1 Lake Park
示例代码
vue
多选列 + 禁用条件
设置列 key 为 selection 可启用多选功能,配合 disabled 函数可控制某些行无法选择。 常用于状态为“已处理”等不允许用户修改的场景。
name
age
address
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black
32
Sydney No. 1 Lake Park
示例代码
vue
函数渲染列
使用 render 函数可自定义列内容渲染方式,适用于不依赖插槽、需动态生成结构的场景。
name
age
address
John Brown
32岁
New York No. 1 Lake Park
Jim Green
42岁
London No. 1 Lake Park
Joe Black
32岁
Sydney No. 1 Lake Park
示例代码
vue
动态渲染计算宽度
支持根据 dataSource 的数据变化自动动态计算表格宽度。
name
age
address
John Brown
32
New York No. 1 Lake Park
示例代码
vue
表格数据为空时展示空缺效果
根据 responsive 动态响应表格数据的变化,并展示空缺效果。
name
age
address
John Brown
32岁
New York No. 1 Lake Park
Jim Green
42岁
London No. 1 Lake Park
Joe Black
32岁
Sydney No. 1 Lake Park
示例代码
vue
函数渲染列
使用 render 函数可自定义列内容渲染方式,适用于不依赖插槽、需动态生成结构的场景。
name
age
address
John Brown
32岁
New York No. 1 Lake Park
Jim Green
42岁
London No. 1 Lake Park
Joe Black
32岁
Sydney No. 1 Lake Park
示例代码
vue
children 数据的表格
提供一级子级 children 数据。
name
age
address
action
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
his brother
32
Sydney No. 1 Lake Park
his sister
30
Sydney No. 1 Lake Park
Joe Black
32
Sydney No. 1 Lake Park
示例代码
vue
内部横向滚动效果
通过设置 scrollInlinetrue 当表格宽度超出容器宽度时,开启横向滚动效果。
name
age
address
操作
John Brown
32
New York No. 1 Lake Park
Jim Green
42
London No. 1 Lake Park
Joe Black
32
Sydney No. 1 Lake Park
产品编号
产品名称
供应商ID
供应商密钥
库存数量
保质期(天)
是否热销
是否新品
支持配送区域
是否包邮
是否限购
商品类型
上架时间
更新时间
操作
PRD-002
蓝牙耳机 AirLite
SUP-101
sec-xyz789qwxyz789qweisiajakkeisiajakk
50
180
华北
东北
西北
华中
音频设备
2025-02-01 09:12:45
2025-03-21 11:00:00
PRD-003
空气净化器 Pro
SUP-102
sec-555aaa7770555aaa77708s82jskak8s82jskak
300
720
全国
家用电器
2025-02-10 14:35:20
2025-03-22 13:25:56
PRD-004
运动水杯 Max
SUP-103
sec-999bbb3999bbb333sajslalallsl33sajslalallsl
200
1095
华东
华中
生活用品
2025-03-01 08:50:05
2025-03-23 18:45:33
示例代码
vue
属性 Props
属性名
说明
类型
可选值
默认值
版本说明
listQuery
分页数据
ListPaginationQuery
{page: number; pageSize: number;}
{page: 1, pageSize: 15;}
columns
表格列数据
ColumnsType[]
-
[]
dataSource
表格数据
array
-
[]
autoFit
自适应宽度, 当 cloumns 中出现width 配置将失效
boolean
-
true
0.3.6 deprecated
autoFitOnDataChange
动态计算宽度
boolean | string | null
-
true
align
表格对齐方式
string
left / center / right
left
scrollInline
是否横向滚动
boolean
-
true
changed 0.5.2 false => true
singleLine
cell 是否单行文本显示
boolean | string | null
-
false
responsive
是否响应式
boolean
-
false
skeleton
是否默认骨架屏
boolean
-
false
tooltipOffset
tooltip偏移量
[number,number]
-
[-10, 0]
border
是否显示表格边框
boolean | string | null
-
false
headerBg
表头颜色
boolean, | string | null
-
false
clickable
是否可点击
boolean
-
true
deprecated 0.3.9
插槽 Slots
插槽名
说明
版本说明
expand
展开项插槽
[Key in dataSource]
数据插槽
ColumnsType Type
属性名
说明
类型
可选值
默认值
版本说明
title
表格标题
string
-
key
表格key, selection 会提供多项操作, index 会提供序号, expand 会提供展开操作
string
- | selection | index | expand
width
表格列宽配置,支持以下类型: - **number**:固定宽度(单位 px)。 - **'auto'**:自动填充剩余空间,列宽可不等。 - **'min-content'**:按内容最小宽度自动分配。 - **null 或不设置**:默认行为等同于 'auto',自动填充剩余空间。 注意: - 不支持百分比单位。 - 结合不同列的 width 设置,可灵活实现固定、最小和自适应列宽。
string | number | null
-
'' (等同于 'auto')
0.3.6 变更
minWidth
表格最小宽度
string | number
40px
maxWidth
表格最大宽度
string | number
-
300px
custom
是否自定义
boolean
-
false
expandVisible
expand 的交互按钮是否一直显示
boolean
-
true
expandList
展开列表
Array<TableExpandItem>
left | right | center
right
showOverflowTooltip
是否超出隐藏
boolean
-
false
disabled
是否禁用, 用于多选, 仅在 key: selection 时生效
function
-
-
render
函数渲染
function
-
-
expandPosition
展开位置
string
-
[]
deprecated 0.5.8
TableExpandItem Type
属性名
说明
类型
可选值
默认值
版本说明
name
展开项名称, 必要项
string
-
type
展开项类型, 非必要项
string
className
class名称
string
-
added 0.5.8
onClick
展开项点击事件, 非必要项
function
-
基础用法
固定宽度 + 宽度自适应
多行文本展示展示
自动省略展示
自定义内容 + 悬浮展示
展开行(expand)
边框效果
序号列
多选列 + 禁用条件
函数渲染列
动态渲染计算宽度
表格数据为空时展示空缺效果
函数渲染列
children 数据的表格
内部横向滚动效果
属性 Props
插槽 Slots
ColumnsType Type
TableExpandItem Type