隔离项目激活模板状态

- 为前端 store 增加按项目保存的激活模板映射,切换项目时恢复对应项目模板。

- 项目 ID 变化时清理临时帧、标注、mask、选区和撤销栈,避免工作区状态串台。

- 同一项目对象刷新时保留当前工作区状态,避免重命名或封面刷新误清空。

- 新增 useStore 回归测试覆盖项目模板隔离和项目切换清理逻辑。

- 更新前端元素审计与交互状态机文档,记录项目级激活模板规则。
This commit is contained in:
2026-05-09 15:07:55 +08:00
parent 80e62596ee
commit a71c622df4
5 changed files with 109 additions and 4 deletions

View File

@@ -139,7 +139,7 @@
| 元素 | 状态 | 说明 |
|------|------|------|
| 模板选择 | 真实可用 | 读取全局 templates可切换 activeTemplateId并会驱动分类树、mask 分类和导出类别信息 |
| 模板选择 | 真实可用 | 读取全局 templates可切换当前项目的 activeTemplateId并会驱动分类树、mask 分类和导出类别信息;不同项目的激活模板在前端 store 中按项目 ID 独立保存,切换项目时不会沿用上一个项目的模板 |
| 面板滚动条 | 真实可用 | 右侧本体/语义分类面板内容过长时自身滚动;滚动条使用 `seg-scrollbar`默认低对比融入深色侧栏hover/focus 时才增强显示 |
| 面板标题 | 已简化 | 原“本体论与属性分类管理树”固定说明栏已移除,右侧面板直接展示模板、透明度和语义分类树 |
| 分类树展示 / 换标签 | 真实可用 | 显示当前模板 classes点击分类会设为后续新 mask 的 activeClass如果 Canvas 无选中 mask则不会改变已有 mask如果 Canvas 已选 mask则同步更新已选 mask 及同一传播链前后帧对应 mask 的标签、颜色和 class 元数据,并把已选 mask 移到前端渲染最上层;当用户在 Canvas 点击已有 mask 时,本面板会按 mask 的 class id / 名称自动切换模板、设置 active class并滚动/聚焦到对应分类按钮 |