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-tw.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
|
#### 爲啥根節點消失了,看不到了?
|
package/bower.json
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orgchart",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"homepage": "https://github.com/dabeng/OrgChart",
|
|
5
5
|
"authors": [
|
|
6
6
|
"dabeng <dabeng413@gmail.com>"
|
|
7
7
|
],
|
|
8
8
|
"description": "Simple and direct organization chart(tree-like hierarchy) plugin based on pure DOM and jQuery.",
|
|
9
9
|
"main": [
|
|
10
|
-
"dist/js/
|
|
11
|
-
"dist/css/
|
|
10
|
+
"dist/js/orgchart.min.js",
|
|
11
|
+
"dist/css/orgchart.min.css"
|
|
12
12
|
],
|
|
13
13
|
"keywords": [
|
|
14
|
-
"jquery",
|
|
15
|
-
"plugin",
|
|
16
14
|
"organization",
|
|
17
15
|
"chart",
|
|
18
16
|
"orgchart",
|
|
@@ -29,9 +27,8 @@
|
|
|
29
27
|
"tests"
|
|
30
28
|
],
|
|
31
29
|
"dependencies": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"jspdf": "^
|
|
35
|
-
"html2canvas": "^1.4.1"
|
|
30
|
+
"html2canvas": "^1.4.1",
|
|
31
|
+
"json-digger": "^2.0.2",
|
|
32
|
+
"jspdf": "^3.0.1"
|
|
36
33
|
}
|
|
37
34
|
}
|