logo

S2

  • 使用文档
  • API 文档
  • 图表示例
  • 在线体验
  • 更新日志
  • 所有产品antv logo arrow
  • 2.x
  • 简介
  • 快速上手
  • 基础教程
    • 基本概念
      Updated
    • 表形态
      • 透视表
        Updated
      • 明细表
        Updated
    • 字段标记
      Updated
    • 小计总计
    • 排序
      • 基础排序
        Updated
      • 组内排序
        Updated
    • 主题配置
      Updated
    • Tooltip
      Updated
    • 数据格式化
      New
    • 多行文本
      New
    • 国际化
    • 分页
      New
  • 进阶教程
    • 单元格渲染类型
      • 链接
      • 图片
        New
      • 视频
        New
      • 迷你图表
      • 结合@antv/g2
      • 自定义渲染
    • 自定义
      • 自定义 Hook
        Updated
      • 自定义行列头分组
        New
      • 自定义 Icon
        Updated
      • 自定义单元格对齐方式
        Updated
      • 自定义单元格宽高
        Updated
      • 自定义排序操作
        Updated
      • 自定义折叠/展开节点
        New
    • 交互
      • 基础交互
        Updated
      • 自定义交互
      • 隐藏列头
        Updated
      • 行列宽高调整
        Updated
      • 合并单元格
      • 滚动
        Updated
      • 复制与导出
        New
      • 高亮/选中单元格
        New
    • 分析组件
      • 简介
        New
      • 高级排序
        Updated
      • 维度切换
        Updated
      • 导出
        Updated
      • 分页
        Updated
      • 维度下钻
        Updated
    • 表格组件
      • 编辑表
      • 趋势分析表
        Updated
    • 高清适配
      Updated
    • 获取表格实例
    • 表格自适应
    • 获取单元格数据
      Updated
    • 注册 AntV/G 插件
      New
    • 透视组合图
      Experimental
    • Vue 3.0 组件 (停止维护)
  • 扩展阅读
    • 数据流处理
      • 透视表
      • 明细表
    • 布局流程
      • 透视表
      • 明细表
    • 性能介绍
      Updated
  • 贡献指南
  • 常见问题
  • S2 2.0 升级指南

自定义折叠/展开节点

上一篇
自定义排序操作
下一篇
基础交互

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

S2 支持在树状结构下,配置折叠/展开的节点,默认展开所有节点.

平铺模式,后续支持


const s2Options = {
hierarchyType: 'tree',
style: {
rowCell: {
// 折叠节点
collapseFields: {},
// 展开层级
expandDepth: 0,
// 折叠所有
collapseAll: true
}
},
}

折叠指定节点

配置 collapseFields, 支持 维值 id 和 维度 field 两种方式,即可以是 root[&] 浙江省 和 city

const s2Options = {
style: {
rowCell: {
collapseFields: {},
},
},
}

根据节点对应维值 id

指定 id 可以折叠指定节点,如配置为 root[&] 浙江省, 那么 浙江省 下所有节点都会被折叠

const s2Options = {
style: {
rowCell: {
collapseFields: {
'root[& 浙江省': true
},
},
},
}

preview

根据节点对应维度 field

指定 field 可以折叠节点对应维度的节点,如行头配置了 province, city 两个维度,collapseFields 配置为 ['city'], 那么所有城市都会被折叠

const s2DataConfig = {
fields: {
rows: ['province', 'city']
}
}
const s2Options = {
style: {
rowCell: {
collapseFields: {
province: false,
city: true
}
},
},
}

preview
const s2Options = {
style: {
dataCell: {
width: 100,
height: 90
},
},
}

折叠所有节点

配置 collapseAll 即可,优先级小于 collapseFields 和 expandDepth, 详见 配置优先级

const s2Options = {
style: {
rowCell: {
collapseAll: true,
},
},
}

preview

默认展开层级

表格默认展开全部节点,collapseFields 需要预先知道对应的 节点 id 或 field, 当不关心具体节点,只关心节点层级时,可以使用 expandDepth 语法糖,配置展开层级 (从 0 开始)优先级小于 collapseFields, 详见 配置优先级

const s2Options = {
style: {
rowCell: {
// 展开两层
expandDepth: 1,
},
},
}

preview

配置优先级

S2 提供了三个 折叠/展开相关配置,以满足不同的使用场景,优先级如下:

collapseFields > expandDepth > collapseAll

如果想让 collapseAll 生效,可将 collapseFields 和 expandDepth 置为 null 即可

const s2Options = {
style: {
rowCell: {
collapseFields: null, // 无效
expandDepth: null, // 无效
collapseAll: true, // 生效
},
},
}

如果行头是 自定义节点 (CustomTreeNode), 则优先级如下:

collapseFields > expandDepth > collapseAll > CustomTreeNode.collapsed

