@@ -89,7 +89,10 @@ data: [
89
89
### template / 模板
90
90
``` pug
91
91
Tree(:data="data" draggable crossTree)
92
- div(slot-scope="{data, store}")
92
+ div(slot-scope="{data, store, vm}")
93
+ //- data是节点数据
94
+ //- store是树的实例
95
+ //- vm是节点实例, vm.level是节点的层级
93
96
template(v-if="!data.isDragPlaceHolder")
94
97
b(v-if="data.children && data.children.length" @click="store.toggleOpen(data)") {{data.open ? '-' : '+'}}
95
98
span {{data.text}}
@@ -149,7 +152,18 @@ change(node, targetTree, oldTree), // 拖动结束后并且有节点位置发生
149
152
<a name =" tree_methods " ></a >
150
153
### Tree methods / 树的方法
151
154
``` js
152
- pure (node, withChildren) // 获得干净数据(不含运行时的属性例如_id之类的), 下划线开头的属性会被删掉. withChildren为true的话则会把节点的子节点的数据也获取到.
155
+
156
+ pure (node, withChildren, after)
157
+ /*
158
+ pure
159
+ 获得干净数据(不含运行时的属性例如_id之类的), 下划线开头的属性会被删掉. withChildren为true的话则会把节点的子节点的数据也获取到.
160
+ withChildren: 可选. after: Function, 可选, after可以自定义返回数据
161
+ 关于after的源码(t是干净的节点数据):
162
+ if (after) {
163
+ return after(t, node) || t
164
+ }
165
+ return t
166
+ */
153
167
getNodeById (id)
154
168
getActivated ()
155
169
getOpened ()
@@ -158,10 +172,12 @@ toggleActive(node, inactiveOld)
158
172
openNode (node, closeOld)
159
173
toggleOpen (node, closeOld)
160
174
// 下面的方法很简单, 所以附上源码.
161
- getPureData () { return this .pure (this .rootData , true ).children } // 获取树的干净数据
175
+ getPureData (after ) { return this .pure (this .rootData , true , after ).children } // 获取树的干净数据 after: Function, 可选
162
176
deleteNode (node ) { return hp .arrayRemove (node .parent .children , node) } // 删除节点
163
177
// 增加节点, 像操作数组一样就可以了. 例子: node.children.push(newNodeData)
164
178
// 更新节点, 直接修改节点属性就可以了
179
+ isNodeDraggable (node) // 判断节点是否draggable
180
+ isNodeDroppable (node) // 判断节点是否droppable
165
181
```
166
182
<a name =" node_properties " ></a >
167
183
### node properties / 节点属性
@@ -172,7 +188,6 @@ _vm // 节点的实例
172
188
parent // 父节点
173
189
children: [], // 子节点
174
190
open, // 是否打开
175
- level, // 节点层级, 根节点为0, 传入的data数组从1开始
176
191
active: false ,
177
192
style: {}, // 可以控制节点的style
178
193
class: ' ' , // 可以控制节点的class
@@ -191,6 +206,7 @@ isDragPlaceHolder // 该节点是不是拖动占位节点
191
206
在一些回调函数和事件里的参数可能只有node, 而想访问更多(例如节点实例, 节点的爸爸, 节点所在树)怎么办? 其实可以直接通过node访问, 因为他们都嵌套在里面了
192
207
``` js
193
208
node ._vm // vm
209
+ node ._vm .level // node level, readonly
194
210
node ._vm .store // tree
195
211
node .parent ._vm // parent node vm
196
212
node ._vm .store
0 commit comments