2026-05-07-18-42-53 优化可视化工具栏和构件ID联动

This commit is contained in:
2026-05-07 18:55:14 +08:00
parent 796619632b
commit 97edf35bd0
9 changed files with 393 additions and 155 deletions

View File

@@ -0,0 +1,46 @@
# 测试方案 - 2026-05-07-18-42-53
## 静态检查
- 执行 `npm run lint`,确认 TypeScript 类型检查通过。
- 执行 `npm run build`,确认生产构建通过。
## 单元或集成测试
- 使用现有 API 和页面构建流程做集成验证:
- `GET /api/projects` 返回项目数据且包含共享 `moduleStyles`
- `PATCH /api/projects/:projectId/module-styles` 可保存构件 ID。
- 重新读取项目后构件 ID 保持一致。
## 关键业务场景验证
1. 项目库 3D 模型构件层级修改 ID 后,进入逆向工作区可视化工具栏显示同一 ID。
2. 逆向工作区修改 ID 后,返回项目库 3D 模型显示同一 ID。
3. 可视化工具栏不再显示 Metadata。
4. 融合视角下方只有一个 DICOM 切片范围滑条,不再暴露起点/终点输入。
5. 位姿控制区域标题显示“模型位姿”。
## 医学影像数据相关边界验证
- 切片范围滑条最小值不小于 1最大值不超过 DICOM 总切片数。
- API 请求仍使用合理 `start/end`,避免空体数据。
- 构件 ID 限定为 `1~255`,防止与背景 `0` 冲突。
## 回归风险
- 共享 moduleStyles 可能影响已有颜色、透明度、显示隐藏控制。
- 融合体请求频繁变化可能导致加载状态更新较频繁。
## 人工审核状态
用户已声明本次不需要二次人工确认,按默认执行确认规则直接执行。
## 执行结果
- `npm run lint`:通过。
- `npm run build`:通过,仅保留 Vite 大 chunk 体积提醒。
- 重新部署:已通过 `tmux` 重启 `revoxelseg-dicom` 服务,运行在 `http://0.0.0.0:4000/`
- `curl -I http://127.0.0.1:4000/`:返回 `HTTP/1.1 200 OK`
- `GET /api/projects/head-ct-demo`:返回默认项目,包含 9 个 STL 构件的 `moduleStyles`
- `PATCH /api/projects/head-ct-demo/module-styles`:可修改构件 ID 和可见性。
- 构件 ID 边界:提交 `partId=0` 后服务端返回 `partId=1`,符合不可修改为 0 的约束。