Skip to content

Table 表格

用于展示多种类型的数据。当前版本仍以 xy-table + xy-table-column 作为唯一列定义方式,提供完善的能力组织,补齐了 selection / index / expand / fixed / summary / span-method / tree / lazy / methods 这一组高频能力。

如果你正在把后台项目里的列表页样式收口到组件库层,先看 后台迁移指南,再回来对照 overview 和 wrapper token 的使用方式。

基础用法

基础表格继续使用子组件列定义,支持当前行高亮、行点击和默认单元格插槽。

Interactive List
项目交付列表

点击任意一行切换当前焦点,让基础表格也能保留后台列表该有的层级和主状态。

项目数2
已上线1
交互模式Current Row

带状态的表格

使用 row-class-name 可以为不同行增加状态层,适合审批、告警和风控类列表。

row class状态行
tooltipenabled
scene审批列表

列表页表格壳层

当业务只是想让普通后台列表页的表头、边框和单元格节奏贴近页面主题时,优先在 wrapper 上设置 table token,而不是继续 deep 到 .xy-table__cell.xy-table__header-cell 这类内部类名。

List Shell Tokens
后台列表页表格壳层

当页面只是想让普通列表页的表头、边框和单元格节奏贴近业务主题时,优先在 wrapper 上设置 table token,而不是继续 deep 到 .xy-table__cell.xy-table__header-cell

scenelist page
token levelwrapper
rows3

Dashboard 概览模式

当表格用于工作台首屏、指标看板或概览面板时,建议显式开启 overview。它会在不改变默认 size="md" 合同的前提下,统一收紧表头、正文、空态、loading、append 和展开区的节奏,减少业务页自行覆盖样式的需要。

Dashboard Overview
控制台概览表格

当表格用于 dashboard 首屏时,建议显式开启 overview,用更轻的节奏承接核心服务、状态和健康度摘要,而不是在页面层逐个覆盖 padding、空态和附加区样式。

densityoverview
scenedashboard
rows3
Overview Hint概览态会同步收紧空态、loading、append 和展开区节奏。

当页面仍需要做轻度场景化调整时,优先在表格实例根节点上覆写 table 自己的变量,而不是继续 deep 到 .xy-table__cell / .xy-table__expanded-content / .xy-table__append-wrapper。当前高频可调入口包括:

  • --xy-table-background:主表体背景
  • --xy-table-surface-background:固定列、筛选面板等浮起表面
  • --xy-table-subtle-background:展开区、次级容器背景
  • --xy-table-radius:表格外框圆角
  • --xy-table-header-font-size / --xy-table-header-font-weight:表头字体层级
  • --xy-table-header-text-transform / --xy-table-header-letter-spacing:表头文案风格
  • --xy-table-header-cell-padding-y / --xy-table-header-cell-padding-x:表头单元格节奏
  • --xy-table-body-cell-padding-y / --xy-table-body-cell-padding-x:正文单元格节奏
  • --xy-table-footer-cell-padding-y / --xy-table-footer-cell-padding-x:汇总/页脚单元格节奏
  • --xy-table-overview-cell-padding-y / --xy-table-overview-cell-padding-x:概览态单元格节奏
  • --xy-table-overview-expanded-padding:概览态展开区 padding
  • --xy-table-overview-append-padding:概览态 append 区 padding
  • --xy-table-overview-empty-padding / --xy-table-overview-empty-content-padding:概览态空态节奏

远程排序与分页

当排序、筛选和分页由服务端驱动时,可以通过受控排序状态、列级受控筛选和分页参数统一联动外部请求;切换排序或筛选后应主动回到第一页。

Remote Data
服务端分页列表

让请求状态、当前排序和分页脚手架形成完整的列表版式,而不是单个 tag 加一张表。

当前页1
总数36
可见范围1 - 6
排序score / ascending
page1
page size6
sortscore
orderascending
filter上线中 / 排期中
query未输入
暂无数据

暂无数据

Remote State
第 1 页,展示 1 - 6 / 36,查询词为 未输入
共 36 条

筛选与排序

表格内置列级筛选和本地排序;多选筛选会在点击“确定”后统一提交。

内置筛选全部状态
内置排序未排序
关键字过滤未输入
筛选提交点击确定

单选筛选

