自定义行列头分组
上一篇
自定义 Hook
下一篇
自定义 Icon
Loading...
S2 默认提供 平铺模式 (grid) 和 树状模式 (tree) 两种行头单元格布局方式。
默认通过分组之后得到的数据生成层级结构, 如果都不满足,还可以通过自定义行列头,来定制你的目录结构,同样兼容平铺和树状这两种布局方式。
功能描述:自定义树状结构的配置,适用于透视表和明细表的自定义行列头。查看 文档 和 示例
| 参数 | 说明 | 类型 | 默认值 | 必选 |
|---|---|---|---|---|
| field | 当前节点唯一标识 | string | ✓ | |
| title | 当前节点展示名 | string | ✓ | |
| collapsed | 节点是否收起(树状模式下,行头非叶子节点有效) | boolean | false | |
| description | 节点的额外描述信息,在对应行头的 tooltip 中展示 | string | ||
| children | 子节点 | CustomTreeNode[] |
type CustomHeaderField = CustomTreeNode | string;
const customTree = [{field: 'a-1',title: '自定义节点 a-1',description: 'a-1 描述',children: [{field: 'a-1-1',title: '自定义节点 a-1-1',description: 'a-1-1 描述',children: [{field: 'measure-1',title: '指标 1',description: '指标 1 描述',children: [],},{field: 'measure-2',title: '指标 2',description: '指标 2 描述',children: [],},],},{field: 'a-1-2',title: '自定义节点 a-1-2',description: 'a-1-2 描述',children: [],},],},{field: 'a-2',title: '自定义节点 a-2',description: 'a-2 描述',children: [],},];const data = [{'measure-1': 13,'measure-2': 2,type: '家具',sub_type: '桌子',},{'measure-1': 11,'measure-2': 8,type: '家具',sub_type: '椅子',},]
rows 配置为自定义 tree 结构valueInCols: false (无论配置与否都会强制置于行头,修改无效)const s2DataConfig = {fields: {rows: customTree,columns: ['type', 'sub_type'],values: ['measure-1', 'measure-2'],valueInCols: false,},data,};
const s2Options = {hierarchyType: 'grid'};

const s2Options = {hierarchyType: 'tree'};

树状模式下默认使用 customTreeNode.collapsed 作为展开/收起状态,也可以使用通用的配置,具体请查看 自定义折叠/展开节点 章节
const s2Options = {style: {rowCell: {collapseFields: {'custom-node-1': true,'custom-node-2': false,},},},}
columns 配置为自定义 tree 结构valueInCols: true (无论配置与否都会强制置于列头,修改无效)const s2DataConfig = {fields: {columns: customTree,rows: ['type', 'sub_type'],values: ['measure-1', 'measure-2'],valueInCols: true,},data,};
const s2Options = {hierarchyType: 'grid'};

const s2Options = {hierarchyType: 'tree'};

对于平铺模式,角头显示的文本默认对应行头每一列的第一个单元格,可以和普通字段一样,配置 meta 来对单元格文本进行格式化,此时 field 对应 CustomTreeNode 的 field 值
const meta = [{field: 'a-1',name: '层级 1',},{field: 'a-1-1',name: '层级 2',},{field: 'measure-1',name: '层级 3',}]

对于树状模式,角头默认显示的文本对应所有的一级节点和数值,可以和普通字段一样,配置 meta 来对单元格文本进行格式化,也可以配置 s2Options.cornerText 来自定义角头文本
const meta = [{field: 'a-1',name: '层级 1',},{field: 'a-2',name: '层级 2',},]

const s2Options = {cornerText: '自定义角头标题'}

columns 配置为自定义 tree 结构
const s2DataConfig = {fields: {columns: customTree},data,};