树 Tree

树状结构能清晰展示文件夹、分类目录、组织架构等多层级内容的关系,同时支持展开、收起和选择等交互功能

基本使用

为每个节点赋予value(全局唯一的),label 为该节点显示的内容

节点选择

绑定 v-model:select 即可选中节点。设置 multiple 属性为 true,可以启用多选

带复选框

设置 show-checkbox 属性为 true,可以启用复选框

默认展开全部

设置 default-unfold-all 属性为 true,可以模式展开全部节点

默认展开

通过 default-unfold-values 来设置默认需要展开哪些节点

自定义节点内容

你可以设置插槽来自定义展示节点内容。具体示例看下面的例子

显示连接线

添加 show-line 属性即可使树具有连接线

手风琴模式

对于同一级的节点,每次只能展开一个。设置属性 accordiontrue 即可开启手风琴模式

树节点过滤 alpha.41

调用 Tree 实例对象的 filter 方法来过滤树节点。 当然你也可以设置 filter-node-method 属性来自定义过滤器。

TreeData & TreeNode

export interface TreeData {
  label: string | number
  value: string | number
  isLeaf?: boolean
  disabled?: boolean
  children?: TreeData[]
}

export interface TreeNode extends Omit<TreeData, 'children'> {
  key: string
  indents: number[]
  deep: number
  pathValue: (string | number | undefined)[]
  pathNode: TreeNode[]
  pathLabel: (string | number | undefined)[]
  data: TreeData
  unfold: boolean
  lasted: boolean
  hasChildren: boolean
  totalLeafNumber?: number
  parent?: TreeNode | null
  children?: TreeNode[]
}

API

Attributes

属性名描述类型默认值
data传入data,生成对应的树结构TreeData[]-
v-model:selected双向绑定节点selected(string | number)[]-
v-model:checked双向绑定节点checked(string | number)[]-
multiple是否支持多选booleanfalse
show-line是否展示连接线booleanfalse
show-checkbox节点否显示checkboxbooleanfalse
check-strictly父子不互相关联,父级状态不会影响子级状态booleanfalse
default-unfold-all是否默认展开全部的节点booleanfalse
default-unfold-values默认展开节点的value集合array-
accordion是否每次只打开一个同级树节点展开booleanfalse
unfold-on-click-node点击节点的时候触发展开或折叠booleanfalse
checked-on-click-node点击节点的时候改变复选框的状态booleanfalse
filter-node-method alpha.41自定义node过滤器,只有当调用实例方法filter方法生效booleanfalse

TreeData

属性描述类型默认值
label节点展示的文本string-
value节点选中的值(必须全局唯一)string | number-
disabled是否禁用booleanfalse
children子节点TreeNode[]-
isLeaf是否是叶子节点booleanfalse

Tree Methods

方法名说明函数类型
unfoldNodes展开节点。此方法可传入节点的value(数组形式),来展开相对应的节点。注意不传参数的时候,展开所有节点。(values?:string[]) => void
foldNodes折叠节点。此方法可传入节点的value(数组形式),来折叠相对应的节点。注意不传参数的时候,折叠所有节点。(values?:string[]) => void
insertNodes新增节点。第一个参数为parent value,第二个参数为tree data(parentValue:number | string, data: TreeData[]) => void
removeNodes移除节点。参数为节点的value(数组形式)(values: (number | string)[]) => void
getNodesByValues通过value来获取节点(values: (number | string)[]) => TreeNode[]
getSelectedNodes获取当前树所有选中(selected)的节点() => TreeNode[]
filter alpha.41树节点过滤(query:string) => void

Events

name描述函数类型
unfold-node展开节点时触发(node: TreeNode) => void
fold-node折叠节点时触发(node: TreeNode) => void
click-node点击节点时触发(node: TreeNode) => void
change-selected选中节点时触发(values: (string | number)[]) => void
change-checked点击节点复选框时触发(values: (string | number)[]) => void

Slots

name描述scoped
node-icon节点左侧图标{node:TreeNode}
node-label节点展示的内容{node:TreeNode}
node-extra节点右侧渲染内容{node:TreeNode}

最后更新时间: