开发预览 更新于 2026-05-10

Pivot 透视表

行 × 列 二维聚合表格 —— sum / avg / count / min / max 五种聚合、自带行列合计、可选热力着色、单元格 drill-down。

基础用法

把扁平的对象数组按 rowField(行)/ colField(列)分组,对 valueField 字段做聚合。组件会自动计算行合计、列合计、总计。

region/channel官网门店App合计
华北¥12,400¥8,200¥4,900¥25,500
华东¥22,800¥14,200¥9,800¥46,800
华南¥18,200¥6,800¥5,400¥30,400
西部¥7,400¥3,200¥2,100¥12,700
合计¥60,800¥32,400¥22,200¥115,400

热力图模式

heatmap 打开后,每个单元格按数值大小渲染为一层透明 accent 颜色(数值越大颜色越深)。配合不同 aggregator 切换可以快速观察分布形态。

aggregator

周 × 小时 出行热力(模拟数据)

weekday/hour000408121620
周一965928531727778
周二9763313298306109
周三538130730029056
周四1085827331928186
周五518628430028593
周六161125121302162300
周日126168157283170290

Drill-down

onCellClick 回调会拿到 { row, col, value, rows } —— rows 是聚合时归并到这个单元格的所有原始数据,可用于触发抽屉、弹窗等下钻交互。

product/store上海北京深圳合计
A6,0001,9007,900
B5,4006,1004,20015,700
C1,2002,4003,3006,900
合计12,60010,4007,50030,500

API

Prop类型默认说明
dataT[]扁平数据数组
rowFieldkeyof T用于分行的字段
colFieldkeyof T用于分列的字段
valueFieldkeyof T数值字段(aggregator='count' 时可省略)
aggregator'sum' | 'avg' | 'count' | 'min' | 'max''sum'聚合方式
format(value, { row, col }) => string单元格自定义格式化
showTotalsbooleantrue是否显示行 / 列合计
heatmapbooleanfalse按数值大小渲染热力背景
heatmapColorstringvar(--accent-1)热力主色
captionstring顶部说明文字
size'sm' | 'md' | 'lg''md'字号档位
onCellClick(cell) => void单元格点击回调,参数包含原始 rows

工具函数

import { pivotCompute, pivotAggregate } from '@chufix-design/vue';

const result = pivotCompute(data, 'region', 'channel', 'amount', 'sum');
// → { rowKeys, colKeys, cells, raw, rowTotals, colTotals, grandTotal, min, max }

pivotCompute 是组件内部用的纯函数,外部也可以直接复用:导出 CSV、画图、做下钻等场景都用得上。

反馈与讨论

Pivot 透视表 的讨论

0
0 / 600
一键发送
正在加载评论...