单选筛选面板支持方向键切换、回车确认和 Tab 关闭,适合需要键盘可达性的列表场景。

当前筛选全部优先级
键盘切换方向键支持
确认关闭回车确认 / Tab 关闭

固定列与列宽拖拽

固定列、固定高度和列宽拖拽常用于后台长列表。示例保留了横向溢出,方便直接观察固定列边界表现。

fixedleft + right
height320px
resizecolumn width

Auto 布局与响应式滚动

table-layout="auto" 会优先根据真实内容测宽;结合 flexiblenative-scrollbar 和实例方法滚动,可以更直观地观察列宽优先级与布局同步。

layoutauto
flexiblemin-width: 0
scrollbarnative

多级表头与合并单元格

通过嵌套 xy-table-columnspan-method 可以组织多级表头与合并单元格。

headergrouped
span method2 rows merged
focusreport view

Auto、固定列与汇总组合

当列表既有长文本列、又需要左右锚定列和经营指标汇总时,可以把 table-layout="auto"、分组表头、固定列与 summary-method 组合在同一张表里。

layoutauto
fixedleft + right
headergrouped
summaryops dashboard

自定义表头

通过 header 插槽可以自定义表头内容,也可以把局部搜索和轻筛选放进表头。

header slotenabled
searchall rows
rows3

选择列、展开行与实例方法

selection / index / expand / fixed / show-summary 可以组合使用,实例方法适合做列表控制和状态回写。

组合能力selection / expand / summary

选择列与实例方法控制

当列表需要“选中第一行 / 清空选择 / 主动排序”这类外部控制时,可以直接通过实例方法驱动表格状态。

已选成员

实例方法与事件联动

sort / clearSort / clearFilter / toggleAllSelection 这类实例方法适合由外部工具栏触发,再通过 sort-change / filter-change / selection-change 回写状态摘要。

sort未排序
filter未筛选
selection未选择

受控状态组合

当当前行、展开行、排序和筛选需要与路由、工具栏或请求参数保持同源时,可以把它们统一收敛到外部受控状态,再通过事件回写。

current1
expand2
sortscore / descending
filter上线中 / 排期中

展开行与汇总行

展开行适合承载补充说明,summary-method 适合自定义汇总结果,两者可以组合使用。

expandproject note
summarybudget / spend
use case经营看板

树形数据与懒加载

树形数据和懒加载共用同一套列树与 body 渲染链路;可以通过 updateKeyChildren 主动写回 lazy 子节点,并配合 preserve-expanded-content 保留展开内容 DOM。

lazyload children
treenested rows
preserveexpanded dom

Lazy 挂起与手动写回

当 lazy 请求仍在挂起时,节点会保持 loading 态并忽略重复点击;如果业务侧提前拿到 children,可以通过 updateKeyChildren 直接写回并结束 loading。

lazyidle
updateKeyChildrenmanual hydrate

附加内容与滚动事件

append 插槽会渲染在表体末尾、汇总行之前;scroll 会在原生滚动、固定列联动和实例方法滚动后统一派发。

appendsecondary info
scrollevent payload
height240px
附加区域
适合放无限滚动提示、批量统计或二级操作。
scrollLeft=0scrollTop=0

行操作列

任意一列都可以通过默认插槽变成自定义单元格,操作列不依赖额外命名插槽。

Action Column
值班成员操作台

行尾工具区适合承接轻操作和二级菜单,让列表保持节奏感,而不是堆满同权重按钮。

成员数3
在线值班2
工具区Text + More

加载态与空态

Table 可以作为加载态、空态和列表内容的统一承载容器。

正在同步项目数据,请稍候...

Table 的默认加载遮罩已经接入统一的 Loading indicator。未自定义 loading 插槽时,会使用与独立 Loading 一致的 spinner 和文案表现;同时会读取 ConfigProvider.loadingtext / spinner / svg / svgViewBox / background 作为视觉默认项,但不会继承 delay / minDuration / fullscreen / lock

空态、加载态与错误态

页面层可以在正常、空结果、加载中和加载失败之间切换,Table 负责统一展示容器与骨架。

何时使用

  • 后台列表页、运营视图和只读数据表格。
  • 需要选择列、展开行、固定列、汇总行、树形数据等经典 Table 能力。
  • 需要通过 xy-table-column 的嵌套声明组织复杂表头,而不是维护 columns 数组。

