45 lines
2.5 KiB
Markdown
45 lines
2.5 KiB
Markdown
# 需求分析-2026-05-24-17-29-17
|
||
|
||
## 开始时间
|
||
|
||
2026-05-24-17-29-17
|
||
|
||
## 原始需求摘要
|
||
|
||
用户反馈在逆向工作区调整“构件层级”时,可能出现构件显示异常或暂时不显示;如果处于加载中,应在界面显示加载进度条。同时浏览器控制台反复输出 `Unable to preventDefault inside passive event listener invocation`,需要排查并修正相关事件监听。
|
||
|
||
## 业务目标
|
||
|
||
- 提升构件层级可见性切换后的反馈,避免高精度 STL 预览加载期间被误判为显示故障。
|
||
- 修正滚轮或触摸事件中被动监听器内调用 `preventDefault` 的浏览器警告。
|
||
- 保持现有逆向分割映射视图、项目库 DICOM 操作和部署方式兼容。
|
||
|
||
## 输入与输出
|
||
|
||
- 输入:用户在构件层级中切换眼睛、透明度或可见构件后触发高精度模型预览重新加载;用户在 DICOM/映射画布上滚轮缩放或拖动。
|
||
- 输出:加载可见 STL 构件时显示进度条与数量;加载完成后恢复正常 overlay;控制台不再因被动事件监听器反复打印 `preventDefault` 警告。
|
||
|
||
## 影响范围
|
||
|
||
- `WebSite/src/components/ReverseWorkspace.tsx`:逆向分割映射视图、构件预览加载流程、滚轮缩放事件。
|
||
- `WebSite/src/components/ProjectLibrary.tsx`:项目库 DICOM 画布滚轮缩放与触摸重复按钮事件。
|
||
- `Docker部署/README.md`:同步记录本次前端交互与部署包能力变化。
|
||
- `工程分析/经验记录.md`:沉淀本次事件监听和加载反馈经验。
|
||
|
||
## 关键约束
|
||
|
||
- 必须继续按当前 `tmux` 会话 `revoxelseg-dicom` 和 `npm run serve -- --host 0.0.0.0 --port 4000` 方式部署验证。
|
||
- 不改变 STL 到 Label Map 的体素化算法语义,仅改善加载反馈与事件监听方式。
|
||
- 不能提交运行态数据、导出包、医学原始数据或无关文件。
|
||
|
||
## 风险点
|
||
|
||
- 高精度可见构件加载可能较快或较慢,进度状态要处理竞态,避免旧加载结果覆盖新可见状态。
|
||
- 去除或迁移 `preventDefault` 时不能破坏滚轮缩放、拖拽平移、长按步进等既有交互。
|
||
- 进度条必须只在加载中展示,避免常驻遮挡医学影像区域。
|
||
|
||
## 待确认问题或默认假设
|
||
|
||
- 默认假设用户所说的“加载”主要指逆向分割映射视图为当前可见构件重新拉取 STL preview 的阶段。
|
||
- 默认假设控制台警告来自 React `onWheel` 或触摸事件中的 `preventDefault`,优先改为原生非被动 wheel 监听和移除不必要的 touch `preventDefault`。
|