geopro/src/net
gaozheng 85e455ae4b feat(workbench): 对象/数据集交互对齐规格 + 属性面板可编辑保存
提交体按 bundle/OpenAPI 源码确证修正(替换早期推断版本):
- 新建/编辑 GS:{gsTypeId,parentId(仅新建),projectId,name,responsiblePersonName,properties}
- 新建/编辑 TM:{tmTypeId,id?,name,properties,projectId,parentId,parentType:"1"}
- 去除误用的 typeId/type/structParentId/structParentConfType

动态表单:
- displayComponentType 全集控件映射(1-11 + 默认步进数字)
- requiredType 语义:1=必填、2=只读禁用、其他=可选
- 顶层固定字段(gsTypeId/tmTypeId/name/responsiblePersonName)

新建对象:
- 单弹框 + 框内类型下拉,选后刷新动态表单(GS/TM 对称)
- 方法类型用全局 project/tmList;GS 类型用 project/gsList
- 父对象按节点类型解析:选 TM 仅新建同级 TM(父=其GS/根);项目根按 GS 处理
- 对象树右键 + 面板「添加+」按钮按节点类型分项

属性面板可编辑保存:
- 对象属性面板可编辑 → PUT gsObject/tmObject
- 数据集属性面板:元字段只读 + 描述可编辑 → updateDsObject
  {dsObjectId,description,attachedParameters:{deltaContent}}

数据集:导入向导(multipart) + 模板导出对话框(templateExport/export)

文档:spec(§B 提交体/§E 源码补全) 与 plan 同步更新
2026-06-15 11:52:41 +08:00
..
crypto feat(net): RSA 加密器(OpenSSL PKCS1v1.5+base64) + 捕获真实 RSA 公钥 2026-06-07 21:17:38 +08:00
ApiBatch.cpp harden(net): ApiBatch 契约断言(非空calls/非空谓词)+fail-fast注释+单元素测试(评审 I-1/I-2/M-1/M-2) 2026-06-11 20:13:48 +08:00
ApiBatch.hpp harden(controller+net): setCheckedTms 去重 + loadMore 失败回滚页号 + 非拥有所有权注释更正 + ApiChain 待用注释 + selectObject 部分失败测试(Part A 评审 I-2/I-3/I-4/M-1/M-4) 2026-06-12 08:04:08 +08:00
ApiCall.cpp feat(dataset-detail+app): 数据集树/按根分页 + 暗色主题保真 + 详情图保真 + 桌面日志崩溃捕获 2026-06-12 19:00:32 +08:00
ApiCall.hpp feat(net): ApiClient.getAsync/postJsonAsync + IApiCall/ApiCall 异步句柄(abort+aborted_ 闸门,AUTOMOC ON) 2026-06-11 19:51:48 +08:00
ApiChain.cpp harden(net+app): 登录句柄终态置 aborted_ + connect 用成员 QPointer + ApiChain 首步同步契约注释 + LoginLoad step 抛异常离线测 + 注释更正(Part B 评审 I-1/I-2/I-3/M-2/M-4) 2026-06-12 09:11:54 +08:00
ApiChain.hpp harden(net+app): 登录句柄终态置 aborted_ + connect 用成员 QPointer + ApiChain 首步同步契约注释 + LoginLoad step 抛异常离线测 + 注释更正(Part B 评审 I-1/I-2/I-3/M-2/M-4) 2026-06-12 09:11:54 +08:00
ApiClient.cpp feat(workbench): 对象/数据集交互对齐规格 + 属性面板可编辑保存 2026-06-15 11:52:41 +08:00
ApiClient.hpp feat(workbench): 对象/数据集交互对齐规格 + 属性面板可编辑保存 2026-06-15 11:52:41 +08:00
ApiResponseParse.cpp refactor(net): 抽出 buildResponse,sync/async 共用响应解析(DRY,行为不变) 2026-06-11 19:43:37 +08:00
ApiResponseParse.hpp refactor(net): 抽出 buildResponse,sync/async 共用响应解析(DRY,行为不变) 2026-06-11 19:43:37 +08:00
AuthLoads.cpp harden(net+app): 登录句柄终态置 aborted_ + connect 用成员 QPointer + ApiChain 首步同步契约注释 + LoginLoad step 抛异常离线测 + 注释更正(Part B 评审 I-1/I-2/I-3/M-2/M-4) 2026-06-12 09:11:54 +08:00
AuthLoads.hpp feat(net+app): AuthService/登录异步化(CaptchaLoad/LoginLoad+ApiChain, LoginWindow 不冻可取消, test_auth 异步化) 2026-06-12 09:01:07 +08:00
AuthService.cpp feat(net+app): AuthService/登录异步化(CaptchaLoad/LoginLoad+ApiChain, LoginWindow 不冻可取消, test_auth 异步化) 2026-06-12 09:01:07 +08:00
AuthService.hpp feat(net+app): AuthService/登录异步化(CaptchaLoad/LoginLoad+ApiChain, LoginWindow 不冻可取消, test_auth 异步化) 2026-06-12 09:01:07 +08:00
CMakeLists.txt feat(net+app): AuthService/登录异步化(CaptchaLoad/LoginLoad+ApiChain, LoginWindow 不冻可取消, test_auth 异步化) 2026-06-12 09:01:07 +08:00
IApiCall.cpp feat(net): ApiClient.getAsync/postJsonAsync + IApiCall/ApiCall 异步句柄(abort+aborted_ 闸门,AUTOMOC ON) 2026-06-11 19:51:48 +08:00
IApiCall.hpp feat(net): ApiClient.getAsync/postJsonAsync + IApiCall/ApiCall 异步句柄(abort+aborted_ 闸门,AUTOMOC ON) 2026-06-11 19:51:48 +08:00
README.md scaffold: M1 工程骨架(CMake+vcpkg+分层目录+spike冒烟程序) 2026-06-07 17:41:10 +08:00

README.md

net — 网络与认证层

  • ApiClient — QtNetwork 封装:基址 http://tenant.geomative.cn/pop-api、注入 geomativeauthorization: Geomative <token> 头、超时、错误码、401 处理。
  • AuthService — 验证码getImageCode/verifyCodeCheck+ JSEncrypt RSA-2048 加密密码 + login2token = data.accessToken)。
  • Credential — QtKeychain 凭证存取(严禁明文,规约 §7.4)。

详见设计 §8含 §8.3 前置确认项RSA 公钥常量、token 生命周期)。