From d539fc1b73f5b95e022e1f5cb3cfbf05131cef82 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Wed, 24 Jun 2026 19:50:36 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Task12=20=E9=98=B6=E6=AE=B5A(=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=E6=95=B0=E6=8D=AE=E6=B5=81)=E5=AE=8C=E6=88=90=20+=20?= =?UTF-8?q?=E5=89=A9=E4=BD=996=E9=A1=B9=E7=B2=BE=E4=BF=AE=E4=BA=A4?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HANDOFF-vtk-category-view-refactor.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/HANDOFF-vtk-category-view-refactor.md b/docs/superpowers/HANDOFF-vtk-category-view-refactor.md index c7dad7c..d9a39fb 100644 --- a/docs/superpowers/HANDOFF-vtk-category-view-refactor.md +++ b/docs/superpowers/HANDOFF-vtk-category-view-refactor.md @@ -50,7 +50,23 @@ f00a214 feat(data): VoxelGenerateRequest/SliceGenerateRequest DTO + toJson **Task 11 缺口**:`CategoryAnalysisTab`/`CategorySection` 尚无 colAnalysis 的 `setItemChecked`、异常子区 API;三维体段需迁入 Column3DAnalysis 异常控件(参 `src/app/panels/columns/Column3DAnalysis.{hpp,cpp}` + main `:397 refreshAnomalies`)。 -**Task 12 要点**(plan §Task12 Step1-8 已详列):① 对象树勾选→confType 分流拉取→splitByCategory→analysisTab setBuckets;② analysisTab checkedDatasetsChanged→并入 checkedProfiles/checkedAnalysis→pushChecked;③ generateVolumeRequested→`VolumeParamsDialog` 扩展(左侧勾选源树·可二次增删 + 右侧「生成位置」下拉=项目内 GS/TM)→组装 `VoxelGenerateRequest`→`createVolume(req)`;④ 工具条 `VtkViewToolbar` 叠加中央 QVTK + AxesSettingsDialog 接坐标轴;⑤ createSlice 补 `nav.currentProjectId()`;⑥ 删旧 checkedTmsChanged/col3D()/colAnalysis()/splitByDimension/Column3D* 引用 + setStructure 传对象树同源 StructNode(容器分层)。**建议新会话以充足上下文做,每步 build + 用户真实验证。** +**Task 12 要点**(plan §Task12 Step1-8 已详列):① 对象树勾选→confType 分流拉取→splitByCategory→analysisTab setBuckets;② analysisTab checkedDatasetsChanged→并入 checkedProfiles/checkedAnalysis→pushChecked;③ generateVolumeRequested→`VolumeParamsDialog` 扩展(左侧勾选源树·可二次增删 + 右侧「生成位置」下拉=项目内 GS/TM)→组装 `VoxelGenerateRequest`→`createVolume(req)`;④ 工具条 `VtkViewToolbar` 叠加中央 QVTK + AxesSettingsDialog 接坐标轴;⑤ createSlice 补 `nav.currentProjectId()`;⑥ 删旧 checkedTmsChanged/col3D()/colAnalysis()/splitByDimension/Column3D* 引用 + setStructure 传对象树同源 StructNode(容器分层)。 + +#### ✅ Task 12 阶段 A 已完成(commit 901c84e)—— 核心数据流接通 +- `refreshAnalysis` 重构为统一入口:`lastSourceRows + volumeRows + sliceRows` → `splitByCategory` → `analysisTab->setBuckets`(5 段出数据)+ `splitByDimension(...).dim2D` → `col2D`。 +- 对象树 `checkedTmsChanged` 接线:finish 改 `*lastSourceRows=*acc; refreshAnalysis()`(仍用 checkedTmsChanged,**confType 分流见剩余①**)。 +- `analysisTab` 三接线:checkedDatasetsChanged→按 isSlice/isVolume 分流(切片→checkedSliceIds+syncSlices / 体素→checkedAnalysis / 反演剖面→checkedProfiles)→pushChecked;generateVolumeRequested→VolumeParamsDialog→组装 `VoxelGenerateRequest`→`createVolume(req)`;detailRequested→Slice/Volume 属性对话框。 +- `clearCentral` 改走 lastSourceRows/refreshAnalysis。 +- **现可验**:勾对象树 TM → 电阻率/视/瞬变段出数据 → 勾选段内 ds → 帘面渲染;生成三维体 → voxel 段出现 → 勾选渲体;切片段同理。 + +#### 🔧 Task 12 剩余精修(6 项,新会话做,每步 build + 真实验证) +1. **confType 分流**:对象树接线从 `checkedTmsChanged(QStringList tmIds)` 换 `checkedSourcesChanged(QList)`,`loadRowsAsync(projId, src.id, src.confType, 3,1,100000)` 第3参传 src.confType(支持 GS 直挂 ds,现仅 TM)。改 main `:~1171` 对象树接线 + `:~1330` 第二个 checkedTmsChanged→nav 接线。 +2. **dict 填充**:main 创建 `DatasetFieldDictionary` 并传 `new ColumnDrawer(centerWidget, &dict)`;对每个反演 dsType 调 `loadDatasetFormAsync`→`parseFieldMapping`→`dict.setFields`(装置/日期筛选才生效,现 dict=nullptr 退化不筛)。 +3. **工具条接入**:实例化 `VtkViewToolbar` 叠加中央 QVTK,信号接 sceneCtrl(viewRequested/zoom/fit 接现有 c3 对应槽 :647 区;axesSettingsRequested→弹 `AxesSettingsDialog`→应用坐标轴);VE 控件迁工具条。 +4. **VolumeParamsDialog 扩展**:左侧勾选源 ds 树(按 GS 分组·可二次增删) + 右侧「生成位置」下拉(项目内 GS/TM,默认 源单GS→该GS/跨GS→项目根)→ 填 `req.structParentId/structParentConfType`。 +5. **异常迁三维体段(Task 11 本体)**:给 `CategorySection`(voxel 段)/`CategoryAnalysisTab` 加异常子区 + `setItemChecked`/sliceRequested/sliceDelete/sliceSave 等 API(迁 `Column3DAnalysis` :395 refreshAnomalies 控件);main `refreshAnomalies`(:~397) 改用 analysisTab。 +6. **退役旧栏**:删 main 中 c3/ca 旧接线(:641/669-760 区)、col3D()/colAnalysis() 调用、`Column3D*` 实例;删 ColumnDrawer 的 col3D_/colAnalysis_ 成员+访问器;评估删 splitByDimension(dim2D 改轻量过滤)。 +- 切片保存/关闭(:584/623 setItemChecked)、createSlice projectId(:579/745) 随 #5/#1 一并处理。 > 下方为初版交接(spec/plan 设计定论,仍有效)。