最佳实践

先补稳定的 row-key

  • 只要涉及 selection、当前行高亮、展开行、tree、lazy、updateKeyChildren 或“数据刷新后保留状态”,都应显式提供稳定的 row-key
  • 不要直接使用页内索引、排序后会变化的字段或只在当前页唯一的临时值;这些 key 会让选择、展开和当前行恢复语义失效。
  • row-key 支持点路径,但路径最终解析出的值仍需保持全量数据范围内稳定且唯一。

区分受控状态与默认状态

  • default-current-row-keydefault-expand-alldefault-sort 更适合首屏初始化,不适合承载长期业务状态。
  • 一旦传入 current-row-keyexpand-row-keys,或兼容态的 sortProp / sortOrder / filterValues,就应把它们视为受控值,并由外部单一数据源维护。
  • 不建议同时依赖默认值、实例方法和外部受控值反复抢占同一份状态;需要与路由、工具栏、服务端查询参数同步时,应优先采用受控写法。

根据场景选择 fixedauto

  • table-layout="fixed" 适合字段语义稳定、列宽预期明确的后台列表,推荐配合 width / min-width 获得更稳定的首屏布局。
  • table-layout="auto" 更适合长短文本混排、内容宽度差异明显的列表,但仍建议给关键列设置 widthmin-width 作为兜底。
  • auto 布局下列宽优先级为“手动拖拽 > 显式 width > 自动测宽”;内容频繁变化的列会重新收敛,因此不建议把所有列都完全交给自动测宽。
  • show-header=false 时,auto 会退回按 body 内容测宽,关键列更建议保留 min-width,避免纯数据波动造成视觉抖动。

优先调实例级 table token,而不是 deep 覆盖内部类名

  • 如果页面只是想微调概览表格的密度、append 区节奏、展开区背景或筛选面板表面色,优先在 xy-table 根节点或业务 wrapper 上设置 table 变量。
  • overview 适合 dashboard / 首屏摘要;列表页若仅需主题接轨,也优先设置 --xy-table-background / --xy-table-surface-background / --xy-table-subtle-background,不要直接把通用 --xy-bg-container 压进 .xy-table 作用域。
  • 只有当业务需要真正改写单元格内容结构时,才考虑 cell-class-name / cell-style 或页面层插槽;纯视觉节奏问题不建议继续 deep 到 __cell

后台项目迁移时,可优先按下面的映射关系删除旧覆盖:

旧覆盖写法优先替代方式适用场景
.xy-table__cell { padding: ... }--xy-table-body-cell-padding-y/x普通列表页正文节奏
.xy-table__header-cell { padding: ... }--xy-table-header-cell-padding-y/x普通列表页表头节奏
.xy-table__footer-cell { padding: ... }--xy-table-footer-cell-padding-y/x汇总行 / 页脚节奏
.xy-table__header-cell { background: ...; color: ... }--xy-table-header-background + --xy-table-header-color表头主题接轨
.xy-table th { font-size / font-weight / text-transform / letter-spacing }--xy-table-header-font-size / --xy-table-header-font-weight / --xy-table-header-text-transform / --xy-table-header-letter-spacing表头排版基线
.xy-table { border-color: ... }--xy-table-border-color边框 / 固定列分隔线
.xy-table { border-radius: ...; overflow: hidden }--xy-table-radius列表卡片内的表格外框
.xy-table__row:hover > .xy-table__cell { background: ... }--xy-table-row-hover-backgroundhover 态主题化
.xy-table__row.is-current > .xy-table__cell { background: ... }--xy-table-row-current-background当前行高亮
.xy-table.is-striped ... { background: ... }--xy-table-row-striped-background斑马纹
.xy-table__expanded-cell / __append-wrapper / __empty-block 的 padding 覆盖overview 或对应 overview tokendashboard / 摘要表格
[data-theme] .xy-table { --xy-bg-container / --xy-bg-raised: ... }--xy-table-background / --xy-table-surface-background / --xy-table-subtle-background表格自身表面色,不再污染通用背景 token

可迁移的普通列表页写法示例:

vue
<template>
  <div class="table-shell">
    <xy-table :data="rows" row-key="id">
      <!-- columns -->
    </xy-table>
  </div>
</template>

