docs: phase2_log 第十三~十四章——Task 3 收官 + Phase 2 整体收官

This commit is contained in:
simonkoson
2026-05-22 19:28:14 +08:00
parent d55fde7fb5
commit 02bf4c4fe4
+81
View File
@@ -455,3 +455,84 @@ Opus 审 Plan 时同意纳入,理由:权限矩阵整体校正一次做完更
冒烟脚本末尾显式打印保留账号(供后续手动清理): 冒烟脚本末尾显式打印保留账号(供后续手动清理):
- `test_zebian_smoke` (zebian) - `test_zebian_smoke` (zebian)
- `test_biandao_smoke` (biandao) - `test_biandao_smoke` (biandao)
---
## 第十三章 Task 3 前端三界面收官(2026-05-22
**状态:✅ 完工。六条尾巴全闭环,Phase 2 整体收官。**
Task 3 = 仪表盘真数据 + 用户管理 + 责编录入页。本次开局承接 2026-05-21 的"部分完成、未收官"状态(HEAD `1ebb8a6`),清完六条尾巴正式收官。
### 13.1 今日 commit 链
| commit | 内容 |
|--------|------|
| `4946ab2` | fix: AppLayout 未挂载——路由改两层 Outlet 嵌套,AuthGuard 不再包裹 AppLayout |
| `ebcb530` | fix: episodes GET 放开三角色,写权限仍仅 zhipianren/zebian |
| `c7296a5` | style: 柱图三色换降饱和柔和版(柔蓝/柔绿/柔红),图例同步 |
| `5839fc6` | chore: .gitignore 新增 cookies*.txt 忽略规则 |
(昨日另有 `bfcaddf` CSS 改动,非侧边栏病根但保留无害。)
### 13.2 六条尾巴收官情况
1. **侧边栏死穴(最硬)**simonkoson 登录后整个侧边栏不渲染。连追五轮才定位真因——**根因不是 CSS(前两轮误判 fixed/flex),是 AuthGuard 被当包裹组件用却内部只渲染 `<Outlet/>`、丢弃了 children `<AppLayout/>`**。改为路由两层 Outlet 嵌套(AuthGuard 独立守卫层 + AppLayout 独立 layout route)。三账号实测侧边栏 + 角色过滤全对(zhipianren 见用户管理、zebian 见责编录入不见用户管理、biandao 两者都不见)。
2. **episodes GET 放开三角色**:biandao 仪表盘从空变有数据;反向验证 biandao 发 POST/PATCH/DELETE 全 403。
3. **柱图配色**:见 13.4 色板固化。
4. **EditorDesk 责编录入**:**实测发现三界面本就完整**(三 Tab + 列表 CRUD + 表单字段齐全,含 audience_share 输入框),昨日"表单不全 / 找不到 audience_share"系侧边栏不通、进不去页面时凭印象误记。四步实测全过,无需改码:
- 新增期次能存(期次 8888 / 份额 0.95 / 编导张颖)
- 编导姓名快照必填、留空不能存(符合软引用红线:editor_id 可空、editor_name_snapshot 必填)
- 年度目标只增不改:2028 能存、2026 重复被拒(year UNIQUE 生效,旧值不被覆盖)
- 三色极端数据实测通过
5. **cookies 进 .gitignore**:5 个测试 cookie 文件忽略,工作区干净。
6. **极端数据三色实测**:造 0.95→柔红、0.5→柔绿、0.71/0.72→柔蓝,三色同框,颜色逻辑 + 配色双验。
### 13.3 侧边栏一役复盘(重点教训)
| 轮次 | Cline 判定的"根因" | 实际 | 结果 |
|------|-------------------|------|------|
| 1 | AuthGuard user===null 返回 null,整页空白 | 与现象矛盾(仪表盘明明渲染了) | 打回 |
| 2 | CSS `.app-sider` fixed 塌成 0 宽 | 猜测,未看真实 CSS | 打回 |
| 3 | 改 fixed 为 flex | 改了但浏览器仍不显示 | 非病根 |
| 4 | 制片人 F12 看真实 DOM | `#root` 下直接是 `.dashboard`,无 AppLayout 层 | 锁定方向 |
| 5 | AuthGuard 不渲染 children 却被当包裹组件用 | 真因,两段代码 + DOM 三者咬合 | 修复成功 |
教训沉淀为下方纪律 4。
### 13.4 柱图三色色板固化(制片人拍板)
**降饱和柔和版**:达标 = 柔蓝 `#5b8db8` / 待提升 = 柔绿 `#7aa874` / 优秀 = 柔红 `#c0584f`
原则:①降饱和度,贴合奶油底 `#fbf9f1` + 深绿主色 `#6b8e6b` 整体柔和基调,不用高饱和纯色;②待提升的绿须与主色深绿拉开(更浅更嫩),且与达标蓝有明显色相区分,杜绝"达标待提升一个色系"。
语义映射仍按 `.clinerules` 5.1:红 = 优秀 / 蓝 = 达标 / 绿 = 待提升。
**教训**:此色板此前仅口头拍板未入档,导致 Cline 重新生成时配错(达标套了主色深绿、待提升用土黄凑数)。**凡视觉拍板必入 log 固化**。
### 13.5 纪律 4:根因未经代码 / DOM 实证,不许动手修
侧边栏一役 Cline 连续三轮在猜测的根因上改代码(loading 态 → CSS fixed → CSS flex),均非病根。最终靠制片人 F12 看真实 DOM + 逼 Cline 贴真实代码才定位。
**落地规矩**Cline 报告"根因是 X"时,必须要求它贴出支撑该结论的真实代码 / DOM 证据;只要它在用"可能 / 也许 / 应该",就是在猜,打回。
---
## 第十四章 Phase 2 整体收官(2026-05-22
- Task 1 后端 CRUD:✅(冒烟 6/6
- Task 2 Excel 批量导入:✅(冒烟 8/8)
- Task 2 收尾 + yearly_targets 写权限收紧:✅(冒烟 12/12)
- Task 3 前端三界面:✅(六尾巴全闭环)
- **Phase 2 整体收官**,打 tag `phase2-dashboard-done`
- 收官 commit`5839fc6`working tree clean
### 14.1 跨 Phase 遗留(带入后续)
- **题图上传 Task(独立小 Task,下一个起手)**:①题图 banner 化;②仪表盘布局重排——题图做全宽 banner、近 9 期收视紧贴其下做全宽横条(不再挤在中间小格)。**走 Claude Design 流程**Design 出可交互原型 → 制片人定稿 → Opus 翻译成色值 + antd 组件名规格 → 喂 MiniMax**不直接把图甩给 Cline**(见 design_环节备忘.md)。
- **Phase 5 上线前数据清理**:清掉今日测试数据(期次 8888/8889 等、年度目标 2027/2028 等占位),录入真数据。删除走 UI 逐条删或 Cline 写"清业务表保真数据"SQL 经制片人确认后跑。
- backend/ 补 venv;隐患 AImportError 同名)、隐患 BExcelService 返回 Pydantic 化)低优;SECRET_KEY + same_site/https_onlyPhase 5 部署)。
---
*第十三~十四章由 Claude Opus 4.7 协助、MiniMax M2.7 落地,于 2026-05-22 Task 3 收官后追加。*