E3.16.4select parent without children设计

用户需能只选中父节点本身而不含任何子项

别名: 只选父节点 · folder without files · 关闭向下联动

概念解释

当父节点在数据里是独立对象——文件夹、部门、类目本身也要能被授权、移动、打标签——用户必须能勾上这个节点、同时让所有子节点保持未选。这是对「勾父即勾子」默认规则的显式出口。只选父级(parent without children)不是取消联动时的意外空集,而是一个合法的目标态:集合里有父,没有子。没有这条出口,树只能表达「整支」或「若干叶子」,表达不了「只要这个容器」。

机制

向下联动把父级方框占用成整支的把手,父级自己的布尔没有独立入口。若产品其实有两个命题——容器在不在集合里、成员在不在集合里——一个方框装不下。人会去展开后把子节点全部点掉,期望父级还留着;默认冒泡却会在子全空时把父级也清掉,于是「只要容器」永远做不到。出口通常是改手势或改控件:修饰键勾父、父级上的菜单「仅此项」、或把容器勾选和成员勾选分成两列。无论哪一种,都要把两个命题拆开。

拆开之后,显示也要能表达「父已选、子全空」:这不是中间态(中间态是部分子已选),而是父自身位为真、子集合为空。若仍画成空框,用户以为没选上。

边界

父级只是分组标签、不是对象时,不要提供这条出口,否则会写出没有业务意义的 ID。批量操作的对象若只能是叶子(只能给文件加标签,不能给文件夹加),只选父级应被禁止并说明。已用向下联动勾了整支后,再「改为仅父级」是一次缩小集合,要可发现,不要藏在只有专家知道的修饰键里。辅助技术需要能听到「已选中文件夹,未包含其内项目」,而不是只听到勾选。

怎么落地

  • 先问父节点是否为独立对象。是,就提供「仅此项」;否,保持勾父即整支。
  • 让「仅此项」在菜单或次要点击里可发现,并在父级显示上区别于中间态与整支已选。
  • 「仅此项」之后子节点必须全空且不再被误联动;用户再点子节点则进入部分选中。
  • 验证:执行「只把这个文件夹加入集合」。导出 ID 应只有父、没有子。若子跟着来,或父级显示成空,出口就没建好。

延伸

  • 同组E3.16.1 选中父节点通常联动选中全部子节点 · E3.16.2 部分子节点被选中时父节点需显示中间态 · E3.16.3 联动规则在深层树中仍需保持性能与响应速度
  • 相邻E3.12 三态与不确定态 · E4.06 树形控件
  • 站内检索select folder only · parent without children · decouple tree check

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/E3.16.4