Tree 树形控件

优质
小牛编辑
113浏览
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-keysdefault-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