GoJs一键关闭所有根节点问题:组织图无法完全折叠分支
解决GoJS组织图完全折叠所有分支的问题
你当前的collapseTree(3)方法只会将根节点下的树折叠到第三层,无法覆盖内部根节点和搜索展开的深层分支。要实现所有分支完全关闭,直接遍历所有节点并设置折叠状态即可:
function collapseAllNodes() { var input = document.getElementById('mySearch'); if (input) input.value = ''; // 清空搜索框 myDiagram.startTransaction('collapse all'); // 遍历图中所有节点,将展开状态的节点设为折叠 myDiagram.nodes.each(function(node) { if (node.isTreeExpanded) { node.isTreeExpanded = false; } }); myDiagram.commitTransaction('collapse all'); }
说明:
myDiagram.nodes.each()会遍历图中所有节点,不管其在树结构中的层级位置- 检查
node.isTreeExpanded确保只修改处于展开状态的节点,避免无效操作 - 事务包裹操作保证图表状态更新的原子性,避免界面闪烁
如果你的组织图存在多个独立根节点,这种方法也能统一处理所有分支的折叠,彻底解决之前残留展开节点的问题。
内容的提问来源于stack exchange,提问作者Janae Fairbourn
相关产品推荐
相关产品推荐

