Files
KSP_project/draft_board.md
ArmorandClaude Opus 4.7 f4909765af 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>
2026-06-01 15:29:18 +08:00

11 KiB
Raw Permalink Blame History

KSP管理后台 — 重新设计 Todo

处理顺序

  1. Asset 面板 — 已讨论,结论归档
  2. 任务日志新增界面 — 已讨论
  3. 任务日志编辑界面 — 已讨论
  4. 地点板 — 已讨论,demo 完成
  5. 时间线 — 已讨论
  6. 任务资产目录 — 已讨论
  7. 数据中心 — 已讨论,保持现状

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
  • SortName / 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。其他三个无详情页。复合修改、删除功能。 待高保真阶段统一设计时考虑布局统一(表头点击排序推至全部四页)。