Files
Genarrative/docs/technical/【技术方案】UI编辑器子节点显示规则-2026-08-18.md
T
k88936 0797410eef
Project CI / Repository checks (push) Successful in 3m18s
Project CI / Frontend tests (push) Successful in 3m32s
Project CI / Backend tests (push) Successful in 4m24s
Project CI / Native shell tests (push) Successful in 15m34s
Feat/UI自动识别和布局编辑器简化版 (#170)
* 支持从项目, 本地电脑, 主站导入/引用素材.
* 页面复杂, 需要足够空间, 作为资源打开时会占满右侧
* 编辑结果作为一种新的美术资源.
* 新增素材按钮现在是空的实现, 临时在旁边加了一个新增UI设计的按钮

临时入口:
![shotmd-1787128060.jpg](/attachments/349a4fa8-7abe-4bbb-80e0-73b1717b6488)

简化:
* 组件实现了最基本的图片和文本
* 容器式布局未接入llm编辑
* 不同阶段统一维护一个状态State, 任何阶段都可以人工调整, 不设单独的步骤
* 多图的UI合并功能暂时不要求, 隐藏入口
* 因为生成工具尚未从主站迁移, 主站地图子画布未实现, 以tab栏的形式容纳素材的子画布需求搁置
* 未实现llm绑定字体功能
* 识别会替换现有UI树, 暂时不是增量的

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/170
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-08-20 19:07:25 +08:00

1.2 KiB

UI 编辑器子节点显示规则

规则

Node.children_display_mode 控制父节点直接 children 的预览显示方式:

  • Stack:所有直接 children 按现有树结构显示。
  • Exclusive:直接 children 中允许显示 0 或 1 个。

Merged 合并容器由 Rust materialize 阶段直接设置为 Exclusive,不由 LLM 决定,也不需要历史数据迁移。

状态与交互

编辑器预览可见性仍是按界面图隔离的临时状态。Tree Panel 的节点眼睛操作和最终预览的互斥 tab bar 必须共用同一套可见性状态:

[子节点 A] [子节点 B] [子节点 C]

当前可见 child 高亮;点击其它 child 会隐藏兄弟并显示目标;点击当前高亮 child 会将其隐藏,允许进入全部隐藏状态。没有 child 可见时不高亮任何 tab。

最终预览只在当前选中的父节点为 Exclusive 时显示 tab bar。Inspector 只提供“子节点显示模式:叠加 / 互斥”选择,不增加独立的当前状态或隐藏按钮。

默认行为

Exclusive 节点没有显式隐藏状态时,最终预览按 children 顺序显示第一个 child。首次通过 Tree Panel 或 tab bar 修改后,状态由共享可见性状态明确记录。