跳转到内容

树选择 TreeSelect

最简单的用法。

可以通过设置 treeCheckable 属性开启复选框勾选。

可以通过treeCheckStrategy属性定制回填方式。

选中值支持双向绑定。

自定义树选择下拉框的页头和页脚

使用 fallback-option 自定义找不到选项的值的显示效果,默认找不到选项就展示值本身。用户可以将其设定为 false 来隐藏那些没有匹配到节点数据的值。

通过 fieldNames 字段可以自定义 TreeData 的字段名。

labelInValuetrue 时,value 格式为: { label: string, value: string }

可以通过 loadMore 进行动态加载。此时可设置 isLeaf 来标示叶子节点。

多选

通过 popupVisible (支持 v-model) 控制下拉框的展开和收起。

监听 search 事件,在事件处理函数中获取数据并更新 treeData。 自定义搜索逻辑时,建议关闭内部过滤逻辑(:disable-filter="true"),以免影响自定义结果。

设置 :allow-search="true" 启用搜索功能。动态加载时候只能在已加载数据中进行搜索。默认的关键字搜索是从value字段匹配。也可以传入 filterTreeNode自定义过滤方式。

设置 size 可以使用四种尺寸(small, default, large, huge)的选择器。高度分别对应 24px、28px、32px、36px。

自定义触发元素。

通过指定 treeProps.virtualListProps 来开启虚拟列表,在大量数据时获得高性能表现。

参数名描述类型默认值版本
disabled是否禁用booleanfalse
loading是否为加载中状态booleanfalse
error是否为错误状态booleanfalse
size选择框的大小'mini' | 'small' | 'medium' | 'large''medium'
border是否显示边框booleantrue
allow-search是否允许搜索boolean | { retainInputValue?: boolean }false (single) | true (multiple)
allow-clear是否允许清除booleanfalse
placeholder提示文案string-
max-tag-count最多显示的标签数量,仅在多选模式有效number-
multiple是否支持多选booleanfalse
default-value默认值string | number | Array<string | number> | LabelValue | LabelValue[]-
model-value (v-model)绑定值string | number | Array<string | number> | LabelValue | LabelValue[]-
field-names指定节点数据中的字段名TreeFieldNames-
data数据TreeNodeData[][]
label-in-value设置value格式。默认是string,设置为true时候,value格式为: { label: string, value: string }booleanfalse
tree-checkable是否展示复选框booleanfalse
tree-check-strictly父子节点是否关联booleanfalse
tree-checked-strategy定制回显方式'all' | 'parent' | 'child''all'
tree-props可以接受所有 Tree 组件的PropsPartial<TreeProps>-
trigger-props可以接受所有 Trigger 组件的PropsPartial<TriggerProps>-
popup-visible (v-model)弹出框是否可见boolean-
default-popup-visible默认弹出框是否可见booleanfalse
dropdown-style下拉框样式CSSProperties-
dropdown-class-name下拉框样式 classstring | string[]-
filter-tree-node自定义节点过滤函数(searchKey: string, nodeData: TreeNodeData) => boolean-
load-more动态加载数据(nodeData: TreeNodeData) => Promise<void>-
disable-filter禁用内部过滤逻辑booleanfalse
popup-container弹出框的挂载容器string | HTMLElement-
fallback-option为 value 中找不到匹配项的 key 定义节点数据boolean | ((key: number | string) => TreeNodeData | boolean)true2.22.0
selectable设置可选择的节点,默认全部可选boolean| 'leaf'| (( node: TreeNodeData, info: { isLeaf: boolean; level: number } ) => boolean)true2.27.0
scrollbar是否开启虚拟滚动条boolean | ScrollbarPropstrue2.39.0
show-header-on-empty空状态时是否显示headerbooleanfalse
show-footer-on-empty空状态时是否显示footerbooleanfalse
input-value (v-model)输入框的值string-2.55.0
default-input-value输入框的默认值(非受控模式)string''2.55.0
事件名描述参数版本
change值改变时触发value: string | number | LabelValue | Array<string | number> | LabelValue[] | undefined
popup-visible-change下拉框显示状态改变时触发visible: boolean
search搜索值变化时触发searchKey: string
clear点击清除时触发-
input-value-change输入框的值发生改变时触发inputValue: string2.55.0
插槽名描述参数版本
trigger自定义触发元素-
prefix前缀-
label自定义选择框显示data: mixed
header自定义下拉框页头-
loader定制加载中显示的内容-
empty定制空数据展示-
footer自定义下拉框页脚-
tree-slot-extra定制 tree 组件的渲染额外节点内容-
tree-slot-title定制 tree 组件的节点标题title: string
tree-slot-icon定制 tree 组件的节点图标node: TreeNodeData2.18.0
tree-slot-switcher-icon定制 tree 组件的 switcher 图标-