Tree 树形控件
优质
小牛编辑
128浏览
2023-12-01
用清晰的层级结构展示信息,可展开或折叠。
基础用法
基础的树形结构展示。
<el-tree [model]="data"> </el-tree> <script type="text"> // in Component data: any = [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1', }] }] }, { label: '一级 2', children: [{ label: '二级 2-1', }] }, { label: '一级 3', }] </script>
可选择
适用于需要选择层级时使用。
<el-tree [model]="data" [show-checkbox]="true"> </el-tree> <script type="text"> // in Component data: any = [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1', }] }] }, { label: '一级 2', children: [{ label: '二级 2-1', }] }, { label: '一级 3', }] </script>
默认展开和默认选中
可将 Tree 的某些节点设置为默认展开或默认选中。
使用 default-expanded-keys
或 default-checked-keys
属性来设置默认展开和选中时,需要注意的是这这两个设置项表示
源数据中的 id,如果 model data 没有 id 属性,你需要为每一项数据手动增加唯一的 id。
<el-tree [model]="data2" [show-checkbox]="true"> </el-tree> <script type="text"> // in Component data2: any = [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1', checked: true, expanded: true, }] }] }, { label: '一级 2', children: [{ label: '二级 2-1', }] }, { label: '一级 3', }] </script>
钩子函数
钩子函数可以帮助你手动设置数据
<el-tree [model]="data"> </el-tree> <script type="text"> // in Component data: any = [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1', }] }] }, { label: '一级 2', children: [{ label: '二级 2-1', }] }, { label: '一级 3', }] </script>
手风琴模式
对于同一级的节点,每次只能展开一个
<el-tree [model]="data" [accordion]="true"> </el-tree> <script type="text"> // in Component data: any = [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1', }] }] }, { label: '一级 2', children: [{ label: '二级 2-1', }] }, { label: '一级 3', }] </script>
Tree Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
model | 展示数据 | Array | ||
modelChange | 点击或改变选择后的响应事件, action 包括 close/open/click/checkbox 四种状态 | EventEmitter | ||
empty-text | 为空的展示文字 | string | ||
show-checkbox | 节点是否可被选择 | boolean | ||
default-expand-all | 默认展开全部 | boolean | ||
default-expanded-keys | 默认展开的数组。数组中的每项为 model 数据中的 id 属性 | Array | [] | |
default-checked-keys | 默认选中的数组,需要 show-checkbox 选项打开,数组中的每项为 model 数据中的 id 属性 | Array | [] | |
indent | 左侧偏移值,px | number | 16 | |
accordion | 手风琴模式 | boolean | ||
elDisabled | 禁用 | boolean | ||
expand-on-click-node | 允许点击非图标区域触发展开收起动作 | boolean | 1 | |
findAllChecked | 获取所有选中项。实例方法,由 Tree.userSafeHooks() 返回 | () => string[] | ||
removeAllChecked | 移除所有选中项。实例方法,由 Tree.userSafeHooks() 返回 | () => void | ||
updateItemChecked | 更新指定项的选中状态。实例方法,由 Tree.userSafeHooks() 返回 | (id: string | number) => void | ||
updateItemExpanded | 更新指定项的展开状态。实例方法,由 Tree.userSafeHooks() 返回 | (id: string | number) => void |