fix(template): 修复模板库保存/颜色/拖拽排序,联动OntologyInspector,种子腹腔镜35分类模板

- backend/schemas.py: TemplateUpdate 添加 classes/rules 字段
- backend/models.py: Template 添加 description 列
- backend/routers/templates.py: create/update 打包/解包 mapping_rules.classes (已有)
- backend/main.py: seed 腹腔镜胆囊切除术35分类模板
- src/lib/api.ts: updateTemplate 改 PATCH,补齐 color/z_index,_mapTemplate 对齐 TS 接口
- src/store/useStore.ts: 新增 activeTemplateId/setActiveTemplateId
- src/components/TemplateRegistry.tsx: 随机颜色(HSL轮盘)、HTML5拖拽排序、批量JSON导入、一键载入腹腔镜模板、handleSave 补齐必填字段
- src/components/OntologyInspector.tsx: 完全重写,从store读取模板,支持模板切换和自定义分类
- src/components/VideoWorkspace.tsx: 进入时自动加载模板列表
- src/components/ProjectLibrary.tsx: 修复状态字符串 TS 严格类型报错
- 工程分析/: 更新实现方案与经验记录

Timestamp: 20260430_222830
This commit is contained in:
2026-04-30 22:42:55 +08:00
parent 6d008ec4a2
commit 4d65c37c73
14 changed files with 598 additions and 68 deletions

View File

@@ -0,0 +1,21 @@
# 需求分析 — 模板系统与工作区联动改造
## 需求背景
用户提出模板库和工作区联动的四个问题:
## 需求拆解
| 编号 | 需求 | 优先级 |
|------|------|--------|
| R1 | 模板库点击"保存"无反应 | P0 |
| R2 | 模板库添加类别颜色都是同一个cyan需要颜色轮自动分配 | P0 |
| R3 | z-index 支持拖拽/上下调整顺序 | P0 |
| R4 | 模板支持批量导入模式(颜色+名称数组) | P0 |
| R5 | 预置腹腔镜胆囊切除术模板35个分类 | P0 |
| R6 | 工作区右侧语义分类与模板库联动 | P0 |
| R7 | 每个项目可以从模板选取分类,也可以自定义添加 | P0 |
## 根因分析
- 后端 `Template` schema 没有 `classes` 字段,前端传的 `classes` 被 Pydantic 忽略
- `addClass` 硬编码颜色 `#06b6d4`
- z-index 仅支持数字输入,无拖拽/排序交互
- `OntologyInspector` 使用硬编码 mock 数据,与模板库完全隔离