<style scoped>
.table-shell {
  --xy-table-background: var(--bg-raised);
  --xy-table-surface-background: var(--bg-raised);
  --xy-table-subtle-background: var(--bg-elevated);
  --xy-table-radius: 10px;
  --xy-table-header-background: var(--bg-elevated);
  --xy-table-header-color: var(--text-secondary);
  --xy-table-header-font-size: 12.5px;
  --xy-table-header-text-transform: uppercase;
  --xy-table-header-letter-spacing: 0.04em;
  --xy-table-border-color: var(--border-default);
  --xy-table-header-cell-padding-y: 12px;
  --xy-table-header-cell-padding-x: 14px;
  --xy-table-body-cell-padding-y: 13px;
  --xy-table-body-cell-padding-x: 14px;
}
</style>
  • 上面这类 wrapper 级变量,优先替代 .xy-table__cell { padding: ... }.xy-table__header-cell { background: ... }.xy-table__header-cell { padding: ... }.xy-table th { text-transform: ... }.xy-table { border-radius: ... } 这种结构覆盖。
  • 如果页面只是在列表和 dashboard 之间切换节奏,优先用 overview + wrapper token 组合,不要再为同一张表同时维护多套内部类名覆盖。

当前后台项目里剩余的典型覆盖,可按下面思路迁移:

  • dashboard/index.vue 里的 order-table :deep(.xy-table__cell) 更适合直接改成 overview,或者只保留 wrapper 级 --xy-table-body-cell-padding-y/x
  • system/user/index.vuesystem/role/index.vue 里为了列表页节奏而写的 :deep(.xy-table__cell),现在应迁到 list-shell 示例这套 wrapper token。
  • src/style/index.scss[data-theme] .xy-table 下整块 !important 变量覆盖,优先改成根层 table token;只有业务局部结构样式,例如操作列按钮布局,才继续留在页面层。

在弹性容器中使用 auto

  • 表格位于 flex 子项中时,推荐同时开启 flexible,或确保外层容器显式设置 min-width: 0
  • 如果父容器仍保留默认最小宽度约束,横向压缩会被父层拦住,表现上会像 auto 没有生效。

tree / lazy 推荐写法

  • tree 与 lazy 场景应始终补齐 row-key,否则展开、选择、子节点回写与状态恢复都缺少稳定锚点。
  • load 只负责异步获取 children;如果业务侧提前拿到结果,优先调用 updateKeyChildren(key, children),不要一边直接改原数组、一边再依赖内部 lazy 缓存兜底同步。
  • 默认树形选择会保持父子联动;如果业务需要严格独立勾选,应显式开启 tree-props.checkStrictly
  • default-expand-all 更适合作为初始展开策略。数据整批替换后它会按当前数据重新作用,但不适合作为长期受控展开源。

实例方法适合做一次性动作

  • clearSelectionclearSortclearFiltertoggleAllSelectionscrollTo 这类实例方法更适合由外部工具栏触发的一次性操作。
  • 如果页面状态需要可回放、可序列化,或者要与 URL / 查询条件保持同步,优先使用受控 props,而不是完全依赖实例方法驱动。
  • preserve-expanded-content 适合保留折叠区 DOM 与本地状态,但会增加页面保留节点数量;在超大列表或重量级详情区中应谨慎开启。

API

Table Attributes

