TreeSelect 树形选择

含有下拉菜单的树形选择器,结合了 el-tree 和 el-select 两个组件的功能。

基础用法

树状选择器

请选择
show checkbox:
请选择

选择任意级别

当属性 check-strictly=true 时,任何节点都可以被选择,否则只有子节点可被选择。

TIP

当使用 show-checkbox时,由于 check-on-click-node 默认值是 false,这时候只能通过 checkbox 来选中,当然您也可以将其设置成 true,这样点击整个 node 都可以用来完成选择

WARNING

在使用 show-checkbox 时,因为 check-on-click-leaf 默认值为 true, 最后一个树节点可以通过点击节点进行勾选。

请选择
show checkbox:
请选择
show checkbox with `check-on-click-node`:
请选择

多选

通过点击或复选框选择多个选项。

请选择
show checkbox:
请选择
show checkbox with `check-strictly`:
请选择

禁用选项

使用 disabled 字段禁用选项。

请选择

可筛选

使用关键字筛选或自定义筛选方法。 filterMethod可以自定义数据筛选的方法, filterNodeMethod可以自定义节点数据筛选的方法。

请选择
filter method:
请选择
filter node method:
请选择

自定义内容

自定义树节点的内容。

请选择
use render content:
请选择

懒加载

树节点懒加载,更加适合于数据量大的列表。

请选择
show lazy load label:
lazy load node5

使用 node-key 属性

默认情况下,modelValue 会查找 value 键。对于其他数据结构,必须提供 node-key 才能正常工作。

Level two 1-1

TIP

  1. node-key 在整个树中应该是唯一的。
  2. value-key 与 node-key 具有相同的目标。
  3. 与 select 组件相反,tree-select 不能检索对象值。

TreeSelect API

树形选择器组合了 ElTree 与 ElSelect 的能力,官方文档说明「原有属性未做改动,请查阅原组件文档」。 React 版沿用这一约定:树相关属性见 Tree、下拉相关属性见下表。

TreeSelect Attributes

属性名说明类型默认值
value选中值,单选为单值、多选为数组(对应官方 v-model)string / number / array—
data树数据array[]
multiple是否多选booleanfalse
clearable是否可清空booleanfalse
filterable是否可筛选booleanfalse
disabled是否禁用整个组件(对应官方 ElSelect 的 disabled)booleanfalse
placeholder占位文本string请选择
size尺寸enum—
value-key取值的字段名,对应官方 value-keystring—
cache-data懒加载节点的缓存数据,结构同 data,用于取未加载节点的 labelarray[]
filter-method自定义筛选方法,由调用方重建 dataFunction—
filter-node-method自定义节点筛选方法Function—
remote-method远程筛选方法Function—
empty-values空值集合,缺省取全局配置array—
value-on-clear清空时返回的值,缺省取全局配置string / number / boolean / Function—
popper-class下拉浮层的额外类名string—
visible下拉是否展开,传入即为受控boolean—
class-name / style根元素类名与样式string / object—

Tree 属性透传

TreeProps 上的属性原样透传给内部的 ElTree:nodeKey、props、render-after-expand、 show-checkbox、check-strictly、check-on-click-node、check-on-click-leaf、 expand-on-click-node、default-expand-all、default-expanded-keys、default-checked-keys、 lazy、load、accordion、indent、highlight-current、auto-expand-parent、 render-content、allow-drag / allow-drop / draggable 等。 官方同样把 node-key || value-key || 'value' 作为内部树的 node-key,因此只传 value-key 也能正确寻址与勾选。

TreeSelect Events

事件名说明参数
onChange选中值变化(对应官方 v-model 的 update:modelValue)Function
onClear点击清空图标—
onRemoveTag多选模式下点击标签的关闭按钮Function
onVisibleChange下拉展开态变化,配合受控的 visible 使用Function
onFocus输入框聚焦Function
onBlur输入框失焦Function
onCheck勾选变化,转发自 ElTree 的 checkFunction
onNodeClick节点被点击,转发自 ElTree 的 node-clickFunction
onNodeExpand节点展开,转发自 ElTree 的 node-expandFunction
onReady拿到内部 ElTree 的实例句柄(替代官方 treeRef)Function

TreeSelect Slots

名称说明参数
default自定义树节点内容(React 侧通过 children 函数 prop 传入)({ node, data, store }) => ReactNode

Exposes

名称说明类型
onReady 下发的实例与 ElTree 的实例同构,含 getCheckedKeys / setCheckedKeys / filter / getNode 等TreeInstance