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 |
gaozheng
|
1f0081ee34
|
feat(workbench): 对象/数据集视图交互 — 右键菜单/筛选/删除 + 动态表单编辑保存与新建TM
Batch1(骨架+读联动+删除+筛选):
- ApiClient 补 putJsonAsync/deleteAsync
- 删除 GS/TM/DS(真实 DELETE + 确认框 + 成功刷新)
- 对象树右键菜单(9项)/数据集右键菜单:属性·异常详情·详情联动接现有面板;显示隐藏/定位等 2D/3D 占位
- 快速筛选器(对象按类型批量勾选/反选;数据集按类型+创建日期客户端过滤)+ 数据集单击 tooltip
- 复选框手势修复:点勾选不再触发"选中"重载(viewport 事件过滤 + 复选框命中判定)
Batch2(动态表单引擎+写操作):
- DynamicFormEditor:getDynamicForm schema 驱动(comp1/4/6/7/8 + 必填校验 + properties 预填)
- ObjectFormDialog:拉真实表单→校验→提交
- 编辑保存 PUT /business/{gs|tm}Object(成功刷新,失败回显后端 msg)
- 新建 TM:queryTmType 选型→空表单→POST(带父 GS 上下文)
- 插件子菜单:列出真实 model/list(启动缓存)
数据层:
- EditableForm/TmTypeOption/ModelInfo DTO + parseEditableForm/parseTmTypes/parseModels
- StructNode.typeId;repo loadEditableForm/queryTmTypes/submitObject/listModels;controller currentProjectId()
注:保存/新建请求体为推断(OpenAPI 未文档化提交 body),待真实提交验证后定版。
docs: plans/2026-06-13-object-dataset-interactions.md, specs/2026-06-13-batch2-object-dataset-dialogs.md
|
2026-06-13 20:03:30 +08:00 |
gaozheng
|
0d17a00931
|
fix(ui): 对象树项目根设为非交互容器(仅 GS/TM 可勾选/单击)
|
2026-06-10 20:58:09 +08:00 |
gaozheng
|
68296a5d36
|
feat(ui): ObjectTreePanel GS三态勾选 + objectClicked/checkedTmsChanged 合并发射
|
2026-06-10 20:50:51 +08:00 |
gaozheng
|
5f02d494dc
|
fix(theme): 复选指示器全局统一(清晰可见,规避Fusion浅底过淡) + 失焦保持选中,移除对象树本地重复样式
|
2026-06-10 17:09:09 +08:00 |
gaozheng
|
824e8bdf62
|
refactor(theme): 工作台内联色(对象树/数据详情工具条/停靠分隔)迁移到令牌(规范§4.2/§6.1/§6.12)
|
2026-06-10 16:27:57 +08:00 |
gaozheng
|
9010b20b57
|
refactor(ui): 方案A — 移除 ElaWidgetTools,统一为标准 Qt + 单一设计系统
根因: 此前 Fusion+自定义QSS+ElaWidgetTools(自绘控件) 三套样式系统并存、互相打架,
是各种丑/不一致的来源。本次彻底收敛为一套:
- 移除 ElaWidgetTools 依赖(CMake FetchContent + 链接 + spike);所有 Ela* 控件 → 标准 Qt:
ElaWindow→QMainWindow(原生标题栏)、ElaMenu/MenuBar→QMenu/QMenuBar、ElaLineEdit/ComboBox/
CheckBox/PushButton/ToolButton/Text/TableWidget→对应 Qt、ElaIconButton→QToolButton+glyph
- 主题系统: 自建 ThemeManager(替代 ElaTheme,QStyleHints 检测系统明暗、持久化、changed 信号热切)
+ 单一「浅→暗」颜色映射(kDarkMap,全 UI 唯一颜色来源) + 单份 QSS(明色基线,暗色按表替换)
- 主题: 跟随系统/浅/深(持久化, 启动应用→登录与主页统一); 字号缩放经 scaledPx 覆盖内联 chrome
- NOTICE/关于 同步去掉 ElaWidgetTools
- ctest 53/53
|
2026-06-10 14:44:59 +08:00 |
gaozheng
|
66cf432a98
|
fix(theme): 选中底色统一加强(对象树+所有列表)
根因: ElaListView 的 BasicSelectedAlpha 默认是半透明灰、对比度弱; 树 QSS 选中也偏淡。
设计统一的强调蓝选中底(明 #C2D9F2 / 暗 #33527A, 强对比):
- applyBrandAccent: 设 BasicSelectedAlpha/BasicSelectedHoverAlpha 为该实色 → 所有 Ela 列表
选中底变清晰(并保留其 3px 强调色左竖条)
- 对象树: 本地 QSS item:selected 设同款蓝 + 适配文字色, :!active 防失焦变淡
|
2026-06-10 12:26:00 +08:00 |
gaozheng
|
934e25be54
|
fix(tree): 自绘清晰复选框(明暗都可见) + 选中整行连续(去碎片框)
- 多余选中框: 全局 QTreeView::item 去掉 border-radius+margin → 选中是整行连续一条, 不再浮动碎块
- light 复选框看不清: Fusion 原生复选框浅底边框过淡。writeCheckboxIcon 自绘 PNG
(未选=明显边框空心框, 选中=强调色底+白勾), 明暗各一套, 经 QTreeView::indicator QSS 引用,
主题切换重绘 → 明暗都清晰
|
2026-06-10 12:21:01 +08:00 |
gaozheng
|
cfd39e5be8
|
fix(ela): 对象树退回标准 QTreeWidget(复选框清晰) + 行内边距收紧
ElaTreeView 是 ElaWidgetTools 自绘控件(非 Qt 原生), light 下复选框对比度不足、选中渲染有局限。
- 对象树 ElaTreeView+QStandardItemModel → 标准 QTreeWidget+QTreeWidgetItem:
复选框/展开箭头由 Fusion 原生绘制, 明暗都清晰; 行为(TM 勾选/点击)不变
- 全局 QTreeView::item padding 8px→4px: 行间距过大修正
|
2026-06-10 12:00:20 +08:00 |
gaozheng
|
0867636ea4
|
feat(ela): 统一品牌强调色 + 切换器箭头修复 + 图标中性化 + 树缩进收紧
配色根因: Ela 默认主色(#0067C0亮/#4CC2FF暗)与项目品牌蓝 #2D6CB5 是两种蓝, 互相打架。
- applyBrandAccent(): 用 ElaTheme::setThemeColor 把 Primary 设成品牌蓝(亮 #2D6CB5/暗 #5E9BD6,
含 Hover/Press 三态) → 所有 Ela 原生控件选中/激活/标题栏强调 + 本项目 QSS 共用一套蓝
- 切换器图标: #2D6CB5 → setThemedGlyph 中性主题色(蓝只留给选中/激活), 与面板图标一致
- 切换器箭头: 成员 QToolButton* → ElaToolButton*, setMenu 走 Ela 重载 → Ela 自绘清晰展开箭头
(之前去掉手加的▾后没箭头, 是因为基类 setMenu 不触发自绘)
- 对象树缩进 20→14, 更紧凑
|
2026-06-10 11:05:45 +08:00 |
gaozheng
|
389a2da744
|
feat(ela): 表格→ElaTableWidget(直替) + 对象树→ElaTreeView+QStandardItemModel
- ProjectListDialog: QTableWidget → ElaTableWidget(item 版直接继承 QTableWidget, 1 行)
- ObjectTreePanel: QTreeWidget → ElaTreeView + Qt 自带 QStandardItemModel(非手写 model);
QTreeWidgetItem→QStandardItem, 勾选/点击逻辑改按 QModelIndex/itemChanged; ElaTreeView 自绘
展开折叠指示(去掉自定义 chevron QSS); 行为(TM 勾选/点击发 tmClicked/tmCheckToggled)保持
|
2026-06-10 09:40:28 +08:00 |
gaozheng
|
68d832c57b
|
fix(ela): 登录窗主题化 + VTK 背景稳健随主题 + 扫清所有硬编码浅色 QSS 遗漏
- 登录窗: setStyleSheet → applyThemedStyleSheet(整窗随主题, 品牌带文字用 white 关键字恒白);
refreshBtn/errorLabel 也随主题。修暗系统下浅窗+暗 Ela 控件割裂、占位文字看不清
- VTK: 改为主题切换时重跑 rebuildCentral/rebuildDetail(走完整渲染必重绘, 兼顾 syncSystemTheme
异步切暗时序); rebuildDetail 也按 vtkBackground 设背景
- 主动扫描修掉遗漏: dockManager 分隔条、数据集/文件列表、对象树枝/hint、空状态标题/提示 全走主题
- themed() 公共助手(给需拼接 ADS 样式的 dockManager)
|
2026-06-10 09:32:22 +08:00 |
gaozheng
|
1a9fb72cf0
|
feat(ui): impeccable 设计令牌体系 + 空状态/语义色/动效 + dock 标题修复
- typeset: Theme.hpp 新增排版令牌(type::),统一各处散落字号/字重
- layout: 间距/圆角令牌(space::/radius::),圆角 6 档→2 档,手调奇数余白对称化
- delight: 中央空状态引导浮层、上下文化加载文案、登录错误淡入
- colorize: 语义色令牌(semantic::),项目状态着色、状态栏错误染色、异常徽标警示色(休眠)
- overdrive(休眠): 详情视图相机补间+actor淡入(animateReveal),待 dd 详情渲染接通后激活
- fix(dock): restoreState 后重新隐藏 ADS 子窗口标题栏,修复已保存布局下标题栏复现
|
2026-06-09 20:26:00 +08:00 |
gaozheng
|
60d46cf1db
|
fix(nav): 实测整改——项目用my/profile/queryProject、切换空间重注入token、结构按type建树(过滤DS)、下拉互斥、去重复项目根
|
2026-06-09 13:58:59 +08:00 |
gaozheng
|
c78022a6b6
|
feat(app): ObjectTreePanel 被动对象树(项目→GS→TM)
|
2026-06-09 11:52:31 +08:00 |