Skip to content

Commit 8ffa457

Browse files
committed
feat: column, bar and line charts support series
1 parent 35def63 commit 8ffa457

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

backend/template.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ template:
4848
- 如果需要表格,则生成的 JSON 格式应为:
4949
{{"type":"table", "title": "标题", "columns": [{{"name":"中文字段名1", "value": "SQL 查询列 1(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, {{"name": "中文字段名 2", "value": "SQL 查询列 2(有别名用别名,去掉外层的反引号、双引号、方括号)"}}]}}
5050
必须从 SQL 查询列中提取“columns”。
51-
- 如果需要柱状图,则生成的 JSON 格式应为:
52-
{{"type":"column", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称", "value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}
51+
- 如果需要柱状图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series)
52+
{{"type":"column", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称", "value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "series": {{"name":"分类的中文名称","value":"SQL 查询分类的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}}}
5353
必须从 SQL 查询列中提取“x”和“y”。
54-
- 如果需要条形图,则生成的 JSON 格式应为:
55-
{{"type":"bar", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称", "value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}
54+
- 如果需要条形图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series)
55+
{{"type":"bar", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称", "value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "series": {{"name":"分类的中文名称","value":"SQL 查询分类的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}}}
5656
必须从 SQL 查询列中提取“x”和“y”。
57-
- 如果需要折线图,则生成的 JSON 格式应为:
58-
{{"type":"line", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称","value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}
57+
- 如果需要折线图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series)
58+
{{"type":"line", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称","value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "series": {{"name":"分类的中文名称","value":"SQL 查询分类的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}}}
5959
其中“x”和“y”必须从SQL查询列中提取。
6060
- 如果需要饼图,则生成的 JSON 格式应为:
6161
{{"type":"pie", "title": "标题", "axis": {{"y": {{"值轴的中文名称","value":"SQL 查询数值的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "series": {{"name":"分类的中文名称","value":"SQL 查询分类的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}

frontend/src/views/chat/component/charts/Bar.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ export class Bar extends BaseG2Chart {
88

99
init(axis: Array<ChartAxis>, data: Array<ChartData>) {
1010
super.init(axis, data)
11+
1112
const x = this.axis.filter((item) => item.type === 'x')
1213
const y = this.axis.filter((item) => item.type === 'y')
14+
const series = this.axis.filter((item) => item.type === 'series')
1315

1416
if (x.length == 0 || y.length == 0) {
1517
return
@@ -28,5 +30,9 @@ export class Bar extends BaseG2Chart {
2830
nice: true,
2931
})
3032
.interaction('elementHighlight', { background: true })
33+
34+
if (series.length > 0) {
35+
this.chart?.encode('color', series[0].value).transform({ type: 'stackY' })
36+
}
3137
}
3238
}

frontend/src/views/chat/component/charts/Column.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export class Column extends BaseG2Chart {
1111

1212
const x = this.axis.filter((item) => item.type === 'x')
1313
const y = this.axis.filter((item) => item.type === 'y')
14+
const series = this.axis.filter((item) => item.type === 'series')
1415

1516
if (x.length == 0 || y.length == 0) {
1617
return
@@ -28,5 +29,9 @@ export class Column extends BaseG2Chart {
2829
nice: true,
2930
})
3031
.interaction('elementHighlight', { background: true })
32+
33+
if (series.length > 0) {
34+
this.chart?.encode('color', series[0].value).transform({ type: 'stackY' })
35+
}
3136
}
3237
}

frontend/src/views/chat/component/charts/Line.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export class Line extends BaseG2Chart {
1111

1212
const x = this.axis.filter((item) => item.type === 'x')
1313
const y = this.axis.filter((item) => item.type === 'y')
14+
const series = this.axis.filter((item) => item.type === 'series')
1415

1516
if (x.length == 0 || y.length == 0) {
1617
return
@@ -27,6 +28,10 @@ export class Line extends BaseG2Chart {
2728
nice: true,
2829
})
2930

31+
if (series.length > 0) {
32+
this.chart?.encode('color', series[0].value)
33+
}
34+
3035
this.chart?.line().label({
3136
text: y[0].value,
3237
style: {

0 commit comments

Comments
 (0)