2026-05-20-15-20-15 项目库复用逆向视图与用户弹窗调整
This commit is contained in:
55
工程分析/实现方案-2026-05-20-15-20-15.md
Normal file
55
工程分析/实现方案-2026-05-20-15-20-15.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# 实现方案:复用逆向工作区真实视图与拆分密码编辑
|
||||
|
||||
实现方案文档路径:`工程分析/实现方案-2026-05-20-15-20-15.md`
|
||||
|
||||
## 修改目标
|
||||
|
||||
让项目库逆向分割结果页直接复用逆向工作区的三维融合和二维映射视图,实现显示效果一致;同时细化用户编辑弹窗,分离资料编辑和密码修改。
|
||||
|
||||
## 涉及路径
|
||||
|
||||
- `WebSite/src/components/ProjectLibrary.tsx`
|
||||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||||
- `WebSite/src/components/UserManagement.tsx`
|
||||
- `工程分析/需求分析-2026-05-20-15-20-15.md`
|
||||
- `工程分析/实现方案-2026-05-20-15-20-15.md`
|
||||
- `工程分析/测试方案-2026-05-20-15-20-15.md`
|
||||
- `工程分析/经验记录.md`
|
||||
|
||||
## 技术路线
|
||||
|
||||
1. 将逆向工作区内部 `FusionThreeView`、`VoxelizationMappingView`、`displayOptions`、`dicomOpacityOptions` 导出为可复用对象。
|
||||
2. 项目库逆向结果页新增 fusion volume 状态和加载逻辑,按保存结果的切片范围请求 `api.getDicomFusionVolume`。
|
||||
3. 项目库结果页替换简化 `NativeStlViewer` 和静态 DICOM Canvas,改为直接渲染 `FusionThreeView` 与 `VoxelizationMappingView`。
|
||||
4. 保留项目库二维映射视图的 DICOM 模式、旋转和 Slice Navigator 控制,将状态传入复用组件。
|
||||
5. 用户管理表单增加字段标签;编辑模式移除密码输入框;密码模式使用新密码/确认新密码双输入校验。
|
||||
6. 运行类型检查、构建、部署和接口验证。
|
||||
|
||||
## 执行步骤
|
||||
|
||||
- 阅读当前项目库和逆向工作区视图组件。
|
||||
- 调整逆向工作区组件导出。
|
||||
- 更新项目库视图导入、fusion volume 加载和 JSX 结构。
|
||||
- 更新用户管理弹窗表单和校验。
|
||||
- 更新测试记录、经验记录。
|
||||
- 精确暂存、提交并推送 Gitea。
|
||||
|
||||
## 兼容性与回滚方案
|
||||
|
||||
- 如果项目库 fusion volume 加载失败,复用组件仍显示原有错误/空状态。
|
||||
- 逆向工作区原组件调用方式保持不变,只增加导出能力。
|
||||
- 用户密码后端接口保持不变,前端只增加确认密码约束。
|
||||
|
||||
## 预计文件变更
|
||||
|
||||
- `WebSite/src/components/ProjectLibrary.tsx`
|
||||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||||
- `WebSite/src/components/UserManagement.tsx`
|
||||
- 本轮工程分析文档与 `工程分析/经验记录.md`
|
||||
|
||||
## 提交与部署策略
|
||||
|
||||
- 暂存本轮相关代码和工程分析文档。
|
||||
- 不提交软著材料、历史删除状态、运行态导出文件。
|
||||
- commit message 包含 `2026-05-20-15-20-15`。
|
||||
- 构建通过后重启 `tmux` 会话 `revoxelseg-dicom` 并验证服务。
|
||||
57
工程分析/测试方案-2026-05-20-15-20-15.md
Normal file
57
工程分析/测试方案-2026-05-20-15-20-15.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 测试方案:项目库真实视图复用与用户弹窗校验
|
||||
|
||||
测试方案文档路径:`工程分析/测试方案-2026-05-20-15-20-15.md`
|
||||
|
||||
## 静态检查
|
||||
|
||||
- 确认项目库逆向结果页导入并使用逆向工作区 `FusionThreeView`。
|
||||
- 确认项目库逆向结果页导入并使用逆向工作区 `VoxelizationMappingView`。
|
||||
- 确认编辑用户模式没有密码输入框。
|
||||
- 确认修改密码模式包含两次密码输入和一致性校验。
|
||||
- 确认每个用户表单输入框上方都有中文提示标签。
|
||||
|
||||
## 构建检查
|
||||
|
||||
- 在 `WebSite/` 执行 `npm run lint`。
|
||||
- 在 `WebSite/` 执行 `npm run build`。
|
||||
|
||||
## 关键业务场景验证
|
||||
|
||||
- 项目库逆向分割结果未保存时仍为空状态。
|
||||
- 保存结果后项目库左侧/中间视图与逆向工作区同款组件一致。
|
||||
- 项目库二维映射视图可切换 DICOM 模式、旋转、拖动 Slice Navigator。
|
||||
- 编辑用户只能改姓名、账号、科室。
|
||||
- 修改密码必须输入两遍且一致。
|
||||
|
||||
## 医学影像数据相关边界验证
|
||||
|
||||
- 不修改 DICOM/STL 原始数据。
|
||||
- 项目库真实视图仅复用已有 DICOM fusion volume 和 STL 映射预览能力。
|
||||
- 未保存结果不显示伪造分割。
|
||||
|
||||
## 部署验证
|
||||
|
||||
- 验证 `http://127.0.0.1:4000/api/health`。
|
||||
- 验证 `http://127.0.0.1:4000/` 返回 200。
|
||||
|
||||
## Git/Gitea 备份验证
|
||||
|
||||
- commit message 包含 `2026-05-20-15-20-15`。
|
||||
- 推送 Gitea 成功后记录 commit。
|
||||
- 确认未暂存软著材料、历史删除状态和无关运行态文件。
|
||||
|
||||
## 风险与回归关注点
|
||||
|
||||
- 导出组件后 TypeScript 类型可能暴露,需要保持导出类型简单。
|
||||
- 项目库加载 fusion volume 增加请求量,应仅在逆向结果页且有保存结果时请求。
|
||||
- 用户密码修改的二次确认需阻断空值和不一致值。
|
||||
|
||||
## 执行结果
|
||||
|
||||
- `npm run lint`:通过,TypeScript 无报错。
|
||||
- `npm run build`:通过,Vite 完成生产构建;仅保留当前项目已有的大 chunk 体积提示。
|
||||
- 静态确认:项目库逆向结果页已直接渲染逆向工作区导出的 `FusionThreeView` 与 `VoxelizationMappingView`。
|
||||
- 静态确认:编辑用户弹窗只保留姓名、账号、科室;新增用户与修改密码均包含两次密码输入。
|
||||
- 部署验证:已重建 `tmux` 会话 `revoxelseg-dicom`,执行 `npm run serve -- --host 0.0.0.0 --port 4000`。
|
||||
- `curl -fsS http://127.0.0.1:4000/api/health`:通过,返回 `{"ok":true,"service":"revoxelseg-dicom",...}`。
|
||||
- `curl -I -fsS http://127.0.0.1:4000/`:通过,返回 `HTTP/1.1 200 OK`。
|
||||
18
工程分析/经验记录.md
18
工程分析/经验记录.md
@@ -1279,3 +1279,21 @@ C. 解决问题方案
|
||||
D. 后续如何避免问题
|
||||
|
||||
凡是“离开前确认保存”类交互,都要先定义脏状态快照,不能只按页面离开事件弹窗。后台管理按钮必须有明确接口、成功/失败反馈和权限边界;至少要覆盖新增、编辑、删除自己、删除其他用户四个验证场景。
|
||||
|
||||
## 2026-05-20-15-20-15 项目库结果视图应复用逆向工作区真实组件
|
||||
|
||||
A. 具体问题
|
||||
|
||||
用户指出项目库中的“影像与模型融合视角”和“逆向分割映射视图”仍像简化预览,不是逆向工作区里的真实效果;同时编辑用户弹窗字段缺少标签,编辑资料时仍出现密码修改入口,容易误解为保存资料会顺带改密。
|
||||
|
||||
B. 产生问题原因
|
||||
|
||||
项目库结果页此前为节省加载量,使用了单独的 STL 预览和 DICOM Canvas 组合,导致与逆向工作区的三维融合、二维映射算法和视觉层次不一致。用户管理表单把创建、编辑和改密共用一套输入框,密码字段只通过占位提示表达语义,交互边界不够明确。
|
||||
|
||||
C. 解决问题方案
|
||||
|
||||
将逆向工作区的 `FusionThreeView`、`VoxelizationMappingView`、显示精度和 DICOM 融合强度配置导出给项目库复用;项目库逆向结果页在有保存结果时加载 fusion volume,并直接渲染同款三维融合视图和二维映射视图。用户弹窗改为每个输入框都有字段标签;编辑模式只保留姓名、账号、科室;新增和修改密码模式均要求输入两遍密码并做一致性校验。
|
||||
|
||||
D. 后续如何避免问题
|
||||
|
||||
凡是用户要求两个页面“效果一致”,优先抽取或导出已有真实组件,不再维护第二套近似 UI。涉及密码、权限、删除等高风险管理操作时,必须把资料编辑和凭据修改拆成不同入口,并通过显式标签、校验和反馈减少误操作。
|
||||
|
||||
57
工程分析/需求分析-2026-05-20-15-20-15.md
Normal file
57
工程分析/需求分析-2026-05-20-15-20-15.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 需求分析:项目库复用逆向工作区视图与用户弹窗细化
|
||||
|
||||
开始时间:`2026-05-20-15-20-15`
|
||||
|
||||
## 原始需求摘要
|
||||
|
||||
用户要求继续修改程序:
|
||||
|
||||
1. 项目库中的“影像与模型融合视角”需要使用逆向工作区“影像与模型融合视角”的真实效果,而不是简化 STL 模型预览。
|
||||
2. 项目库中的“逆向分割映射视图”需要使用逆向工作区中“逆向分割映射视图”的真实效果,而不是静态 DICOM 预览加构件提示。
|
||||
3. 编辑用户弹窗中每个输入框上方需要提示标签。
|
||||
4. 编辑用户时不要出现修改密码输入框;只能点击右侧“修改密码”按钮后修改密码,且密码需要输入两遍。
|
||||
|
||||
## 业务目标
|
||||
|
||||
- 项目库保存结果复核页与逆向工作区在视觉和算法展示上保持一致,避免用户看到不同表现误判结果。
|
||||
- 用户资料编辑和密码修改职责分离,减少误改密码风险。
|
||||
- 表单控件增加明确字段标签,降低系统管理操作误解。
|
||||
|
||||
## 输入与输出
|
||||
|
||||
输入:
|
||||
|
||||
- `WebSite/src/components/ProjectLibrary.tsx`
|
||||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||||
- `WebSite/src/components/UserManagement.tsx`
|
||||
|
||||
输出:
|
||||
|
||||
- `FusionThreeView` 和 `VoxelizationMappingView` 可被项目库复用。
|
||||
- 项目库逆向分割结果页直接使用逆向工作区同款三维融合视图与二维映射视图。
|
||||
- 编辑用户表单只包含姓名、账号、科室。
|
||||
- 修改密码表单包含新密码和确认新密码,且两次输入一致才允许保存。
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 逆向工作区组件导出方式。
|
||||
- 项目库逆向分割结果布局、数据加载和组件复用。
|
||||
- 系统管理用户弹窗表单。
|
||||
|
||||
## 关键约束
|
||||
|
||||
- 不复制出第二套近似视图逻辑,优先复用逆向工作区组件。
|
||||
- 项目库中没有保存结果时仍保持空状态,不伪造结果。
|
||||
- 密码修改必须通过右侧 Key 按钮进入独立流程。
|
||||
- 不改变用户管理后端接口语义,只调整前端表单校验。
|
||||
|
||||
## 风险点
|
||||
|
||||
- 逆向工作区组件导出后需要保持原页面使用不受影响。
|
||||
- 项目库复用融合视图时需要加载 `dicom-fusion-volume`,否则三维 DICOM 层不会出现。
|
||||
- 密码二次输入校验如果只在前端做,后端仍可接受单密码;本轮前端按需求阻断误操作。
|
||||
|
||||
## 默认假设
|
||||
|
||||
- “中间的逆向分割映射视图”指项目库逆向分割结果页中的二维映射预览区域。
|
||||
- 项目库复用逆向工作区视图时保留右侧导出面板,结果视图区域按左右两个同款视图展示。
|
||||
Reference in New Issue
Block a user