折叠 Highcharts 组织结构图

Posted

技术标签:

【中文标题】折叠 Highcharts 组织结构图【英文标题】:Collapse Highcharts Organization Chart 【发布时间】:2021-10-15 13:13:06 【问题描述】:

我正在使用 Highcharts 创建组织结构图,如提供的示例:https://jsfiddle.net/vegaelce/7rb6esqt/

是否可以在 Google 组织结构图中添加“折叠”功能?在下面的示例https://jsfiddle.net/vegaelce/kb2gted4 中,当您双击“Mike”或“Jim”单元格时,它会折叠上面的所有单元格。我需要用 Highcharts 重现一个等效模式,你有想法吗? (在 Google API 中,折叠模式通过

启用
    allowCollapse:true

谢谢

【问题讨论】:

【参考方案1】:

Highcharts 中没有这样的内置功能,但您可以使用点击事件和显示/隐藏方法添加它。示例:

    plotOptions: 
        series: 
            point: 
                events: 
                    click: function() 
                        const operateChildren = (point, operation) => 
                            point.linksFrom.forEach(link => 
                                link.graphic[operation]();
                                link.toNode.graphic[operation]();

                                operateChildren(link.toNode, operation);
                            );
                        ;

                        if (this.linksFrom && this.linksFrom[0]) 
                            if (this.linksFrom[0].graphic.visibility === 'hidden') 
                                operateChildren(this, 'show');
                             else 
                                operateChildren(this, 'hide');
                            
                        
                    
                
            
        
    ,

    tooltip: 
        formatter: function(tooltip) 
            if (this.point.graphic.visibility !== 'hidden') 
                return tooltip.defaultFormatter.call(this, tooltip);
            
            return false;
        
    

现场演示: https://jsfiddle.net/BlackLabel/dp03gq6a/

API 参考:

https://api.highcharts.com/class-reference/Highcharts.SVGElement#show

https://api.highcharts.com/class-reference/Highcharts.SVGElement#hide

【讨论】:

非常感谢这个功能。我对此功能有两个额外的要求:在以下示例中,是否可以在节点折叠/展开后“重绘”图表(以优化剩余空间并重新对齐节点)?其他东西:当鼠标悬停一个节点时,是否可以从节点突出显示到高级父节点?我在 highchart.css 文件中看到了类似的东西,但它只适用于前一个父母和孩子。再次感谢您的帮助 嗨@vegaelce,你能为此创建一个新的SO问题吗?我认为其他人将这两个线程分开会更好。

以上是关于折叠 Highcharts 组织结构图的主要内容,如果未能解决你的问题,请参考以下文章

highcharts实现组织机构的点击选中和取消选中事件

保持当前节点打开并折叠 GetOrgChart 中的其他节点

使用 PHP/MySQL 的 highcharts 的 Json 结构

RStudio 中的代码折叠:在代码中创建层次结构

如何扩展 ORG 图表的连接器

游戏开发解答Unity使用lua将table转为树结构,以多级折叠内容列表的UI形式展现(树结构 | UGUI | 折叠展开 | lua)