它';这是一个简单直接的组织结构图插件。任何时候你想要一个树状图表,你都可以转到组织结构图。

Posted

tags:

中文标题:它';这是一个简单直接的组织结构图插件。任何时候你想要一个树状图表,你都可以转到组织结构图。 原文标题:It's a simple and direct organization chart plugin. Anytime you want a tree-like chart, you can turn to OrgChart. 项目评级:Star:2700      Fork:756 下载地址:https://github.com/dabeng/OrgChart 详情介绍

用其他语言阅读:简体中文, 繁體中文

ES6版本

Web组件版本

Vue.js版本

Angular版本——最节省空间的解决方案

React版本

前言

首先,非常感谢wesnolte的伟大工作——jOrgChart。使用嵌套表构建树状组织结构图的想法令人惊叹。这个想法比基于svg的同类想法更简单、更直接

不幸的是,很长一段时间没有看到jOrgChart的更新。另一方面,我有一些有趣的想法要添加,所以我选择创建一个新的回购。从3.0版本开始,我们使用嵌套ul来构建树状图表,而不是嵌套表。

特征

CDN公司

用户可以找到对OrgChart的CSS和JavaScript的相关CDN支持。

https://cdnjs.com/libraries/orgchart

安装

当然,您可以通过在Web应用程序中包含dist/js/jquery.orgchart.js和dist/css/jquery.ogchart.css来直接使用独立构建。

使用Bower安装

# From version 1.0.2 on, users can install orgchart and add it to bower.json dependencies $ bower install orgchart

使用npm安装

# From version 1.0.4 on, users can install orgchart with npm $ npm install orgchart

require('orgchart')将把orgchart插件加载到jQuery对象上。组织结构图模块本身不导出任何内容。

github页面上的演示

基于嵌套表的演示

基于嵌套ul的演示

在线演示

注意:当用户使用ajaxURL选项构建orghchart时,必须使用json数据源(本地和远程都可以),并自行设置数据源的关系属性。所有这些人员都用于为节点生成正确的展开/折叠箭头。

在这里,我们需要来自html2canvas的帮助。

注:

(1) 如果你想在IE或Edge中导出一些东西,请先介绍es6-promise.auto.js。

(2) 如果您的操作系统是windows,请检查您的显示器缩放设置。对于perfact导出的图片,您最好将“更改文本、应用程序和其他项目的大小”调整为100%。(感谢sayamkrai的探索)

(3) 此外,如果你想导出pdf格式或你的组织结构图包含图片,你必须引入jspdf并将“exportFileextension”选项设置为“pdf”。

您需要将img标记的交叉原点设置为匿名。

在这里,我们回到OpenLayers。它是Web GIS中最令人惊叹的开源js库,你一定不会错过。

借助于orgchart插件公开的核心方法(addParent()、addSiblings()、addChildren()、removeNodes()),我们可以轻松完成这项任务。

允许用户拖动&;当选项“draggable”被赋值为true时,删除组织结构图的节点(注意:此功能在IE上不起作用,因为它对HTML5拖放API的支持较差)。

此外,用户可以使用选项dropCriteria来注入他们对拖拽的自定义限制;滴如下所示,我们不希望经理员工在任何情况下都处于工程师之下。

这就是getHierarchy()的作用所在。

这是一项非常简单的任务,我们只需要将id或className属性附加到节点数据中。

事实上,这是一个很好的解决方案,可以显示包含大量节点数据的组织图。

此功能的灵感来源于以下问题(垂直对齐儿童、混合(水平+垂直)组织结构图)。感谢mfahadi和Destructrix的建设性建议,特别感谢tedliang出色的混合模式解决方案。

从现在起,用户再也不用担心如何在浏览器的一个屏幕上对齐大量节点了。“verticalLevel”选项允许用户从给定级别垂直对齐子节点。

注意:目前,该选项与许多其他选项或方法不兼容,如direction、drag-amp;drop、addChildren()、removeNodes()、getHierarchy()等。这些冲突将在后续版本中逐一解决。

没问题。您只需要借助选项“collapse”和className“slide up”来调整数据源的一些细节。

这没什么大不了的。您只需转到方法init()。

没问题。在ES6-Template文本的帮助下,我们可以自定义任何复杂的节点结构,而不是常见的标题和内容部分。

您需要基于新数据源结构的解决方案,该结构具有levelOffset数据道具+回调createNode()+CSS自定义属性(变量)

isVertical数据属性是为您的用例设计的。一旦一个节点有一个值为true的“isVertical”道具,其子节点将垂直排列。

如何在本地启动演示

用法

实例化语句

数据源结构

选项

<表格>

名称

类型

必需

默认

描述

数据

json或字符串

是的

