Skip to content

feat: 新增Clickhouse类型的数据源支持#456

Open
hiyizi wants to merge 8 commits intospring-ai-alibaba:mainfrom
hiyizi:main
Open

feat: 新增Clickhouse类型的数据源支持#456
hiyizi wants to merge 8 commits intospring-ai-alibaba:mainfrom
hiyizi:main

Conversation

@hiyizi
Copy link

@hiyizi hiyizi commented Feb 27, 2026

Describe what this PR does / why we need it

新增Clickhouse类型的数据源支持

Does this pull request fix one issue?

Describe how you did it

Describe how to verify it

Special notes for reviews

@hiyizi
Copy link
Author

hiyizi commented Feb 27, 2026

问题根因
系统有 两条 ECharts 渲染管线,处理方式不一致:

管线 文件 解析方式 含函数的配置
报告模板 report-html-template.ts:85 new Function('return ' + code)() ✅ 正常
Markdown 渲染 markdown-plugin-echarts.ts:30 + MarkdownAgentContainer.vue:125 JSON.parse(code) ❌ 报错
JSON.parse 只能解析标准 JSON,而你的 ECharts 配置包含两处 JavaScript 函数:
  • "formatter": function(params) { ... } — tooltip 格式化
  • "symbolSize": function(data) { ... } — 气泡大小计算
    这在 ECharts 官方示例中完全合法,但不是合法 JSON。
    修改内容
    文件 1:markdown-plugin-echarts.ts(解析阶段)
  • JSON.parse(code) → new Function('return (' + code + ')')() — 支持 JS 函数表达式
  • 配置存储从 innerHTML 改为 data-option 属性 + encodeURIComponent — 避免 HTML 转义破坏配置中的
    等内容
    文件 2:MarkdownAgentContainer.vue(渲染阶段)
  • 优先从 data-option 属性读取配置(新路径),回退到 textContent(向后兼容旧数据)
  • JSON.parse(content) → new Function('return (' + content + ')')() — 与报告模板和插件保持一致

Smillence and others added 4 commits February 28, 2026 10:40
# Conflicts:
#	data-agent-frontend/src/components/agent/DataSourceConfig.vue
#	data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/enums/BizDataSourceTypeEnum.java
#	data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/enums/DatabaseDialectEnum.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant