docs: update wiki pages, draft board location hierarchy, log book data

- Expand location hierarchy in draft_board.md to 72 items across all systems
- Update ST-01/ST-02/XH-01/XH-02/XH-03/Xihe wiki pages (zh + en)
- Update log_book.xlsx state node detail data for XH-01 and ST-01 missions

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-01 15:29:18 +08:00
co-authored by Claude Opus 4.7
parent 2fef743e83
commit f4909765af
8 changed files with 404 additions and 91 deletions
+268 -2
View File
@@ -1,3 +1,269 @@
1. 清理掉现在项目根目录里面用不到的文件,如果有能用到的,梳理一下放到应该有的文件目录里面去
2. 执行完1,我们开始准备一个新的wiki文档。CERV Shuttle。
# KSP管理后台 — 重新设计 Todo
## 处理顺序
1. [x] Asset 面板 — 已讨论,结论归档
2. [x] 任务日志新增界面 — 已讨论
3. [x] 任务日志编辑界面 — 已讨论
4. [x] 地点板 — 已讨论,demo 完成
5. [x] 时间线 — 已讨论
6. [x] 任务资产目录 — 已讨论
7. [x] 数据中心 — 已讨论,保持现状
---
## 1. Asset 面板
### 展示信息
- Asset 名称、类别、日志数量、当前状态(是否退役)、当前所属任务
- **当前位置**:从日志的 `location` 字段根据当前模拟时间派生(LEO / GEO / Solar Orbit / Mars Orbit 等),**不可直接编辑**
- **对接载具列表**:哪些载具当前对接到了此 Asset 上(时间敏感,随 simulation_time 变化)
- **对接目标**:当前 Asset 对接到了哪个母 Asset 上
- **日志列表**:分页呈现,支持筛选
- **Upcoming events**:当前模拟时间之后的未来事件
### 全局功能(共享)
- **调节当前时间**:顶部栏全局控件,修改后写入 DB,所有页面按新时间重新计算
### Asset 基础编辑
- 修改 Asset 名称
- 修改 Asset 类别
- 修改 Asset 状态(是否退役)
### 新增对接载具
**输入信息:**
- 对接时间(默认使用当前模拟时间,用户可修改)
- 对接载具:
- 分支 A:从已有 Asset 库中选择(记为 selected_asset
- 分支 B:用户输入一个字符串(用于未入库的载具,如 "Echo Shuttle"
- 备注信息(用户输入,可为空)
**保存时自动操作日志(分支 A — selected_asset):**
对当前 Asset 和 selected_asset **双方**都执行:
1. 检查是否存在一条日志(state interval),其时间段涵盖了对接时间点:
- **存在** → 在该日志下新增一个 state node:
- Title: "XXX 对接到 YYY"
- Node Detail: 备注信息
- Node At: 对接时间
- **不存在** → 新增一条日志(state interval):
- Start At: 对接时间
- End At: 留空(表示该对接状态持续进行中)
- 在该日志下新增一个 state node(内容同上)
**保存时自动操作日志(分支 B — 用户输入字符串):**
仅对当前 Asset 执行上述操作。用户输入的字符串仅用于当前 Asset 的日志内容。
### 移除对接载具
**输入信息:**
- 选择某个已对接的载具
- 分离时间(默认使用当前模拟时间,用户可修改)
- 备注信息(用户输入,可为空)
**保存时自动操作日志(之前是 selected_asset 的情况):**
对当前 Asset 和 selected_asset **双方**都执行:
1. 检查是否存在一条日志:其 Start At 等于该 selected_asset 对接到当前 Asset 的时间,且 End At 为空:
- **存在** → 新增一个 state node 记录分离事件,分离时间设为该日志的 End At。结束
2. 如不存在,检查是否存在一条日志,其时间段涵盖了分离时间点:
- **存在** → 新增 state nodeTitle "XXX 从 YYY 分离"Node Detail 备注信息,Node At 分离时间
3. 如以上都不存在 → 新增一个 event point,记录分离信息
**保存时自动操作日志(之前是用户输入字符串的情况):**
仅对当前 Asset 执行上述操作。
### 数据库新增
- `docking_events` 表:parent_asset_id, child_asset_id (nullable), child_label (nullable), docked_at, undocked_at, dock_note, undock_note
### 设计约束
- Location **不可直接编辑**,只能通过修改日志来修正
- 对接关系是时间敏感的(随 simulation_time 变化)
---
## 2. 任务日志新增界面
### 字段(与现有保持一致)
Entry Type / Title / Start At / End At / Location / State Label / Mission Label / Summary / Note / State Nodes
### 改进点
1. **State node 按时间自动排序**:后端渲染 + JS 插入均按 `at_time` 升序
2. **保存成功**:跳转到目标页后顶部展示 toast 样式 flash 消息
3. **保存失败**:弹出 validation dialog,高亮异常字段,**不清空已填写的表单内容**
---
## 3. 任务日志编辑界面
同新增界面,共用 `asset_entry_form.html`,多一个删除按钮。无额外需求。
---
## 4. 地点板
### 布局
- 左侧/居中:大型可交互 Canvas 星图
- 右侧 320px 信息面板:Scope / Assets in Scope / Ongoing Missions / Upcoming Events
- 顶部栏:全局模拟时间控件(共享组件)
### 星图交互
- **初始 view**:太阳系全貌,太阳居中,八大行星 + Ceres + Vesta + 冥王星按内→外顺序排列
- **点击层级**(面包屑式导航):
- Solar System → 行星系(如 Earth System 含月球轨道)→ 单天体
- 点击有卫星的行星 → 行星系(planet_system),显示所有卫星轨道
- 再次点击同一行星 → 单天体视图(single_body
- 点击太阳或卫星 → 直接进入单天体视图
- **返回**:← Back 按钮回退到上一层
- **拖拽平移**:阈值 6px 以上才进入拖拽模式,避免误触
- **滚轮缩放**0.3x ~ 4x
### 天体渲染
- 天体纹理:使用真实 NASA/航天器照片纹理(从 Solar System Scope + NASA 下载)
- 3D 球体着色:光照高光 + 暗面阴影 + 大气边缘辉光
- 土星附加光环椭圆
- 星空背景:800 颗随机恒星,含亮星点缀
- 两种渲染模式切换:Flat(简化渐变球体)/ Realistic(真实纹理 + 全效果)
### 轨道计算
- 基于 JPL Keplerian 轨道根数(J2000 历元),解 Kepler 方程计算真实日心位置
- 显示缩放公式:`displayDist = dist^0.4 × 100`(非比例尺,保证内行星可见)
- 画布坐标系 Y 轴取反(Canvas Y↓ → 实际 Y↑),实现逆时针旋转
- 模拟时间变动时,天体位置平滑动画过渡(requestAnimationFrame + 缓动)
### 卫星数据
- 来源:项目 `user_input/RSSKopernicus/` 文件目录
- 已收录:木星 4 颗(Io, Europa, Ganymede, Callisto)、土星 7 颗(Mimas, Enceladus, Tethys, Dione, Rhea, Titan, Iapetus)、天王星 5 颗(Miranda, Ariel, Umbriel, Titania, Oberon)、海王星 1 颗(Triton)、火星 2 颗(Phobos, Deimos)、冥王星 1 颗(Charon)、地球 1 颗(Moon
- 卫星数据扁平化存入 `BD` 顶层字典,支持 `BD['io']` 直接查找
### 技术实现(后端集成参考)
- Demo 文件:`demo/location_board_demo.html`
- 纹理文件:`demo/textures/`sun, mercury, venus, earth, mars, jupiter, saturn, uranus, neptune, pluto, moon, io
- 设计系统:OLED 深色主题(`#0B0B10` 背景),Fira Code + 系统 sans-serif 字体栈
---
## 5. 时间线
### 交互
- 只读视图(不直接在时间线上拖拽编辑)
- 滚轮缩放 + 拖拽导航,无整页刷新
### 筛选系统(重新设计)
**布局:** 顶部横向筛选条
1. **搜索栏** — 实时过滤资产名称,输入时下方标签同步收缩
2. **快速预设**`Active only` / `This Month` / `Next 90d` / `All` 一键切换
3. **分类下拉**
- Type: All / Exploration Mothership / Space Shuttle / Station / Base / Cargo Ship
- Location: All / Earth System / Mars System / Jupiter System / Saturn System / Transfer
- State: All / Transfer / Docked / Maintenance / Exploration / Surface Ops
4. **日期范围** — start/end 输入 + 快捷预设(Last 30d / This Year / Next Year / Custom
5. **资产标签条** — 横向 pill 标签(checkbox),选中计数 + Select All / Clear
### 视觉风格
- 待高保真设计阶段统一处理
---
## 6. 任务资产目录
### 布局
- 保留表格布局
- 顶部:操作按钮 + 筛选栏
- 表头可点击排序(Name / Type / Location / Entries / Updated
### 筛选栏
```
[+ New Asset] [Import Log Book]
🔍 Search... Location: [All ▾] Type: [All ▾]
Sort: [Name ▾] ☐ Hide retired
```
- **搜索**:文本匹配 name / type / program / home_region
- **Location 下拉**:分层级,选父级匹配所有子集(见 Location 体系)
- **Type 下拉**All / Exploration Mothership / Space Shuttle / Station / Base / Cargo Ship
- **Sort**Name / Type / Location / Entries / Updated,表头点击切换
- **退役开关**:☐ Hide retired,默认隐藏
### 技术
- DB 级筛选(不在应用层加载全量)
- 分页保持现有分页逻辑
---
## 7. Location 分层体系
对标地点板 scope,Location 从自由文本改为结构化选项。日志 `location` 字段后续应改为从选项中选择。
### 完整层级(基于 RSSKopernicus 数据,含所有固体天体 surface)
```
Solar System
├── Mercury System
│ ├── Mercury Orbit Mercury Surface
├── Venus System
│ ├── Venus Orbit Venus Surface
├── Earth System
│ ├── LEO (Low Earth Orbit)
│ ├── GEO/MEO (Geostationary/Medium Earth Orbit)
│ ├── Lunar Orbit Lunar Surface
│ └── Earth Surface
├── Mars System
│ ├── Mars Orbit Mars Surface
│ ├── Phobos Orbit Phobos Surface
│ └── Deimos Orbit Deimos Surface
├── Ceres Orbit Ceres Surface
├── Vesta Orbit Vesta Surface
├── Jupiter System
│ ├── Jupiter Orbit (gas giant, no surface)
│ ├── Io Orbit Io Surface
│ ├── Europa Orbit Europa Surface
│ ├── Ganymede Orbit Ganymede Surface
│ └── Callisto Orbit Callisto Surface
├── Saturn System
│ ├── Saturn Orbit (gas giant, no surface)
│ ├── Mimas Orbit Mimas Surface
│ ├── Enceladus Orbit Enceladus Surface
│ ├── Tethys Orbit Tethys Surface
│ ├── Dione Orbit Dione Surface
│ ├── Rhea Orbit Rhea Surface
│ ├── Titan Orbit Titan Surface
│ └── Iapetus Orbit Iapetus Surface
├── Uranus System
│ ├── Uranus Orbit (ice giant, no surface)
│ ├── Miranda Orbit Miranda Surface
│ ├── Ariel Orbit Ariel Surface
│ ├── Umbriel Orbit Umbriel Surface
│ ├── Titania Orbit Titania Surface
│ └── Oberon Orbit Oberon Surface
├── Neptune System
│ ├── Neptune Orbit (ice giant, no surface)
│ └── Triton Orbit Triton Surface
├── Pluto System
│ ├── Pluto Orbit Pluto Surface
│ └── Charon Orbit Charon Surface
├── Solar Orbit
└── Transfer (interplanetary transit)
```
### 筛选规则
- 选父级 → 匹配所有子集(如 "Earth System" 含 LEO, GEO, Lunar Orbit, Lunar Surface, Earth Surface
- 选子级 → 精确匹配
---
## 8. 数据中心
保持现有结构和功能不变。包含四个参考数据表:
| 页面 | 模型 | 排序 | 筛选 |
|------|------|------|------|
| /engines | EngineFamily + Variants | 表头点击(6列升降序) | q + fuel + cycle + mod |
| /communications | CommunicationPart | 下拉(名称/距离/质量) | q + source + type |
| /tanks | TankSpec | 下拉(名称/容积/质量比) | q + fuel + source |
| /vehicles | VehicleCost | 下拉(名称/成本) | q + source |
有详情页的仅 Engines。其他三个无详情页。复合修改、删除功能。
待高保真阶段统一设计时考虑布局统一(表头点击排序推至全部四页)。