数据源用于构建组织结构图的结构。它可以是json对象,也可以是包含URL的字符串

发送ajax请求

平底锅

布尔值

虚假的

用户可以通过鼠标拖动来平移组织结构图;如果启用此选项,则删除

缩放

布尔值

虚假的

如果用户启用此选项,则可以通过鼠标滚轮放大/缩小组织结构图

缩放限制

数字

7个

允许用户设置放大限制

缩小限制

数字

0.5

允许用户设置缩小限制

方向

字符串

“t2b”

可用的值是t2b(表示“从上到下”,这是默认值)、b2t(表示“自下而上”)、l2r(表示“左到右”)、r2l(表示“右到左”)

垂直标高

整数(>;=2)

用户可以使用此选项从指定级别垂直对齐节点

切换同级

布尔值

虚假的

启用此选项后,用户可以通过单击左/右箭头分别显示/隐藏左/右同级节点

ajaxURL

json语言

它包括四个属性——父节点、子节点、兄弟姐妹、家庭(要求父节点和兄弟姐妹节点)。正如它们的名称所暗示的那样,不同的property提供了向其发送针对不同节点的ajax请求的URL

可视级别

正整数

999

它表示组织结构图在一开始就扩展到的级别

节点标题

字符串

“名称”

它将数据源的一个属性设置为组织结构图节点标题部分的文本内容。事实上,用户可以只使用nodeTitle选项创建一个简单的orghcart

parentNodeSymbol(父节点符号)

字符串

“国际奥委会领导人”

使用您自己的图标来暗示节点具有子节点

节点内容

字符串

它将数据源的一个属性设置为组织结构图节点内容部分的文本内容

节点ID

字符串

“id”

它将数据源的一个属性设置为每个组织结构图节点的唯一标识符

节点模板

函数

它是一个模板生成功能,用于自定义任何复杂的节点内部结构。它只接收一个参数:“data”代表将用于渲染一个节点的json数据库

创建节点

函数

这是一个回调函数,用于自定义每个组织结构图节点。它接收两个参数:“$node”代表单节点div的jquery对象;“data”代表单个节点的数据源

导出按钮

布尔值

虚假的

它启用了组织结构图的导出按钮

导出按钮名称

字符串

“导出”

这是导出按钮的名称

导出文件名

字符串

“组织结构图”

当您将当前组织结构图导出为图片时,它是文件名

导出文件扩展名

字符串

“png”

可用值为png和pdf

图表类

字符串

“”

当你想在一个页面上实例化多个组织结构图时,你应该给它们添加不同的类名来区分它们

可拖动的

布尔值

虚假的

用户可以拖动&;如果orgchart的节点启用了此选项,则将其删除**注意**:此功能在IE上不起作用,因为它对HTML5拖拽的支持很差;删除API

drop标准

函数

用户可以构造自己的条件来限制拖动节点和放置区域之间的关系。此外,此功能还可以

pt三个参数(draggedNode、dragZone、dropZone),并且只返回boolen值

initCompleted(初始化已完成)

函数

了解表何时已完全初始化、数据加载和渲染通常很有用,尤其是在使用ajax数据源时。它接收一个参数:“$chart”代表初始化图表的jquery对象

方法

我相信,在您尝试了demo-edit组织结构图之后,您可以掌握以下方法的要点。

var oc=$container.orgchart(选项)

在指定的容器中嵌入组织结构图。接受一个选项对象,您可以通过“选项”部分找到需要的选项。变量oc是类OrgChart的实例。

初始化(newOptions)

当用户想要根据新选项重新初始化或刷新组织结构图或重新加载新数据时,这是一种有用的方法。

addParent(数据)

为当前组织结构图添加父节点(实际上它总是根节点)。

<表格>

名称

类型

必需

默认

描述

数据

json对象

是的

用于构建根节点的数据源

addSiblings($node,数据)

为指定节点添加同级节点。

<表格>

名称

类型

必需

默认

描述

$节点

jquery对象

是的

我们将在此节点的基础上添加同级节点

数据

阵列

是的

用于构建同级节点的数据源

addChildren($node,数据)

为设计的节点添加子节点。

<表格>

名称

类型

必需

默认

描述

$节点

jquery对象

是的

我们将在此节点的基础上添加子节点

数据

阵列

是的

用于构建子节点的数据源

removeNodes($node)

删除指定的节点及其降级节点。

<表格>

名称

类型

必需

默认

描述

$节点

jquery对象

是的

要删除的节点

获取层次结构()

该方法旨在获取组织结构图的层次关系,以便进一步处理。例如,在编辑orgchart之后,您可以将此方法的返回值发送到服务器端,并保存orghcart的新状态。

<表格>

名称

类型

