docs(配图): 菜单树总览改由生成器画,登记钩子扫不到的图

- 新增 tools/arch_diagram/gen_menu_tree_svg.py → docs/images/菜单树总览
  .svg:43 节点 = 9 菜单 + 34 叶,30 已绑页 / 4 未绑 / 16 叶带密码门,
  最深 4 级;读数由脚本现算,不在文档里另抄一份
- 生成器内嵌 NODE_SRC(= ui_menu_tree.txt 的 43 行节点):在仓库里跑会
  与真值逐行互验、不一致 exit 1;generated-fresh 在临时目录重跑读不到
  真值 → 用内嵌表,输出逐字节一致(实测临时目录产物同 sha256)
- 产品需求 §8.2 原先挂的是级联框显示几何图(画的是示例级联,从来不含
  整棵树的节点),换成这张树图,并删掉「该图仍是 42 节点时代所画」的
  补丁注
- 图形绘制流程新增 §2.1:登记 generated-fresh 扫不到的四张图 —— 两张
  tools/refgraph 产物(引用关系图 / _模块,不在 gen_*.py 命名面里)+
  两张手画稿(级联框总览、级联框几何计算)。钩子只扫
  tools/arch_diagram/gen_*.py,这些图改了不会有人报警;再多一张先说清
  为什么不能用生成器
- arch_diagram README 脚本一览加行
This commit is contained in:
2026-10-30 00:19:20 +08:00
parent 98d46e626d
commit b49e226815
5 changed files with 712 additions and 3 deletions
@@ -1804,10 +1804,9 @@ pre-commit run --all-files
### 8.2 菜单树(43 节点)
![级联框总览](../images/级联框总览.svg)
![菜单树总览(层级 · 绑页 · 密码门)](../images/菜单树总览.svg)
> 该图仍是 42 节点时代所画(2026-10-29 新增的「录波回放」叶未进图):`tools/arch_diagram/` 里没有这张图的生成器,
> 重画要另开一笔并走 `generated-fresh`;**本节下面的文字与代码生成物是真值**。
> 图里的节点数、绑页与密码门读数由 `tools/arch_diagram/gen_menu_tree_svg.py` 现算自真值 `ui_menu_tree.txt`(改菜单树 → 同步脚本内 `NODE_SRC` 重跑);级联框在屏上怎么摆(几何)→ `docs/UI设计/菜单页面设计.md` §4.1。
**规模**:菜单节点 **9** 个(含根)+ 叶子节点 **34** 个 = **43** 节点;最大深度 **4 级(主界面 / 一级 / 二级 / 三级菜单)**。
**绑定现状**(2026-10-29 复扫):**已绑内容页 30 叶 / 未绑 4 叶**(页面注册表 `UI_PAGE_MAP_COUNT` = 30,