项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。
仅桌面端保证样式

Tree 树形控件 ​

层级数据展示与交互:展开/收起、勾选(父子联动可选)、选中高亮、搜索过滤与懒加载,常用于组织架构、目录、权限树。

基础用法 ​

研发部
前端组
后端组
交付部
实施组
运维组

点击节点:—

勾选模式 ​

研发部
前端组
后端组
交付部
实施组
运维组

选中高亮(受控) ​

highlight-current 开启点击高亮,current-change 拿到当前节点;实例方法 setCurrentKey / getCurrentKey 支持程序化选中,传 null 取消选中:

研发部
前端组
后端组
交付部
实施组
运维组
当前:—

勾选联动与半选 ​

父子默认级联:全选父级勾选全部后代,部分勾选呈半选态;check-strictly 切换为父子互不联动。check 事件携带完整勾选信息,也可随时用 getCheckedKeys(true) 只取叶子、getHalfCheckedKeys() 取半选:

研发部
前端组
后端组
交付部
实施组
运维组

父子勾选不联动(check-strictly)

勾选节点试试

懒加载 ​

lazy + load 按需拉取子级:首次展开未加载节点时调用 load(node, resolve),resolve([]) 即视为叶子;未提供初始 data 时挂载后自动加载根级:

暂无数据

搜索过滤 ​

先传 filter-node-method 声明匹配规则,再调用实例方法 filter(value) 触发过滤——命中的节点连同其祖先链保留展示,清空关键词即恢复:

研发部
前端组
后端组
交付部
实施组
运维组

键盘操作 ​

树容器可聚焦(tabindex="0",子节点不进入 Tab 序):↑ / ↓ 按可见顺序移动当前节点(highlight-current 开启时联动高亮与 current-change),→ 展开当前节点、← 收起,Enter 选中(同点击语义),Space 在开启复选框时切换勾选(父子级联)。节点带 role="treeitem" 与 aria-expanded / aria-selected / aria-checked 标记。

Tree API ​

Tree Props

参数说明类型默认值
data树形数据源,字段可用 props 映射array[]
props字段映射 { children, label, disabled, isLeaf }object{}
node-key唯一键字段,实例方法与勾选回显依赖它string—
show-checkbox节点前显示复选框booleanfalse
check-strictly父子勾选不联动booleanfalse
default-expand-all默认展开全部booleanfalse
default-expanded-keys默认展开的节点 keyarray[]
default-checked-keys默认勾选的节点 key(非严格模式向下级联)array[]
expand-on-click-node点击节点展开/收起booleantrue
check-on-click-node点击节点切换勾选(需开启复选框)booleanfalse
highlight-current点击高亮当前节点,配合 current-change 与 setCurrentKeybooleanfalse
current-node-key初始选中节点 keystring | number—
filter-node-method过滤匹配函数 (word, data) => boolean,配合 filter() 方法functionnull
accordion手风琴模式,同父兄弟节点互斥展开(全层级生效)booleanfalse
indent层级缩进像素number16
empty-text空数据文案string暂无数据
lazy / load懒加载开关与加载函数 load(node, resolve)boolean / functionfalse / null

Tree Events

参数说明类型默认值
node-click节点被点击(data, node) => void—
node-expand / node-collapse节点展开 / 收起(data, node) => void—
check勾选变化,携带勾选与半选明细(data, { checkedKeys, checkedNodes, halfCheckedKeys, halfCheckedNodes }) => void—
check-change节点勾选状态变化(data, checked: boolean) => void—
current-change当前高亮节点变化(需 highlight-current)(data, node) => void—
node-contextmenu节点右键菜单(event, node) => void—

Tree Methods(defineExpose)

参数说明类型默认值
filter按关键词过滤,配合 filter-node-method 使用(value) => void—
setCheckedKeys / getCheckedKeys批量设置 / 获取选中 key,getCheckedKeys(leafOnly) 可只取叶子(keys) / (leafOnly?) => void / array—
setChecked设置单个节点勾选(非严格模式向下级联)(key, checked) => void—
getCheckedNodes获取选中节点的原始数据(leafOnly?) => array—
getHalfCheckedKeys / getHalfCheckedNodes获取半选节点 key / 原始数据() => array—
getNode按 key 取内部节点(含 childNodes / level / isLeaf)(key) => node | null—
setCurrentKey / getCurrentKey程序化选中 / 读取当前选中 key,传 null 取消选中(key) / () => void / key—
getCurrentNode读取当前选中节点的原始数据() => data | null—