配置协议与运行边界

一期采用字段级 DSL,生成固定代码,不提供 SQL 编辑器、跨表关联、公式脚本或任意 ECharts 配置。

单表聚合 DSL:single-table-aggregate-v1
{
  "table": "shop_order",
  "dimension": {
    "field": "create_time",
    "timeUnit": "day"
  },
  "metrics": [{
    "field": "amount",
    "aggregate": "sum",
    "alias": "salesAmount"
  }],
  "filters": [{
    "field": "status",
    "operator": "eq",
    "value": "PAID"
  }],
  "dateRange": {
    "field": "create_time",
    "preset": "last_30_days"
  },
  "sort": { "by": "dimension", "order": "asc" },
  "limit": 100
}
统一响应协议
{
  "dimensions": [
    { "key": "2026-06-01", "label": "06-01" }
  ],
  "series": [{
    "key": "salesAmount",
    "name": "销售额",
    "values": [12800.50]
  }],
  "summary": {
    "value": 86420,
    "count": 328
  }
}

指标卡读取 summary,折线/柱状图读取 dimensions + series,饼图将第一组 series 映射为分类占比。

字段类型约束

COUNT

任意字段或整表计数

SUM / AVG

仅数值字段

维度

文本、枚举、日期时间

时间粒度

日、周、月;仅时间字段

生成与运行链路
保存页面

校验表、字段、聚合和筛选

生成代码

每个块生成只读聚合 API

运行查询

Mapper 使用白名单字段和固定 SQL 片段

图表渲染

ECharts 组件消费统一响应

权限与安全

错误与降级

首批四个块的差异

维度指标特有配置
指标卡不需要1 个前后缀、精度、对比文案
折线图必填1–3 个平滑、面积、图例
柱状图必填1–3 个横向、堆叠、Top N
饼图必填1 个环形、标签、Top N + 其他
测试重点:DSL 校验、类型约束、SQL 白名单生成、权限注解、空数据、单块失败隔离、旧页面兼容,以及四种图表的模板快照。