维度下钻
上一篇
分页
下一篇
编辑表
Loading...
@antv/s2-react @antv/s2-vue
S2 提供 维度下钻
的基础能力,@antv/s2-react
和 @antv/s2-vue
基于 @antv/s2
封装了 维度下钻
的组件,可以为你挖掘不同维度下更详细的数据,让你的数据洞察变得更清晰,也可以通过下钻的方式实现数据按需渲染。
配置维度下钻,当前仅支持透视模式的树形结构下,行头维度下钻。
向上钻取: 存在向上钻取,查看不同区域的销售数据,您查看浙江省销售额时,可以上钻查看华东区的销售额。
import { DrillDown } from '@antv/s2-react-components';import '@antv/s2-react-components/dist/s2-react-components.min.css';const sex = ['男', '女'];const PartDrillDown = {render: (props) => <DrillDown {...props}/>,drillConfig: {// 个性化配置 (可选)title: '下钻',clearText: '还原',searchText: '搜素',// 下钻数据源配置dataSet: [{name: '客户性别',value: 'sex',type: 'text',},],},// 点击下钻后的回调fetchData: (meta, drillFields) =>new Promise((resolve) => {const dataSet = meta.spreadsheet.dataSet;const field = drillFields[0];const rowData = dataSet.getCellMultiData({ query: meta.query });const drillDownData = [];rowData.forEach((data) => {const { city, number, province, sub_type: subType, type } = data;const number0 = Math.ceil(Math.random() * (number - 50)) + 50;const number1 = number - number0;const dataItem0 = {city,number: number0,province,sub_type: subType,type,[field]: sex[0],};drillDownData.push(dataItem0);const dataItem1 = {city,number: number1,province,sub_type: subType,type,[field]: sex[1],};drillDownData.push(dataItem1);});resolve({drillField: field, // 下钻维度 value 值drillData: drillDownData, // 下钻数据});}),};
import React from 'react';import { SheetComponent } from '@antv/s2-react';import '@antv/s2-react/dist/s2-react.min.css';const s2Options = {hierarchyType: 'tree', // 树形结构};const App = () => {return (<SheetComponentdataCfg={s2DataConfig}options={s2Options}partDrillDown={PartDrillDown}/>)}
import { DrillDown } from '@antv/s2-react-components';import '@antv/s2-react-components/dist/s2-react-components.min.css';function App() {return (<DrillDowndataSet={dataSet}disabledFields={disabledFields}clearText={clearText}/>)}
洞察数据异常:当销售负责人发现华中地区销售异常,远低于其他地区时。他通过下钻省份,查看华中地区所有省份的销售额。当发现湖北省销售异常时,由可以通过省份下钻到城市🏙,发现城市 B 销售额异常。通过下钻,我们快速的挖掘到了销售额异常的根源。
维度下钻功能需要满足以下两个前置条件:
透视表
: 即 sheetType="pivot"
树状模式
: 即 hierarchyType="tree"
import { DrillDown } from '@antv/s2-react-components';import '@antv/s2-react-components/dist/s2-react-components.min.css'const s2Options = {width: 600,height: 480,hierarchyType: 'tree'};<SheetComponentsheetType="pivot"options={s2Options}partDrillDown={{render: (props) => <DrillDown {...props} />,...PartDrillDown}}/>
const s2Options = {width: 600,height: 480,hierarchyType: 'tree'};<template><SheetComponentref="s2":sheetType="pivot":partDrillDown="partDrillDown":options="s2Options"/></template>
类型:object
,可选,默认值:{}
参数 | 说明 | 类型 | 默认值 | 必选 | 备注 | 版本 |
---|---|---|---|---|---|---|
drillConfig | 下钻菜单组件配置项 | DrillDownProps | - | ✓ | ||
drillItemsNum | 下钻完成后展示的个数,默认全部展示 | number | -1 | |||
fetchData | 点击下钻后的回调 | FetchCallBack | - | ✓ | ||
clearDrillDown | 清除下钻信息,当有指定的 rowId 传递时清除对应 rowId 的下钻信息;如果参数是 空对象 {},则清空所有的下钻信息 | {rowId: string;} | - | 仅 React 组件支持此属性 | ||
displayCondition | 配置下钻 icon 的展示条件, 同 HeaderActionIcon | (meta: Node, iconName: string) => boolean | - | 仅 React 组件支持此属性 | 1.26.0 回传 iconName 并按单个 icon 控制显隐 |
注意:PartDrillDown 中 drillConfig
、displayCondition
字段会影响下钻模式的重渲,请注意使用 memo 或 state 控制其可变性。
(meta: Node, drillFields: string[]) => Promise<PartDrillDownInfo>
功能描述:点击下钻后的回调参数:PartDrillDownInfo
参数 | 说明 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
drillData | 下钻的数据 | Record<string, string | number>[] | ✓ | |
drillField | 下钻维度 value 值 | string | ✓ |
参数 | 说明 | 类型 | 默认值 | 必选 | 备注 |
---|---|---|---|---|---|
dataSet | 下钻数据源配置 | DataSet[] | ✓ | ||
className | 透传样式名 | string | |||
title | 标题 | React.ReactNode | |||
searchText | 搜索框文案 | string | |||
clearText | 重置按钮文案 | React.ReactNode | |||
disabledFields | 不允许下钻的维度 | string[] | |||
getDrillFields | 内部获取当前下钻维度的回调 | Function | |||
setDrillFields | 内部设置当前下钻维度的回调 | Function | |||
extra | 自定义插入的节点,插入在搜索框和下钻菜单中间 | ReactNode | 仅 React 组件支持此属性 | ||
drillFields | 允许下钻的维度 | string[] | 仅 React 组件支持此属性 | ||
renderMenu | 自定义下钻组件 | (props: MenuProps) => ReactNode | 仅 React 组件支持此属性 |
参数 | 说明 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
name | 展示名字 | string | ✓ | |
value | 具体值 | string | ✓ | |
type | 维度类型,不同类型对应 icon 不同 | text | location | date | ||
disabled | 是否允许选择 | boolean | ||
icon | 列表 item 的 icon | ReactNode |