-
2c204a134a
docs(plan): P2 三维数据集栏(坐标轴/比例/快捷视图/Zoom)实现计划
gaozheng
2026-06-15 21:19:02 +0800
-
53ccdc07b0
fix(vtk): 勾选数据集时隐藏中央引导层,露出 P1 渲染
gaozheng
2026-06-15 21:17:23 +0800
-
0f521c5b24
feat(vtk): P1 复活中央渲染 — VtkSceneController + I3dSceneRepository + Scene加vtkProp
gaozheng
2026-06-15 21:01:26 +0800
-
918088e67a
docs(spec): VTK 3D spec v2(纳入评审+web实地分析) + P1复活渲染计划
gaozheng
2026-06-15 14:01:11 +0800
-
faee28c007
docs(spec): VTK 三维视图补充需求设计稿
gaozheng
2026-06-15 12:30:53 +0800
-
-
498b786c80
Merge pull request 'feat/object-dataset-interactions' (#6) from feat/object-dataset-interactions into main
gaozheng
2026-06-15 12:18:42 +0800
-
-
85e455ae4b
feat(workbench): 对象/数据集交互对齐规格 + 属性面板可编辑保存
gaozheng
2026-06-15 11:52:41 +0800
-
1f0081ee34
feat(workbench): 对象/数据集视图交互 — 右键菜单/筛选/删除 + 动态表单编辑保存与新建TM
gaozheng
2026-06-13 20:03:30 +0800
-
-
1cc5400e73
Merge pull request 'feat/dataset-detail-chart' (#5) from feat/dataset-detail-chart into main
gaozheng
2026-06-13 17:30:37 +0800
-
-
2cf2b6aaa7
feat(dataset-detail): dd_grid 白化数据列表 + 引擎服务端分页(vxe-pager)
gaozheng
2026-06-13 17:27:39 +0800
-
b033dc2a2c
feat(dataset-detail): dd_trajectory_data 轨迹详情(地图+列表+高程)
gaozheng
2026-06-13 16:36:28 +0800
-
bc5613f0d2
feat(dataset-detail): dd_ert_measurement_gr_data 接地电阻柱状图详情
gaozheng
2026-06-13 11:46:47 +0800
-
a00aeb9a56
feat(dataset-detail): 按类型渲染引擎 + inversion 迁移 + dd_ert_measurement_data 详情
gaozheng
2026-06-13 10:51:24 +0800
-
10072eb4b3
feat(dataset-detail+app): 数据集树/按根分页 + 暗色主题保真 + 详情图保真 + 桌面日志崩溃捕获
gaozheng
2026-06-12 19:00:32 +0800
-
66869a1e2e
docs: 更新交接文档 — 数据集详情图表 + 全App网络层异步化(详情/导航/登录/项目列表)完成, 含架构/文件地图/下一步/工作方式备注
gaozheng
2026-06-12 09:44:21 +0800
-
067852e08b
docs(spec): 异步化主题完成 — 技术债清除(ProjectListDialog异步化, 删同步IProjectRepository/RepoResult/ApiClient.get|postJson), 全App网络层100%异步
gaozheng
2026-06-12 09:38:24 +0800
-
5f00cdce7a
refactor(net+data+app): ProjectListDialog 异步化 + 删同步 IProjectRepository/RepoResult/ApiClient.get|postJson(清除过渡技术债,全 App 网络层异步)
gaozheng
2026-06-12 09:31:54 +0800
-
93462d78ef
docs(spec): 回填异步化进度 — 导航(Part A)+登录(Part B)已落地, B3/A6 删同步因 ProjectListDialog 仍同步而 BLOCKED
gaozheng
2026-06-12 09:13:09 +0800
-
6b4267d78a
harden(net+app): 登录句柄终态置 aborted_ + connect 用成员 QPointer + ApiChain 首步同步契约注释 + LoginLoad step 抛异常离线测 + 注释更正(Part B 评审 I-1/I-2/I-3/M-2/M-4)
gaozheng
2026-06-12 09:11:54 +0800
-
d1c1bf96b1
feat(net+app): AuthService/登录异步化(CaptchaLoad/LoginLoad+ApiChain, LoginWindow 不冻可取消, test_auth 异步化)
gaozheng
2026-06-12 09:01:07 +0800
-
4ca5893800
harden(controller): ChartStrategyRegistry 显式禁拷贝/保留移动(保护 find() 裸指针,评审 I-1)
gaozheng
2026-06-12 08:20:20 +0800
-
0cb0ed8aa0
refactor(detail): 控制器按 ddCode 走 ChartStrategyRegistry 分派, 未注册优雅降级 (替代硬编码 dd_inversion_data)
gaozheng
2026-06-12 08:14:19 +0800
-
62352395ba
harden(controller+net): setCheckedTms 去重 + loadMore 失败回滚页号 + 非拥有所有权注释更正 + ApiChain 待用注释 + selectObject 部分失败测试(Part A 评审 I-2/I-3/I-4/M-1/M-4)
gaozheng
2026-06-12 08:04:08 +0800
-
b097fa6e56
feat(controller): WorkbenchNavController 异步化(NavRequest续延+并发计数, abort-and-replace+身份比对, 删busy_/drain/BusyGuard, busyChanged=在飞存在性) + 单测
gaozheng
2026-06-12 07:51:35 +0800
-
05f0bf3d4f
feat(data): ApiProjectRepository 实现 IAsyncProjectRepository(9方法,Async后缀,薄封装,新旧并存)
gaozheng
2026-06-12 07:42:00 +0800
-
2ee1ccdb0f
feat(data): IAsyncProjectRepository 异步导航仓储抽象(薄封装,返回NavRequest,Async后缀)
gaozheng
2026-06-12 07:39:41 +0800
-
4beb7a9523
feat(data): NavRequest 单请求异步句柄(QVariant payload, abort闸门) + 元类型声明 + 离线单测
gaozheng
2026-06-12 07:38:59 +0800
-
22a7f2339e
feat(net): ApiChain 顺序依赖链原语(fail-fast+abort闸门+工厂可抛) + 离线单测
gaozheng
2026-06-12 07:36:50 +0800
-
751b486254
docs(plan): 异步化铺开(导航+登录)计划 + 其余 dd 类型详情图扩展计划(Phase0 样本探查+策略分派打通)
gaozheng
2026-06-11 21:36:18 +0800
-
6d0ec909ec
docs(spec): 回填进度现状 — async 仅 DatasetDetail 试点已完成(导航/登录待铺开);详情图仅 dd_inversion_data 完成(QwtPlot 落地, 余 dd 类型待样本)
gaozheng
2026-06-11 21:24:28 +0800
-
8b3bc50f58
harden(app): setData 重置遮罩 + loadFailed context=detailPanel(防野指针) + LoadingOverlay Q_ASSERT(parent) + 删未用 include(评审 I-1/I-2/M-3/4/5)
gaozheng
2026-06-11 21:06:35 +0800
-
dc9506c260
feat(app): 网格懒加载「加载中」遮罩(LoadingOverlay) 接 loadStarted/隐藏于就绪或失败
gaozheng
2026-06-11 20:59:32 +0800
-
eaa3770f93
feat(app): qRegisterMetaType<ApiResponse> 注册(异步信号元类型,防御性)
gaozheng
2026-06-11 20:53:58 +0800
-
350f46060d
harden(controller): 析构 abort 在飞句柄(退出契约 spec §7) + Grid 路径回灌/失败用例对称覆盖(评审 I-1/M-3/M-4)
gaozheng
2026-06-11 20:51:45 +0800
-
e57985c057
feat(data+controller): ApiDatasetRepository 改异步 + DatasetDetailController abort-and-replace+句柄身份比对+loadStarted(移除 busy_/catch)+ 回灌防护测试
gaozheng
2026-06-11 20:37:10 +0800
-
8cdd6679a9
harden(data): 句柄 emit done 移出 try + catch(...) 兜底 + parse 抛异常测试(评审 I-1/M-5)
gaozheng
2026-06-11 20:31:07 +0800
-
bb602e2011
feat(data): 异步仓储接口 + ChartLoad/GridLoad 句柄(抽象基+Api实现) + 离线单测
gaozheng
2026-06-11 20:19:32 +0800
-
e980ddd346
harden(net): ApiBatch 契约断言(非空calls/非空谓词)+fail-fast注释+单元素测试(评审 I-1/I-2/M-1/M-2)
gaozheng
2026-06-11 20:13:48 +0800
-
72b300d722
feat(net): ApiBatch 并发汇聚+fail-fast+abort闸门 + 离线单测
gaozheng
2026-06-11 20:05:53 +0800
-
f74d47e62e
harden(net): ApiCall onFinished reply 快照防御 + 构造 Q_ASSERT(reply)(评审 H3/L1)
gaozheng
2026-06-11 19:59:23 +0800
-
8f94443323
feat(net): ApiClient.getAsync/postJsonAsync + IApiCall/ApiCall 异步句柄(abort+aborted_ 闸门,AUTOMOC ON)
gaozheng
2026-06-11 19:51:48 +0800
-
c90ea83a04
refactor(net): 抽出 buildResponse,sync/async 共用响应解析(DRY,行为不变)
gaozheng
2026-06-11 19:43:37 +0800
-
66541b5ef8
docs(plan): ApiClient 异步化(DatasetDetail 路径)实现计划 — 8 任务 TDD/bite-sized,含 net原语/data句柄/控制器/UI遮罩
gaozheng
2026-06-11 19:37:29 +0800
-
a8be6133a1
docs(spec): 纳入 opus 架构评审 — abort 闸门(aborted_+句柄身份比对)/fail-fast/退出契约/code==200判定/旧方法去向/回灌回归用例
gaozheng
2026-06-11 19:28:07 +0800
-
69357bccd3
docs(spec): ApiClient 异步化设计(DatasetDetail 路径试点:ApiCall/ApiBatch/句柄+abort,信号面不变)
gaozheng
2026-06-11 19:20:15 +0800
-
5483a430bc
docs: 数据集详情图表重构交接文档(背景/目标/进度/下一步/文件地图/决策)
gaozheng
2026-06-11 19:03:13 +0800
-
78f96dbc08
fix(review): 修 cpp-review HIGH/MEDIUM —散点ys越界/colorSvc析构泄漏/QwtPlot autoDelete注释/控制器catch(...)防busy死锁 + 清死代码simplifyInPlace/simplifyTol + 填充等比限幅 + DTO行数校验+枚举钳制 + ContourLine.level默认NaN
gaozheng
2026-06-11 18:59:19 +0800
-
57c14ae8b4
fix(ui): 等值线每条只标注一个(弧长中点),对齐原版(移除周期重复标注)
gaozheng
2026-06-11 18:36:22 +0800
-
48d21b82e9
fix(ui): 等值线 vtkSplineFilter 样条平滑(去DP简化,贴近原版圆滑曲线) + 标注沿线周期重复+降阈值(小等值线也标注)
gaozheng
2026-06-11 18:33:12 +0800
-
4fbab033f0
fix(ui): 等值线用vtkStripper连成长折线(使沿线数值标注可落上) + 网格页(图+异常)分割器放入页签内QScrollArea(滚动限页签内) + 等值线测试
gaozheng
2026-06-11 18:21:52 +0800
-
53dbcee052
fix(ui): 数据详情dock设ForceNoScrollArea(禁ADS把标题/页签卷入整体滚动条),内容自适应填充
gaozheng
2026-06-11 17:57:54 +0800
-
03a6622dea
fix(ui): 滚轮缩放并入LivePanner并消费事件(不再触发外层滚动条) + 网格页底部改QSplitter(去固定200px,两页高度解耦/不溢出)
gaozheng
2026-06-11 17:22:39 +0800
-
f14902cdd4
feat(ui): GridDataChartView 接入 QwtPlot+ContourPlotItem(真实比尺,白底,色阶条)
gaozheng
2026-06-11 17:00:36 +0800
-
32e0aaec28
feat(ui): ContourPlotItem 网格填充栅格热力图 + 矢量等值线/标注/异常叠加
gaozheng
2026-06-11 17:00:22 +0800
-
bac0a198ff
feat(ui): 网格数据懒加载接线(控制器 gridReady + 页签首次激活触发)
gaozheng
2026-06-11 17:00:07 +0800
-
e54a28e571
perf(ui): 原数据加载严格对齐原版只拉散点+色阶2个(异常随网格懒加载)
gaozheng
2026-06-11 16:41:56 +0800
-
1054c227e1
perf/fix(ui): 详情懒加载(双击只拉散点~0.8s,网格4s推迟) + 实时拖动平移(LivePanner替换像素抓取) + 横纵网格线
gaozheng
2026-06-11 16:33:35 +0800
-
525c123211
feat(ui): 原数据散点锁定 x:y 真实比尺(QwtPlotRescaler aspect=1, Expanding)
gaozheng
2026-06-11 16:14:37 +0800
-
cf47314500
fix(ui): 散点 滚轮缩放方向反转(上滚=放大)+放开最小宽度(随面板收缩) + 色阶条居中74%宽(非满宽,对齐原版)
gaozheng
2026-06-11 16:09:00 +0800
-
1f28505227
fix(ui): 原数据散点 白底+散点项关联xTop轴(修x压缩)+过原点零线 + 色阶条等宽色带/深色文字/白底
gaozheng
2026-06-11 15:55:32 +0800
-
e405fc1565
feat(ui): 原数据散点视图(QwtPlot x顶轴+Panner/Magnifier+连续色阶+方块散点+独立色阶条)
gaozheng
2026-06-11 15:40:43 +0800
-
c7fec86d3b
feat(core+chart): ColorScale::stops() 暴露断点 + ColorMapService 连续插值色阶服务
gaozheng
2026-06-11 15:40:27 +0800
-
7808b8422a
feat(ui): 数据集详情三层UI骨架(下划线页签+原数据/网格各自工具条+网格页底部异常列表/描述)
gaozheng
2026-06-11 15:04:34 +0800
-
e0c36e3600
docs(plan): 二维图表返工实现计划 v2(QwtPlot 三层分离,9步对照验收)
gaozheng
2026-06-11 14:54:57 +0800
-
b772b5a169
build(qwt): 集成 Qwt 6.2 静态库(cmake/qwt.cmake 对接官方Qt6,绕开qmake/vcpkg) + 冒烟用例 + 返工方案文档
gaozheng
2026-06-11 14:47:19 +0800
-
82b654176e
fix(ui): 审查修复 loadFailed接线/控制器重入守卫+ddCode降级/散点越界/点异常/Tab deleteLater/makeLines
gaozheng
2026-06-11 12:42:04 +0800
-
548895bdcf
test(controller): DatasetDetailController chartReady/loadFailed 编排
gaozheng
2026-06-11 12:22:37 +0800
-
08ba483550
feat(ui): 接线数据详情面板(移除旧VTK详情)+单击聚焦/双击打开/反向联动
gaozheng
2026-06-11 12:18:18 +0800
-
88d2fea9df
feat(ui): DatasetDetailPanel 多Tab壳(按dsId去重+反向联动信号)
gaozheng
2026-06-11 12:09:38 +0800
-
b8c74962e8
feat(ui): DatasetDetailPage 原数据/网格切换+叠加开关+异常联动
gaozheng
2026-06-11 12:08:13 +0800
-
535db496c4
feat(ui): AnomalyTablePanel ds级异常表(行眼睛→隐藏集信号)
gaozheng
2026-06-11 12:07:06 +0800
-
d61775a3bc
feat(controller): DatasetDetailController 编排 + ErtInversionStrategy 标识
gaozheng
2026-06-11 12:04:12 +0800
-
46c75ed419
feat(ui): dd 图表策略接口 + 注册表(未注册降级)
gaozheng
2026-06-11 12:01:31 +0800
-
facb812bca
feat(ui): DatasetChartView 散点/等值面/异常叠加(QGraphicsView)
gaozheng
2026-06-11 11:57:49 +0800
-
3192cf24cf
feat(data): ApiDatasetRepository 接真实 API + loadScatterColorScale 提到接口
gaozheng
2026-06-11 11:52:05 +0800
-
e1bbf39d6d
feat(data): DatasetChartDto 解析 inversion网格/散点/colorBar/异常
gaozheng
2026-06-11 11:50:08 +0800
-
00c42f7a8d
feat(render): ContourBands NaN 凸包裁剪(剔除无效quad)+等值线DP简化
gaozheng
2026-06-11 11:41:26 +0800
-
b7e0a2034d
feat(render): ContourBands 双线性上采样+盒式平滑预处理(对齐 web 2x+smooth)
gaozheng
2026-06-11 11:39:05 +0800
-
f1ad490096
feat(render): ContourBands 从 VTK banded 提取色带多边形+等值线几何
gaozheng
2026-06-11 11:37:09 +0800
-
179f46b42c
feat(core): Grid 增 NaN 约定 + hasValue(凸包裁剪用)
gaozheng
2026-06-11 11:34:11 +0800
-
467dbb3841
chore(scripts): 本地构建/测试封装(vcvars+VS cmake/ctest, build/release)
gaozheng
2026-06-11 11:30:52 +0800
-
29cef952fe
docs(plan): 数据集详情视图改造实现计划(TDD,7 阶段)
gaozheng
2026-06-11 11:16:45 +0800
-
e2c8fccbde
docs(spec): 数据集详情视图改造为平面图表(QGraphicsView,源码级复刻 web)
gaozheng
2026-06-11 10:52:05 +0800
-
-
012abcf423
Merge pull request 'feat/object-selection-panels' (#4) from feat/object-selection-panels into main
gaozheng
2026-06-10 21:33:30 +0800
-
-
b7fbb0457c
清理重复文件
gaozheng
2026-06-10 21:33:07 +0800
-
72abeaa1d8
fix(ui): 修复 DynamicFormView::clear() 对嵌套布局重复释放导致的崩溃
gaozheng
2026-06-10 21:31:00 +0800
-
3daaad3de3
fix(controller): setCheckedTms busy 时挂起重放(不丢弃) + 切项目清 currentParentId/挂起态
gaozheng
2026-06-10 21:22:39 +0800
-
d435fca32d
feat(ui): 属性面板改两列卡片式表单(边框/底色/分隔线,主题协调)
gaozheng
2026-06-10 21:18:12 +0800
-
7a56e49584
feat(ui): 接线 对象单击/勾选/数据集单击 → 三面板(移除占位)
gaozheng
2026-06-10 21:04:38 +0800
-
0d17a00931
fix(ui): 对象树项目根设为非交互容器(仅 GS/TM 可勾选/单击)
gaozheng
2026-06-10 20:58:09 +0800
-
68296a5d36
feat(ui): ObjectTreePanel GS三态勾选 + objectClicked/checkedTmsChanged 合并发射
gaozheng
2026-06-10 20:50:51 +0800
-
595d65cd3b
feat(ui): ObjectExceptionPanel 异常+异常体只读树(含详情展开)
gaozheng
2026-06-10 20:44:25 +0800
-
5686155faa
feat(ui): DynamicFormView 动态表单分组键值渲染器
gaozheng
2026-06-10 20:36:03 +0800
-
6cf53ab199
fix(controller): 无条件清异常缓存(跨空间) + 移动语义 + 信号参数正名
gaozheng
2026-06-10 20:29:46 +0800
-
8cab498f81
feat(controller): selectObject/setCheckedTms/selectDataset 编排 + 异常缓存
gaozheng
2026-06-10 20:22:09 +0800
-
4621e11c73
feat(data): 仓储泛化 loadRows + 对象/数据集详情 + 按TM异常 接口实现
gaozheng
2026-06-10 20:15:00 +0800
-
a21d392816
feat(data): groupExceptionsByConsortium 按异常体分组 + 独立异常
gaozheng
2026-06-10 20:09:37 +0800
-
acf71bdaef
feat(data): parseExceptions 映射异常字段 + 详情摘要
gaozheng
2026-06-10 20:03:28 +0800
-
0018c11e0a
feat(data): parseDynamicForm 合并动态表单字段定义与值(含排序)
gaozheng
2026-06-10 19:56:55 +0800
-
37300d523e
docs(plan): 对象单击/勾选驱动三面板 实现计划(TDD,10 任务)
gaozheng
2026-06-10 19:48:22 +0800