feat: 手动上传绕防爬、下载错误诊断与健康检查工具;模块化重构 API 与批量同步
后端:
- 将 handlers.rs (1338行) 拆分为 helpers/papers/notes/sync 四模块
- 将 batch_sync.rs 拆分为 batch/{mod,meta,asset} 三模块
- 新增 POST /api/upload 多部件文件上传接口
- 新增 POST /api/no_resource 标记文献"无全文资源"
- 新增 GET/POST /api/active_bibcode 追踪活跃文献
- StandardPaper 结构体扩展 pdf_error / html_error 错误诊断字段
- download.rs 记录下载失败详情至数据库
- 新增 health_check 二进制工具,支持只读扫描与 --fix 自动修复
- 移除 scratch/ 目录、recovered_handlers.rs 及调试日志
前端:
- 新建 CustomSelect 可复用组件,替换全部原生 select
- LibraryPanel:同步按钮反馈动画、下载失败/无资源状态筛选与计数、
文献类型筛选、状态优先排序、搜索一键清空
- 详情弹窗:错误诊断展示、手动 PDF/HTML 上传区、无资源标记/恢复
- SearchPanel:扩展文献类型徽章、下载失败状态提示
- SyncPanel:同步启动乐观 UI 更新、日志容器内自动滚动
- Tab 状态 localStorage 持久化、弹窗 z-index 修复
This commit is contained in:
+56
-1
@@ -1,6 +1,6 @@
|
||||
# AstroResearch Design Systems / 设计系统与交互体验
|
||||
|
||||
AstroResearch 的前端界面设计坚持“未来科技感与学术沉浸”的理念,结合了现代网页设计的高级质感。
|
||||
AstroResearch 的前端界面设计坚持"未来科技感与学术沉浸"的理念,结合了现代网页设计的高级质感。
|
||||
|
||||
---
|
||||
|
||||
@@ -15,6 +15,40 @@ AstroResearch 前端目前重构并统一为**高对比度浅色纯中文学术
|
||||
| **主背景** | 纯净冷灰白 (`#f1f5f9`) | 深石板灰/接近纯黑 (`#0f172a`) | 控制台按钮 (`.btn-console` / `.btn-console-primary`) | 扁平极简实边框设计 |
|
||||
| **卡片/容器** | 纯白背景 (`#ffffff`),实线灰色边框 (`#e2e8f0`) | 辅助灰 (`#64748b`) | 指示灯:深宝石绿 (就绪) / 灰石色 (未解析) | 微卡片投影效果 |
|
||||
|
||||
### 1.2 文献状态色彩编码
|
||||
|
||||
馆藏面板中的文献卡片使用统一的角标色彩编码来区分不同状态:
|
||||
|
||||
| 状态 | 背景色 | 文本色 | 含义 |
|
||||
|:---|:---|:---|:---|
|
||||
| **已翻译** | 翡翠绿 `bg-emerald-50` | `text-emerald-700` | 文献已解析并完成中英对照翻译 |
|
||||
| **已解析** | 天蓝 `bg-sky-50` | `text-sky-700` | 文献正文已解析为 Markdown |
|
||||
| **已下载** | 靛蓝 `bg-indigo-50` | `text-indigo-700` | PDF/HTML 物理文件已下载 |
|
||||
| **未下载** | 琥珀 `bg-amber-50` | `text-amber-700` | 尚未开始下载 |
|
||||
| **下载失败** | 玫瑰红 `bg-rose-50` | `text-rose-700` | 自动下载失败,悬浮显示原因 |
|
||||
| **无资源** | 石板灰 `bg-slate-100` | `text-slate-600` | 用户手动标记为无全文资源 |
|
||||
|
||||
### 1.3 文献类型徽章
|
||||
|
||||
检索与馆藏面板中的文献类型徽章采用差异化色彩编码,当前支持 16 种文献类型:
|
||||
|
||||
| 类型 | 中文标签 | 色彩 |
|
||||
|:---|:---|:---|
|
||||
| article | 期刊文章 | 天蓝 |
|
||||
| eprint | 预印本 | 紫色 |
|
||||
| proceedings / inproceedings | 会议论文/集 | 橙色 |
|
||||
| proposal | 观测提案 | 玫瑰红 |
|
||||
| abstract | 会议摘要 | 石板灰 |
|
||||
| catalog / dataset | 星表数据 | 靛蓝 |
|
||||
| software | 软件代码 | 青绿 |
|
||||
| phdthesis / mastersthesis | 博士/硕士论文 | 青色 |
|
||||
| circular | 天文电报 | 橙色 |
|
||||
| book / inbook | 学术专著/图书章节 | 翡翠绿 |
|
||||
| editorial | 期刊社论 | 石板灰 |
|
||||
| erratum | 勘误说明 | 红色 |
|
||||
| techreport | 技术报告 | 青色 |
|
||||
| 其他 | 其他文献 | 默认灰 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 核心交互组件 (Key Interactive Components)
|
||||
@@ -42,3 +76,24 @@ graph LR
|
||||
- **结构化排版**:中英文双栏段落基准对齐,完美融合 `rehype-katex` 数学公式渲染和 `html2md` 图片嵌入。
|
||||
- **划词标注与高亮**:鼠标选中阅读器任意段落词句,即刻浮现气泡菜单(支持 4 种高亮配色)。
|
||||
- **浮动词汇浮屠**:检测到英文正文中含有天文学专业词汇时,自动显示下划线,悬浮可阅读中文释义对照。
|
||||
|
||||
### 2.3 CustomSelect 可复用下拉组件
|
||||
- **替代原生 `<select>`**:所有下拉选择器(状态筛选、类型筛选、排序方式、检索条件组合、分页条数等)统一使用自研 `CustomSelect` 组件。
|
||||
- **交互特性**:
|
||||
- 点击外部区域自动关闭
|
||||
- 选中项高亮显示
|
||||
- 展开/收起过渡动画
|
||||
- 与 Tailwind CSS 控制台风格完全融合
|
||||
- 支持禁用状态
|
||||
|
||||
### 2.4 馆藏管理面板 (Library Panel)
|
||||
- **多维度筛选**:支持按任务状态(全部/已下载/已解析/已翻译/未下载/下载失败/无资源)、文献类型(13 种)及高级元数据(作者/年份/期刊)组合筛选。
|
||||
- **状态优先排序**:默认排序按处理状态降序(已翻译 > 已解析 > 已下载 > 其他),状态相同时按导入时间排列。
|
||||
- **同步反馈**:点击"重新同步馆藏"按钮后显示加载动画和成功/失败反馈条。
|
||||
- **搜索一键清空**:检索输入框右侧提供清空按钮。
|
||||
|
||||
### 2.5 文献详情弹窗 (Paper Detail Dialog)
|
||||
- **下载错误诊断**:当文献存在下载失败记录时,弹窗底部展示红色诊断区域,分别显示 PDF 和 HTML 的具体失败原因。
|
||||
- **无资源标记**:当文献被标记为"无有效全文资源"时,显示琥珀色提示区域,并提供"恢复自动下载"按钮。
|
||||
- **手动文件上传区**:底部提供 PDF 和 HTML 两个拖拽/点击上传区域,支持绕过防爬限制手动导入文献文件。
|
||||
- **外链活跃追踪**:点击 Bibcode/DOI/arXiv 外部链接时自动上报活跃文献 Bibcode,用于浏览器书签直推场景。
|
||||
|
||||
Reference in New Issue
Block a user