报表定义类型

报表定义 ReportDocument 的全部类型,按 @xihan-report/core 的源码列出。当前 schema 版本 REPORT_SCHEMA_VERSION 为 1。

报表定义是纯 JSON:数据集只描述字段与参数,不含数据;数据由取数回调按请求交回。各对象都可以带 extensions,放扩展自己的数据,见扩展数据。「中文名」是设计器属性面板里的叫法,详见属性。

报表与参数

ParameterOption {#parameteroption}

参数的一个候选项。

字段 类型 必填 中文名 说明
value ScalarValue 是 数值 取值,类型与参数一致:date 写 YYYY-MM-DD,datetime 写不带时区的 YYYY-MM-DDTHH:mm[:ss]。
label string 可省 — 显示的文字;不写按取值显示。
disabled boolean 可省 — 在参数栏里列出但不能选;宿主或缺省值给了这个取值照样认。

ReportParameter {#reportparameter}

报表参数:报表使用者填写,经绑定传给数据集参数或筛选条件。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
name string 是 名称 参数名,在报表内唯一。
type FieldType 是 类型
title string 可省 标题
required boolean 可省 必填 必须给值。
multiple boolean 可省 多选 接受多个值。
defaultValue ParameterValue 可省 缺省值 缺省值。
options readonly ParameterOption[] 可省 候选项 固定的候选项。

ReportDocument {#reportdocument}

报表文档:纯 JSON。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
schemaVersion typeof REPORT_SCHEMA_VERSION 是 — 报表定义的版本,写 REPORT_SCHEMA_VERSION。
id string 是 — 报表身份。
title string 可省 标题
description string 可省 说明
parameters readonly ReportParameter[] 可省 参数绑定
datasets readonly DatasetSchema[] 是 — 报表用到的数据集:只描述字段与参数,数据由取数回调交回。
body ReportBody 是 — 报表的主体:明细表、分组报表、交叉表、看板,或扩展登记的视图。

数据集与取数

DatasetField {#datasetfield}

数据集里的一个字段。写了 formula 的是计算字段,以同一行的字段与报表参数($名字)为变量逐行求值,不由使用方提供。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
name string 是 名称 字段名:数据行里的键,在数据集内唯一;不以 $ 开头。
type FieldType 是 类型
title string 可省 标题 显示的标题,缺省同 name。
formula string 可省 公式 计算字段的表达式;求值能力由 ExpressionEngine 提供。

DatasetParameter {#datasetparameter}

数据集接受的一个参数:取数时由使用方的数据源解释。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
name string 是 名称 参数名,在数据集内唯一。
type FieldType 是 类型
title string 可省 标题
required boolean 可省 必填 取数时必须给值。
multiple boolean 可省 多选 接受多个值。

DatasetSchema {#datasetschema}

报表引用的一个数据集。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 数据集身份,在报表内唯一,也是取数请求里的 dataset。
title string 可省 标题
fields readonly DatasetField[] 是 — 数据集的字段。
parameters readonly DatasetParameter[] 可省 参数绑定

DatasetQueryDimension {#datasetquerydimension}

取数请求里的一个维度:按 field 分组,写了 bucket 时按日期粒度取键。

字段 类型 必填 中文名 说明
id string 是 — 维度 id:交回的聚合行里以它为键。
field string 是 字段
bucket DateBucket 可省 日期粒度

DatasetQueryMeasure {#datasetquerymeasure}

取数请求里的一个度量:对 field 做 aggregate;count 不写 field 时数行。

字段 类型 必填 中文名 说明
id string 是 — 度量 id:交回的聚合行里以它为键。
field string 可省 字段
aggregate AggregateKind 是 聚合

DatasetQuery {#datasetquery}

视图需要的聚合:使用方可以照此在后端聚合,返回 aggregated 数据。已聚合数据的每行以维度 id 与度量 id 为键。

字段 类型 必填 中文名 说明
dimensions readonly DatasetQueryDimension[] 是 — 按哪些维度分组。
measures readonly DatasetQueryMeasure[] 是 — 每组要算的度量。
rollups readonly (readonly string[])[] 是 — 不可累加的度量(avg、distinctCount)要单独给出的汇总分组:每项是一组维度 id,空数组是总计。没有不可累加的度量时为空。

DatasetRequest {#datasetrequest}

取数请求:core 按视图与参数取值算出,使用方据此取数。

字段 类型 必填 中文名 说明
dataset string 是 数据集 数据集 id。
parameters ParameterValues 是 参数绑定 数据集参数的取值:已按绑定解析,未给值的参数不出现。
filter FilterGroup | null 是 筛选 已代入参数的筛选;引用了计算字段时为 null,由 core 在取回的行上筛选。
sort readonly RowSortRule[] | null 是 排序 明细视图的排序;聚合视图为 null。
limit number | null 是 行数上限 明细视图的行数上限;没有上限为 null。
query DatasetQuery | null 是 — 视图需要的聚合;明细视图或引用了计算字段时为 null,此时只能返回明细行。

DatasetRows {#datasetrows}

明细行:core 负责计算字段、筛选、分组与聚合。

字段 类型 必填 中文名 说明
kind 'rows' 是 — 交回明细行。
rows readonly DataRow[] 是 — 明细行:以字段名为键;core 在这些行上筛选、聚合与计算。

DatasetRollup {#datasetrollup}

一条汇总行:按 dimensions 分组的汇总值,键同已聚合行。

字段 类型 必填 中文名 说明
dimensions readonly string[] 是 — 分组的维度 id;空数组是总计。
row DataRow 是 — 这一组的汇总值:以度量 id 为键。

DatasetAggregated {#datasetaggregated}

已聚合数据:使用方按请求里的 query 在后端聚合并筛选过。rows 以维度 id 与度量 id 为键;不可累加度量的汇总值由 rollups 给出。

字段 类型 必填 中文名 说明
kind 'aggregated' 是 — 交回按请求聚合好的行。
rows readonly DataRow[] 是 — 每组一行:以维度 id 与度量 id 为键。
rollups readonly DatasetRollup[] 可省 — 请求的 rollups 里每个分组的汇总行;请求里 rollups 为空时不写。

DatasetData {#datasetdata}

使用方交回的数据。

取其一:DatasetRows、DatasetAggregated。

视图与看板

DataBinding {#databinding}

视图取数的数据集与参数绑定。

字段 类型 必填 中文名 说明
dataset string 是 数据集 数据集 id。
parameters Readonly<Record<string, Operand>> 可省 参数绑定 数据集参数名到操作数:字面值或报表参数。

ColumnSummary {#columnsummary}

汇总:对列的字段做聚合,或以其它列的汇总值与报表参数($名字)为变量求公式。

类型:{ readonly aggregate: AggregateKind } | { readonly formula: string }

TableColumn {#tablecolumn}

表格的一列。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 列身份,在视图内唯一。
field string 是 字段 数据集字段名。
title string 可省 标题
format FormatSpec 可省 格式
width number 可省 列宽 列宽(px)。
align 'start' | 'center' | 'end' 可省 对齐
sticky 'start' | 'end' 可省 冻结 横向滚动时固定在行首侧或行尾侧。
summary ColumnSummary 可省 — 汇总:分组报表的组小计与总计、明细表的合计行。

TableView {#tableview}

明细表:逐行列出数据。

继承 DataBinding、ReportExtensible 的字段。

字段 类型 必填 中文名 说明
type 'table' 是 类型
columns readonly TableColumn[] 是 — 各列,从左到右。
filter FilterGroup 可省 筛选
sort readonly RowSortRule[] 可省 排序
limit number 可省 行数上限 行数上限,在排序之后截取。

GroupLevel {#grouplevel}

分组报表的一级分组。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 分组身份,在视图内唯一。
field string 是 字段 数据集字段名。
bucket DateBucket 可省 日期粒度
title string 可省 标题
format FormatSpec 可省 格式
sort AxisSort 可省 排序 组的次序:by 写带汇总的列 id 时按该列的组小计排;缺省按键升序。
header boolean 可省 组头 显示组头,缺省 true。
subtotal boolean 可省 组小计 显示组小计,缺省 true。

GroupView {#groupview}

分组报表:多级分组,组内列出明细,组尾写小计,末尾写总计。

继承 DataBinding、ReportExtensible 的字段。

字段 类型 必填 中文名 说明
type 'group' 是 类型
groups readonly GroupLevel[] 是 — 各级分组,由外到内。
columns readonly TableColumn[] 是 — 明细行与组小计的各列,从左到右。
filter FilterGroup 可省 筛选
sort readonly RowSortRule[] 可省 排序 组内明细行的次序。
detail boolean 可省 列出明细 列出明细行,缺省 true;false 时只有组头与小计。
grandTotal boolean 可省 总计 写总计,缺省 true。

CrosstabTotals {#crosstabtotals}

交叉表一条轴上的汇总。

字段 类型 必填 中文名 说明
subtotals boolean 可省 — 除最内层外,每层维度的成员之后写小计,缺省 false。
grandTotal boolean 可省 总计 轴的末尾写总计,缺省 true。

CrosstabView {#crosstabview}

交叉表:行维度与列维度交叉,格子里写度量。

继承 DataBinding、ReportExtensible 的字段。

字段 类型 必填 中文名 说明
type 'crosstab' 是 类型
rows readonly Dimension[] 是 — 行维度,由外到内。
columns readonly Dimension[] 是 — 列维度,由外到内。
measures readonly Measure[] 是 — 每个格子里的度量。
filter FilterGroup 可省 筛选
rowTotals CrosstabTotals 可省 — 行方向(行维度)的小计与总计。
columnTotals CrosstabTotals 可省 — 列方向(列维度)的小计与总计。
measuresOn 'columns' | 'rows' 可省 度量排在 多个度量排在列方向还是行方向,缺省 columns。

DashboardGrid {#dashboardgrid}

看板网格。

字段 类型 必填 中文名 说明
columns number 是 — 列数。
rowHeight number 是 — 一行的高度(px)。

CardLayout {#cardlayout}

卡片在网格上的位置与大小,单位是格。

字段 类型 必填 中文名 说明
x number 是 横坐标
y number 是 纵坐标
w number 是 — 宽,单位是格。
h number 是 — 高,单位是行。

CardBase {#cardbase}

卡片的共有属性。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 卡片身份,在看板内唯一。
title string 可省 标题
description string 可省 说明
layout CardLayout 是 布局

ChartCard {#chartcard}

图表卡片。

继承 CardBase、DataBinding 的字段。

字段 类型 必填 中文名 说明
kind 'chart' 是 — 图表卡片。
query ReportQuery 是 — 取数的聚合查询:图表的维度与度量都引用它的 id。
chart ChartSpec 是 — 图表配置。

MetricCard {#metriccard}

指标卡片。

继承 CardBase、DataBinding 的字段。

字段 类型 必填 中文名 说明
kind 'metric' 是 — 指标卡片。
query ReportQuery 是 — 取数的聚合查询:指标取它的总计,迷你图取它的分组。
metric MetricSpec 是 — 指标配置。

TableCard {#tablecard}

表格卡片:内嵌一个明细表、分组报表或交叉表。

继承 CardBase 的字段。

字段 类型 必填 中文名 说明
kind 'table' 是 — 表格卡片。
view TableView | GroupView | CrosstabView 是 — 卡片里的明细表、分组报表或交叉表,带自己的数据集与筛选。

ExtensionCard {#extensioncard}

扩展登记的卡片:kind 是带点的种类名。取数部分按种类声明的形状写:同图表卡片的 dataset、parameters 与 query,或同表格卡片的 view,或不取数;其余字段归种类自己。

继承 CardBase、Partial<DataBinding> 的字段。

字段 类型 必填 中文名 说明
kind ReportExtensionKind 是 — 扩展登记的种类名。
query ReportQuery 可省 — 取数形状为 query 的种类:聚合查询。
view DataView 可省 — 取数形状为 view 的种类:明细表、分组报表或交叉表。
[key: string] unknown 是 — 种类自己的其余字段,由种类的 validate 校验。

DashboardCard {#dashboardcard}

看板上的一张卡片:图表、指标、表格,或扩展登记的种类。

取其一:ChartCard、MetricCard、TableCard、ExtensionCard。

LinkTarget {#linktarget}

联动的一个目标:在目标卡片上按字段筛选。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
card string 是 源卡片 目标卡片 id。
field string 是 字段 目标卡片数据集的字段名。

筛选联动:在源卡片上选中的取值,成为目标卡片在对应字段上的 in 条件。源维度带日期粒度时,目标字段按同一粒度取键再比较。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 联动身份,在看板内唯一。
card string 是 源卡片 源卡片 id。
dimension string 是 源维度 源卡片上发出取值的维度:图表与指标卡片是查询的维度 id,分组报表是分组 id,交叉表是行或列维度 id,明细表是列 id。
targets readonly LinkTarget[] 是 目标

DashboardView {#dashboardview}

看板:网格上排列的卡片。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
type 'dashboard' 是 类型
grid DashboardGrid 是 — 网格的列数与行高。
cards readonly DashboardCard[] 是 — 看板上的卡片,位置与大小写在各自的 layout 上。
links readonly DashboardLink[] 可省 — 卡片之间的筛选联动。

ExtensionView {#extensionview}

扩展登记的主体视图:type 是带点的种类名。取数部分按种类声明的形状写:同图表卡片的 dataset、parameters 与 query,或不取数;其余字段归种类自己。

继承 Partial<DataBinding>、ReportExtensible 的字段。

字段 类型 必填 中文名 说明
type ReportExtensionKind 是 类型
query ReportQuery 可省 — 取数形状为 query 的种类:聚合查询。
[key: string] unknown 是 — 种类自己的其余字段,由种类的 validate 校验。

ReportBody {#reportbody}

报表的主体。

取其一:TableView、GroupView、CrosstabView、DashboardView、ExtensionView。

DataView {#dataview}

可以直接取数计算的视图。

取其一:TableView、GroupView、CrosstabView。

查询

AggregateKind {#aggregatekind}

转导出自 @xihan-ui/viz。取值见常量 AGGREGATE_KINDS:

取值 中文名
sum 求和
avg 平均
count 计数
min 最小
max 最大
distinctCount 去重计数

DateBucket {#datebucket}

日期粒度:把日期取成分组键。year → 2026,quarter → 2026-Q4,month → 2026-10,week → 2026-W42(ISO 周),day → 2026-10-16,hour → 2026-10-16T08。

取值见常量 DATE_BUCKETS:

取值 中文名
year 年
quarter 季度
month 月
week 周
day 日
hour 小时

AxisSort {#axissort}

成员的次序:按键,或按某个度量在该成员上的汇总值。

字段 类型 必填 中文名 说明
by string 可省 — 度量 id(分组报表里是带汇总的列 id);不写按键。
direction SortDirection 可省 方向 缺省 asc。
nulls NullsPosition 可省 — 缺省 last。

Dimension {#dimension}

维度:按字段分组。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 维度身份:查询结果里的键,与同一查询的度量 id 共用命名空间。
field string 是 字段 数据集字段名。
bucket DateBucket 可省 日期粒度 日期粒度。
title string 可省 标题
format FormatSpec 可省 格式
sort AxisSort 可省 排序 成员次序,缺省按键升序。

MeasureBase {#measurebase}

共有的度量属性。

继承 ReportExtensible 的字段。

字段 类型 必填 中文名 说明
id string 是 — 度量身份:查询结果里的键,与同一查询的维度 id 共用命名空间。
title string 可省 标题
format FormatSpec 可省 格式

AggregateMeasure {#aggregatemeasure}

聚合度量:对字段做聚合;count 不写 field 时数行。

继承 MeasureBase 的字段。

字段 类型 必填 中文名 说明
aggregate AggregateKind 是 聚合
field string 可省 字段

FormulaMeasure {#formulameasure}

公式度量:在聚合之后,以同一查询其它度量的值与报表参数($名字)为变量求值。

继承 MeasureBase 的字段。

字段 类型 必填 中文名 说明
formula string 是 公式

Measure {#measure}

度量:聚合度量或公式度量。

取其一:AggregateMeasure、FormulaMeasure。

QuerySortRule {#querysortrule}

查询结果行的一条排序规则。

字段 类型 必填 中文名 说明
key string 是 — 维度 id 或度量 id。
direction SortDirection 可省 方向 缺省 asc。
nulls NullsPosition 可省 — 缺省 last。

ReportQuery {#reportquery}

聚合查询:按维度分组、计算度量,结果每个维度组合一行。

字段 类型 必填 中文名 说明
dimensions readonly Dimension[] 是 — 按哪些维度分组;不写维度时结果只有总计。
measures readonly Measure[] 是 — 每组要算的度量。
filter FilterGroup 可省 筛选
sort readonly QuerySortRule[] 可省 排序 结果行的次序;不写按维度依次升序。
limit number 可省 行数上限 结果行数上限,在排序之后截取。

筛选与排序

ParameterRef {#parameterref}

引用一个报表参数的值。

字段 类型 必填 中文名 说明
parameter string 是 — 报表参数名:取数时换成参数的取值。

Operand {#operand}

操作数:字面值、字面值数组,或报表参数。

类型:ScalarValue | readonly ScalarValue[] | ParameterRef

FilterOperator {#filteroperator}

转导出自 @xihan-ui/viz。取值见常量 FILTER_OPERATORS:

取值 中文名
eq —
neq —
gt —
gte —
lt —
lte —
between —
in —
notIn —
contains —
notContains —
startsWith —
endsWith —
isEmpty —
isNotEmpty —

NullsPosition {#nullsposition}

转导出自 @xihan-ui/viz。取值见常量 NULLS_POSITIONS:

取值 中文名
first 最前
last 最后

SortDirection {#sortdirection}

转导出自 @xihan-ui/viz。取值见常量 SORT_DIRECTIONS:

取值 中文名
asc 升序
desc 降序

FilterCondition {#filtercondition}

一个筛选条件。

字段 类型 必填 中文名 说明
id string 是 — 条件身份,在所在筛选树内唯一。
field string 是 字段 数据集字段名。
bucket DateBucket 可省 日期粒度 先把字段值按日期粒度取键再比较。
operator FilterOperator 是 — 运算符,见 FilterOperator;isEmpty、isNotEmpty 不要操作数,between 要两个值,in、notIn 要一组值。
value Operand 可省 数值 操作数;isEmpty / isNotEmpty 不写。
ignoreCase boolean 可省 — 字符串运算符忽略大小写。

FilterGroup {#filtergroup}

条件组:and 全部满足,or 任一满足。

字段 类型 必填 中文名 说明
logic 'and' | 'or' 是 — and 是全部满足,or 是任一满足。
conditions readonly FilterNode[] 是 — 条件与子组;组里的条件都不参与(空数组,或操作数都为空)时整组不筛选。

FilterSubgroup {#filtersubgroup}

嵌套在条件组里的子组。

继承 FilterGroup 的字段。

字段 类型 必填 中文名 说明
id string 是 — 子组身份,在所在筛选树内唯一。

FilterNode {#filternode}

条件组里的一项:条件或子组。

取其一:FilterCondition、FilterSubgroup。

RowSortRule {#rowsortrule}

明细行的一条排序规则。

字段 类型 必填 中文名 说明
field string 是 字段 数据集字段名。
direction SortDirection 可省 方向 缺省 asc。
nulls NullsPosition 可省 — 缺省 last。

图表

ChartTone {#charttone}

语气:XiHan.UI 的 Tone。

类型:Tone

ChartPalette {#chartpalette}

顺序色阶的色板,与 XiHan.UI 的 ChartPalette 一致。

类型:'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'teal' | 'cyan' | 'blue' | 'indigo' | 'purple' | 'pink' | 'gray'

ChartSymbol {#chartsymbol}

散点形状:XiHan.UI 图表引擎的 SymbolName。

类型:SymbolName

ChartSize {#chartsize}

尺寸档。

类型:'sm' | 'md' | 'lg'

CartesianSeriesSpecBase {#cartesianseriesspecbase}

笛卡尔图系列的共有属性。

字段 类型 必填 中文名 说明
id string 是 — 系列身份,在图内唯一。
name string 可省 名称 图例与提示框里的名字,缺省取度量标题。
slot number 可省 色槽 固定色槽 1–8。
tone ChartTone 可省 语气 语义系列的语气。

CartesianBarSeriesSpec {#cartesianbarseriesspec}

柱系列。

继承 CartesianSeriesSpecBase 的字段。

字段 类型 必填 中文名 说明
mark 'bar' 是 标记
x string 是 横坐标 自变量:维度 id。
y string | readonly [string, string] 是 纵坐标 数值:度量 id;写成 [下, 上] 是浮动柱。
shape 'bar' | 'lollipop' 可省 形状
stack string 可省 堆叠组
stackOffset 'none' | 'expand' | 'diverging' 可省 堆叠方式
labels 'none' | 'inside' | 'end' 可省 标签

CartesianLineSeriesSpec {#cartesianlineseriesspec}

折线系列。

继承 CartesianSeriesSpecBase 的字段。

字段 类型 必填 中文名 说明
mark 'line' 是 标记
x string 是 横坐标 自变量:维度 id。
y string | readonly [string, string] 是 纵坐标 数值:度量 id;写成 [下, 上] 是区间带。
curve 'linear' | 'monotone' | 'step' | 'step-before' | 'step-after' 可省 曲线
area boolean 可省 面积
stack string 可省 堆叠组
stackOffset 'none' | 'expand' | 'silhouette' | 'wiggle' 可省 堆叠方式
symbols 'auto' | 'always' | 'none' 可省 数据点
connectNulls boolean 可省 连接空值
labels 'none' | 'end' 可省 标签
endLabel boolean 可省 末端标签

CartesianScatterSeriesSpec {#cartesianscatterseriesspec}

散点系列:每个维度组合一个点。

继承 CartesianSeriesSpecBase 的字段。

字段 类型 必填 中文名 说明
mark 'scatter' 是 标记
x string 是 横坐标 横坐标:维度 id 或度量 id。
y string 是 纵坐标 纵坐标:度量 id。
size string 可省 尺寸 气泡大小:度量 id。
symbol ChartSymbol 可省 点形状
jitter number 可省 抖动
color string 可省 颜色度量 按值着色:度量 id。

CartesianSeriesSpec {#cartesianseriesspec}

柱线图的一条系列:柱、折线或散点。

取其一:CartesianBarSeriesSpec、CartesianLineSeriesSpec、CartesianScatterSeriesSpec。

CartesianAxisSpec {#cartesianaxisspec}

坐标轴;时间值写 ISO 8601 字符串。

字段 类型 必填 中文名 说明
scale 'band' | 'point' | 'linear' | 'log' | 'sqrt' | 'pow' | 'symlog' | 'time' | 'utc' 可省 刻度 比例尺;不写按数据推断:带柱或非数值的自变量用 band,日期用 time,数值用 linear。
domain readonly (string | number)[] 可省 — 类目轴的显式顺序。
min number | string 可省 — 下界;时间轴写 ISO 8601 字符串。
max number | string 可省 — 上界;时间轴写 ISO 8601 字符串。
nice boolean 可省 — 两端取整到刻度上,数值轴缺省为真。
zero boolean 可省 — 数值轴包含 0;有柱系列时总是包含。
ticks number 可省 — 刻度数量提示。
format FormatSpec 可省 格式 刻度标签的格式。
title string 可省 标题 轴标题。
grid boolean 可省 — 画网格线;不写时数值轴画、类目轴不画。
labelOverflow 'auto' | 'rotate' | 'truncate' | 'wrap' 可省 — 刻度标签放不下时:自动、旋转、截断或折行。
reverse boolean 可省 — 反向。
exponent number 可省 — pow 轴的指数,正数,缺省 1。
constant number 可省 — symlog 轴 sign(x) · log1p(|x| / c) 里的 c,正数,缺省 1;越小越接近对数,越大越接近线性。
timeZone string 可省 — 时间轴按哪个时区(IANA 名)排刻度、写标签;不写时 time 轴按运行环境所在时区,utc 轴按 UTC。
minSize number 可省 — 这根轴(刻度、标签与标题)至少占的厚度(px):上下叠放的几张图写同一个值,绘图区的左边就对齐。
ordinal boolean 可省 — 只用于横轴:数据点等距排列,跳过没有数据的时段;比例尺须为 time、utc 或 linear。
fit 'all' | 'window' 可省 — 只用于纵轴:定义域按全部数据(all,缺省)还是只按缩放窗口里露出的数据(window)算。

CartesianAnnotationSpec {#cartesianannotationspec}

注释;axis 的 x 是自变量轴,y 是数值轴。series 写系列 id。

类型:| { readonly kind: 'line', readonly axis: 'x' | 'y', readonly value: number | string, readonly label?: string } | { readonly kind: 'band', readonly axis: 'x' | 'y', readonly from: number | string, readonly to: number | string, readonly label?: string } | { readonly kind: 'point', readonly series: string, readonly at: 'max' | 'min' | 'last' | { readonly x: number | string }, readonly label?: string } | { readonly kind: 'average', readonly series: string, readonly label?: string } | { readonly kind: 'trend', readonly series: string, readonly method: 'linear' | 'moving-average', readonly window?: number, readonly label?: string }

CartesianChartSpec {#cartesianchartspec}

笛卡尔图:柱、折线、面积、散点。

字段 类型 必填 中文名 说明
type 'cartesian' 是 类型
series readonly CartesianSeriesSpec[] 是 — 各系列:柱、折线与散点可以混排。
splitBy string 可省 拆分系列 拆分维度:每个系列按这个维度的每个成员各展开一条。
orientation 'vertical' | 'horizontal' 可省 方向
xAxis CartesianAxisSpec 可省 — 横轴(自变量轴);orientation 为 horizontal 时画在左侧。
yAxis CartesianAxisSpec 可省 — 纵轴(数值轴)。
renderer 'svg' | 'canvas' | 'auto' 可省 渲染方式
trigger 'axis' | 'item' 可省 提示框触发
totals boolean 可省 显示合计
tooltipOrder 'series' | 'descending' | 'ascending' 可省 提示框排序
palette ChartPalette 可省 色板
annotations readonly CartesianAnnotationSpec[] 可省 标注
zoom 'none' | 'x' | 'y' | 'xy' 可省 缩放
brush 'none' | 'x' | 'y' | 'xy' 可省 刷选

PieChartSpec {#piechartspec}

饼图:每个维度成员一个扇区。

字段 类型 必填 中文名 说明
type 'pie' 是 类型
nameField string 是 名称维度 扇区名:维度 id。
valueField string 是 数值度量 数值:度量 id。
variant 'pie' | 'donut' 可省 形态
rose boolean 可省 玫瑰图
sweep 'full' | 'half' 可省 扇区范围
sort 'none' | 'descending' 可省 排序
maxSlices number 可省 最多扇区数
labels 'none' | 'inside' | 'outside' 可省 标签
labelContent 'name-share' | 'name-value' | 'name' | 'share' | 'value' 可省 标签内容
format NumericFormatSpec 可省 格式

FunnelChartSpec {#funnelchartspec}

漏斗图:每个维度成员一个阶段。

字段 类型 必填 中文名 说明
type 'funnel' 是 类型
nameField string 是 名称维度 阶段名:维度 id。
valueField string 是 数值度量 数值:度量 id。
shape 'trapezoid' | 'bar' 可省 形状
align 'center' | 'start' 可省 对齐
direction 'down' | 'up' 可省 方向
conversion 'previous' | 'first' | 'none' 可省 转化率
labels 'inside' | 'outside' 可省 标签
palette ChartPalette 可省 色板
format NumericFormatSpec 可省 格式

RadarIndicatorSpec {#radarindicatorspec}

雷达图的一个指标。

字段 类型 必填 中文名 说明
key string 是 — 度量 id。
label string 可省 — 轴上的名字;不写取度量的标题。
min number 可省 — 这根轴的下界;不写按数据算。
max number 可省 — 这根轴的上界;不写按数据算。

RadarChartSpec {#radarchartspec}

雷达图:每个维度成员一个实体,每个指标一根轴。

字段 类型 必填 中文名 说明
type 'radar' 是 类型
nameField string 是 名称维度 实体名:维度 id。
indicators readonly RadarIndicatorSpec[] 是 指标
shape 'polygon' | 'circle' 可省 形状
area boolean 可省 面积
scale 'shared' | 'independent' 可省 刻度
curve 'linear' | 'catmull-rom' 可省 曲线
rings number 可省 环数
ringLabels boolean 可省 环标签
format NumericFormatSpec 可省 格式

SankeyChartSpec {#sankeychartspec}

桑基图:每个维度组合一条流带。

字段 类型 必填 中文名 说明
type 'sankey' 是 类型
sourceField string 是 源维度 源节点:维度 id。
targetField string 是 目标维度 目标节点:维度 id。
valueField string 是 数值度量 流量:度量 id。
orientation 'horizontal' | 'vertical' 可省 方向
nodeAlign 'justify' | 'start' | 'end' | 'center' 可省 节点对齐
linkColor 'neutral' | 'source' | 'target' | 'gradient' 可省 连线颜色
nodeSort 'auto' | 'input' 可省 节点排序
format NumericFormatSpec 可省 格式

HeatmapChartSpecBase {#heatmapchartspecbase}

热力图共有的属性。

字段 类型 必填 中文名 说明
type 'heatmap' 是 类型
valueField string 是 数值度量 数值:度量 id。
levels number 可省 层级
thresholds readonly number[] 可省 分档阈值
scale 'sequential' | 'diverging' 可省 刻度
midpoint number 可省 中点
continuous boolean 可省 连续色阶
tone ChartTone 可省 语气
palette ChartPalette 可省 色板
size ChartSize 可省 尺寸

HeatmapDateChartSpec {#heatmapdatechartspec}

日期热力图:calendar 连续周列,month 按自然月分块。

继承 HeatmapChartSpecBase 的字段。

字段 类型 必填 中文名 说明
variant 'calendar' | 'month' 是 形态
dateField string 是 日期维度 日期:维度 id,键为 YYYY-MM-DD。
startDate string 可省 开始日期 区间起点(含),YYYY-MM-DD;不写取数据里最早的日期。
endDate string 可省 结束日期 区间终点(含),YYYY-MM-DD;不写取数据里最晚的日期。
firstDayOfWeek number 可省 每周第一天 周首日,0 = 星期日。

HeatmapMatrixChartSpec {#heatmapmatrixchartspec}

矩阵热力图:行列各是一个维度。

继承 HeatmapChartSpecBase 的字段。

字段 类型 必填 中文名 说明
variant 'matrix' 是 形态
rowField string 是 行维度 行:维度 id。
columnField string 是 列维度 列:维度 id。

HeatmapChartSpec {#heatmapchartspec}

热力图:日历(含按月)或矩阵。

取其一:HeatmapDateChartSpec、HeatmapMatrixChartSpec。

HierarchyChartSpec {#hierarchychartspec}

层级图:维度依次是由上到下的层。

字段 类型 必填 中文名 说明
type 'hierarchy' 是 类型
levels readonly string[] 是 层级 各层:维度 id,由上到下。
valueField string 是 数值度量 数值:度量 id。
layout 'treemap' | 'sunburst' | 'icicle' | 'pack' 可省 布局
tile 'squarify' | 'binary' | 'slice-dice' 可省 切分方式
depth number 可省 展开层数
colorBy 'branch' | 'value' | 'uniform' 可省 着色依据
palette ChartPalette 可省 色板
orientation 'vertical' | 'horizontal' 可省 方向
format NumericFormatSpec 可省 格式

ChartSpec {#chartspec}

图表配置,按 type 分。

取其一:CartesianChartSpec、PieChartSpec、FunnelChartSpec、RadarChartSpec、SankeyChartSpec、HeatmapChartSpec、HierarchyChartSpec。

SparklineSpec {#sparklinespec}

迷你图:指标卡片里的走势。

字段 类型 必填 中文名 说明
x string 是 横坐标 横坐标:维度 id。
y string 是 纵坐标 数值:度量 id。
variant 'line' | 'area' | 'bar' | 'win-loss' 可省 形态
curve 'linear' | 'monotone' 可省 曲线
markers 'none' | 'last' | 'extremes' 可省 — 标出哪些点:不标、末点或最高最低点。
band readonly [number, number] 可省 — 参考带 [下界, 上界]。
reference number | 'mean' | 'median' 可省 — 参考线:固定值,或按数据算出的均值 / 中位数。
tone ChartTone 可省 语气

MetricSpec {#metricspec}

指标卡片:一个汇总值,可带对比与走势。

字段 类型 必填 中文名 说明
value string 是 数值 显示的值:度量 id,取查询的总计。
baseline string 可省 基准值 对比基准:度量 id,取查询的总计;与 value 比出涨跌。
prefix string 可省 前缀
suffix string 可省 后缀
format NumericFormatSpec 可省 格式
size ChartSize 可省 尺寸
tone ChartTone 可省 语气
sparkline SparklineSpec 可省 — 迷你图;不写不画。

取值

ScalarValue {#scalarvalue}

JSON 标量:模板里能写下的单个值。

类型:JsonPrimitive

JsonValue {#jsonvalue}

转导出自 @xihan-ui/core/json。

DataRow {#datarow}

一行数据:字段名到值。core 只读不写。

类型:Readonly<Record<string, unknown>>

ParameterValue {#parametervalue}

参数的取值:单值,或多选参数的值数组。

类型:ScalarValue | readonly ScalarValue[]

ParameterValues {#parametervalues}

一组参数取值:参数名到值。

类型:Readonly<Record<string, ParameterValue>>

FieldType {#fieldtype}

字段类型。date 是日期(YYYY-MM-DD),datetime 是日期时间;两者的值可以是 ISO 8601 字符串、毫秒时间戳或 Date。

取值见常量 FIELD_TYPES:

取值 中文名
string 文本
number 数值
boolean 布尔
date 日期
datetime 日期时间

值格式

DateFormatSpec {#dateformatspec}

转导出自 @xihan-ui/expression。

FormatRounding {#formatrounding}

转导出自 @xihan-ui/expression。

FormatSpec {#formatspec}

转导出自 @xihan-ui/expression。

NumberFormatSpec {#numberformatspec}

转导出自 @xihan-ui/expression。

PercentFormatSpec {#percentformatspec}

转导出自 @xihan-ui/expression。

RmbUpperFormatSpec {#rmbupperformatspec}

转导出自 @xihan-ui/expression。

NumericFormatSpec {#numericformatspec}

图表数值用的格式说明:数字或百分比。

取其一:NumberFormatSpec、PercentFormatSpec。

扩展数据

ReportExtensionKind {#reportextensionkind}

扩展登记的卡片与视图种类名:扩展 id 的末段、一个点、名字,如 gantt.timeline。内置种类不带点。

类型:${string}.${string}

ReportExtensionData {#reportextensiondata}

对象上各扩展自己的数据:键是扩展 id,值归那个扩展;校验只查它与每一块都是对象,里面不看。

类型:Readonly<Record<string, JsonObject>>

ReportExtensible {#reportextensible}

能带扩展数据的对象:文档、数据集、字段、参数、视图、卡片、各列表项与联动。

字段 类型 必填 中文名 说明
extensions ReportExtensionData 可省 — 各扩展自己的数据:键是扩展 id,值是 JSON 对象;编辑与剪贴板原样带过去。