orgchart 5.0.0 → 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 +172 -93
- package/README.zh-cn.md +163 -74
- package/README.zh-tw.md +163 -74
- 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 +14 -11
- 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 +5 -2
- 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 +28 -17
- 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} +143 -80
- 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} +143 -80
- 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/dist/css/jquery.orgchart.min.css +0 -1
- package/dist/js/jquery.orgchart.js +0 -1741
- 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 -1741
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)
|
|
@@ -156,32 +161,32 @@ $ npm install orgchart
|
|
|
156
161
|
```
|
|
157
162
|
var datascource = [
|
|
158
163
|
[
|
|
159
|
-
{ 'id': '8', 'name': 'Lao Ye', 'title': 'Grandfather'
|
|
164
|
+
{ 'id': '8', 'name': 'Lao Ye', 'title': 'Grandfather' },
|
|
160
165
|
{
|
|
161
|
-
'id': '1', 'name': 'Lao Lao', 'title': 'Grandmother', '
|
|
166
|
+
'id': '1', 'name': 'Lao Lao', 'title': 'Grandmother', 'outsider': true,
|
|
162
167
|
'children': [
|
|
163
168
|
[
|
|
164
|
-
{ 'id': '2', 'name': 'Bo miao', 'title': 'Aunt'
|
|
169
|
+
{ 'id': '2', 'name': 'Bo miao', 'title': 'Aunt' }
|
|
165
170
|
],
|
|
166
171
|
[
|
|
167
|
-
{ 'id': '3', 'name': 'Su Miao', 'title': 'Mother',
|
|
172
|
+
{ 'id': '3', 'name': 'Su Miao', 'title': 'Mother',
|
|
168
173
|
'children': [
|
|
169
174
|
[
|
|
170
175
|
|
|
171
|
-
{ 'id': '12', 'name': 'Pang Pang', 'title': 'Wife', '
|
|
176
|
+
{ 'id': '12', 'name': 'Pang Pang', 'title': 'Wife', 'outsider': true,
|
|
172
177
|
'children': [
|
|
173
|
-
[{ 'id': '7', 'name': 'Dan Dan', 'title': 'Daughter'
|
|
174
|
-
[{ 'id': '6', 'name': 'Er Dan', 'title': 'Daughter'
|
|
178
|
+
[{ 'id': '7', 'name': 'Dan Dan', 'title': 'Daughter' }],
|
|
179
|
+
[{ 'id': '6', 'name': 'Er Dan', 'title': 'Daughter' }],
|
|
175
180
|
]
|
|
176
181
|
},
|
|
177
|
-
{ 'id': '5', 'name': 'Hei Hei', 'title': 'Me'
|
|
182
|
+
{ 'id': '5', 'name': 'Hei Hei', 'title': 'Me' },
|
|
178
183
|
]
|
|
179
184
|
]
|
|
180
185
|
},
|
|
181
|
-
{ 'id': '9', 'name': 'Tie Hua', 'title': 'Father', '
|
|
186
|
+
{ 'id': '9', 'name': 'Tie Hua', 'title': 'Father', 'outsider': true }
|
|
182
187
|
],
|
|
183
188
|
[
|
|
184
|
-
{ 'id': '10', 'name': 'Hong miao', 'title': 'Aunt'
|
|
189
|
+
{ 'id': '10', 'name': 'Hong miao', 'title': 'Aunt' }
|
|
185
190
|
]
|
|
186
191
|
]
|
|
187
192
|
}
|
|
@@ -189,6 +194,16 @@ var datascource = [
|
|
|
189
194
|
];
|
|
190
195
|
```
|
|
191
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
|
+
|
|
192
207
|
### 本地运行orgchart
|
|
193
208
|
|
|
194
209
|
- 必须安装node.js v6+,因为我们的单元测试是基于jsdom v11。
|
|
@@ -202,7 +217,10 @@ var datascource = [
|
|
|
202
217
|
|
|
203
218
|
### 实例化组织结构图
|
|
204
219
|
```js
|
|
205
|
-
var oc =
|
|
220
|
+
var oc = new OrgChart({
|
|
221
|
+
chartContainer: '#chartContainerId',
|
|
222
|
+
data: datasource
|
|
223
|
+
});
|
|
206
224
|
```
|
|
207
225
|
|
|
208
226
|
### 数据源示例
|
|
@@ -251,7 +269,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
251
269
|
<tbody>
|
|
252
270
|
<tr>
|
|
253
271
|
<td>data</td>
|
|
254
|
-
<td>json /
|
|
272
|
+
<td>json / HTMLUListElement</td>
|
|
255
273
|
<td>是</td>
|
|
256
274
|
<td></td>
|
|
257
275
|
<td>用于构造组织结构图的数据源。它的值可以是JSON或能提供数据的ul元素。</td>
|
|
@@ -352,7 +370,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
352
370
|
<td>function</td>
|
|
353
371
|
<td>否</td>
|
|
354
372
|
<td></td>
|
|
355
|
-
<td>为该选项提供的函数,会在默认节点结构创建完毕后调用。利用传入的两个参数--"
|
|
373
|
+
<td>为该选项提供的函数,会在默认节点结构创建完毕后调用。利用传入的两个参数--"node"和"data",可以帮助开发者定制或改动现有的节点结构。</td>
|
|
356
374
|
</tr>
|
|
357
375
|
<tr>
|
|
358
376
|
<td>exportButton</td>
|
|
@@ -408,20 +426,54 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
408
426
|
<td>function</td>
|
|
409
427
|
<td>否</td>
|
|
410
428
|
<td></td>
|
|
411
|
-
<td>组织结构图初始化完成后,该选项指定的回调函数被触发。该函数接受一个参数--"
|
|
429
|
+
<td>组织结构图初始化完成后,该选项指定的回调函数被触发。该函数接受一个参数--"chart", 即初始化后的组织结构图元素。</td>
|
|
412
430
|
</tr>
|
|
413
431
|
</tbody>
|
|
414
432
|
</table>
|
|
415
433
|
|
|
416
434
|
### 方法
|
|
417
|
-
|
|
435
|
+
使用 `new OrgChart(options)` 创建实例。`chartContainer` 和 `chart` 属性分别提供原生容器元素与已渲染的组织结构图元素。
|
|
418
436
|
|
|
419
|
-
|
|
420
|
-
|
|
437
|
+
```js
|
|
438
|
+
const oc = new OrgChart({ chartContainer: '#chartContainerId', data: datasource });
|
|
439
|
+
```
|
|
440
|
+
|
|
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()`。 |
|
|
421
464
|
|
|
422
465
|
#### init(newOptions)
|
|
423
466
|
当你想基于新的options或数据源刷新组织结构图时,这个方法就派上用场了。
|
|
424
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
|
+
|
|
425
477
|
#### addAncestors(data, parentId)
|
|
426
478
|
为当前的组织结构图增加祖先节点,可以不止一个层级。
|
|
427
479
|
<table>
|
|
@@ -452,7 +504,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
452
504
|
</tbody>
|
|
453
505
|
</table>
|
|
454
506
|
|
|
455
|
-
#### addDescendants(data,
|
|
507
|
+
#### addDescendants(data, parent)
|
|
456
508
|
为指定的父节点增加后代节点。
|
|
457
509
|
<table>
|
|
458
510
|
<thead>
|
|
@@ -473,8 +525,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
473
525
|
<td>用于构造后代节点的数据源</td>
|
|
474
526
|
</tr>
|
|
475
527
|
<tr>
|
|
476
|
-
<td
|
|
477
|
-
<td>
|
|
528
|
+
<td>parent</td>
|
|
529
|
+
<td>HTMLElement</td>
|
|
478
530
|
<td>yes</td>
|
|
479
531
|
<td></td>
|
|
480
532
|
<td>后代节点要追加到的父节点对象</td>
|
|
@@ -482,7 +534,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
482
534
|
</tbody>
|
|
483
535
|
</table>
|
|
484
536
|
|
|
485
|
-
#### addParent(data)
|
|
537
|
+
#### addParent(currentRoot, data)
|
|
486
538
|
为当前的组织结构图增加父节点。
|
|
487
539
|
<table>
|
|
488
540
|
<thead>
|
|
@@ -495,6 +547,13 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
495
547
|
</tr>
|
|
496
548
|
</thead>
|
|
497
549
|
<tbody>
|
|
550
|
+
<tr>
|
|
551
|
+
<td>currentRoot</td>
|
|
552
|
+
<td>HTMLElement</td>
|
|
553
|
+
<td>是</td>
|
|
554
|
+
<td></td>
|
|
555
|
+
<td>当前组织结构图的根节点,新父节点会包裹这个根节点</td>
|
|
556
|
+
</tr>
|
|
498
557
|
<tr>
|
|
499
558
|
<td>data</td>
|
|
500
559
|
<td>json object</td>
|
|
@@ -505,7 +564,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
505
564
|
</tbody>
|
|
506
565
|
</table>
|
|
507
566
|
|
|
508
|
-
#### addSiblings(
|
|
567
|
+
#### addSiblings(node, data)
|
|
509
568
|
为指定的节点增加兄弟节点。
|
|
510
569
|
<table>
|
|
511
570
|
<thead>
|
|
@@ -519,8 +578,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
519
578
|
</thead>
|
|
520
579
|
<tbody>
|
|
521
580
|
<tr>
|
|
522
|
-
<td
|
|
523
|
-
<td>
|
|
581
|
+
<td>node</td>
|
|
582
|
+
<td>HTMLElement</td>
|
|
524
583
|
<td>是</td>
|
|
525
584
|
<td></td>
|
|
526
585
|
<td>基于该节点增加其兄弟节点</td>
|
|
@@ -535,7 +594,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
535
594
|
</tbody>
|
|
536
595
|
</table>
|
|
537
596
|
|
|
538
|
-
#### addChildren(
|
|
597
|
+
#### addChildren(node, data)
|
|
539
598
|
为指定的节点增加孩子节点。
|
|
540
599
|
<table>
|
|
541
600
|
<thead>
|
|
@@ -549,8 +608,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
549
608
|
</thead>
|
|
550
609
|
<tbody>
|
|
551
610
|
<tr>
|
|
552
|
-
<td
|
|
553
|
-
<td>
|
|
611
|
+
<td>node</td>
|
|
612
|
+
<td>HTMLElement</td>
|
|
554
613
|
<td>是</td>
|
|
555
614
|
<td></td>
|
|
556
615
|
<td>基于该节点增加其孩子节点</td>
|
|
@@ -565,7 +624,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
565
624
|
</tbody>
|
|
566
625
|
</table>
|
|
567
626
|
|
|
568
|
-
#### removeNodes(
|
|
627
|
+
#### removeNodes(node)
|
|
569
628
|
删除指定的节点及其后代节点。
|
|
570
629
|
<table>
|
|
571
630
|
<thead>
|
|
@@ -579,8 +638,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
579
638
|
</thead>
|
|
580
639
|
<tbody>
|
|
581
640
|
<tr>
|
|
582
|
-
<td
|
|
583
|
-
<td>
|
|
641
|
+
<td>node</td>
|
|
642
|
+
<td>HTMLElement</td>
|
|
584
643
|
<td>是</td>
|
|
585
644
|
<td></td>
|
|
586
645
|
<td>待删除的节点。</td>
|
|
@@ -608,7 +667,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
608
667
|
</tr>
|
|
609
668
|
</table>
|
|
610
669
|
|
|
611
|
-
#### hideParent(
|
|
670
|
+
#### hideParent(node)
|
|
612
671
|
隐藏指定节点的父节点。当然其兄弟节点及祖先节点也一并隐藏了。
|
|
613
672
|
<table>
|
|
614
673
|
<tr>
|
|
@@ -619,15 +678,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
619
678
|
<th>描述</th>
|
|
620
679
|
</tr>
|
|
621
680
|
<tr>
|
|
622
|
-
<td
|
|
623
|
-
<td>
|
|
681
|
+
<td>node</td>
|
|
682
|
+
<td>HTMLElement</td>
|
|
624
683
|
<td>Yes</td>
|
|
625
684
|
<td>None</td>
|
|
626
|
-
<td
|
|
685
|
+
<td>指定节点元素。</td>
|
|
627
686
|
</tr>
|
|
628
687
|
</table>
|
|
629
688
|
|
|
630
|
-
#### showParent(
|
|
689
|
+
#### showParent(node)
|
|
631
690
|
显示指定节点的父节点。但不包括更上一层的祖先节点。
|
|
632
691
|
|
|
633
692
|
<table>
|
|
@@ -639,15 +698,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
639
698
|
<th>描述</th>
|
|
640
699
|
</tr>
|
|
641
700
|
<tr>
|
|
642
|
-
<td
|
|
643
|
-
<td>
|
|
701
|
+
<td>node</td>
|
|
702
|
+
<td>HTMLElement</td>
|
|
644
703
|
<td>是</td>
|
|
645
704
|
<td></td>
|
|
646
|
-
<td
|
|
705
|
+
<td>指定节点元素。</td>
|
|
647
706
|
</tr>
|
|
648
707
|
</table>
|
|
649
708
|
|
|
650
|
-
#### hideChildren(
|
|
709
|
+
#### hideChildren(node)
|
|
651
710
|
隐藏指定节点的孩子节点。当然这其中包含了所有的后代节点。
|
|
652
711
|
|
|
653
712
|
<table>
|
|
@@ -659,15 +718,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
659
718
|
<th>描述</th>
|
|
660
719
|
</tr>
|
|
661
720
|
<tr>
|
|
662
|
-
<td
|
|
663
|
-
<td>
|
|
721
|
+
<td>node</td>
|
|
722
|
+
<td>HTMLElement</td>
|
|
664
723
|
<td>是</td>
|
|
665
724
|
<td></td>
|
|
666
|
-
<td
|
|
725
|
+
<td>指定节点元素。</td>
|
|
667
726
|
</tr>
|
|
668
727
|
</table>
|
|
669
728
|
|
|
670
|
-
#### showChildren(
|
|
729
|
+
#### showChildren(node)
|
|
671
730
|
显示指定节点的孩子节点。默认只显示紧邻的下一个层级,并不包括所有的后代节点。
|
|
672
731
|
|
|
673
732
|
<table>
|
|
@@ -679,15 +738,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
679
738
|
<th>描述</th>
|
|
680
739
|
</tr>
|
|
681
740
|
<tr>
|
|
682
|
-
<td
|
|
683
|
-
<td>
|
|
741
|
+
<td>node</td>
|
|
742
|
+
<td>HTMLElement</td>
|
|
684
743
|
<td>是</td>
|
|
685
744
|
<td></td>
|
|
686
|
-
<td
|
|
745
|
+
<td>指定节点元素。</td>
|
|
687
746
|
</tr>
|
|
688
747
|
</table>
|
|
689
748
|
|
|
690
|
-
#### hideSiblings(
|
|
749
|
+
#### hideSiblings(node, direction)
|
|
691
750
|
隐藏指定节点的兄弟节点。
|
|
692
751
|
|
|
693
752
|
<table>
|
|
@@ -699,11 +758,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
699
758
|
<th>描述</th>
|
|
700
759
|
</tr>
|
|
701
760
|
<tr>
|
|
702
|
-
<td
|
|
703
|
-
<td>
|
|
761
|
+
<td>node</td>
|
|
762
|
+
<td>HTMLElement</td>
|
|
704
763
|
<td>是</td>
|
|
705
764
|
<td></td>
|
|
706
|
-
<td
|
|
765
|
+
<td>指定节点元素。</td>
|
|
707
766
|
</tr>
|
|
708
767
|
<tr>
|
|
709
768
|
<td>direction</td>
|
|
@@ -714,7 +773,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
714
773
|
</tr>
|
|
715
774
|
</table>
|
|
716
775
|
|
|
717
|
-
#### showSiblings(
|
|
776
|
+
#### showSiblings(node, direction)
|
|
718
777
|
显示指定节点的兄弟节点。
|
|
719
778
|
|
|
720
779
|
<table>
|
|
@@ -726,11 +785,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
726
785
|
<th>描述</th>
|
|
727
786
|
</tr>
|
|
728
787
|
<tr>
|
|
729
|
-
<td
|
|
730
|
-
<td>
|
|
788
|
+
<td>node</td>
|
|
789
|
+
<td>HTMLElement</td>
|
|
731
790
|
<td>是</td>
|
|
732
791
|
<td></td>
|
|
733
|
-
<td
|
|
792
|
+
<td>指定节点元素。</td>
|
|
734
793
|
</tr>
|
|
735
794
|
<tr>
|
|
736
795
|
<td>direction</td>
|
|
@@ -741,7 +800,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
741
800
|
</tr>
|
|
742
801
|
</table>
|
|
743
802
|
|
|
744
|
-
#### getNodeState(
|
|
803
|
+
#### getNodeState(node, relation)
|
|
745
804
|
该方法帮你了解指定节点的相关节点的显示状况。
|
|
746
805
|
|
|
747
806
|
<table>
|
|
@@ -753,11 +812,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
753
812
|
<th>描述</th>
|
|
754
813
|
</tr>
|
|
755
814
|
<tr>
|
|
756
|
-
<td
|
|
757
|
-
<td>
|
|
815
|
+
<td>node</td>
|
|
816
|
+
<td>HTMLElement</td>
|
|
758
817
|
<td>是</td>
|
|
759
818
|
<td></td>
|
|
760
|
-
<td
|
|
819
|
+
<td>指定节点元素。</td>
|
|
761
820
|
</tr>
|
|
762
821
|
<tr>
|
|
763
822
|
<td>relation</td>
|
|
@@ -775,7 +834,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
775
834
|
"visible":true|false, // 标识相关节点当前是否可见
|
|
776
835
|
}
|
|
777
836
|
```
|
|
778
|
-
#### getRelatedNodes(
|
|
837
|
+
#### getRelatedNodes(node, relation)
|
|
779
838
|
获得指定节点的关联节点。
|
|
780
839
|
|
|
781
840
|
<table>
|
|
@@ -787,11 +846,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
787
846
|
<th>描述</th>
|
|
788
847
|
</tr>
|
|
789
848
|
<tr>
|
|
790
|
-
<td
|
|
791
|
-
<td>
|
|
849
|
+
<td>node</td>
|
|
850
|
+
<td>HTMLElement</td>
|
|
792
851
|
<td>是</td>
|
|
793
852
|
<td></td>
|
|
794
|
-
<td
|
|
853
|
+
<td>指定节点元素。</td>
|
|
795
854
|
</tr>
|
|
796
855
|
<tr>
|
|
797
856
|
<td>relation</td>
|
|
@@ -802,9 +861,20 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
802
861
|
</tr>
|
|
803
862
|
</table>
|
|
804
863
|
|
|
805
|
-
####
|
|
864
|
+
#### getParent(node)
|
|
865
|
+
返回指定节点的父节点;如果不存在父节点,则返回 `null`。
|
|
866
|
+
|
|
867
|
+
#### getChildren(node)
|
|
868
|
+
返回指定节点的直接子节点数组。返回值中的每一项都是原生 `HTMLElement`。
|
|
869
|
+
|
|
870
|
+
#### getSiblings(node)
|
|
871
|
+
返回指定节点的兄弟节点数组。返回值中的每一项都是原生 `HTMLElement`。
|
|
872
|
+
|
|
873
|
+
#### setChartScale(chart, newScale, zoomAnchor)
|
|
806
874
|
用这个方法可以帮你为指定的组织结构图设置新的scale系数。
|
|
807
875
|
|
|
876
|
+
`zoomAnchor` 为可选参数,格式为视口坐标 `{ x, y }`。提供该参数后,缩放时会固定该坐标点。
|
|
877
|
+
|
|
808
878
|
<table>
|
|
809
879
|
<tr>
|
|
810
880
|
<th>名称</th>
|
|
@@ -814,8 +884,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
814
884
|
<th>描述</th>
|
|
815
885
|
</tr>
|
|
816
886
|
<tr>
|
|
817
|
-
<td
|
|
818
|
-
<td>
|
|
887
|
+
<td>chart</td>
|
|
888
|
+
<td>HTMLElement</td>
|
|
819
889
|
<td>是</td>
|
|
820
890
|
<td>None</td>
|
|
821
891
|
<td>组织结构图容器中的某一个图。</td>
|
|
@@ -856,8 +926,22 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
856
926
|
</tr>
|
|
857
927
|
</table>
|
|
858
928
|
|
|
929
|
+
#### exportPNG(canvas, exportFilename)
|
|
930
|
+
将准备好的 canvas 导出为 PNG 下载。当应用自行提供 canvas 时可直接调用;大多数场景应使用 `export()`。
|
|
931
|
+
|
|
932
|
+
#### exportPDF(canvas, exportFilename, exportScale)
|
|
933
|
+
将准备好的 canvas 导出为 PDF 下载。`exportScale` 是 canvas 的渲染缩放比例,用于保持 PDF 的逻辑尺寸;大多数场景应使用 `export()`。
|
|
934
|
+
|
|
859
935
|
### 事件
|
|
860
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
|
+
|
|
861
945
|
<table>
|
|
862
946
|
<thead>
|
|
863
947
|
<tr>
|
|
@@ -869,23 +953,28 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
869
953
|
<tbody>
|
|
870
954
|
<tr>
|
|
871
955
|
<td>nodedrop.orgchart</td>
|
|
872
|
-
<td>draggedNode, dragZone, dropZone</td>
|
|
873
|
-
<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>
|
|
874
963
|
</tr>
|
|
875
964
|
<tr>
|
|
876
965
|
<td>init.orgchart</td>
|
|
877
|
-
<td>
|
|
878
|
-
<td
|
|
966
|
+
<td>无;<code>event.target</code> 为图表元素</td>
|
|
967
|
+
<td>图表渲染完成后触发。</td>
|
|
879
968
|
</tr>
|
|
880
969
|
<tr>
|
|
881
970
|
<td>show-[relation].orgchart</td>
|
|
882
971
|
<td></td>
|
|
883
|
-
<td
|
|
972
|
+
<td>关联节点显示时在该节点上触发;<code>relation</code> 为 parent、children 或 siblings。</td>
|
|
884
973
|
</tr>
|
|
885
974
|
<tr>
|
|
886
975
|
<td>hide-[relation].orgchart</td>
|
|
887
976
|
<td></td>
|
|
888
|
-
<td
|
|
977
|
+
<td>关联节点隐藏时在该节点上触发;<code>relation</code> 为 parent、children 或 siblings。</td>
|
|
889
978
|
</tr>
|
|
890
979
|
</tbody>
|
|
891
980
|
</table>
|
|
@@ -896,9 +985,9 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
896
985
|
|
|
897
986
|
我们提供了一个CSS类"noncollapsable",可以方便地完成这件事。
|
|
898
987
|
```js
|
|
899
|
-
|
|
988
|
+
oc.chart.classList.add('noncollapsable'); // 禁掉展开/折叠
|
|
900
989
|
|
|
901
|
-
|
|
990
|
+
oc.chart.classList.remove('noncollapsable'); // 开启展开/折叠
|
|
902
991
|
```
|
|
903
992
|
|
|
904
993
|
#### 为啥根节点消失了,看不到了?
|