# 实现方案-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`。