属性说明类型默认值
data数据源T[][]
row-key行唯一标识字段或函数TableProps<T>["rowKey"]undefined
size表格尺寸TableProps["size"]'md'
overview是否启用概览态节奏,适合 dashboard / 首屏摘要类表格booleanfalse
width表格根节点宽度string | numberundefined
height固定高度,超过后表体滚动string | numberundefined
max-height最大高度,超过后表体滚动string | numberundefined
fit是否让列宽自适应容器宽度booleantrue
stripe是否显示斑马纹booleanfalse
border是否显示完整边框和纵向分割线booleanfalse
show-header是否显示表头booleantrue
show-summary是否显示汇总行booleanfalse
sum-text汇总行第一列文案string'合计'
summary-method自定义汇总行计算TableProps<T>["summaryMethod"]undefined
empty-text默认空态文案string'暂无数据'
loading是否显示加载态遮罩booleanfalse
loading-text默认加载文案string'Loading...'
highlight-current-row是否高亮当前行booleanfalse
current-row-key当前行 key,受控模式TableProps<T>["currentRowKey"]undefined
default-current-row-key当前行 key 的非受控初始值TableProps<T>["defaultCurrentRowKey"]null
default-sort默认排序配置;只传 prop 时会默认按升序生效TableSortState{ prop: undefined, order: undefined }
expand-row-keys展开行 key 列表TableProps<T>["expandRowKeys"]undefined
default-expand-all是否默认展开全部可展开行/树节点booleanfalse
row-expandable控制 type="expand" 行是否可展开TableProps<T>["rowExpandable"]undefined
span-method单元格合并逻辑TableProps<T>["spanMethod"]undefined
select-on-indeterminate头部勾选在半选态下是否直接全选booleantrue
indent树形缩进宽度number16
tree-props树形字段配置TableTreeProps{ children: 'children', hasChildren: 'hasChildren', checkStrictly: false }
lazy是否启用懒加载树节点booleanfalse
load懒加载回调TableProps<T>["load"]undefined
table-layout表格布局算法TableLayout'fixed'
show-overflow-tooltip是否为默认文本链路统一开启溢出 tooltip,可传 tooltip 配置对象TableOverflowTooltipfalse
tooltip-effect全表默认溢出 tooltip 主题TableProps["tooltipEffect"]undefined
tooltip-options全表默认溢出 tooltip 配置TableOverflowTooltipOptionsundefined
tooltip-formatter自定义溢出 tooltip 文案TableProps<T>["tooltipFormatter"]undefined
append-filter-panel-to指定筛选面板挂载节点选择器string''
row-class-name行 class 或 class 计算函数TableRowClassName<T>''
row-style行样式或样式计算函数TableRowStyle<T>undefined
cell-class-name单元格 class 或 class 计算函数TableProps<T>["cellClassName"]''
cell-style单元格样式或样式计算函数TableProps<T>["cellStyle"]undefined
header-row-class-name表头行 class 或 class 计算函数TableHeaderRowClassName''
header-row-style表头行样式或样式计算函数TableHeaderRowStyleundefined
header-cell-class-name表头单元格 class 或 class 计算函数TableHeaderCellClassName<T>''
header-cell-style表头单元格样式或样式计算函数TableHeaderCellStyle<T>undefined
class-name表格根节点附加 classstring''
style表格根节点附加样式StyleValueundefined
clickable是否把主表体行视为可点击项,并补齐键盘聚焦与回车触发booleanfalse
scrollbar-always-on是否为滚动容器保留稳定滚动条槽位booleanfalse
scrollbar-tabindex表体滚动容器的 tabindexstring | numberundefined
flexible是否让表格所在的 flex 子项自动解除最小宽度限制booleanfalse
native-scrollbar是否使用原生滚动条而不是自定义滚动条booleanfalse
allow-drag-last-column是否允许拖拽当前渲染带中的最后一个叶子列booleantrue
preserve-expanded-content折叠展开行后是否保留其 DOMbooleanfalse
aria-label表格容器的无障碍名称stringundefined
aria-labelledby关联表格标题元素 idstringundefined
aria-describedby关联表格说明元素 idstringundefined

Compatibility Notes

  • stripe 是主命名,striped 仅保留兼容,不再作为文档主推写法。
  • border 是主命名,bordered 仅保留兼容,不再作为文档主推写法。
  • 表级 sortProp / sortOrder / filterValues / defaultFilterValues 仍可兼容使用,但不再作为推荐 API。
  • row-class-name / row-style / header-row-class-name / header-row-style / header-cell-class-name / header-cell-style 现阶段主推对象风格入参;旧的拆参签名仍保留兼容。
  • 列级 filtered-value 优先级高于表级 filterValues;表级 filterValues 再高于内部 defaultFilterValues
  • table-layout="auto" 下,列宽优先级遵循“手动拖拽 > 显式 width > 自动测宽”,动态切换 width 后会重新收敛到最新优先级。
  • lazy 树节点在 loading 期间会忽略重复点击;如果通过 updateKeyChildren 手动写回 children,会直接结束 loading 并使用新子节点。

