生态产品多个设计器现已发布候选版本

查看生态总览
跳转到内容

报表定义类型 ​

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

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

报表与参数 ​

ParameterOption ​

参数的一个候选项。

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

ReportParameter ​

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

继承 ReportExtensible 的字段。

字段类型必填中文名说明
namestring是名称参数名,在报表内唯一。
typeFieldType是类型
titlestring可省标题
requiredboolean可省必填必须给值。
multipleboolean可省多选接受多个值。
defaultValueParameterValue可省缺省值缺省值。
optionsreadonly ParameterOption[]可省候选项固定的候选项。

ReportDocument ​

报表文档:纯 JSON。

继承 ReportExtensible 的字段。

字段类型必填中文名说明
schemaVersiontypeof REPORT_SCHEMA_VERSION是—报表定义的版本,写 REPORT_SCHEMA_VERSION。
idstring是—报表身份。
titlestring可省标题
descriptionstring可省说明
parametersreadonly ReportParameter[]可省参数绑定
datasetsreadonly DatasetSchema[]是—报表用到的数据集:只描述字段与参数,数据由取数回调交回。
bodyReportBody是—报表的主体:明细表、分组报表、交叉表、看板,或扩展登记的视图。

数据集与取数 ​

DatasetField ​

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

继承 ReportExtensible 的字段。

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

DatasetParameter ​

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

继承 ReportExtensible 的字段。

字段类型必填中文名说明
namestring是名称参数名,在数据集内唯一。
typeFieldType是类型
titlestring可省标题
requiredboolean可省必填取数时必须给值。
multipleboolean可省多选接受多个值。

DatasetSchema ​

报表引用的一个数据集。

继承 ReportExtensible 的字段。

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

DatasetQueryDimension ​

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

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

DatasetQueryMeasure ​

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

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

DatasetQuery ​

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

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

DatasetRequest ​

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

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

DatasetRows ​

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

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

DatasetRollup ​

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

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

DatasetAggregated ​

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

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

DatasetData ​

使用方交回的数据。

取其一:DatasetRows、DatasetAggregated。

视图与看板 ​

DataBinding ​

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

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

ColumnSummary ​

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

类型:{ readonly aggregate: AggregateKind } |

TableColumn ​

表格的一列。

继承 ReportExtensible 的字段。

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

TableView ​

明细表:逐行列出数据。

继承 DataBinding、ReportExtensible 的字段。

字段类型必填中文名说明
type'table'是类型
columnsreadonly TableColumn[]是—各列,从左到右。
filterFilterGroup可省筛选
sortreadonly RowSortRule[]可省排序
limitnumber可省行数上限行数上限,在排序之后截取。

GroupLevel ​

分组报表的一级分组。

继承 ReportExtensible 的字段。

字段类型必填中文名说明
idstring是—分组身份,在视图内唯一。
fieldstring是字段数据集字段名。
bucketDateBucket可省日期粒度
titlestring可省标题
formatFormatSpec可省格式
sortAxisSort可省排序组的次序:by 写带汇总的列 id 时按该列的组小计排;缺省按键升序。
headerboolean可省组头显示组头,缺省 true。
subtotalboolean可省组小计显示组小计,缺省 true。

GroupView ​

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

继承 DataBinding、ReportExtensible 的字段。

字段类型必填中文名说明
type'group'是类型
groupsreadonly GroupLevel[]是—各级分组,由外到内。
columnsreadonly TableColumn[]是—明细行与组小计的各列,从左到右。
filterFilterGroup可省筛选
sortreadonly RowSortRule[]可省排序组内明细行的次序。
detailboolean可省列出明细列出明细行,缺省 true;false 时只有组头与小计。
grandTotalboolean可省总计写总计,缺省 true。

CrosstabTotals ​

交叉表一条轴上的汇总。

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

CrosstabView ​

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

继承 DataBinding、ReportExtensible 的字段。

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

DashboardGrid ​

看板网格。

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

CardLayout ​

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

字段类型必填中文名说明
xnumber是横坐标
ynumber是纵坐标
wnumber是—宽,单位是格。
hnumber是—高,单位是行。

CardBase ​

卡片的共有属性。

继承 ReportExtensible 的字段。

字段类型必填中文名说明
idstring是—卡片身份,在看板内唯一。
titlestring可省标题
descriptionstring可省说明
layoutCardLayout是布局

ChartCard ​

图表卡片。

继承 CardBase、DataBinding 的字段。

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

MetricCard ​

指标卡片。

继承 CardBase、DataBinding 的字段。

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

TableCard ​

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

继承 CardBase 的字段。

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

ExtensionCard ​

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

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

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

DashboardCard ​

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

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

LinkTarget ​

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

继承 ReportExtensible 的字段。

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

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

继承 ReportExtensible 的字段。

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

DashboardView ​

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

继承 ReportExtensible 的字段。

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

ExtensionView ​

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

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

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

ReportBody ​

报表的主体。

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

DataView ​

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

取其一:TableView、GroupView、CrosstabView。

查询 ​

AggregateKind ​

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

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

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 ​

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

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

Dimension ​

维度:按字段分组。

继承 ReportExtensible 的字段。

字段类型必填中文名说明
idstring是—维度身份:查询结果里的键,与同一查询的度量 id 共用命名空间。
fieldstring是字段数据集字段名。
bucketDateBucket可省日期粒度日期粒度。
titlestring可省标题
formatFormatSpec可省格式
sortAxisSort可省排序成员次序,缺省按键升序。

MeasureBase ​

共有的度量属性。

继承 ReportExtensible 的字段。

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

AggregateMeasure ​

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

继承 MeasureBase 的字段。

