Skip to content

Tree 树形控件

用清晰的层级结构展示信息,可展开或折叠。

基础用法

基础的树形结构展示。

可选择

适用于需要选择层级时使用。本例还展示了默认勾选。

默认展开和默认选中

可将 Tree 的某些节点设置为默认展开或默认选中。

全部展开

可将 Tree 的所有节点设置为默认展开。

禁用状态

可将 Tree 的某些节点设置为禁用状态。

手风琴模式

对于同一级的节点,每次只能展开一个。

拖拽节点

通过拖拽来调整节点顺序。支持三种放置位置:

  • before: 放在目标节点之前(作为兄弟节点)
  • inner: 放在目标节点内部(作为子节点)
  • after: 放在目标节点之后(作为兄弟节点)

自定义拖拽规则

通过 allow-drop 属性可以自定义拖拽规则,控制哪些节点可以放置到哪些位置。

节点点击

可配置点击节点时的行为。默认情况下,点击节点会展开/折叠节点。可通过 expand-on-click-node 属性设置是否在点击节点时展开或收起节点。

方法调用

通过 ref 获取 Tree 实例并调用实例方法。

懒加载

适用于需要动态加载子节点的场景。

高亮当前节点

通过 highlight-current 属性可以高亮显示当前选中的节点。

自定义过滤方法

通过 filter-node-method 属性可以自定义过滤逻辑。

节点操作

通过实例方法可以动态添加、删除节点。

严格模式(checkStrictly)

在严格模式下,父子节点的选中状态不再互相关联。

事件

Attributes

参数说明类型可选值默认值
data展示数据array[]
node-key每个树节点用来作为唯一标识的属性,整棵树应该是唯一的string'id'
label指定节点标签为节点对象的某个属性值string'label'
children指定子树为节点对象的某个属性值string'children'
show-checkbox节点是否可被选择booleanfalse
check-strictly在显示复选框的情况下,是否严格的遵循父子不互相关联的做法booleanfalse
default-expand-all是否默认展开所有节点booleanfalse
default-expanded-keys默认展开的节点的 key 的数组array[]
default-checked-keys默认勾选的节点的 key 的数组array[]
auto-expand-parent展开子节点的时候是否自动展开父节点booleantrue
expand-on-click-node是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点booleantrue
check-on-click-node是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点booleanfalse
accordion是否每次只打开一个同级树节点展开booleanfalse
indent相邻级节点间的水平缩进,单位为像素number18
empty-text内容为空的时候展示的文本string'暂无数据'
draggable是否开启拖拽节点功能booleanfalse
allow-drop判断节点能否被拖拽到目标位置。返回 false 会阻止拖拽function(draggingNode, dropNode, type)
allow-drag判断节点能否被拖拽。返回 false 会阻止拖拽function(node)
lazy是否懒加载子节点,需与 load 方法结合使用booleanfalse
load加载子树数据的方法,仅当 lazy 属性为 true 时生效function(node, resolve)
filter-node-method对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏function(value, data, node)
highlight-current是否高亮当前选中节点booleanfalse
current-node-key当前选中的节点string / number

Events

事件名称说明回调参数
node-click节点被点击时的回调共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、event
node-contextmenu当某一节点被鼠标右键点击时触发共三个参数,依次为:event、传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node
node-check当复选框被点击的时候触发共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象
node-expand节点被展开时触发的事件共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node
node-collapse节点被关闭时触发的事件共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node
check-change节点选中状态发生变化时的回调共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态
current-change当前选中节点变化时触发的事件共两个参数,依次为:当前节点的数据,当前节点的 Node 对象
node-drag-start节点开始拖拽时触发的事件共两个参数,依次为:被拖拽节点对应的对象、event
node-drag-enter拖拽进入其他节点时触发的事件共三个参数,依次为:被拖拽节点对应的对象、进入的节点对应的对象、event
node-drag-leave拖拽离开某个节点时触发的事件共三个参数,依次为:被拖拽节点对应的对象、离开的节点对应的对象、event
node-drag-over在拖拽节点时触发的事件共三个参数,依次为:被拖拽节点对应的对象、当前进入的节点对应的对象、event
node-drag-end拖拽结束时(可能未成功)触发的事件共两个参数,依次为:被拖拽节点对应的对象、event
node-drop拖拽成功完成时触发的事件共四个参数,依次为:被拖拽节点对应的对象、结束拖拽时最后进入的节点对应的对象、拖拽类型(before/after/inner)、event

Methods

方法名说明参数
setCheckedKeys通过 keys 设置目前勾选的节点(keys, leafOnly) 接收两个参数,1. 勾选节点的 key 的数组 2. boolean 类型的参数,若为 true 则仅设置叶子节点的选中状态,默认值为 false
getCheckedKeys若节点可被选择(即 show-checkboxtrue),则返回目前被选中的节点的 key 的数组(leafOnly) 接收一个 boolean 类型参数,若为 true 则仅返回被选中的叶子节点的 keys,默认值为 false
setChecked通过 key / data 设置某个节点的勾选状态,使用此方法必须设置 node-key 属性(key/data, checked, deep) 接收三个参数,1. 要设置的节点的 key 或者 data 2. boolean 类型,节点是否选中 3. boolean 类型,是否设置子节点,默认为 false
getCheckedNodes若节点可被选择(即 show-checkboxtrue),则返回目前被选中的节点所组成的数组(leafOnly) 接收一个 boolean 类型参数,若为 true 则仅返回被选中的叶子节点,默认值为 false
getHalfCheckedKeys若节点可被选择(即 show-checkboxtrue),则返回目前半选中的节点的 key 的数组
getHalfCheckedNodes若节点可被选择(即 show-checkboxtrue),则返回目前半选中的节点所组成的数组
setExpandedKeys设置目前展开的节点(keys) 接收节点的 key 的数组作为参数
getExpandedKeys获取目前展开的节点
setExpanded通过 key 设置某个节点的展开状态,使用此方法必须设置 node-key 属性(key, expanded) 接收两个参数,1. 节点的 key 2. boolean 类型,节点是否展开
getCurrentKey获取当前被选中节点的 key,使用此方法必须设置 node-key 属性
getCurrentNode获取当前被选中节点的 data,若没有节点被选中则返回 null
setCurrentKey通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性(key) 接收节点的 key 作为参数
setCurrentNode通过 node 设置某个节点的当前选中状态(node) 接收节点的 data 作为参数
getNode根据 data 或者 key 拿到 Tree 组件中的 node(key) 接收节点的 key 或 data 作为参数
remove删除 Tree 中的一个节点(key) 接收节点的 key 或 data 作为参数
append为 Tree 中的一个节点追加一个子节点(data, parentKey) 接收两个参数,1. 要追加的子节点的 data 2. 父节点的 key
insertBefore为 Tree 的一个节点的前面增加一个节点(data, refKey) 接收两个参数,1. 要增加的节点的 data 2. 参考节点的 key
insertAfter为 Tree 的一个节点的后面增加一个节点(data, refKey) 接收两个参数,1. 要增加的节点的 data 2. 参考节点的 key
filter对树节点进行筛选操作(value) 接收一个任意类型的参数,该参数会在 filter-node-method 中作为第一个参数
updateKeyChildren通过 keys 设置节点子元素,使用此方法必须设置 node-key 属性(key, data) 接收两个参数,1. 节点 key 2. 节点数据的数组