Behavior Notes

  • row-key 稳定时,当前行、选择结果、展开状态以及 tree / lazy 相关状态会尽量按 key 恢复到新数据上。
  • 如果 row-key 缺失、发生变化,或新数据中已不存在对应 key,表格会把这些记录视为全新的行,不保证继续沿用旧状态。
  • 远程排序、筛选和分页场景中,表格负责交互发起与事件派发,最终数据、分页参数、排序摘要仍应由外部请求层统一维护。

Table Events

事件说明参数
row-click行点击或键盘触发时派发TableRowClickHandler<T>
row-dblclick行双击时派发TableRowMouseHandler<T>
row-contextmenu行右键时派发TableRowMouseHandler<T>
cell-click单元格点击时派发TableCellMouseHandler<T>
cell-dblclick单元格双击时派发TableCellMouseHandler<T>
cell-contextmenu单元格右键时派发TableCellMouseHandler<T>
cell-mouse-enter鼠标进入单元格时派发TableCellMouseHandler<T>
cell-mouse-leave鼠标离开单元格时派发TableCellMouseHandler<T>
header-click表头点击时派发TableHeaderMouseHandler<T>
header-contextmenu表头右键时派发TableHeaderMouseHandler<T>
header-dragend列拖拽结束时派发TableHeaderDragendHandler<T>
selection-change选择结果变化时派发TableSelectionChangeHandler<T>
select单行选择变化时派发TableSelectHandler<T>
select-all头部全选变化时派发TableSelectionChangeHandler<T>
current-change当前高亮行变化时派发TableCurrentChangeHandler<T>
sort-change排序变化时派发TableSortChangePayload<T>
filter-change筛选变化时派发TableFilterChangeHandler
expand-change展开行或树节点变化时派发TableExpandChangeHandler<T>
scroll表体滚动、固定列联动滚动或实例方法滚动后派发TableScrollPayload
update:currentRowKey当前行 key 更新TableCurrentRowKeyChangeHandler
update:sortProp兼容排序列更新TableSortPropChangeHandler
update:sortOrder兼容排序方向更新TableSortOrderChangeHandler
update:filterValues兼容筛选状态更新TableFilterValuesChangeHandler
update:expandRowKeys展开行 key 更新TableExpandRowKeysChangeHandler

事件名在运行时和类型层以 camelCase 暴露,例如 update:currentRowKey;在 Vue 模板里监听或使用 v-model 时,推荐写成 kebab-case,例如 @update:current-row-keyv-model:current-row-key

Accessibility Notes

  • 表格根节点会输出 role="table"aria-rowcountaria-colcountaria-busy
  • aria-label / aria-labelledby / aria-describedby 适合在页面已经有标题、提示文案时接入无障碍语义。
  • 展开按钮和树节点开关会自动输出 aria-expanded;lazy 节点加载中会额外输出 aria-busy="true"
  • 筛选按钮会输出 aria-haspopup="dialog" 与当前打开状态,适合和键盘筛选场景一起使用。

Table Methods

这些方法更适合做“外部触发的一次性动作”,例如清空筛选、重置排序、滚动定位或主动切换选择状态;如果你需要把状态与路由、查询参数或服务端结果长期同步,优先使用受控 props。

方法说明签名
clearSelection清空当前选择TableInstance<T>["clearSelection"]
getSelectionRows获取当前选择行TableInstance<T>["getSelectionRows"]
toggleAllSelection切换当前页全选TableInstance<T>["toggleAllSelection"]
toggleRowSelection切换单行选择状态;第三参数可显式决定是否忽略 selectableTableInstance<T>["toggleRowSelection"]
toggleRowExpansion切换展开行状态TableInstance<T>["toggleRowExpansion"]
setCurrentRow设置当前高亮行TableInstance<T>["setCurrentRow"]
clearSort清空排序TableInstance<T>["clearSort"]
clearFilter清空筛选TableInstance<T>["clearFilter"]
sort主动设置排序TableInstance<T>["sort"]
doLayout重新同步布局与滚动度量TableInstance<T>["doLayout"]
scrollTo滚动到指定位置TableInstance<T>["scrollTo"]
setScrollTop设置纵向滚动位置TableInstance<T>["setScrollTop"]
setScrollLeft设置横向滚动位置TableInstance<T>["setScrollLeft"]
updateKeyChildren在 lazy 模式下按 row-key 主动写回某个节点的子节点TableInstance<T>["updateKeyChildren"]

