新增天文观测数据获取能力,覆盖星表查询与一维光谱下载两大场景:
星表检索(CDS VizieR)
- VizieR TAP 客户端(JSON 优先 + VOTable 降级),共享 IVOA VOTable 解析层
- 业务层支持自由 ADQL、锥形检索、交叉证认、星表发现与 CSV 导出
- ADQL 注入防护(标识符清洗 + 字符串字面量转义),TTL 缓存(7 天)
跨望远镜光谱下载(统一入口)
- 接入 LAMOST(ConeSearch + FITS.gz)、Gaia(TAP + DataLink ZIP)、
SDSS(Data Lab TAP + SAS)、DESI(HEALPix coadd)四源
- 双模式:坐标模式(cone 检索 → 选源 → 下载)/ 标识符模式(直按 ID 下载)
- 光谱文件永久缓存(不可变),按 source+source_id 去重
Agent 与 API
- +4 工具:query_vizier / cone_search / find_spectrum / catalog_operation(22 → 26)
- +6 路由:/catalog/vizier、/cone、/crossmatch、/spectrum/{download,list}
- 前端新增 VizierResultCard / FindSpectrumCard 可视化卡片
工程重构
- services/target.rs (832 行) 拆分为 services/cds/{target,vizier}.rs + clients/cds/sesame.rs,
贯彻 client(通信)/ service(缓存+编排)分层
- ADS 返回字段新增 data(关联数据表 URL),与星表功能联动
|
||
|---|---|---|
| .. | ||
| public | ||
| scratch | ||
| src | ||
| .gitignore | ||
| .prettierrc | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
AstroResearch Dashboard / 前端仪表盘控制台
本模块是 AstroResearch 的前端部分,基于 React (TypeScript) + Vite + Tailwind CSS 构建。
1. 本地开发与调试 (Setup & Dev)
1.1 安装依赖
确保已安装 Node.js (v18+),在当前目录下运行:
npm install
1.2 启动开发服务器
npm run dev
开发服务器将默认运行在 http://localhost:5173。Vite 已配置了对 http://localhost:8000 (后端) 的代理转发,跨域请求会自动路由。
2. 核心功能及文件结构 (Core Modules)
src/pages/:页面级大组件视图(如统一检索、馆藏管理、对照阅读、引文星系、批量同步、智能科研、系统设置)。src/components/:通用与专有 UI 组件(如力导向引文星系图、文献阅读器子组件、流水线任务终端等)。src/hooks/:抽取出的全局共享及业务数据逻辑 Hooks(如useLibrary、useReaderState、useSyncState等)。src/types/:全局 TypeScript 静态类型定义(types/index.ts)。
3. 生产构建 (Build)
若需打包生成生产环境静态文件:
npm run build
打包文件将输出至当前目录下的 dist/,后端 Axum 在编译时会直接将其静态托管。
4. 开发规范 (Coding Standards)
- 本模块的详细前端开发约定,请参阅本目录下的 前端开发规范-React篇.md。