字段类型必填中文名说明
aggregateAggregateKind是聚合
fieldstring可省字段

FormulaMeasure ​

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

继承 MeasureBase 的字段。

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

Measure ​

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

取其一:AggregateMeasure、FormulaMeasure。

QuerySortRule ​

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

字段类型必填中文名说明
keystring是—维度 id 或度量 id。
directionSortDirection可省方向缺省 asc。
nullsNullsPosition可省—缺省 last。

ReportQuery ​

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

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

筛选与排序 ​

ParameterRef ​

引用一个报表参数的值。

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

Operand ​

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

类型:ScalarValue | readonly ScalarValue[] | ParameterRef

FilterOperator ​

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

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

NullsPosition ​

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

取值中文名
first最前
last最后

SortDirection ​

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

取值中文名
asc升序
desc降序

FilterCondition ​

一个筛选条件。

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

FilterGroup ​

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

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

FilterSubgroup ​

嵌套在条件组里的子组。

继承 FilterGroup 的字段。

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

FilterNode ​

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

取其一:FilterCondition、FilterSubgroup。

RowSortRule ​

明细行的一条排序规则。

字段类型必填中文名说明
fieldstring是字段数据集字段名。
directionSortDirection可省方向缺省 asc。
nullsNullsPosition可省—缺省 last。

图表 ​

ChartTone ​

语气:XiHan.UI 的 Tone。

类型:Tone

ChartPalette ​

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

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

ChartSymbol ​

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

类型:SymbolName

ChartSize ​

尺寸档。

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

CartesianSeriesSpecBase ​

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

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

CartesianBarSeriesSpec ​

柱系列。

继承 CartesianSeriesSpecBase 的字段。

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

CartesianLineSeriesSpec ​

折线系列。

继承 CartesianSeriesSpecBase 的字段。

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

CartesianScatterSeriesSpec ​

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

继承 CartesianSeriesSpecBase 的字段。

字段类型必填中文名说明
mark'scatter'是标记
xstring是横坐标横坐标:维度 id 或度量 id。
ystring是纵坐标纵坐标:度量 id。
sizestring可省尺寸气泡大小:度量 id。
symbolChartSymbol可省点形状
jitternumber可省抖动
colorstring可省颜色度量按值着色:度量 id。

CartesianSeriesSpec ​

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

取其一:CartesianBarSeriesSpec、CartesianLineSeriesSpec、CartesianScatterSeriesSpec。

CartesianAxisSpec ​

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

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

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 ​

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

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

PieChartSpec ​

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

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

FunnelChartSpec ​

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

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

RadarIndicatorSpec ​

雷达图的一个指标。

字段类型必填中文名说明
keystring是—度量 id。
labelstring可省—轴上的名字;不写取度量的标题。
minnumber可省—这根轴的下界;不写按数据算。
maxnumber可省—这根轴的上界;不写按数据算。

RadarChartSpec ​

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

字段类型必填中文名说明
type'radar'是类型
nameFieldstring是名称维度实体名:维度 id。
indicatorsreadonly RadarIndicatorSpec[]是指标
shape'polygon' | 'circle'可省形状
areaboolean可省面积
scale'shared' | 'independent'可省刻度
curve'linear' | 'catmull-rom'可省曲线
ringsnumber可省环数
ringLabelsboolean可省环标签
formatNumericFormatSpec可省格式

SankeyChartSpec ​

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

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

HeatmapChartSpecBase ​

热力图共有的属性。

字段类型必填中文名说明
type'heatmap'是类型
valueFieldstring是数值度量数值:度量 id。
levelsnumber可省层级
thresholdsreadonly number[]可省分档阈值
scale'sequential' | 'diverging'可省刻度
midpointnumber可省中点
continuousboolean可省连续色阶
toneChartTone可省语气
paletteChartPalette可省色板
sizeChartSize可省尺寸

HeatmapDateChartSpec ​

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

继承 HeatmapChartSpecBase 的字段。

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

HeatmapMatrixChartSpec ​

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

继承 HeatmapChartSpecBase 的字段。

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

HeatmapChartSpec ​

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

取其一:HeatmapDateChartSpec、HeatmapMatrixChartSpec。

HierarchyChartSpec ​

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

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

ChartSpec ​

图表配置,按 type 分。

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

SparklineSpec ​

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

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

MetricSpec ​

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

字段类型必填中文名说明
valuestring是数值显示的值:度量 id,取查询的总计。
baselinestring可省基准值对比基准:度量 id,取查询的总计;与 value 比出涨跌。
prefixstring可省前缀
suffixstring可省后缀
formatNumericFormatSpec可省格式
sizeChartSize可省尺寸
toneChartTone可省语气
sparklineSparklineSpec可省—迷你图;不写不画。

取值 ​

ScalarValue ​

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

类型:JsonPrimitive

JsonValue ​

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

DataRow ​

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

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

ParameterValue ​

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

类型:ScalarValue | readonly ScalarValue[]

ParameterValues ​

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

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

FieldType ​

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

取值见常量 FIELD_TYPES:

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

值格式 ​

DateFormatSpec ​

转导出自 @xihan-ui/expression。

FormatRounding ​

转导出自 @xihan-ui/expression。

FormatSpec ​

转导出自 @xihan-ui/expression。

NumberFormatSpec ​

转导出自 @xihan-ui/expression。

PercentFormatSpec ​

转导出自 @xihan-ui/expression。

RmbUpperFormatSpec ​

转导出自 @xihan-ui/expression。

NumericFormatSpec ​

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

取其一:NumberFormatSpec、PercentFormatSpec。

扩展数据 ​

ReportExtensionKind ​

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

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

ReportExtensionData ​

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

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

ReportExtensible ​

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

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

Released under The MIT License