orgchart 5.0.0 → 7.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 +35 -0
- package/README.md +214 -123
- package/README.zh-cn.md +232 -100
- package/README.zh-tw.md +232 -100
- 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 +144 -94
- package/demo/edit-hybrid-chart.html +177 -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 +10 -3
- 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 +166 -112
- package/demo/option-createNode.html +28 -17
- package/demo/options-compact-drag.html +82 -0
- package/demo/options-export-navigation.html +76 -0
- package/demo/options-horizontal-template.html +80 -0
- package/demo/options-hybrid-navigation.html +71 -0
- 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} +154 -80
- package/dist/css/orgchart.min.css +1 -0
- package/dist/js/orgchart.js +4474 -0
- package/dist/js/orgchart.min.js +2 -0
- package/dist/js/orgchart.min.js.map +1 -0
- package/gulpfile.js +42 -27
- package/package.json +33 -32
- package/src/css/{jquery.orgchart.css → orgchart.css} +154 -80
- package/src/js/orgchart.js +4474 -0
- package/test/compatibility/README.md +123 -0
- package/test/compatibility/browser.tests.js +1279 -0
- package/test/compatibility/options.tests.js +628 -0
- package/test/cypress/e2e/demo-interactions.cy.js +91 -0
- package/test/cypress/e2e/demo-rendering.cy.js +161 -0
- package/test/cypress/e2e/drag-drop-hybrid-chart.cy.js +23 -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/local-datasource.cy.js +16 -16
- package/test/cypress/e2e/minimap.cy.js +66 -0
- package/test/cypress/e2e/ondemand-loading-data.cy.js +34 -10
- package/test/cypress/e2e/pan-zoom.cy.js +165 -0
- package/test/cypress/e2e/report-path.cy.js +20 -0
- package/test/cypress/e2e/toggle-sibs-resp.cy.js +4 -4
- package/test/cypress/e2e/vertical-vevel.cy.js +7 -5
- package/test/e2e/local-datasource/test.js +1 -1
- package/test/integration/init-tests.js +192 -99
- package/test/integration/tests.js +1043 -57
- package/test/unit/lifecycle-builders-export.tests.js +1487 -0
- package/test/unit/minimap.tests.js +210 -0
- package/test/unit/tests.js +2372 -253
- 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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-

