feat/dataset-detail-chart #5
Loading…
Reference in New Issue
No description provided.
Delete Branch "feat/dataset-detail-chart"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
B1: AuthService 改异步——新增 net 层句柄 CaptchaLoad/LoginLoad(AuthLoads.{hpp,cpp}), fetchCaptchaAsync 返回 CaptchaLoad;loginAsync 用 ApiChain 编排 verifyCodeCheck->RSA->login2 返回 LoginLoad。删同步 fetchCaptcha/login/LoginResult。句柄遵 spec §5.0(aborted_ 守卫/deleteLater)。 B2: LoginWindow 异步化——refreshCaptcha/attemptLogin 连句柄信号(身份比对),删 repaint() hack, 析构 abort 在飞句柄(退出契约)。公共 API(token/remember/exec)不变。 B4: test_auth.cpp 改 QSignalSpy::wait 异步等待(仍 live)。 新增离线句柄单测 test_auth_loads.cpp(CaptchaLoad/LoginLoad done/failed/abort)。 [B3 删 ApiClient 同步 get/postJson 因 ProjectListDialog/ApiProjectRepository 仍同步而 BLOCKED,故保留]将数据集详情从硬编码 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/*。在按类型渲染引擎上落地轨迹三页签,新增 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。