Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-24-15-55-48.md

63 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实现方案-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`