|
|
2
2
|
|
|
3
3
|
# Read this in other languages: [繁體中文](https://github.com/dabeng/OrgChart/blob/master/README.zh-tw.md), [English](https://github.com/dabeng/OrgChart/blob/master/README.md)
|
|
4
4
|
|
|
@@ -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,13 +43,19 @@ $ 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)
|
|
47
52
|
## [基于嵌套table的实例集合](https://codepen.io/collection/AWxGVb/) (过时)
|
|
48
53
|
|
|
49
54
|
### 天马行空的需求
|
|
55
|
+
- [我想在500毫秒内渲染10,000个节点](https://dabeng.github.io/OrgChart/10000-nodes.html)
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
|
|
50
59
|
- [ul数据源](https://dabeng.github.io/OrgChart/ul-datasource.html)(感谢 [Tobyee的好点子 :blush:](https://github.com/dabeng/OrgChart/issues/1))
|
|
51
60
|
|
|
52
61
|
- [本地数据源](https://dabeng.github.io/OrgChart/local-datasource.html)
|
|
@@ -109,6 +118,8 @@ $ npm install orgchart
|
|
|
109
118
|
|
|
110
119
|
这个特性的灵感来源于这两个话题的讨论--[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)提供了非常棒的混合布局的解决方案。
|
|
111
120
|
|
|
121
|
+
与 `compact` 同时配置时,`verticalLevel` 从指定层级开始决定布局方式。方向、层级限制和拖放仍按照真实的父子关系处理。
|
|
122
|
+
|
|
112
123
|
- [我想在组织结构图初始化时,就默认折叠掉若干节点(不限时这些节点的子节点)](https://dabeng.github.io/OrgChart/default-collapsed.html)
|
|
113
124
|
|
|
114
125
|
这个好办。在数据源中,给父节点追加`'collapsed': true`,给子节点追加`'className': 'slide-up'`。
|
|
@@ -147,6 +158,10 @@ $ npm install orgchart
|
|
|
147
158
|
|
|
148
159
|
**compact data property** 就派上用场了. 在数据源的某个节点里提供了"compact"属性,并赋为真值,那么它和它的子节点就会展示为压缩模式。
|
|
149
160
|
|
|
161
|
+
紧凑布局可以与 `draggable`、`visibleLevel`、方向、平移、缩放和小地图同时使用。`compact: true` 会将所有分支设为紧凑布局,也可以通过回调选择子节点较多的分支。`drag` 是 `draggable` 的别名,同时提供两者时以 `draggable` 为准。紧凑布局中的拖放和节点编辑可能重建图表,操作后应重新查询已渲染的节点元素。
|
|
162
|
+
|
|
163
|
+
家谱分组数据中的每个成员都使用配置的 `nodeId`,层级与 JSON、UL 数据一样从第 1 层起算。紧凑家谱的子节点按家庭分组排列成网格。拖放和编辑只修改选中成员及其后代,不会误移动整个家庭;家谱修改可能重建节点元素。`getHierarchy()` 会保留家谱分组数组,关联节点查询包含同一图表父级下的全部成员。
|
|
164
|
+
|
|
150
165
|
- [我想构造族谱,家谱,宗谱的关系图](https://dabeng.github.io/OrgChart/family-tree.html)
|
|
151
166
|
|
|
152
167
|

|
|
@@ -156,32 +171,32 @@ $ npm install orgchart
|
|
|
156
171
|
```
|
|
157
172
|
var datascource = [
|
|
158
173
|
[
|
|
159
|
-
{ 'id': '8', 'name': 'Lao Ye', 'title': 'Grandfather'
|
|
174
|
+
{ 'id': '8', 'name': 'Lao Ye', 'title': 'Grandfather' },
|
|
160
175
|
{
|
|
161
|
-
'id': '1', 'name': 'Lao Lao', 'title': 'Grandmother', '
|
|
176
|
+
'id': '1', 'name': 'Lao Lao', 'title': 'Grandmother', 'outsider': true,
|
|
162
177
|
'children': [
|
|
163
178
|
[
|
|
164
|
-
{ 'id': '2', 'name': 'Bo miao', 'title': 'Aunt'
|
|
179
|
+
{ 'id': '2', 'name': 'Bo miao', 'title': 'Aunt' }
|
|
165
180
|
],
|
|
166
181
|
[
|
|
167
|
-
{ 'id': '3', 'name': 'Su Miao', 'title': 'Mother',
|
|
182
|
+
{ 'id': '3', 'name': 'Su Miao', 'title': 'Mother',
|
|
168
183
|
'children': [
|
|
169
184
|
[
|
|
170
185
|
|
|
171
|
-
{ 'id': '12', 'name': 'Pang Pang', 'title': 'Wife', '
|
|
186
|
+
{ 'id': '12', 'name': 'Pang Pang', 'title': 'Wife', 'outsider': true,
|
|
172
187
|
'children': [
|
|
173
|
-
[{ 'id': '7', 'name': 'Dan Dan', 'title': 'Daughter'
|
|
174
|
-
[{ 'id': '6', 'name': 'Er Dan', 'title': 'Daughter'
|
|
188
|
+
[{ 'id': '7', 'name': 'Dan Dan', 'title': 'Daughter' }],
|
|
189
|
+
[{ 'id': '6', 'name': 'Er Dan', 'title': 'Daughter' }],
|
|
175
190
|
]
|
|
176
191
|
},
|
|
177
|
-
{ 'id': '5', 'name': 'Hei Hei', 'title': 'Me'
|
|
192
|
+
{ 'id': '5', 'name': 'Hei Hei', 'title': 'Me' },
|
|
178
193
|
]
|
|
179
194
|
]
|
|
180
195
|
},
|
|
181
|
-
{ 'id': '9', 'name': 'Tie Hua', 'title': 'Father', '
|
|
196
|
+
{ 'id': '9', 'name': 'Tie Hua', 'title': 'Father', 'outsider': true }
|
|
182
197
|
],
|
|
183
198
|
[
|
|
184
|
-
{ 'id': '10', 'name': 'Hong miao', 'title': 'Aunt'
|
|
199
|
+
{ 'id': '10', 'name': 'Hong miao', 'title': 'Aunt' }
|
|
185
200
|
]
|
|
186
201
|
]
|
|
187
202
|
}
|
|
@@ -189,6 +204,16 @@ var datascource = [
|
|
|
189
204
|
];
|
|
190
205
|
```
|
|
191
206
|
|
|
207
|
+
- [我想往族谱里追加一些自定义的标识](https://dabeng.github.io/OrgChart/familytree-custom-properties.html)
|
|
208
|
+
|
|
209
|
+

|
|
210
|
+
|
|
211
|
+
- [我想通过小地图导航组织结构图](https://dabeng.github.io/OrgChart/minimap.html)
|
|
212
|
+
|
|
213
|
+

|
|
214
|
+
|
|
215
|
+
启用 `minimap` 选项即可显示概览导航器。拖动其中的视口可以移动组织结构图,在小地图上滚动鼠标滚轮可以缩放。
|
|
216
|
+
|
|
192
217
|
### 本地运行orgchart
|
|
193
218
|
|
|
194
219
|
- 必须安装node.js v6+,因为我们的单元测试是基于jsdom v11。
|
|
@@ -202,7 +227,10 @@ var datascource = [
|
|
|
202
227
|
|
|
203
228
|
### 实例化组织结构图
|
|
204
229
|
```js
|
|
205
|
-
var oc =
|
|
230
|
+
var oc = new OrgChart({
|
|
231
|
+
chartContainer: '#chartContainerId',
|
|
232
|
+
data: datasource
|
|
233
|
+
});
|
|
206
234
|
```
|
|
207
235
|
|
|
208
236
|
### 数据源示例
|
|
@@ -215,28 +243,25 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
215
243
|
// 来检索数据源,然后渲染默认结构样式的节点的上半部分
|
|
216
244
|
'nodeContent': 'title', // 可选属性。插件会以该属性的值为属性,
|
|
217
245
|
// 来检索数据源,然后渲染默认结构样式的节点的下半部分
|
|
218
|
-
'relationship': relationshipValue, // 注意:当你激活按需载入节点特性时
|
|
219
|
-
// 你应该使用JSON数据源(不论本地或远程)并设置本属性
|
|
220
|
-
// 本属性标识当前节点是否具有父节点,兄弟节点,子节点
|
|
221
|
-
// relationshipValue的值是由“0”或“1”组成的长度为3的字符串
|
|
222
|
-
// 第1个字符代表当前节点是否具有父节点
|
|
223
|
-
// 第2个字符代表当前节点是否具有兄弟节点
|
|
224
|
-
// 第三个字符代表当前节点是否具有孩子节点
|
|
225
246
|
'children': [ // The property stands for nested nodes.
|
|
226
|
-
{ 'name': 'Bo Miao', 'title': 'department manager'
|
|
227
|
-
{ 'name': 'Su Miao', 'title': 'department manager',
|
|
247
|
+
{ 'name': 'Bo Miao', 'title': 'department manager' },
|
|
248
|
+
{ 'name': 'Su Miao', 'title': 'department manager',
|
|
228
249
|
'children': [
|
|
229
|
-
{ 'name': 'Tie Hua', 'title': 'senior engineer'
|
|
230
|
-
{ 'name': 'Hei Hei', 'title': 'senior engineer'
|
|
250
|
+
{ 'name': 'Tie Hua', 'title': 'senior engineer' },
|
|
251
|
+
{ 'name': 'Hei Hei', 'title': 'senior engineer' }
|
|
231
252
|
]
|
|
232
253
|
},
|
|
233
|
-
{ 'name': 'Yu Jie', 'title': 'department manager'
|
|
254
|
+
{ 'name': 'Yu Jie', 'title': 'department manager' }
|
|
234
255
|
],
|
|
235
256
|
'otherPro': anyValue // 数据源中可以追加任意其他字段,只要你觉得
|
|
236
257
|
// 在之后的渲染和操作组织结构图时派得上用场
|
|
237
258
|
};
|
|
238
259
|
```
|
|
239
260
|
|
|
261
|
+
节点关系直接依据当前已加载的结构判断。展开折叠和紧凑布局切换按钮在节点悬浮、聚焦或触屏选中时才创建,交互结束后回收;参与加载的按钮保留至加载完成。键盘用户可以聚焦节点,再用 Enter 或空格激活按钮。
|
|
262
|
+
|
|
263
|
+
`createNode` 回调执行时没有预建的交互按钮,请通过 `icons` 定制图标,不要查询初始化时的箭头元素。按需加载由 demo 或业务层通过 `createNode` 创建独立请求按钮,并使用事件委托处理请求;请求按钮应使用与内置控件不同的行为选择器。加载后调用 `addAncestors()`、`addChildren()` 或 `addDescendants()` 加入真实节点,不需要关系元数据或新的加载回调选项。`getNodeState()` 只描述已加载的关系,不推断服务端尚未加载的数据。旧的关系属性和关系预处理方法不再支持。
|
|
264
|
+
|
|
240
265
|
### 选项
|
|
241
266
|
<table>
|
|
242
267
|
<thead>
|
|
@@ -251,10 +276,10 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
251
276
|
<tbody>
|
|
252
277
|
<tr>
|
|
253
278
|
<td>data</td>
|
|
254
|
-
<td>
|
|
279
|
+
<td>object / array / HTMLUListElement</td>
|
|
255
280
|
<td>是</td>
|
|
256
281
|
<td></td>
|
|
257
|
-
<td
|
|
282
|
+
<td>数据源可以是 JSON 树对象、家谱分组数组或 HTML ul 元素。UL 数据会在内部规范化,后续修改选项时仍会保留编辑结果。</td>
|
|
258
283
|
</tr>
|
|
259
284
|
<tr>
|
|
260
285
|
<td>pan</td>
|
|
@@ -270,19 +295,26 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
270
295
|
<td>false</td>
|
|
271
296
|
<td>启动本选项,用户可以通过鼠标滚轮或触摸板对组织结构图进行缩放。</td>
|
|
272
297
|
</tr>
|
|
298
|
+
<tr>
|
|
299
|
+
<td>minimap</td>
|
|
300
|
+
<td>boolean</td>
|
|
301
|
+
<td>否</td>
|
|
302
|
+
<td>false</td>
|
|
303
|
+
<td>显示小地图导航。拖动视口框可移动图表,在小地图上使用滚轮可缩放;即使 zoom 为 false,小地图自身的滚轮缩放仍然可用。</td>
|
|
304
|
+
</tr>
|
|
273
305
|
<tr>
|
|
274
306
|
<td>zoominLimit</td>
|
|
275
307
|
<td>number</td>
|
|
276
308
|
<td>否</td>
|
|
277
309
|
<td>7</td>
|
|
278
|
-
<td
|
|
310
|
+
<td>包含边界的最大缩放比例。缩放步长会限制到此边界。上下限必须为有限正数,且下限不能大于上限。</td>
|
|
279
311
|
</tr>
|
|
280
312
|
<tr>
|
|
281
313
|
<td>zoomoutLimit</td>
|
|
282
314
|
<td>number</td>
|
|
283
315
|
<td>否</td>
|
|
284
316
|
<td>0.5</td>
|
|
285
|
-
<td
|
|
317
|
+
<td>包含边界的最小缩放比例,不能大于 zoominLimit。无效的上下限会在替换图表前抛出 RangeError。</td>
|
|
286
318
|
</tr>
|
|
287
319
|
<tr>
|
|
288
320
|
<td>direction</td>
|
|
@@ -307,10 +339,10 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
307
339
|
</tr>
|
|
308
340
|
<tr>
|
|
309
341
|
<td>visibleLevel</td>
|
|
310
|
-
<td
|
|
342
|
+
<td>非负整数或布尔值</td>
|
|
311
343
|
<td>否</td>
|
|
312
344
|
<td>999</td>
|
|
313
|
-
<td
|
|
345
|
+
<td>指定初始展开深度。true 使用默认深度(999);false 只显示第一层;0 隐藏所有初始节点。更深的分支可以随后展开。</td>
|
|
314
346
|
</tr>
|
|
315
347
|
<tr>
|
|
316
348
|
<td>nodeTitle</td>
|
|
@@ -319,13 +351,6 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
319
351
|
<td>"name"</td>
|
|
320
352
|
<td>将默认节点结构中的标题部分关联到数据源中的一个属性</td>
|
|
321
353
|
</tr>
|
|
322
|
-
<tr>
|
|
323
|
-
<td>parentNodeSymbol</td>
|
|
324
|
-
<td>string</td>
|
|
325
|
-
<td>否</td>
|
|
326
|
-
<td>"oci-leader"</td>
|
|
327
|
-
<td>为所有父节点的icon标识指定CSS类名</td>
|
|
328
|
-
</tr>
|
|
329
354
|
<tr>
|
|
330
355
|
<td>nodeContent</td>
|
|
331
356
|
<td>string</td>
|
|
@@ -352,7 +377,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
352
377
|
<td>function</td>
|
|
353
378
|
<td>否</td>
|
|
354
379
|
<td></td>
|
|
355
|
-
<td>为该选项提供的函数,会在默认节点结构创建完毕后调用。利用传入的两个参数--"
|
|
380
|
+
<td>为该选项提供的函数,会在默认节点结构创建完毕后调用。利用传入的两个参数--"node"和"data",可以帮助开发者定制或改动现有的节点结构。</td>
|
|
356
381
|
</tr>
|
|
357
382
|
<tr>
|
|
358
383
|
<td>exportButton</td>
|
|
@@ -372,7 +397,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
372
397
|
<td>exportFilename</td>
|
|
373
398
|
<td>string</td>
|
|
374
399
|
<td>否</td>
|
|
375
|
-
<td>"
|
|
400
|
+
<td>"OrgChart"</td>
|
|
376
401
|
<td>导出文件的文件名。</td>
|
|
377
402
|
</tr>
|
|
378
403
|
<tr>
|
|
@@ -382,6 +407,13 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
382
407
|
<td>"png"</td>
|
|
383
408
|
<td>导出文件的扩展名。</td>
|
|
384
409
|
</tr>
|
|
410
|
+
<tr>
|
|
411
|
+
<td>exportScale</td>
|
|
412
|
+
<td>number</td>
|
|
413
|
+
<td>否</td>
|
|
414
|
+
<td>2</td>
|
|
415
|
+
<td>导出画布的分辨率倍数,PNG 和 PDF 均适用;PDF 页面保留图表的逻辑尺寸。非正数会回退为 1。</td>
|
|
416
|
+
</tr>
|
|
385
417
|
<tr>
|
|
386
418
|
<td>chartClass</td>
|
|
387
419
|
<td>string</td>
|
|
@@ -408,20 +440,83 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
408
440
|
<td>function</td>
|
|
409
441
|
<td>否</td>
|
|
410
442
|
<td></td>
|
|
411
|
-
<td>组织结构图初始化完成后,该选项指定的回调函数被触发。该函数接受一个参数--"
|
|
443
|
+
<td>组织结构图初始化完成后,该选项指定的回调函数被触发。该函数接受一个参数--"chart", 即初始化后的组织结构图元素。</td>
|
|
444
|
+
</tr>
|
|
445
|
+
<tr>
|
|
446
|
+
<td>icons</td>
|
|
447
|
+
<td>json</td>
|
|
448
|
+
<td>否</td>
|
|
449
|
+
<td></td>
|
|
450
|
+
<td>自定义图标的 CSS 类名。部分图标对象会逐字段与默认值合并,父节点图标使用 icons.parentNode 设置。
|
|
451
|
+
<pre>
|
|
452
|
+
<code>
|
|
453
|
+
'icons': {
|
|
454
|
+
'theme': 'fa-solid fa-sm',
|
|
455
|
+
'parentNode': 'fa-user-tie',
|
|
456
|
+
'expandToUp': 'fa-angles-up',
|
|
457
|
+
'collapseToDown': 'fa-angles-down',
|
|
458
|
+
'collapseToLeft': 'fa-angles-left',
|
|
459
|
+
'expandToRight': 'fa-angles-right',
|
|
460
|
+
'collapsed': 'fa-circle-plus',
|
|
461
|
+
'expanded': 'fa-circle-minus'
|
|
462
|
+
}
|
|
463
|
+
</code>
|
|
464
|
+
</pre>
|
|
465
|
+
</td>
|
|
466
|
+
</tr>
|
|
467
|
+
<tr>
|
|
468
|
+
<td>compact</td>
|
|
469
|
+
<td>布尔值或函数</td>
|
|
470
|
+
<td>否</td>
|
|
471
|
+
<td></td>
|
|
472
|
+
<td>true 会将所有分支设为紧凑布局;接收节点数据的回调可选择额外的紧凑分支。节点数据中显式设置的 compact 属性会保留。在适用的节点上,垂直或混合布局优先。</td>
|
|
412
473
|
</tr>
|
|
413
474
|
</tbody>
|
|
414
475
|
</table>
|
|
415
476
|
|
|
416
477
|
### 方法
|
|
417
|
-
|
|
478
|
+
使用 `new OrgChart(options)` 创建实例。`chartContainer` 和 `chart` 属性分别提供原生容器元素与已渲染的组织结构图元素。
|
|
418
479
|
|
|
419
|
-
|
|
420
|
-
|
|
480
|
+
```js
|
|
481
|
+
const oc = new OrgChart({ chartContainer: '#chartContainerId', data: datasource });
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
公开 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`。
|
|
485
|
+
|
|
486
|
+
#### API 参考
|
|
487
|
+
| 调用 | 参数 | 返回值与调用行为 |
|
|
488
|
+
| --- | --- | --- |
|
|
489
|
+
| `oc.init(options)` | 部分选项对象;传入 `data` 可替换数据源。 | 重新构建图表并返回 `oc`。 |
|
|
490
|
+
| `oc.setOptions(options)`<br>`oc.setOptions(name, value)` | 部分选项对象,或选项名称及对应值。 | 原地更新导航与导出设置;数据、布局或节点渲染设置会重建图表;返回 `oc`。 |
|
|
491
|
+
| `oc.attachMinimap()`<br>`oc.detachMinimap()`<br>`oc.updateMinimap(forceRefresh)` | `forceRefresh` 可选;传入 `true` 会重绘节点预览。 | 创建、移除或刷新小地图。常规启用应使用 `setOptions('minimap', value)`。 |
|
|
492
|
+
| `oc.addAncestors(data, parentId)` | 祖先数据,以及接收原根节点的祖先节点 id。 | 插入祖先层级;无返回值。 |
|
|
493
|
+
| `oc.addDescendants(data, parent)` | 后代数据数组和已渲染的父 `.node`。 | 追加后代层级;无返回值。 |
|
|
494
|
+
| `oc.addParent(currentRoot, data)` | 已渲染的根 `.node` 和新父节点数据。 | 用新父节点包裹当前根;无返回值。 |
|
|
495
|
+
| `oc.addSiblings(node, data)`<br>`oc.addChildren(node, data)` | 已渲染的 `.node` 和兄弟节点或子节点数据数组。 | 增加渲染节点;无返回值。 |
|
|
496
|
+
| `oc.removeNodes(node)` | 要删除的已渲染 `.node`。 | 删除该节点及其后代;无返回值。 |
|
|
497
|
+
| `oc.getHierarchy(includeNodeData)` | 可选布尔值,默认 `false`。 | 树数据返回层级对象,家谱数据返回分组数组;图表或必要节点 id 不可用时返回错误字符串。 |
|
|
498
|
+
| `oc.getNodeState(node, relation)` | 已渲染 `.node`;`relation` 为 `parent`、`children` 或 `siblings`。 | 返回 `{ exist, visible }`。 |
|
|
499
|
+
| `oc.getParent(node)` | 已渲染 `.node`。 | 返回父 `.node`,不存在时返回 `null`。 |
|
|
500
|
+
| `oc.getChildren(node)`<br>`oc.getSiblings(node)` | 已渲染 `.node`。 | 返回直接子节点或兄弟节点 `.node` 元素数组。 |
|
|
501
|
+
| `oc.getRelatedNodes(node, relation)` | 已渲染 `.node`;`relation` 为 `parent`、`children` 或 `siblings`。 | 通用关联查询;parent 返回节点或 `null`,其他关系返回数组。 |
|
|
502
|
+
| `oc.hideParent(node)` / `oc.showParent(node)`<br>`oc.hideChildren(node)` / `oc.showChildren(node)` | 已渲染 `.node`。 | 通过图表过渡隐藏或显示关联分支;无返回值。 |
|
|
503
|
+
| `oc.hideSiblings(node, direction)`<br>`oc.showSiblings(node, direction)` | 已渲染 `.node`;可选 `direction` 为 `left` 或 `right`。 | 隐藏或显示指定一侧的兄弟节点;省略方向时处理全部兄弟节点;无返回值。 |
|
|
504
|
+
| `oc.setChartScale(chart, multiplier, zoomAnchor)` | 通常传入 `oc.chart`;正数的相对缩放倍数;可选视口坐标 `{ x, y }`。 | 在配置的缩放范围内缩放,提供 `zoomAnchor` 时固定该点。 |
|
|
505
|
+
| `oc.export(filename, extension)` | 可选文件名和 `png` 或 `pdf` 扩展名。 | 按配置默认值开始导出;无法导出时返回 `false`。 |
|
|
506
|
+
| `oc.exportPNG(canvas, filename)`<br>`oc.exportPDF(canvas, filename, exportScale)` | 已准备的 canvas、文件名;PDF 缩放默认 `1`。 | 将传入 canvas 直接下载为 PNG 或 PDF;通常应调用 `export()`。 |
|
|
421
507
|
|
|
422
508
|
#### init(newOptions)
|
|
423
509
|
当你想基于新的options或数据源刷新组织结构图时,这个方法就派上用场了。
|
|
424
510
|
|
|
511
|
+
#### setOptions(options) / setOptions(name, value)
|
|
512
|
+
无需重新构建图表即可更新 `pan`、`zoom`、`minimap`、缩放上下限,以及导出的分辨率倍数、文件名和扩展名。其他选项会重建图表。可传入部分选项对象,或选项名称及对应值。后续 `init()` 调用会保留这些变更,图标默认值逐字段合并。重建后应重新查询节点元素。
|
|
513
|
+
|
|
514
|
+
#### attachMinimap() / detachMinimap()
|
|
515
|
+
创建或移除当前图表的小地图覆盖层。通常应使用 `setOptions('minimap', true|false)`,以保证选项状态和覆盖层保持同步。
|
|
516
|
+
|
|
517
|
+
#### updateMinimap(forceRefresh)
|
|
518
|
+
在修改图表变换或布局后重新计算小地图视口。传入 `true` 会重绘小地图中的节点预览。
|
|
519
|
+
|
|
425
520
|
#### addAncestors(data, parentId)
|
|
426
521
|
为当前的组织结构图增加祖先节点,可以不止一个层级。
|
|
427
522
|
<table>
|
|
@@ -452,7 +547,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
452
547
|
</tbody>
|
|
453
548
|
</table>
|
|
454
549
|
|
|
455
|
-
#### addDescendants(data,
|
|
550
|
+
#### addDescendants(data, parent)
|
|
456
551
|
为指定的父节点增加后代节点。
|
|
457
552
|
<table>
|
|
458
553
|
<thead>
|
|
@@ -473,8 +568,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
473
568
|
<td>用于构造后代节点的数据源</td>
|
|
474
569
|
</tr>
|
|
475
570
|
<tr>
|
|
476
|
-
<td
|
|
477
|
-
<td>
|
|
571
|
+
<td>parent</td>
|
|
572
|
+
<td>HTMLElement</td>
|
|
478
573
|
<td>yes</td>
|
|
479
574
|
<td></td>
|
|
480
575
|
<td>后代节点要追加到的父节点对象</td>
|
|
@@ -482,7 +577,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
482
577
|
</tbody>
|
|
483
578
|
</table>
|
|
484
579
|
|
|
485
|
-
#### addParent(data)
|
|
580
|
+
#### addParent(currentRoot, data)
|
|
486
581
|
为当前的组织结构图增加父节点。
|
|
487
582
|
<table>
|
|
488
583
|
<thead>
|
|
@@ -495,6 +590,13 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
495
590
|
</tr>
|
|
496
591
|
</thead>
|
|
497
592
|
<tbody>
|
|
593
|
+
<tr>
|
|
594
|
+
<td>currentRoot</td>
|
|
595
|
+
<td>HTMLElement</td>
|
|
596
|
+
<td>是</td>
|
|
597
|
+
<td></td>
|
|
598
|
+
<td>当前组织结构图的根节点,新父节点会包裹这个根节点</td>
|
|
599
|
+
</tr>
|
|
498
600
|
<tr>
|
|
499
601
|
<td>data</td>
|
|
500
602
|
<td>json object</td>
|
|
@@ -505,7 +607,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
505
607
|
</tbody>
|
|
506
608
|
</table>
|
|
507
609
|
|
|
508
|
-
#### addSiblings(
|
|
610
|
+
#### addSiblings(node, data)
|
|
509
611
|
为指定的节点增加兄弟节点。
|
|
510
612
|
<table>
|
|
511
613
|
<thead>
|
|
@@ -519,8 +621,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
519
621
|
</thead>
|
|
520
622
|
<tbody>
|
|
521
623
|
<tr>
|
|
522
|
-
<td
|
|
523
|
-
<td>
|
|
624
|
+
<td>node</td>
|
|
625
|
+
<td>HTMLElement</td>
|
|
524
626
|
<td>是</td>
|
|
525
627
|
<td></td>
|
|
526
628
|
<td>基于该节点增加其兄弟节点</td>
|
|
@@ -535,7 +637,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
535
637
|
</tbody>
|
|
536
638
|
</table>
|
|
537
639
|
|
|
538
|
-
#### addChildren(
|
|
640
|
+
#### addChildren(node, data)
|
|
539
641
|
为指定的节点增加孩子节点。
|
|
540
642
|
<table>
|
|
541
643
|
<thead>
|
|
@@ -549,8 +651,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
549
651
|
</thead>
|
|
550
652
|
<tbody>
|
|
551
653
|
<tr>
|
|
552
|
-
<td
|
|
553
|
-
<td>
|
|
654
|
+
<td>node</td>
|
|
655
|
+
<td>HTMLElement</td>
|
|
554
656
|
<td>是</td>
|
|
555
657
|
<td></td>
|
|
556
658
|
<td>基于该节点增加其孩子节点</td>
|
|
@@ -565,7 +667,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
565
667
|
</tbody>
|
|
566
668
|
</table>
|
|
567
669
|
|
|
568
|
-
#### removeNodes(
|
|
670
|
+
#### removeNodes(node)
|
|
569
671
|
删除指定的节点及其后代节点。
|
|
570
672
|
<table>
|
|
571
673
|
<thead>
|
|
@@ -579,8 +681,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
579
681
|
</thead>
|
|
580
682
|
<tbody>
|
|
581
683
|
<tr>
|
|
582
|
-
<td
|
|
583
|
-
<td>
|
|
684
|
+
<td>node</td>
|
|
685
|
+
<td>HTMLElement</td>
|
|
584
686
|
<td>是</td>
|
|
585
687
|
<td></td>
|
|
586
688
|
<td>待删除的节点。</td>
|
|
@@ -608,7 +710,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
608
710
|
</tr>
|
|
609
711
|
</table>
|
|
610
712
|
|
|
611
|
-
#### hideParent(
|
|
713
|
+
#### hideParent(node)
|
|
612
714
|
隐藏指定节点的父节点。当然其兄弟节点及祖先节点也一并隐藏了。
|
|
613
715
|
<table>
|
|
614
716
|
<tr>
|
|
@@ -619,15 +721,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
619
721
|
<th>描述</th>
|
|
620
722
|
</tr>
|
|
621
723
|
<tr>
|
|
622
|
-
<td
|
|
623
|
-
<td>
|
|
724
|
+
<td>node</td>
|
|
725
|
+
<td>HTMLElement</td>
|
|
624
726
|
<td>Yes</td>
|
|
625
727
|
<td>None</td>
|
|
626
|
-
<td
|
|
728
|
+
<td>指定节点元素。</td>
|
|
627
729
|
</tr>
|
|
628
730
|
</table>
|
|
629
731
|
|
|
630
|
-
#### showParent(
|
|
732
|
+
#### showParent(node)
|
|
631
733
|
显示指定节点的父节点。但不包括更上一层的祖先节点。
|
|
632
734
|
|
|
633
735
|
<table>
|
|
@@ -639,15 +741,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
639
741
|
<th>描述</th>
|
|
640
742
|
</tr>
|
|
641
743
|
<tr>
|
|
642
|
-
<td
|
|
643
|
-
<td>
|
|
744
|
+
<td>node</td>
|
|
745
|
+
<td>HTMLElement</td>
|
|
644
746
|
<td>是</td>
|
|
645
747
|
<td></td>
|
|
646
|
-
<td
|
|
748
|
+
<td>指定节点元素。</td>
|
|
647
749
|
</tr>
|
|
648
750
|
</table>
|
|
649
751
|
|
|
650
|
-
#### hideChildren(
|
|
752
|
+
#### hideChildren(node)
|
|
651
753
|
隐藏指定节点的孩子节点。当然这其中包含了所有的后代节点。
|
|
652
754
|
|
|
653
755
|
<table>
|
|
@@ -659,15 +761,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
659
761
|
<th>描述</th>
|
|
660
762
|
</tr>
|
|
661
763
|
<tr>
|
|
662
|
-
<td
|
|
663
|
-
<td>
|
|
764
|
+
<td>node</td>
|
|
765
|
+
<td>HTMLElement</td>
|
|
664
766
|
<td>是</td>
|
|
665
767
|
<td></td>
|
|
666
|
-
<td
|
|
768
|
+
<td>指定节点元素。</td>
|
|
667
769
|
</tr>
|
|
668
770
|
</table>
|
|
669
771
|
|
|
670
|
-
#### showChildren(
|
|
772
|
+
#### showChildren(node)
|
|
671
773
|
显示指定节点的孩子节点。默认只显示紧邻的下一个层级,并不包括所有的后代节点。
|
|
672
774
|
|
|
673
775
|
<table>
|
|
@@ -679,15 +781,15 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
679
781
|
<th>描述</th>
|
|
680
782
|
</tr>
|
|
681
783
|
<tr>
|
|
682
|
-
<td
|
|
683
|
-
<td>
|
|
784
|
+
<td>node</td>
|
|
785
|
+
<td>HTMLElement</td>
|
|
684
786
|
<td>是</td>
|
|
685
787
|
<td></td>
|
|
686
|
-
<td
|
|
788
|
+
<td>指定节点元素。</td>
|
|
687
789
|
</tr>
|
|
688
790
|
</table>
|
|
689
791
|
|
|
690
|
-
#### hideSiblings(
|
|
792
|
+
#### hideSiblings(node, direction)
|
|
691
793
|
隐藏指定节点的兄弟节点。
|
|
692
794
|
|
|
693
795
|
<table>
|
|
@@ -699,11 +801,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
699
801
|
<th>描述</th>
|
|
700
802
|
</tr>
|
|
701
803
|
<tr>
|
|
702
|
-
<td
|
|
703
|
-
<td>
|
|
804
|
+
<td>node</td>
|
|
805
|
+
<td>HTMLElement</td>
|
|
704
806
|
<td>是</td>
|
|
705
807
|
<td></td>
|
|
706
|
-
<td
|
|
808
|
+
<td>指定节点元素。</td>
|
|
707
809
|
</tr>
|
|
708
810
|
<tr>
|
|
709
811
|
<td>direction</td>
|
|
@@ -714,7 +816,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
714
816
|
</tr>
|
|
715
817
|
</table>
|
|
716
818
|
|
|
717
|
-
#### showSiblings(
|
|
819
|
+
#### showSiblings(node, direction)
|
|
718
820
|
显示指定节点的兄弟节点。
|
|
719
821
|
|
|
720
822
|
<table>
|
|
@@ -726,11 +828,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
726
828
|
<th>描述</th>
|
|
727
829
|
</tr>
|
|
728
830
|
<tr>
|
|
729
|
-
<td
|
|
730
|
-
<td>
|
|
831
|
+
<td>node</td>
|
|
832
|
+
<td>HTMLElement</td>
|
|
731
833
|
<td>是</td>
|
|
732
834
|
<td></td>
|
|
733
|
-
<td
|
|
835
|
+
<td>指定节点元素。</td>
|
|
734
836
|
</tr>
|
|
735
837
|
<tr>
|
|
736
838
|
<td>direction</td>
|
|
@@ -741,7 +843,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
741
843
|
</tr>
|
|
742
844
|
</table>
|
|
743
845
|
|
|
744
|
-
#### getNodeState(
|
|
846
|
+
#### getNodeState(node, relation)
|
|
745
847
|
该方法帮你了解指定节点的相关节点的显示状况。
|
|
746
848
|
|
|
747
849
|
<table>
|
|
@@ -753,11 +855,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
753
855
|
<th>描述</th>
|
|
754
856
|
</tr>
|
|
755
857
|
<tr>
|
|
756
|
-
<td
|
|
757
|
-
<td>
|
|
858
|
+
<td>node</td>
|
|
859
|
+
<td>HTMLElement</td>
|
|
758
860
|
<td>是</td>
|
|
759
861
|
<td></td>
|
|
760
|
-
<td
|
|
862
|
+
<td>指定节点元素。</td>
|
|
761
863
|
</tr>
|
|
762
864
|
<tr>
|
|
763
865
|
<td>relation</td>
|
|
@@ -775,7 +877,7 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
775
877
|
"visible":true|false, // 标识相关节点当前是否可见
|
|
776
878
|
}
|
|
777
879
|
```
|
|
778
|
-
#### getRelatedNodes(
|
|
880
|
+
#### getRelatedNodes(node, relation)
|
|
779
881
|
获得指定节点的关联节点。
|
|
780
882
|
|
|
781
883
|
<table>
|
|
@@ -787,11 +889,11 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
787
889
|
<th>描述</th>
|
|
788
890
|
</tr>
|
|
789
891
|
<tr>
|
|
790
|
-
<td
|
|
791
|
-
<td>
|
|
892
|
+
<td>node</td>
|
|
893
|
+
<td>HTMLElement</td>
|
|
792
894
|
<td>是</td>
|
|
793
895
|
<td></td>
|
|
794
|
-
<td
|
|
896
|
+
<td>指定节点元素。</td>
|
|
795
897
|
</tr>
|
|
796
898
|
<tr>
|
|
797
899
|
<td>relation</td>
|
|
@@ -802,9 +904,20 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
802
904
|
</tr>
|
|
803
905
|
</table>
|
|
804
906
|
|
|
805
|
-
####
|
|
907
|
+
#### getParent(node)
|
|
908
|
+
返回指定节点的父节点;如果不存在父节点,则返回 `null`。
|
|
909
|
+
|
|
910
|
+
#### getChildren(node)
|
|
911
|
+
返回指定节点的直接子节点数组。返回值中的每一项都是原生 `HTMLElement`。
|
|
912
|
+
|
|
913
|
+
#### getSiblings(node)
|
|
914
|
+
返回指定节点的兄弟节点数组。返回值中的每一项都是原生 `HTMLElement`。
|
|
915
|
+
|
|
916
|
+
#### setChartScale(chart, newScale, zoomAnchor)
|
|
806
917
|
用这个方法可以帮你为指定的组织结构图设置新的scale系数。
|
|
807
918
|
|
|
919
|
+
`zoomAnchor` 为可选参数,格式为视口坐标 `{ x, y }`。提供该参数后,缩放时会固定该坐标点。
|
|
920
|
+
|
|
808
921
|
<table>
|
|
809
922
|
<tr>
|
|
810
923
|
<th>名称</th>
|
|
@@ -814,8 +927,8 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
814
927
|
<th>描述</th>
|
|
815
928
|
</tr>
|
|
816
929
|
<tr>
|
|
817
|
-
<td
|
|
818
|
-
<td>
|
|
930
|
+
<td>chart</td>
|
|
931
|
+
<td>HTMLElement</td>
|
|
819
932
|
<td>是</td>
|
|
820
933
|
<td>None</td>
|
|
821
934
|
<td>组织结构图容器中的某一个图。</td>
|
|
@@ -856,8 +969,22 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
856
969
|
</tr>
|
|
857
970
|
</table>
|
|
858
971
|
|
|
972
|
+
#### exportPNG(canvas, exportFilename)
|
|
973
|
+
将准备好的 canvas 导出为 PNG 下载。当应用自行提供 canvas 时可直接调用;大多数场景应使用 `export()`。
|
|
974
|
+
|
|
975
|
+
#### exportPDF(canvas, exportFilename, exportScale)
|
|
976
|
+
将准备好的 canvas 导出为 PDF 下载。`exportScale` 是 canvas 的渲染缩放比例,用于保持 PDF 的逻辑尺寸;大多数场景应使用 `export()`。
|
|
977
|
+
|
|
859
978
|
### 事件
|
|
860
979
|
|
|
980
|
+
OrgChart 会派发可冒泡的原生 `CustomEvent`。请使用 `addEventListener` 订阅,事件参数位于 `event.detail`。
|
|
981
|
+
|
|
982
|
+
```js
|
|
983
|
+
oc.chart.addEventListener('nodedrop.orgchart', function (event) {
|
|
984
|
+
const { draggedNode, dragZone, dropZone } = event.detail;
|
|
985
|
+
});
|
|
986
|
+
```
|
|
987
|
+
|
|
861
988
|
<table>
|
|
862
989
|
<thead>
|
|
863
990
|
<tr>
|
|
@@ -869,23 +996,28 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
869
996
|
<tbody>
|
|
870
997
|
<tr>
|
|
871
998
|
<td>nodedrop.orgchart</td>
|
|
872
|
-
<td>draggedNode, dragZone, dropZone</td>
|
|
873
|
-
<td
|
|
999
|
+
<td><code>event.detail</code>: draggedNode, dragZone, dropZone</td>
|
|
1000
|
+
<td>在节点移动前于图表元素上触发。调用 <code>event.preventDefault()</code> 可取消本次拖放。</td>
|
|
1001
|
+
</tr>
|
|
1002
|
+
<tr>
|
|
1003
|
+
<td>otherdropped.orgchart</td>
|
|
1004
|
+
<td><code>event.detail</code>: draggedItem, dropZone</td>
|
|
1005
|
+
<td>非 OrgChart 的可拖放项被放到节点上时,于图表元素上触发。</td>
|
|
874
1006
|
</tr>
|
|
875
1007
|
<tr>
|
|
876
1008
|
<td>init.orgchart</td>
|
|
877
|
-
<td>
|
|
878
|
-
<td
|
|
1009
|
+
<td>无;<code>event.target</code> 为图表元素</td>
|
|
1010
|
+
<td>图表渲染完成后触发。</td>
|
|
879
1011
|
</tr>
|
|
880
1012
|
<tr>
|
|
881
1013
|
<td>show-[relation].orgchart</td>
|
|
882
1014
|
<td></td>
|
|
883
|
-
<td
|
|
1015
|
+
<td>关联节点显示时在该节点上触发;<code>relation</code> 为 parent、children 或 siblings。</td>
|
|
884
1016
|
</tr>
|
|
885
1017
|
<tr>
|
|
886
1018
|
<td>hide-[relation].orgchart</td>
|
|
887
1019
|
<td></td>
|
|
888
|
-
<td
|
|
1020
|
+
<td>关联节点隐藏时在该节点上触发;<code>relation</code> 为 parent、children 或 siblings。</td>
|
|
889
1021
|
</tr>
|
|
890
1022
|
</tbody>
|
|
891
1023
|
</table>
|
|
@@ -896,9 +1028,9 @@ var oc = $('#chartContainerId').orgchart(options);
|
|
|
896
1028
|
|
|
897
1029
|
我们提供了一个CSS类"noncollapsable",可以方便地完成这件事。
|
|
898
1030
|
```js
|
|
899
|
-
|
|
1031
|
+
oc.chart.classList.add('noncollapsable'); // 禁掉展开/折叠
|
|
900
1032
|
|
|
901
|
-
|
|
1033
|
+
oc.chart.classList.remove('noncollapsable'); // 开启展开/折叠
|
|
902
1034
|
```
|
|
903
1035
|
|
|
904
1036
|
#### 为啥根节点消失了,看不到了?
|