2026-05-24-15-55-48 增加项目锁定与切片控件修正

This commit is contained in:
2026-05-24 16:15:52 +08:00
parent e9f0823281
commit 3bedf204c8
14 changed files with 586 additions and 62 deletions

View File

@@ -0,0 +1,62 @@
# 实现方案-2026-05-24-15-55-48
## 实现方案文档路径
`工程分析/实现方案-2026-05-24-15-55-48.md`
## 修改目标
- 在逆向工作区构件层级标题右侧增加全局显隐按钮。
- 在项目库项目卡片中增加锁定/解锁能力,并将锁定位姿数据保存到 `项目数据/锁定结果/`
- 项目列表支持未锁定筛选,并按最后处理时间倒序排列。
- 修正 DICOM 切片滚动条的方向与无进度色视觉。
## 涉及路径
- `WebSite/server.ts`
- `WebSite/src/types.ts`
- `WebSite/src/lib/api.ts`
- `WebSite/src/components/ProjectLibrary.tsx`
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/src/index.css`
- `Docker部署/`
- `工程分析/经验记录.md`
## 技术路线
- 后端为项目状态增加 `locked``lockedAt``lastProcessedAt``lockedPoseSnapshotPath` 等兼容字段,并提供锁定/解锁 API。
- 锁定时读取当前项目位姿、构件样式和基础元数据,写入 `项目数据/锁定结果/{projectName或projectId}-{timestamp}.json`
- 前端项目库使用新增 API 切换锁定状态;项目卡片在进入逆向工作区前判断锁定状态并提示。
- 逆向工作区构件层级右侧新增全局眼睛按钮,批量更新所有构件的 `visible` 字段。
- 切片滑块保持顶部为 1、底部为 N去掉滚动后轨道进度色。
## 执行步骤
1. 阅读现有项目类型、项目库、逆向工作区和后端项目 API。
2. 扩展类型与 API 封装。
3. 实现后端锁定状态归一化、锁定结果落盘和接口。
4. 实现项目库锁定按钮、未锁定筛选、排序与锁定提示。
5. 实现逆向工作区全局构件显隐按钮。
6. 修正切片滚动条方向和 CSS。
7. 同步 Docker 部署说明。
8. 运行 lint/build重新部署并验证。
9. 提交并推送 Gitea。
## 兼容性与回滚方案
- 旧项目缺少锁定字段时默认 `locked=false`,缺少最后处理时间时回退到 `updatedAt``createdAt`
- 如锁定结果目录不存在则由后端自动创建。
- 回滚时可移除新增 API 和前端按钮,已有锁定 JSON 文件不影响系统启动。
## 预计文件变更
- 新增本次三份工程分析文档。
- 修改前后端项目状态、交互和样式文件。
- 修改 Docker 部署说明,记录新增锁定结果目录和功能。
- 追加经验记录。
## 提交与部署策略
- 仅暂存本次相关文档、前后端源码和 Docker 文档。
- Commit message 包含 `2026-05-24-15-55-48` 与简要描述。
- 使用 `tmux` 会话 `revoxelseg-dicom` 重新运行 `npm run serve -- --host 0.0.0.0 --port 4000`