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-tw.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-cn.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
|
#### 爲啥根節點消失了,看不到了?
|