gaozheng
|
2cf2b6aaa7
|
feat(dataset-detail): dd_grid 白化数据列表 + 引擎服务端分页(vxe-pager)
⑤ dd_grid 详情:单「列表」页签,序号/x/y 三列(均居中),服务端分页。
按原版(vxe-table)实测复刻:序号列前插、按页偏移自增;total 取 data.total;
分页器对齐 vxe-pager(上一页/页码…/下一页 + 前往N页 + 每页条数 50/100/500/1000 默认50 + 共N条记录)。
引擎新增分页能力(通用,后续分页型详情复用):
- TablePayload 加 pageNo/pageSize(>0 才渲染分页器;0=全量列表,measurement/trajectory 不受影响)
- GridDto.parseGridTable 复用通用 parseGridHeaderTable,前插序号列 + 回填分页态
- 仓储 loadAsync 增 pageNo/pageSize 透传,新增 grid.rows 加载器(端点 dd/ert/grid/rows,默认50条/页)
- 控制器新增 loadTabPaged(保留 3 参 loadTab 以维持 tabNeeded 连接)
- TablePager 分页器组件 + DataTableView 按 pageSize>0 显隐并转发 pageRequested
→ DatasetDetailPage/Panel.tabPageNeeded → Controller.loadTabPaged 反向链路
- GridStrategy(dd_grid 单分页页签) 注册入 main
测试:test_grid_dto(序号偏移/total/分页态/空数据) + grid.rows 分派 + GridStrategy 注册
+ 控制器 loadTabPaged 透传/默认页参;154/154 通过。
ABI 关键头(DetailPayloads.hpp)变更后全量重编 geopro 代码并验 obj 新鲜度。
|
2026-06-13 17:27:39 +08:00 |
gaozheng
|
b033dc2a2c
|
feat(dataset-detail): dd_trajectory_data 轨迹详情(地图+列表+高程)
在按类型渲染引擎上落地轨迹三页签,新增 LineProfile + WebMap 两个视图 kind。
- 地图(TrajectoryMapView:QWebEngineView + 本地 MapLibre GL JS 4.7.1):
WebGL 引擎,天地图栅格 WMTS 底图(街道 vec_w+cva_w / 卫星 img_w+cia_w,token,
t0-t7 子域,逐层 maxzoom);over-zoom 上采样平滑;街道/卫星图层切换 + 回到当前
位置定位按钮;实心橙点(#ff8c00 白环)+ 连线 + 起点标;经纬度取自
trajectory/line?frontCrsCode=EPSG:4326(服务端转 WGS84);runJavaScript 喂点(无 WebChannel)
- 高程(LineChartView:QwtPlot + QwtPlotCurve):X=电极号 #1..#40,Y=高程,
数据空间预算样条平滑(非 Fitted,避免像素重拟合漂移);hover 用 QwtWidgetOverlay
画虚线参考线+实心点(叠加层不 replot 主图→曲线零漂移)+ 自定义浮动框(#编号/●高程(m) 值)
- 列表:复用通用 DataTableView + 通用 gridHeaderDisplay→TablePayload 解析(14 列)
- LinePayload/MapPayload(DetailPayloads.hpp 加性);TrajectoryDto;TrajectoryStrategy
(地图/WebMap+列表/Table+高程/LineProfile);ApiDatasetRepository loaderKey
traj.map/traj.rows/traj.elev;DetailViewFactory LineProfile/WebMap;main 注册
- 构建:geopro_desktop 链接 Qt6::WebEngineWidgets/WebEngineQuick;main 加
QtWebEngineQuick::initialize()+AA_ShareOpenGLContexts;CMake 部署 WebEngine 运行时
测试 143→148 全绿。夹具 tests/fixtures/dd/ert-trajectory-{rows,line}.json。
|
2026-06-13 16:36:28 +08:00 |
gaozheng
|
bc5613f0d2
|
feat(dataset-detail): dd_ert_measurement_gr_data 接地电阻柱状图详情
在按类型渲染引擎上新增 Bar 视图 kind。
- 柱状图(BarChartView:QwtPlotBarChart 单系列 / QwtPlotMultiBarChart 分组):
X=电极点 #1..#40(electrodeId),Y=电阻(欧姆)=p1Rg,单系列 P1 实心 #5470c6
(任一行 p2Rg 非空时加分组系列 P2);Y 轴标题「电阻(单位:欧姆)」横排左上、
X 轴标题「电极点」、图例 P1;主题跟随;析构 clearSeries 防悬垂
- 列表:复用通用 DataTableView,固定 7 列(ID/日期/时间/P1 Rg(Ω)/P1状态/
P2 Rg(Ω)/P2状态)
- BarPayload(DetailPayloads.hpp 加性);GrMeasurementDto(parseGrBar/parseGrTable,
响应为 JSON 数组,p1/p2 isDouble 守卫);GrMeasurementStrategy(柱状图/Bar+列表/Table);
ApiDatasetRepository loaderKey gr.bar/gr.rows(同一端点不同解析);
DetailViewFactory Bar case;main 注册
测试 138→143 全绿。夹具 tests/fixtures/dd/ert-gr-rows.json。
|
2026-06-13 11:46:47 +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 |
gaozheng
|
4beb7a9523
|
feat(data): NavRequest 单请求异步句柄(QVariant payload, abort闸门) + 元类型声明 + 离线单测
|
2026-06-12 07:38:59 +08:00 |
gaozheng
|
bb602e2011
|
feat(data): 异步仓储接口 + ChartLoad/GridLoad 句柄(抽象基+Api实现) + 离线单测
|
2026-06-11 20:19:32 +08:00 |
gaozheng
|
3192cf24cf
|
feat(data): ApiDatasetRepository 接真实 API + loadScatterColorScale 提到接口
|
2026-06-11 11:52:05 +08:00 |
gaozheng
|
e1bbf39d6d
|
feat(data): DatasetChartDto 解析 inversion网格/散点/colorBar/异常
|
2026-06-11 11:50:08 +08:00 |
gaozheng
|
fa4bbf08b3
|
feat(data): ApiProjectRepository 实现 5 个导航接口
|
2026-06-09 11:40:40 +08:00 |
gaozheng
|
bf67c01ac9
|
feat(data): NavDto 脚手架 + parseWorkspaces(含测试接入)
|
2026-06-09 11:00:39 +08:00 |
gaozheng
|
f48b9ebb8f
|
feat(data): Repository 接口 + LocalSampleRepository(QFile 读中文路径)
- 新增 repo/RepoTypes.hpp(POD 项目结构树)、IDatasetRepository.hpp(同步接口)
- LocalSampleRepository 用 QFile + QString::fromUtf8 读真实中文路径样本(UTF-8),
合成单 GS/TM/DS 树(DsNode.id=grid1),映射 grid/colorscale/scatter/anomaly 文件
- geopro_data 链 Qt6::Core(AUTOMOC OFF、无 Q_OBJECT);core 仍无 Qt 依赖
- 测试 geopro_tests 因链 Qt 需运行时 DLL 在旁:POST_BUILD 拷贝 TARGET_RUNTIME_DLLS
+ gtest DISCOVERY_MODE PRE_TEST(推迟枚举到运行期)
- 新增 tests/data/test_local_repo.cpp:实测中文路径读取 + scatter 2597/anomaly 3 全链路
|
2026-06-07 20:35:20 +08:00 |
gaozheng
|
fe5936a3a6
|
feat(data): 样本 JSON 解析器(grid/scatter/colorscale/anomaly)
|
2026-06-07 20:27:58 +08:00 |