后端(新增 ~4400 行):
- 新增 IRSA/IPAC、MAST 两客户端:ZTF 光变曲线(IRSA REST,CSV,免认证)、
TESS 光变(MAST TIC cone search + LC FITS),均复用 SSRF 安全重定向 + 重试
- Gaia DR3 XP_CONTINUOUS 光谱还原(gaia_xp/):逆向 GaiaXPy calibrate() 算法,
55 个 Hermite 系数 → 采样光谱;design_matrix 启动时 OnceLock 预计算一次。
因 fitsio crate 遇 PD(55) 变长数组列会 panic,改用 fitsio-sys 直连 CFITSIO
原生读取;新增 fitsio/fitsio-sys(vendored,无需系统 cfitsio)
- FITS 预览解析层(preview.rs):跨 LAMOST/SDSS/DESI/Gaia XP 的异构 FITS
(BinTable/Image/Hermite 系数)统一归一化为 ObservationPreview JSON
(Spectrum/LightCurve/Photometry/Image 标签枚举,OCP 可扩展)
- 测光 fetcher(photometry.rs):2MASS/AllWISE/Pan-STARRS/Gaia 四源,
均复用 VizieR/Gaia TAP 查询、零新 HTTP 代码,配置驱动表名/列名差异
- 统一全源检索(unified.rs):在 dispatch 之上叠加多目标 × 多源并发 cone 扇出,
失败隔离,两阶段(检索聚合 → 勾选后复用现有 download 端点批量下载)
- registry 注册 6 个新 fetcher + list_all_keys() 暴露全 (Source,ProductSpec)
组合供前端细粒度勾选;Source 枚举增 5 个变体
- 新增 3 条路由:GET /observation/preview、POST /observation/unified/{search,resolve}
前端(新增 ~1600 行):
- UnifiedSearchPanel:三模式目标输入(坐标/天体名/CSV)+ 源 chip 筛选,
按 (source,product) 分组展示候选源并支持勾选批量下载
- SpectrumPlot:手写内联 SVG 光谱折线图(零第三方绘图库),多段叠加 + hover 取值
- ObservationPreviewRenderer + useObservationPreview:预览渲染接入
- useObservation/ObservationResultCard/App 联动统一检索状态与下载链路
|
||
|---|---|---|
| .. | ||
| 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。