历史 / 轮换模型 — 融合方案:历史回顾(时间线)+ 轮换计划 双视图
真实任务不变:教师回答「上期谁坐谁旁边」「这期为什么这样轮换」,并把 4 期轮换一起生成、批量保存。回顾(时间线)与规划(周期计划)是两种心智模型,双视图切换各自清晰;「恢复此版本」入口保留在时间线节点(数据安全能力不因 UI 形态移除)。
不可违反约束:轮换由 Rust 生成(每期独立求解、seed 逐期推进、历史快照参与评分);批量轮换可批量保存/导出(§7.4);快照文件(v1.x)持续可读;快照恢复能力不可移除(数据安全)。
✓
融合目标形态
视图切换:「历史回顾」= 时间线(节点回看该期、恢复此版本);「轮换计划」= 多期卡片并排(逐期求解状态、生成下期、批量保存/导出)。
localhost:8765/class-302/history
初二(3)班 · 历史与轮换
历史回顾
轮换计划
第 3 期 · 当前方案当前
6 名学生轮换位置;学生丌012、学生丒018 连续靠前(fair_rotation 提示下期后移)。
第 2 期
学生丄004 × 学生丌012 曾同桌(当前已分开);6 名学生轮换位置。
第 1 期
开学首次排座;学生万007 × 学生丈008 曾相邻(当前仍相邻,违反 min_distance 建议)。
近期同桌记录
学生丂002 × 学生与014
连续 2 期同桌 · 最近第 2 期
连续 2 期同桌 · 最近第 2 期
学生万007 × 学生丈008
第 1 期相邻 · 当前仍相邻
第 1 期相邻 · 当前仍相邻
学生丄004 × 学生专019
第 2 期相邻
第 2 期相邻
「恢复此版本」= 快照恢复(数据安全能力,B 方案的能力保留);恢复前确认当前未保存修改。
试一下:切换「历史回顾 / 轮换计划」两个视图。
来自 A历史回顾 = 时间线:叙事自然,「上期发生了什么」一目了然
来自 C轮换计划 = 多期卡片并排:生成/批量保存/导出,直接映射 Rust rotation 契约
来自 B(能力保留)「恢复此版本」入口在时间线节点保留——快照恢复是数据安全能力,不因 UI 形态移除
| 设计要点 | 说明 |
|---|---|
| 双视图切换 | 「历史回顾 / 轮换计划」为同一班级数据的两种呈现;切换不破坏编辑状态(G-2) |
| 恢复入口 | 时间线节点「恢复此版本」:恢复前确认未保存修改;快照文件(v1.x)持续可读 |
| 轮换计划 | 复用 rotation 产物(period_count / labels / base_seed / period_editors);批量保存为一次事务 |
| schema/API 影响 | 无新 API |
待验证(dogfood):
- 双视图切换对编辑状态的影响
- 「恢复」与当前编辑 draft 的交互语义