API 文档

Style

功能描述:样式设置。查看 文档 和 示例

参数类型必选默认值功能描述
layoutWidthTypeadaptive | colAdaptive | compact单元格宽度布局类型
adaptive : 行列等宽,均分整个 Canvas 画布宽度
colAdaptive:列等宽,行头紧凑布局,列等分画布宽度减去行头宽度的剩余宽度
compact:行列紧凑布局,指标维度少的时候无法布满整个画布,列头宽度为实际内容宽度(取当前列最大值,采样每一列前 50 条数据)
dataCellDataCell数值单元格配置
rowCellRowCell行头单元格配置
colCellColCell列头单元格配置
cornerCellCornerCell角头单元格配置
mergedCellMergedCell合并单元格配置
seriesNumberCellSeriesNumberCell序号单元格配置

DataCell

功能描述:数值单元格配置

参数说明类型默认值必选
width单元格宽度 (优先级:colCell.widthByField > colCell.width > dataCell.width)number96-
height单元格高度 (优先级:rowCell.heightByField > rowCell.height > dataCell.height)number30-
valuesCfg单元格配置{ originalValueField?: string, widthPercent?: number[], showOriginalValue?: boolean }-

其他公用配置见 CellTextWordWrapStyle

ColCell

功能描述:列头单元格配置

参数说明类型默认值必选
width单元格宽度,可根据当前列头节点动态设置 (叶子节点有效)number | (colNode: Node) => number96
height单元格高度,可根据当前列头节点动态设置 (叶子节点有效)number | (colNode: Node) => number30
widthByField根据度量值设置宽度(拖拽或者预设宽度场景), field 对应 s2DataConfig.fields.columns 中的 field 或 列头 id (优先级大于 width) 查看详情Record<string, number>-
heightByField根据度量值设置高度(拖拽或者预设高度场景), field 对应 s2DataConfig.fields.columns 中的 field 或 列头 id (优先级大于 height) 查看详情Record<string, number>-
hideValue默认数值挂列头,会同时显示列头和数值,隐藏数值,使其更美观。(即 s2DataConfig.fields.values 且仅在单数值时有效,多数值时推荐使用 隐藏列头)booleanfalse

RowCell

功能描述:行头单元格配置

参数说明类型默认值必选
width行单元格宽度,可根据当前行头节点动态设置,树状结构同样适用number | (rowNode: Node) => number
treeWidth树状模式下行单元格宽度,优先级高于 width, 值为空时则默认使用 widthnumber
height行单元格高度,可根据当前行头节点动态设置number | (rowNode: Node) => number30
collapseFields树状模式下行头自定义折叠节点。
支持 id ('root[&] 行头维度值') 和 维度 field ('city') 两种格式,优先级大于 collapseAll 和 expandDepth, 设置为 null 时优先级最低。 查看 demo
Record<string, boolean>
collapseAll在树状结构模式下行头是否默认收起全部。booleanfalse
expandDepth在树状结构模式下行头默认展开展开的层级(层级从 0 开始), 设置为 null 时优先级最低number
showTreeLeafNodeAlignDot树状模式下行头叶子节点是否显示层级占位点booleanfalse
withByField根据 field 设置每行的宽度。field 对应 s2DataConfig.fields.rows 中的 field 或 列头 id (优先级大于 width) 查看详情Record<string, number>-
heightByField根据 field 设置每行的高度。
1. 透视表:field 对应 s2DataConfig.fields.rows 中的 field 或 列头 id.
2. 明细表:field 对应 行序号,从 1 开始。(优先级大于 height) 查看详情
Record<string, number>-

CornerCell

其他公用配置见 CellTextWordWrapStyle

MergedCell

其他公用配置见 CellTextWordWrapStyle

SeriesNumberCell

其他公用配置见 CellTextWordWrapStyle

CellTextWordWrapStyle

功能描述:单元格换行配置。查看示例

参数说明类型默认值必选
wordWrap文本是否自动换行(数值单元格不建议换行)。了解更多booleantrue
maxLines最大行数,文本超出后将被截断,当 手动拖拽调整高度 或存在 自定义单元格高度 时,为保证展示合理性,会根据当前文本行高计算出能展示的最大行数,覆盖默认的 maxLines 配置。
该配置 支持配置为 Infinity(数值单元格不建议换行),需要配合 wordWrap 和 textOverflow 一起使用。了解更多
number1
maxLines最大行数,文本超出后将被截断,支持配置为 Infinity(数值单元格不建议换行),需要配合 wordWrap 和 textOverflow 一起使用。了解更多number1
textOverflow自定义隐藏的文本溢出内容,例如直接裁剪、追加省略号或一个自定义字符串,需要配合 wordWrap 和 maxLines 一起使用。了解更多stringellipsis