Commit Graph

4 Commits

Author SHA1 Message Date
gaozheng 75cf8d40ba fix(detail): 反演动态表单支持11种控件+必填校验 + grid按钮视觉 + 色阶templateId
- InversionFormDialog 动态表单不再一律下拉:复用项目既有 parseEditableForm +
  DynamicFormEditor(与对象/结构编辑同款),按 displayComponentType 渲染 11 种控件
  (文本/只读/复选/下拉/日期/时间/日期时间/多行/数字按dataType+limit/树选降级/步进)
  + requiredType 必填校验/只读禁用。生成视电阻率纯select行为不变。
  删除被孤立的 InversionFormParse + 其测试。
- grid 反演按钮行:左"电法列表"radio + 右蓝色主按钮 space-between(仅dd_grid)
- 色阶保存带 templateId(ScatterPayload+DTO捕获色阶detail顶层templateId,measurement
  与反演原数据两路;空可省,对照原版)

后续项(未动,与3D共享风险):ColorScaleConfigDialog 另存覆盖/散点模板库可用。
build all 绿,336/336。GPR/金字塔/.superpowers WIP 未碰。
2026-06-23 12:44:42 +08:00
gaozheng ec4a7e81ef feat(detail): 补全详情视图剩余交互(框选/绘形/直方图/行级可见性/富文本/白化)
继续数据集详情视图 100% 复刻,补齐上批后置/降级的 6 项。

- M2 measurement 列表行级可见性:DataTableView 载荷驱动可交互开关列
  (仅 measurement 启用),行级 popconfirm → saveDisplayStatus
- M3 数据过滤直方图:新增自绘 ScatterHistogramView,分布柱 + 选区高亮 +
  与 min/max 输入联动
- M14 散点框选:ScatterMarqueePicker 橡皮筋框选 + ScatterPlotItem 选中高亮,
  显示/隐藏对选中子集操作
- I9 异常图上绘形:ContourDrawTool 在等值面上交互绘制 点/线/面/文字
  (先弹窗填类型/名称→图上绘制→newException),坐标表保留为兜底
- I14 富文本描述:DescriptionPanel 升级富文本(粗体/斜体/下划线/字色/字号/
  标题/列表) + QuillDelta 与 Quill Delta 常见格式往返(非 Quill 不可字节级1:1)
- I3 白化 tmObjectId:openWhitening 经 getDsObjectDetail 取 structParentId

修复 ScatterHistogram 命名冲突(widget 改名 ScatterHistogramView,与
ScatterDataOps 的分箱结构 struct 区分),desktop 目标恢复可链接。

抽纯函数 ChartPickGeometry/QuillDelta/buildScatterHistogram + 单测。
build app + test 全绿,318/318 通过。
2026-06-23 10:33:14 +08:00
gaozheng 12813bd8d0 feat(detail): 数据集详情视图交互复刻(measurement/inversion/grid)
对照原版 web 1:1 复刻数据集详情视图的写操作交互,补齐既有视图的全部
可交互能力。

基础设施
- 新增写操作命令仓储 IDatasetCommandRepository + ApiDatasetCommandRepository
  (26 个写/查接口,端点逐字对照原版 apis),回调式异步沿用 ApiColorTemplateRepository 模式
- 写操作注入链平行 setColorTemplateRepo:main→Panel→Page→DetailViewFactory→视图,
  透传 cmdRepo + dsIdGetter
- 新增共享对话框 InversionFormDialog/SaveAsDialog/ScatterFilterDialog/GridWizardDialog/
  WhiteningDialog/FilterDialog/ExceptionDialog/ExceptionDetailDialog/AutoAnnotationDialog
- 纯函数 InversionFormParse/ScatterDataOps/InversionProcessOps/ContourSimplify + 单测

measurement(M1-M13):可见性持久化、数据过滤、X/Y/V轴、值类型、色阶配置、
  生成视电阻率、反演运算、另存为、导出DAT、信息点选
inversion 网格(I1-I15):网格化向导、白化、滤波、等值线提示、简化容差(真生效)、
  异常增删改查+定位、自动标注、描述保存、另存为
inversion 原数据(O1-O3) + grid 反演(G1,functionList 驱动)

后置/降级(台账 §6.4):M14框选、M2行级可见性、M3过滤直方图、I9图上绘形、
  I14富文本(Qt无Quill)、I3白化tmObjectId透传

测试 285/285 通过
2026-06-23 09:21:37 +08:00
gaozheng a00aeb9a56 feat(dataset-detail): 按类型渲染引擎 + inversion 迁移 + dd_ert_measurement_data 详情
将数据集详情从硬编码 ERT 反演重构为通用「ddCode→页签→视图kind」渲染引擎,
把已验收的 dd_inversion_data 迁入新引擎(渲染零变化),并在引擎上实现
dd_ert_measurement_data(ERT原始数据)详情。

引擎:
- 策略声明页签:IDatasetChartStrategy::tabs()→vector<TabSpec{title,ViewKind,
  loaderKey,lazy}> 取代 hasGridPhase();控制器通用化(datasetOpened/loadTab/
  tabReady),按页签槽位保留 abort-and-replace + 句柄身份比对 + deleteLater 三件套
- 单一异步句柄 DetailLoad/ApiDetailLoad(QVariant 载荷),仓储 loadAsync(loaderKey,
  dsId) 扁平分派;删 ChartLoad/GridLoad/loadChartAsync/loadGridAsync/DatasetLoads.hpp
- 视图 IDetailView{widget,setPayload(QVariant)} + DetailViewFactory 按 ViewKind 实例化;
  载荷 Scatter/Contour/TablePayload(core/model/detail/DetailPayloads.hpp)
- Page 按 TabSpec 建页签 + 通用 lazy;inversion 散点/网格迁入,渲染代码未改

dd_ert_measurement_data(③散点伪剖面 + 列表):
- 散点复用 RawDataChartView/ScatterPlotItem:x=斜距/y=伪深度(负向)/色=视电阻率,
  连续 cauto(含负离群值),colorBar 取自 colorGradation businessCode=R0&type=3(混合
  hex+rgba/AlphaScale::Unit);电极灰菱形(#BEBEBE实心+白描边 size16);A/B/M/N 与电极
  浮动 hover;数据点尺寸对齐原版 12px;色阶底部横向(与反演一致)
- 通用 DataTableView(gridHeaderDisplay/filedList+rowList,均衡等宽列+居中+隐藏/显示
  开关列);MeasurementDto 解析(散点位置数组 + vmap 摊平)
- 工具条视觉 1:1(信息/框选/显示/隐藏/数据过滤/x·y·v·计算方法下拉/色阶配置/生成视电阻
  率/反演运算/另存为);显示隐藏+x/y 下拉轻交互,其余占位

测试 75→138 全绿。Phase0 真实响应夹具 tests/fixtures/dd/*。
2026-06-13 10:51:24 +08:00