Table Exposes

下表中的方法同时也是实例方法;如果通过 ref 获取表格实例,可直接调用这些暴露项。

名称说明类型
columns当前解析后的列上下文TableInstance<T>["columns"]
clearSelection清空当前选择TableInstance<T>["clearSelection"]
getSelectionRows获取当前选择行TableInstance<T>["getSelectionRows"]
toggleAllSelection切换当前页全选TableInstance<T>["toggleAllSelection"]
toggleRowSelection切换单行选择状态TableInstance<T>["toggleRowSelection"]
toggleRowExpansion切换展开行状态TableInstance<T>["toggleRowExpansion"]
setCurrentRow设置当前高亮行TableInstance<T>["setCurrentRow"]
clearSort清空排序TableInstance<T>["clearSort"]
clearFilter清空筛选TableInstance<T>["clearFilter"]
sort主动设置排序TableInstance<T>["sort"]
doLayout重新同步布局与滚动度量TableInstance<T>["doLayout"]
scrollTo滚动到指定位置TableInstance<T>["scrollTo"]
setScrollTop设置纵向滚动位置TableInstance<T>["setScrollTop"]
setScrollLeft设置横向滚动位置TableInstance<T>["setScrollLeft"]
updateKeyChildren在 lazy 模式下按 row-key 主动写回子节点TableInstance<T>["updateKeyChildren"]

Table Slots

插槽说明
default列定义区,只接收 xy-table-column
loading自定义加载态内容
empty自定义空态内容
append渲染在表体末尾、汇总行之前的附加区域

TableColumn Attributes

属性说明类型默认值
type列类型TableColumnType'default'
prop读取行数据的字段名keyof T & stringundefined
propertyprop 的兼容别名keyof T & stringundefined
label列标题string''
column-key列状态 key,筛选和排序优先使用它stringundefined
width列宽string | numberundefined
min-width最小列宽string | numberundefined
align单元格对齐方式TableAlign'left'
header-align表头对齐方式TableAlign跟随 align
class-name单元格 classstring''
label-class-name表头 classstring''
formatter默认单元格格式化函数TableColumnProps<T>["formatter"]undefined
render-header函数式自定义表头内容TableColumnProps<T>["renderHeader"]undefined
sortable是否开启排序;'custom' 表示远程排序TableSortablefalse
sort-method本地排序函数TableColumnProps<T>["sortMethod"]undefined
sort-by指定排序字段或排序读取函数TableColumnProps<T>["sortBy"]undefined
sort-orders排序切换顺序TableColumnProps<T>["sortOrders"]['ascending', 'descending', null]
filters列筛选项TableColumnProps<T>["filters"][]
filtered-value当前列筛选状态TableColumnProps<T>["filteredValue"]undefined
filter-method自定义筛选函数TableColumnProps<T>["filterMethod"]undefined
filter-multiple是否多选筛选TableColumnProps<T>["filterMultiple"]true
filter-placement当前列筛选面板的浮层位置TableColumnProps<T>["filterPlacement"]'bottom-start'
filter-class-name当前列筛选面板的附加 classTableColumnProps<T>["filterClassName"]''
show-overflow-tooltip当前列是否启用溢出 tooltip,可传 tooltip 配置对象TableOverflowTooltip跟随表格 show-overflow-tooltip
tooltip-formatter当前列自定义溢出 tooltip 文案,优先级高于表格级 formatterTableColumnProps<T>["tooltipFormatter"]undefined
fixed固定列位置TableColumnFixedundefined
selectableselection 列的可选行判断TableColumnProps<T>["selectable"]undefined
reserve-selectionselection 列是否按 row-key 保留选择状态TableColumnProps<T>["reserveSelection"]false
indexindex 列起始值或自定义序号函数TableColumnProps<T>["index"]undefined
resizable当前叶子列是否允许拖拽列宽TableColumnProps<T>["resizable"]false

TableColumn Slots

插槽说明参数
default自定义单元格内容;type="expand" 时用于渲染展开内容TableCellSlotProps<T>
expandtype="expand" 的专用展开内容槽位,优先级高于默认槽TableExpandSlotProps<T>
header自定义表头内容TableHeaderSlotProps<T>
filter-icon自定义筛选图标TableFilterIconSlotProps