orgchart 4.0.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +32 -0
- package/README.md +205 -89
- package/README.zh-cn.md +221 -68
- package/README.zh-tw.md +221 -68
- package/bower.json +6 -9
- package/demo/10000-nodes.html +139 -0
- package/demo/ajax-datasource.html +46 -45
- package/demo/bottom2top.html +12 -9
- package/demo/center-on-selected-node.html +21 -17
- package/demo/color-coded.html +12 -9
- package/demo/css/style.css +28 -0
- package/demo/custom-icons.html +12 -9
- package/demo/custom-template.html +12 -9
- package/demo/data-prop-compact.html +11 -8
- package/demo/data-prop-hybrid.html +79 -50
- package/demo/default-collapsed.html +12 -9
- package/demo/drag-drop-hybrid-chart.html +17 -14
- package/demo/drag-drop.html +21 -16
- package/demo/edit-chart.html +148 -94
- package/demo/edit-hybrid-chart.html +178 -135
- package/demo/expand-to-given-depth.html +30 -22
- package/demo/export-chart-pdf.html +12 -9
- package/demo/export-chart-with-pictures.html +19 -12
- package/demo/export-chart.html +12 -9
- package/demo/family-tree.html +100 -0
- package/demo/familytree-custom-properties.html +108 -0
- package/demo/filter-node.html +104 -57
- package/demo/get-hierarchy.html +17 -12
- package/demo/get-related-nodes.html +27 -17
- package/demo/index.html +7 -4
- package/demo/integrate-map.html +32 -27
- package/demo/left2right.html +12 -9
- package/demo/level-offset.html +16 -15
- package/demo/link-node.html +12 -9
- package/demo/local-datasource.html +11 -8
- package/demo/minimap.html +224 -0
- package/demo/nodes-of-different-widths.html +11 -8
- package/demo/ondemand-loading-data.html +88 -91
- package/demo/option-createNode.html +31 -20
- package/demo/pan-zoom.html +20 -11
- package/demo/reload-data.html +17 -14
- package/demo/report-path.html +59 -29
- package/demo/responsive-design.html +14 -11
- package/demo/right2left.html +12 -9
- package/demo/toggle-sibs-resp.html +12 -9
- package/demo/ul-datasource.html +11 -8
- package/demo/vertical-level.html +12 -9
- package/dist/css/{jquery.orgchart.css → orgchart.css} +210 -78
- package/dist/css/orgchart.min.css +1 -0
- package/dist/js/orgchart.js +4101 -0
- package/dist/js/orgchart.min.js +2 -0
- package/dist/js/orgchart.min.js.map +1 -0
- package/gulpfile.js +37 -26
- package/package.json +32 -32
- package/src/css/{jquery.orgchart.css → orgchart.css} +210 -78
- package/src/js/orgchart.js +4101 -0
- package/test/cypress/e2e/demo-interactions.cy.js +91 -0
- package/test/cypress/e2e/demo-rendering.cy.js +100 -0
- package/test/cypress/e2e/drag-drop-hybrid-chart.cy.js +22 -0
- package/test/cypress/e2e/edit-chart.cy.js +20 -0
- package/test/cypress/e2e/level-offset.cy.js +21 -0
- package/test/cypress/e2e/minimap.cy.js +66 -0
- package/test/cypress/e2e/pan-zoom.cy.js +165 -0
- package/test/cypress/e2e/report-path.cy.js +20 -0
- package/test/cypress/e2e/vertical-vevel.cy.js +5 -3
- package/test/e2e/local-datasource/test.js +1 -1
- package/test/integration/init-tests.js +168 -62
- package/test/integration/tests.js +1034 -56
- package/test/unit/lifecycle-builders-export.tests.js +1426 -0
- package/test/unit/minimap.tests.js +210 -0
- package/test/unit/tests.js +2372 -252
- package/demo/multiple-layers.html +0 -128
- package/dist/css/jquery.orgchart.min.css +0 -1
- package/dist/js/jquery.orgchart.js +0 -1686
- package/dist/js/jquery.orgchart.min.js +0 -5
- package/dist/js/jquery.orgchart.min.js.map +0 -1
- package/src/js/jquery.orgchart.js +0 -1686
package/README.zh-cn.md
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
## 写在前面的话
|
|
12
12
|
感谢[wesnolte](https://github.com/wesnolte)的非常棒的作品-- [jOrgChart](https://github.com/wesnolte/jOrgChart)。用嵌套的table来构造树状结构,用td的border来构造节点间的连线,非常有创意。天然地降低了前端程序员在构造树状结构时的工作量和难度,要知道,利用D3.js中的脑图去达到同样效果,开发周期就会长好多。哪怕你对svg,canvas等高级的制图API了然于胸,当你的树状结构图激发出HR大姐的各种天马行空的需求时,你会坦诚的承认svg或canvas这种重型武器拖累了你的快速解决一小戳敌人的能力。相比较而言,用单纯的**HTML5 + CSS3**的解决方案就像是 **“小米 + 步枪”的轻步兵**,天然地降低了你在实现树状结构图的难度,同时给予你更大的定制空间去面对基于这个结构图衍生出的种种琐碎需求。只要你的需求足够多,基于这个树状结构图,打造出一个完备的HR系统,也是可以期待的。实际上,网络上很多OrgChart商业软件就是围绕着一个树状结构核心模型展开的业务逻辑实现。
|
|
13
13
|
|
|
14
|
+
- 自 5.0 版本起,用户可以构建家谱树。
|
|
15
|
+
- 自 6.0 版本起,OrgChart 组件已回归原生实现,不再依赖 jQuery。
|
|
16
|
+
|
|
14
17
|
## 功能特性
|
|
15
18
|
- 支持本地和远程的数据源。
|
|
16
19
|
- 用户可以展开/折叠节点或子树,方便地浏览局部的结构图。
|
|
@@ -40,7 +43,9 @@ $ bower install orgchart
|
|
|
40
43
|
# From version 1.0.4 on, users can install orgchart with npm
|
|
41
44
|
$ npm install orgchart
|
|
42
45
|
```
|
|
43
|
-
|
|
46
|
+
在 CommonJS 环境中,`require('orgchart')`会直接导出 `OrgChart` 构造函数。
|
|
47
|
+
|
|
48
|
+
可参考这个例子, [在React中使用jQuery Orchart](https://stackblitz.com/edit/vitejs-vite-hqv4nbdt)
|
|
44
49
|
|
|
45
50
|
## [gihtub pages实例集合](https://dabeng.github.io/OrgChart/)
|
|
46
51
|
## [基于嵌套ul的实例集合](https://codepen.io/collection/nWqvzY)
|
|
@@ -105,10 +110,6 @@ $ npm install orgchart
|
|
|
105
110
|
|
|
106
111
|
我们只需要把css的样式与数据源中的id字段或css类字段关联起来就好。
|
|
107
112
|
|
|
108
|
-
- [我想实现一个多层级(而非深度)的组织结构图](https://dabeng.github.io/OrgChart/multiple-layers.html)
|
|
109
|
-
|
|
110
|
-
如果你的组织层级很多,二每个层级下的节点也很多,那么上面的方案可以采纳尝试。
|
|
111
|
-
|
|
112
113
|
- [我想构造一个混合布局的(水平方向 + 垂直方向)组织结构图](https://dabeng.github.io/OrgChart/vertical-level.html)
|
|
113
114
|
|
|
114
115
|
这个特性的灵感来源于这两个话题的讨论--[Aligning Children Vertical](https://github.com/dabeng/OrgChart/issues/46), [Hybrid(horizontal + vertical) OrgChart](https://github.com/dabeng/OrgChart/issues/61)。感谢[mfahadi](https://github.com/mfahadi)和[Destructrix](https://github.com/Destructrix)建设性的讨论:blush:尤其感谢[tedliang](https://github.com/tedliang)提供了非常棒的混合布局的解决方案。
|
|
@@ -125,6 +126,84 @@ $ npm install orgchart
|
|
|
125
126
|
|
|
126
127
|
没问题,我们推荐使用ES6的模版字符串。
|
|
127
128
|
|
|
129
|
+
- [我想将节点安置在特定的层级. 咋做 ?](https://dabeng.github.io/OrgChart/level-offset.html)
|
|
130
|
+
|
|
131
|
+

|
|
132
|
+
|
|
133
|
+
你需要的是一个复合的解决方案: **levelOffset data prop** + callback createNode() + CSS custom properties(variables)
|
|
134
|
+
|
|
135
|
+
- [我想构造一个组织结构图,每个节点宽度都可以不同的](https://dabeng.github.io/OrgChart/nodes-of-different-widths.html)
|
|
136
|
+
|
|
137
|
+

|
|
138
|
+
|
|
139
|
+
- [我想在混合布局中实现拖/放功能](https://dabeng.github.io/OrgChart/drag-drop-hybrid-chart.html)
|
|
140
|
+
|
|
141
|
+
- [我想指定从某一分支开始,其下所有子节点都以垂直样式显示](https://dabeng.github.io/OrgChart/data-prop-hybrid.html)
|
|
142
|
+
|
|
143
|
+

|
|
144
|
+
|
|
145
|
+
**hybrid data property** 就派上用场了. 在数据源的某个节点中提供"hybrid"属性,那么它的所有后代节点都会垂直布局.
|
|
146
|
+
|
|
147
|
+
- [我想用Font Awesome图标代替内置的图标](https://dabeng.github.io/OrgChart/custom-icons.html)
|
|
148
|
+
|
|
149
|
+
- [子节点众多的时候,我想以一种压缩起来的展示方式尽可能节省空间](https://dabeng.github.io/OrgChart/data-prop-compact.html)
|
|
150
|
+
|
|
151
|
+

|
|
152
|
+
|
|
153
|
+
**compact data property** 就派上用场了. 在数据源的某个节点里提供了"compact"属性,并赋为真值,那么它和它的子节点就会展示为压缩模式。
|
|
154
|
+
|
|
155
|
+
- [我想构造族谱,家谱,宗谱的关系图](https://dabeng.github.io/OrgChart/family-tree.html)
|
|
156
|
+
|
|
157
|
+

|
|
158
|
+
|
|
159
|
+
我们使用如下的二维数组数据源来构建家谱。“outsider”代表外姓人。
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
var datascource = [
|
|
163
|
+
[
|
|
164
|
+
{ 'id': '8', 'name': 'Lao Ye', 'title': 'Grandfather' },
|
|
165
|
+
{
|
|
166
|
+
'id': '1', 'name': 'Lao Lao', 'title': 'Grandmother', 'outsider': true,
|
|
167
|
+
'children': [
|
|
168
|
+
[
|
|
169
|
+
{ 'id': '2', 'name': 'Bo miao', 'title': 'Aunt' }
|
|
170
|
+
],
|
|
171
|
+
[
|
|
172
|
+
{ 'id': '3', 'name': 'Su Miao', 'title': 'Mother',
|
|
173
|
+
'children': [
|
|
174
|
+
[
|
|
175
|
+
|
|
176
|
+
{ 'id': '12', 'name': 'Pang Pang', 'title': 'Wife', 'outsider': true,
|
|
177
|
+
'children': [
|
|
178
|
+
[{ 'id': '7', 'name': 'Dan Dan', 'title': 'Daughter' }],
|
|
179
|
+
[{ 'id': '6', 'name': 'Er Dan', 'title': 'Daughter' }],
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
{ 'id': '5', 'name': 'Hei Hei', 'title': 'Me' },
|
|
183
|
+
]
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{ 'id': '9', 'name': 'Tie Hua', 'title': 'Father', 'outsider': true }
|
|
187
|
+
],
|
|
188
|
+
[
|
|
189
|
+
{ 'id': '10', 'name': 'Hong miao', 'title': 'Aunt' }
|
|
190
|
+
]
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
];
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
- [我想往族谱里追加一些自定义的标识](https://dabeng.github.io/OrgChart/familytree-custom-properties.html)
|
|
198
|
+
|
|
199
|
+

|
|
200
|
+
|
|
201
|
+
- [我想通过小地图导航组织结构图](https://dabeng.github.io/OrgChart/minimap.html)
|
|
202
|
+
|
|
203
|
+

|
|
204
|
+
|
|
205
|
+
启用 `minimap` 选项即可显示概览导航器。拖动其中的视口可以移动组织结构图,在小地图上滚动鼠标滚轮可以缩放。
|
|
206
|
+
|
|
128
207
|
### 本地运行orgchart
|
|
129
208
|
|
|
130
209
|
- 必须安装node.js v6+,因为我们的单元测试是基于jsdom v11。
|
|
@@ -138,7 +217,10 @@ $ npm install orgchart
|
|
|
138
217
|
|
|
139
218
|
### 实例化组织结构图
|
|
140
219
|
```js
|
|
141
|
-
var oc =
|
|
220
|
+
var oc = new OrgChart({
|
|
221
|
+
chartContainer: '#chartContainerId',
|
|
222
|
+
data: datasource
|
|
223
|
+
});
|
|
142
224
|
```
|
|
143
225
|
|
|
144
226
|
### 数据源示例
|
|
@@ -187,7 +269,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
187
269
|
<tbody>
|
|
188
270
|
<tr>
|
|
189
271
|
<td>data</td>
|
|
190
|
-
<td>json /
|
|
272
|
+
<td>json / HTMLUListElement</td>
|
|
191
273
|
<td>是</td>
|
|
192
274
|
<td></td>
|
|
193
275
|
<td>用于构造组织结构图的数据源。它的值可以是JSON或能提供数据的ul元素。</td>
|
|
@@ -288,7 +370,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
288
370
|
<td>function</td>
|
|
289
371
|
<td>否</td>
|
|
290
372
|
<td></td>
|
|
291
|
-
<td>为该选项提供的函数,会在默认节点结构创建完毕后调用。利用传入的两个参数--"
|
|
373
|
+
<td>为该选项提供的函数,会在默认节点结构创建完毕后调用。利用传入的两个参数--"node"和"data",可以帮助开发者定制或改动现有的节点结构。</td>
|
|
292
374
|
</tr>
|
|
293
375
|
<tr>
|
|
294
376
|
<td>exportButton</td>
|
|
@@ -344,20 +426,54 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
344
426
|
<td>function</td>
|
|
345
427
|
<td>否</td>
|
|
346
428
|
<td></td>
|
|
347
|
-
<td>组织结构图初始化完成后,该选项指定的回调函数被触发。该函数接受一个参数--"
|
|
429
|
+
<td>组织结构图初始化完成后,该选项指定的回调函数被触发。该函数接受一个参数--"chart", 即初始化后的组织结构图元素。</td>
|
|
348
430
|
</tr>
|
|
349
431
|
</tbody>
|
|
350
432
|
</table>
|
|
351
433
|
|
|
352
434
|
### 方法
|
|
353
|
-
|
|
435
|
+
使用 `new OrgChart(options)` 创建实例。`chartContainer` 和 `chart` 属性分别提供原生容器元素与已渲染的组织结构图元素。
|
|
436
|
+
|
|
437
|
+
```js
|
|
438
|
+
const oc = new OrgChart({ chartContainer: '#chartContainerId', data: datasource });
|
|
439
|
+
```
|
|
354
440
|
|
|
355
|
-
|
|
356
|
-
|
|
441
|
+
公开 API 包括:`init`、`setOptions`、`attachMinimap`、`detachMinimap`、`updateMinimap`、`addAncestors`、`addDescendants`、`addParent`、`addSiblings`、`addChildren`、`removeNodes`、`getHierarchy`、`getNodeState`、`getParent`、`getChildren`、`getSiblings`、`getRelatedNodes`、`hideParent`、`showParent`、`hideChildren`、`showChildren`、`hideSiblings`、`showSiblings`、`setChartScale`、`export`、`exportPNG` 和 `exportPDF`。其中节点和图表参数均为原生 `HTMLElement`。
|
|
442
|
+
|
|
443
|
+
#### API 参考
|
|
444
|
+
| 调用 | 参数 | 返回值与调用行为 |
|
|
445
|
+
| --- | --- | --- |
|
|
446
|
+
| `oc.init(options)` | 部分选项对象;传入 `data` 可替换数据源。 | 重新构建图表并返回 `oc`。 |
|
|
447
|
+
| `oc.setOptions(options)`<br>`oc.setOptions(name, value)` | 包含 `data`、`pan`、`zoom` 或 `minimap` 的对象;或受支持的选项名称及布尔值。 | `data` 会重建图表,其他选项切换相应功能;返回 `oc`。 |
|
|
448
|
+
| `oc.attachMinimap()`<br>`oc.detachMinimap()`<br>`oc.updateMinimap(forceRefresh)` | `forceRefresh` 可选;传入 `true` 会重绘节点预览。 | 创建、移除或刷新小地图。常规启用应使用 `setOptions('minimap', value)`。 |
|
|
449
|
+
| `oc.addAncestors(data, parentId)` | 祖先数据,以及接收原根节点的祖先节点 id。 | 插入祖先层级;无返回值。 |
|
|
450
|
+
| `oc.addDescendants(data, parent)` | 后代数据数组和已渲染的父 `.node`。 | 追加后代层级;无返回值。 |
|
|
451
|
+
| `oc.addParent(currentRoot, data)` | 已渲染的根 `.node` 和新父节点数据。 | 用新父节点包裹当前根;无返回值。 |
|
|
452
|
+
| `oc.addSiblings(node, data)`<br>`oc.addChildren(node, data)` | 已渲染的 `.node` 和兄弟节点或子节点数据数组。 | 增加渲染节点;无返回值。 |
|
|
453
|
+
| `oc.removeNodes(node)` | 要删除的已渲染 `.node`。 | 删除该节点及其后代;无返回值。 |
|
|
454
|
+
| `oc.getHierarchy(includeNodeData)` | 可选布尔值,默认 `false`。 | 返回层级对象;图表或必要节点 id 不可用时返回错误字符串。 |
|
|
455
|
+
| `oc.getNodeState(node, relation)` | 已渲染 `.node`;`relation` 为 `parent`、`children` 或 `siblings`。 | 返回 `{ exist, visible }`。 |
|
|
456
|
+
| `oc.getParent(node)` | 已渲染 `.node`。 | 返回父 `.node`,不存在时返回 `null`。 |
|
|
457
|
+
| `oc.getChildren(node)`<br>`oc.getSiblings(node)` | 已渲染 `.node`。 | 返回直接子节点或兄弟节点 `.node` 元素数组。 |
|
|
458
|
+
| `oc.getRelatedNodes(node, relation)` | 已渲染 `.node`;`relation` 为 `parent`、`children` 或 `siblings`。 | 通用关联查询;parent 返回节点或 `null`,其他关系返回数组。 |
|
|
459
|
+
| `oc.hideParent(node)` / `oc.showParent(node)`<br>`oc.hideChildren(node)` / `oc.showChildren(node)` | 已渲染 `.node`。 | 通过图表过渡隐藏或显示关联分支;无返回值。 |
|
|
460
|
+
| `oc.hideSiblings(node, direction)`<br>`oc.showSiblings(node, direction)` | 已渲染 `.node`;可选 `direction` 为 `left` 或 `right`。 | 隐藏或显示指定一侧的兄弟节点;省略方向时处理全部兄弟节点;无返回值。 |
|
|
461
|
+
| `oc.setChartScale(chart, multiplier, zoomAnchor)` | 通常传入 `oc.chart`;正数的相对缩放倍数;可选视口坐标 `{ x, y }`。 | 在配置的缩放范围内缩放,提供 `zoomAnchor` 时固定该点。 |
|
|
462
|
+
| `oc.export(filename, extension)` | 可选文件名和 `png` 或 `pdf` 扩展名。 | 按配置默认值开始导出;无法导出时返回 `false`。 |
|
|
463
|
+
| `oc.exportPNG(canvas, filename)`<br>`oc.exportPDF(canvas, filename, exportScale)` | 已准备的 canvas、文件名;PDF 缩放默认 `1`。 | 将传入 canvas 直接下载为 PNG 或 PDF;通常应调用 `export()`。 |
|
|
357
464
|
|
|
358
465
|
#### init(newOptions)
|
|
359
466
|
当你想基于新的options或数据源刷新组织结构图时,这个方法就派上用场了。
|
|
360
467
|
|
|
468
|
+
#### setOptions(options) / setOptions(name, value)
|
|
469
|
+
无需重新构建图表即可更新 `pan`、`zoom` 或 `minimap`。可传入选项对象,或传入支持的选项名称和布尔值;传入包含 `data` 的对象时会重新构建图表。
|
|
470
|
+
|
|
471
|
+
#### attachMinimap() / detachMinimap()
|
|
472
|
+
创建或移除当前图表的小地图覆盖层。通常应使用 `setOptions('minimap', true|false)`,以保证选项状态和覆盖层保持同步。
|
|
473
|
+
|
|
474
|
+
#### updateMinimap(forceRefresh)
|
|
475
|
+
在修改图表变换或布局后重新计算小地图视口。传入 `true` 会重绘小地图中的节点预览。
|
|
476
|
+
|
|
361
477
|
#### addAncestors(data, parentId)
|
|
362
478
|
为当前的组织结构图增加祖先节点,可以不止一个层级。
|
|
363
479
|
<table>
|
|
@@ -388,7 +504,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
388
504
|
</tbody>
|
|
389
505
|
</table>
|
|
390
506
|
|
|
391
|
-
#### addDescendants(data,
|
|
507
|
+
#### addDescendants(data, parent)
|
|
392
508
|
为指定的父节点增加后代节点。
|
|
393
509
|
<table>
|
|
394
510
|
<thead>
|
|
@@ -409,8 +525,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
409
525
|
<td>用于构造后代节点的数据源</td>
|
|
410
526
|
</tr>
|
|
411
527
|
<tr>
|
|
412
|
-
<td
|
|
413
|
-
<td>
|
|
528
|
+
<td>parent</td>
|
|
529
|
+
<td>HTMLElement</td>
|
|
414
530
|
<td>yes</td>
|
|
415
531
|
<td></td>
|
|
416
532
|
<td>后代节点要追加到的父节点对象</td>
|
|
@@ -418,7 +534,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
418
534
|
</tbody>
|
|
419
535
|
</table>
|
|
420
536
|
|
|
421
|
-
#### addParent(data)
|
|
537
|
+
#### addParent(currentRoot, data)
|
|
422
538
|
为当前的组织结构图增加父节点。
|
|
423
539
|
<table>
|
|
424
540
|
<thead>
|
|
@@ -431,6 +547,13 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
431
547
|
</tr>
|
|
432
548
|
</thead>
|
|
433
549
|
<tbody>
|
|
550
|
+
<tr>
|
|
551
|
+
<td>currentRoot</td>
|
|
552
|
+
<td>HTMLElement</td>
|
|
553
|
+
<td>是</td>
|
|
554
|
+
<td></td>
|
|
555
|
+
<td>当前组织结构图的根节点,新父节点会包裹这个根节点</td>
|
|
556
|
+
</tr>
|
|
434
557
|
<tr>
|
|
435
558
|
<td>data</td>
|
|
436
559
|
<td>json object</td>
|
|
@@ -441,7 +564,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
441
564
|
</tbody>
|
|
442
565
|
</table>
|
|
443
566
|
|
|
444
|
-
#### addSiblings(
|
|
567
|
+
#### addSiblings(node, data)
|
|
445
568
|
为指定的节点增加兄弟节点。
|
|
446
569
|
<table>
|
|
447
570
|
<thead>
|
|
@@ -455,8 +578,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
455
578
|
</thead>
|
|
456
579
|
<tbody>
|
|
457
580
|
<tr>
|
|
458
|
-
<td
|
|
459
|
-
<td>
|
|
581
|
+
<td>node</td>
|
|
582
|
+
<td>HTMLElement</td>
|
|
460
583
|
<td>是</td>
|
|
461
584
|
<td></td>
|
|
462
585
|
<td>基于该节点增加其兄弟节点</td>
|
|
@@ -471,7 +594,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
471
594
|
</tbody>
|
|
472
595
|
</table>
|
|
473
596
|
|
|
474
|
-
#### addChildren(
|
|
597
|
+
#### addChildren(node, data)
|
|
475
598
|
为指定的节点增加孩子节点。
|
|
476
599
|
<table>
|
|
477
600
|
<thead>
|
|
@@ -485,8 +608,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
485
608
|
</thead>
|
|
486
609
|
<tbody>
|
|
487
610
|
<tr>
|
|
488
|
-
<td
|
|
489
|
-
<td>
|
|
611
|
+
<td>node</td>
|
|
612
|
+
<td>HTMLElement</td>
|
|
490
613
|
<td>是</td>
|
|
491
614
|
<td></td>
|
|
492
615
|
<td>基于该节点增加其孩子节点</td>
|
|
@@ -501,7 +624,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
501
624
|
</tbody>
|
|
502
625
|
</table>
|
|
503
626
|
|
|
504
|
-
#### removeNodes(
|
|
627
|
+
#### removeNodes(node)
|
|
505
628
|
删除指定的节点及其后代节点。
|
|
506
629
|
<table>
|
|
507
630
|
<thead>
|
|
@@ -515,8 +638,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
515
638
|
</thead>
|
|
516
639
|
<tbody>
|
|
517
640
|
<tr>
|
|
518
|
-
<td
|
|
519
|
-
<td>
|
|
641
|
+
<td>node</td>
|
|
642
|
+
<td>HTMLElement</td>
|
|
520
643
|
<td>是</td>
|
|
521
644
|
<td></td>
|
|
522
645
|
<td>待删除的节点。</td>
|
|
@@ -544,7 +667,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
544
667
|
</tr>
|
|
545
668
|
</table>
|
|
546
669
|
|
|
547
|
-
#### hideParent(
|
|
670
|
+
#### hideParent(node)
|
|
548
671
|
隐藏指定节点的父节点。当然其兄弟节点及祖先节点也一并隐藏了。
|
|
549
672
|
<table>
|
|
550
673
|
<tr>
|
|
@@ -555,15 +678,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
555
678
|
<th>描述</th>
|
|
556
679
|
</tr>
|
|
557
680
|
<tr>
|
|
558
|
-
<td
|
|
559
|
-
<td>
|
|
681
|
+
<td>node</td>
|
|
682
|
+
<td>HTMLElement</td>
|
|
560
683
|
<td>Yes</td>
|
|
561
684
|
<td>None</td>
|
|
562
|
-
<td
|
|
685
|
+
<td>指定节点元素。</td>
|
|
563
686
|
</tr>
|
|
564
687
|
</table>
|
|
565
688
|
|
|
566
|
-
#### showParent(
|
|
689
|
+
#### showParent(node)
|
|
567
690
|
显示指定节点的父节点。但不包括更上一层的祖先节点。
|
|
568
691
|
|
|
569
692
|
<table>
|
|
@@ -575,15 +698,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
575
698
|
<th>描述</th>
|
|
576
699
|
</tr>
|
|
577
700
|
<tr>
|
|
578
|
-
<td
|
|
579
|
-
<td>
|
|
701
|
+
<td>node</td>
|
|
702
|
+
<td>HTMLElement</td>
|
|
580
703
|
<td>是</td>
|
|
581
704
|
<td></td>
|
|
582
|
-
<td
|
|
705
|
+
<td>指定节点元素。</td>
|
|
583
706
|
</tr>
|
|
584
707
|
</table>
|
|
585
708
|
|
|
586
|
-
#### hideChildren(
|
|
709
|
+
#### hideChildren(node)
|
|
587
710
|
隐藏指定节点的孩子节点。当然这其中包含了所有的后代节点。
|
|
588
711
|
|
|
589
712
|
<table>
|
|
@@ -595,15 +718,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
595
718
|
<th>描述</th>
|
|
596
719
|
</tr>
|
|
597
720
|
<tr>
|
|
598
|
-
<td
|
|
599
|
-
<td>
|
|
721
|
+
<td>node</td>
|
|
722
|
+
<td>HTMLElement</td>
|
|
600
723
|
<td>是</td>
|
|
601
724
|
<td></td>
|
|
602
|
-
<td
|
|
725
|
+
<td>指定节点元素。</td>
|
|
603
726
|
</tr>
|
|
604
727
|
</table>
|
|
605
728
|
|
|
606
|
-
#### showChildren(
|
|
729
|
+
#### showChildren(node)
|
|
607
730
|
显示指定节点的孩子节点。默认只显示紧邻的下一个层级,并不包括所有的后代节点。
|
|
608
731
|
|
|
609
732
|
<table>
|
|
@@ -615,15 +738,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
615
738
|
<th>描述</th>
|
|
616
739
|
</tr>
|
|
617
740
|
<tr>
|
|
618
|
-
<td
|
|
619
|
-
<td>
|
|
741
|
+
<td>node</td>
|
|
742
|
+
<td>HTMLElement</td>
|
|
620
743
|
<td>是</td>
|
|
621
744
|
<td></td>
|
|
622
|
-
<td
|
|
745
|
+
<td>指定节点元素。</td>
|
|
623
746
|
</tr>
|
|
624
747
|
</table>
|
|
625
748
|
|
|
626
|
-
#### hideSiblings(
|
|
749
|
+
#### hideSiblings(node, direction)
|
|
627
750
|
隐藏指定节点的兄弟节点。
|
|
628
751
|
|
|
629
752
|
<table>
|
|
@@ -635,11 +758,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
635
758
|
<th>描述</th>
|
|
636
759
|
</tr>
|
|
637
760
|
<tr>
|
|
638
|
-
<td
|
|
639
|
-
<td>
|
|
761
|
+
<td>node</td>
|
|
762
|
+
<td>HTMLElement</td>
|
|
640
763
|
<td>是</td>
|
|
641
764
|
<td></td>
|
|
642
|
-
<td
|
|
765
|
+
<td>指定节点元素。</td>
|
|
643
766
|
</tr>
|
|
644
767
|
<tr>
|
|
645
768
|
<td>direction</td>
|
|
@@ -650,7 +773,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
650
773
|
</tr>
|
|
651
774
|
</table>
|
|
652
775
|
|
|
653
|
-
#### showSiblings(
|
|
776
|
+
#### showSiblings(node, direction)
|
|
654
777
|
显示指定节点的兄弟节点。
|
|
655
778
|
|
|
656
779
|
<table>
|
|
@@ -662,11 +785,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
662
785
|
<th>描述</th>
|
|
663
786
|
</tr>
|
|
664
787
|
<tr>
|
|
665
|
-
<td
|
|
666
|
-
<td>
|
|
788
|
+
<td>node</td>
|
|
789
|
+
<td>HTMLElement</td>
|
|
667
790
|
<td>是</td>
|
|
668
791
|
<td></td>
|
|
669
|
-
<td
|
|
792
|
+
<td>指定节点元素。</td>
|
|
670
793
|
</tr>
|
|
671
794
|
<tr>
|
|
672
795
|
<td>direction</td>
|
|
@@ -677,7 +800,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
677
800
|
</tr>
|
|
678
801
|
</table>
|
|
679
802
|
|
|
680
|
-
#### getNodeState(
|
|
803
|
+
#### getNodeState(node, relation)
|
|
681
804
|
该方法帮你了解指定节点的相关节点的显示状况。
|
|
682
805
|
|
|
683
806
|
<table>
|
|
@@ -689,11 +812,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
689
812
|
<th>描述</th>
|
|
690
813
|
</tr>
|
|
691
814
|
<tr>
|
|
692
|
-
<td
|
|
693
|
-
<td>
|
|
815
|
+
<td>node</td>
|
|
816
|
+
<td>HTMLElement</td>
|
|
694
817
|
<td>是</td>
|
|
695
818
|
<td></td>
|
|
696
|
-
<td
|
|
819
|
+
<td>指定节点元素。</td>
|
|
697
820
|
</tr>
|
|
698
821
|
<tr>
|
|
699
822
|
<td>relation</td>
|
|
@@ -711,7 +834,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
711
834
|
"visible":true|false, // 标识相关节点当前是否可见
|
|
712
835
|
}
|
|
713
836
|
```
|
|
714
|
-
#### getRelatedNodes(
|
|
837
|
+
#### getRelatedNodes(node, relation)
|
|
715
838
|
获得指定节点的关联节点。
|
|
716
839
|
|
|
717
840
|
<table>
|
|
@@ -723,11 +846,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
723
846
|
<th>描述</th>
|
|
724
847
|
</tr>
|
|
725
848
|
<tr>
|
|
726
|
-
<td
|
|
727
|
-
<td>
|
|
849
|
+
<td>node</td>
|
|
850
|
+
<td>HTMLElement</td>
|
|
728
851
|
<td>是</td>
|
|
729
852
|
<td></td>
|
|
730
|
-
<td
|
|
853
|
+
<td>指定节点元素。</td>
|
|
731
854
|
</tr>
|
|
732
855
|
<tr>
|
|
733
856
|
<td>relation</td>
|
|
@@ -738,9 +861,20 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
738
861
|
</tr>
|
|
739
862
|
</table>
|
|
740
863
|
|
|
741
|
-
####
|
|
864
|
+
#### getParent(node)
|
|
865
|
+
返回指定节点的父节点;如果不存在父节点,则返回 `null`。
|
|
866
|
+
|
|
867
|
+
#### getChildren(node)
|
|
868
|
+
返回指定节点的直接子节点数组。返回值中的每一项都是原生 `HTMLElement`。
|
|
869
|
+
|
|
870
|
+
#### getSiblings(node)
|
|
871
|
+
返回指定节点的兄弟节点数组。返回值中的每一项都是原生 `HTMLElement`。
|
|
872
|
+
|
|
873
|
+
#### setChartScale(chart, newScale, zoomAnchor)
|
|
742
874
|
用这个方法可以帮你为指定的组织结构图设置新的scale系数。
|
|
743
875
|
|
|
876
|
+
`zoomAnchor` 为可选参数,格式为视口坐标 `{ x, y }`。提供该参数后,缩放时会固定该坐标点。
|
|
877
|
+
|
|
744
878
|
<table>
|
|
745
879
|
<tr>
|
|
746
880
|
<th>名称</th>
|
|
@@ -750,8 +884,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
750
884
|
<th>描述</th>
|
|
751
885
|
</tr>
|
|
752
886
|
<tr>
|
|
753
|
-
<td
|
|
754
|
-
<td>
|
|
887
|
+
<td>chart</td>
|
|
888
|
+
<td>HTMLElement</td>
|
|
755
889
|
<td>是</td>
|
|
756
890
|
<td>None</td>
|
|
757
891
|
<td>组织结构图容器中的某一个图。</td>
|
|
@@ -792,8 +926,22 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
792
926
|
</tr>
|
|
793
927
|
</table>
|
|
794
928
|
|
|
929
|
+
#### exportPNG(canvas, exportFilename)
|
|
930
|
+
将准备好的 canvas 导出为 PNG 下载。当应用自行提供 canvas 时可直接调用;大多数场景应使用 `export()`。
|
|
931
|
+
|
|
932
|
+
#### exportPDF(canvas, exportFilename, exportScale)
|
|
933
|
+
将准备好的 canvas 导出为 PDF 下载。`exportScale` 是 canvas 的渲染缩放比例,用于保持 PDF 的逻辑尺寸;大多数场景应使用 `export()`。
|
|
934
|
+
|
|
795
935
|
### 事件
|
|
796
936
|
|
|
937
|
+
OrgChart 会派发可冒泡的原生 `CustomEvent`。请使用 `addEventListener` 订阅,事件参数位于 `event.detail`。
|
|
938
|
+
|
|
939
|
+
```js
|
|
940
|
+
oc.chart.addEventListener('nodedrop.orgchart', function (event) {
|
|
941
|
+
const { draggedNode, dragZone, dropZone } = event.detail;
|
|
942
|
+
});
|
|
943
|
+
```
|
|
944
|
+
|
|
797
945
|
<table>
|
|
798
946
|
<thead>
|
|
799
947
|
<tr>
|
|
@@ -805,23 +953,28 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
805
953
|
<tbody>
|
|
806
954
|
<tr>
|
|
807
955
|
<td>nodedrop.orgchart</td>
|
|
808
|
-
<td>draggedNode, dragZone, dropZone</td>
|
|
809
|
-
<td
|
|
956
|
+
<td><code>event.detail</code>: draggedNode, dragZone, dropZone</td>
|
|
957
|
+
<td>在节点移动前于图表元素上触发。调用 <code>event.preventDefault()</code> 可取消本次拖放。</td>
|
|
958
|
+
</tr>
|
|
959
|
+
<tr>
|
|
960
|
+
<td>otherdropped.orgchart</td>
|
|
961
|
+
<td><code>event.detail</code>: draggedItem, dropZone</td>
|
|
962
|
+
<td>非 OrgChart 的可拖放项被放到节点上时,于图表元素上触发。</td>
|
|
810
963
|
</tr>
|
|
811
964
|
<tr>
|
|
812
965
|
<td>init.orgchart</td>
|
|
813
|
-
<td>
|
|
814
|
-
<td
|
|
966
|
+
<td>无;<code>event.target</code> 为图表元素</td>
|
|
967
|
+
<td>图表渲染完成后触发。</td>
|
|
815
968
|
</tr>
|
|
816
969
|
<tr>
|
|
817
970
|
<td>show-[relation].orgchart</td>
|
|
818
971
|
<td></td>
|
|
819
|
-
<td
|
|
972
|
+
<td>关联节点显示时在该节点上触发;<code>relation</code> 为 parent、children 或 siblings。</td>
|
|
820
973
|
</tr>
|
|
821
974
|
<tr>
|
|
822
975
|
<td>hide-[relation].orgchart</td>
|
|
823
976
|
<td></td>
|
|
824
|
-
<td
|
|
977
|
+
<td>关联节点隐藏时在该节点上触发;<code>relation</code> 为 parent、children 或 siblings。</td>
|
|
825
978
|
</tr>
|
|
826
979
|
</tbody>
|
|
827
980
|
</table>
|
|
@@ -832,9 +985,9 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
832
985
|
|
|
833
986
|
我们提供了一个CSS类"noncollapsable",可以方便地完成这件事。
|
|
834
987
|
```js
|
|
835
|
-
|
|
988
|
+
oc.chart.classList.add('noncollapsable'); // 禁掉展开/折叠
|
|
836
989
|
|
|
837
|
-
|
|
990
|
+
oc.chart.classList.remove('noncollapsable'); // 开启展开/折叠
|
|
838
991
|
```
|
|
839
992
|
|
|
840
993
|
#### 为啥根节点消失了,看不到了?
|