必需

默认

描述

包括节点数据

布尔值

虚假的

此可选参数确定除了id和子项之外,是否在生成的JSON对象中包括nodeData项

hidePrent($node)

此方法允许您以程序方式隐藏任何特定节点(.node元素)的父节点(如果有的话)。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是隐藏其父节点所需的JQuery对象。当然,它的同级节点将同时隐藏

showParent($node)

此方法允许您以程序方式显示任何特定节点(.node元素)的父节点(如果有的话)。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是显示其父节点所需的JQuery对象

hideChildren($node)

此方法允许您以程序方式隐藏任何特定节点(.node元素)的子节点(如果有的话)。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是隐藏其子节点所需的JQuery对象

showChildren($node)

此方法允许您sh

用程序显示任何特定节点(.node元素)的子节点(如果有的话)。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是显示其子节点所需的JQuery对象

hideSiblings($node,方向)

此方法允许您以程序方式隐藏任何特定节点(.node元素)的同级节点(如果有的话)。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是隐藏其同级节点所需的JQuery对象

方向

字符串

可能的值:“left”、“rigth”。指定是隐藏左侧还是右侧的同级。如果未定义,则隐藏两者

showSiblings($node,方向)

此方法允许您以程序方式显示任何特定节点(.node元素)的同级节点(如果有的话)。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是显示其同级节点所需的JQuery对象

方向

字符串

可能的值:“left”、“rigth”。指定是在左侧还是右侧显示同级。如果未定义,则显示两者

getNodeState($node,关系)

此方法返回指定节点的相关节点的显示状态。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是想要知道其相关节点的显示状态的JQuery对象

关系

字符串

可能的值:“父母”、“子女”和“兄弟姐妹”。指定要返回的所需关系

返回的对象将具有以下结构:

getRelatedNodes($node,关系)

此方法返回与指定节点相关的节点。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是想要知道其相关节点的JQuery对象

关系

字符串

可能的值:“父母”、“子女”和“兄弟姐妹”。指定要返回的所需关系

getParent($node)

此方法返回指定节点的父节点。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是需要知道其父节点的JQuery对象

getSiblings($node)

此方法返回指定节点的同级节点。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是想要知道其同级节点的JQuery对象

getChildren($node)

此方法返回指定节点的子节点。

<表格>

名称

类型

必需

默认

描述

$节点

JQuery对象

它是需要知道其子节点的JQuery对象

setChartScale($chart,newScale)

此方法可帮助您设置具有新比例的指定图表。

<表格>

名称

类型

必需

默认

描述

$图表

JQuery对象

这是图表容器中的图表

新建比例

浮动

用于放大/缩小图表的正浮点值

导出(exportFilename,exportFileextension)

此方法允许您将当前组织结构图导出为png或pdf文件。

<表格>

名称

类型

必需

默认

描述

导出文件名

字符串

'组织结构图'

它是导出文件的名称

导出文件扩展名

字符串

'png'

它是导出文件的扩展名

事件

<表格>

事件类型

其他参数

描述

节点下降.orgchart

draggedNode,dragZone,dropZone

事件的处理程序是在节点放置之后放置自定义函数的地方。有关更多详细信息,请参阅示例drag&;下降

初始.orgchart

图表

初始化完成事件-当组织结构图已完全初始化并加载数据时激发

负载-[关系].orgchart

onDemand加载完成后,会在节点上激发此事件。[亲属关系]可以是父母、子女或兄弟姐妹

显示-[关系].orgchart

当节点的相关节点变得可见时,会触发此事件

隐藏-[关系].orgchart

如果在折叠节点的相关节点时激发此事件

提示

如何停用组织结构图的展开/折叠功能?

这个用例的灵感来自于这个问题。感谢robert和ActiveScottShaw的建设性讨论

用户可以使用className“noncollapsable”启用/禁用exapand/collapse功能,如下所示。

为什么根节点不见了?

当我有一个启用了“平移”选项的巨大组织图时,如果我隐藏了其中一个最上面的父母的所有孩子,那么该图表就会从屏幕上消失。我们似乎需要添加一个重置按钮来保持图表的可见性。

有关详细信息,请参阅手册84打开的问题

用户可以将任何清除逻辑嵌入到重置按钮的点击处理程序中,如下所示。

浏览器兼容性

不一样的ZTree,权限树.js插件

1.2 Web工程的组织结构

逻辑控制器

使用jOrgChart插件, 异步加载生成组织架构图

Notepad++ 怎么设置出现左边的目录结构

Featherlight是一个非常轻量级的jQuery灯箱插件。它';它简单而灵活,易于使用。Featherlight具有最小的css,并且不使用内联样式,所有内容都以名称分隔,它';s完