Skip to content

t-tree

Tree 树形控件

组件介绍

t-tree 是功能强大的树形结构组件,支持多级节点展开、折叠、选择、懒加载,具有增删改操作按钮,支持手风琴模式,适用于组织架构、文件目录、分类管理等场景。

平台兼容

HarmonyH5AndroidiOS小程序UTS

基础用法

基础用法参考 demo/tree/tree.uvue

vue
<template>
  <view class="tree-demo">
    <t-tree 
      :list="treeData"
      v-model:selects="selectedIds"
      :folds="expandedIds"
      :accordion="true"
      :showCheckbox="true"
      @change="onChange"
      @add="onAdd"
      @edit="onEdit"
      @delete="onDelete">
    </t-tree>
  </view>
</template>

<script setup>
const treeData = ref([
  {
    id: '1',
    label: '一级节点 1',
    children: [
      { id: '1-1', label: '二级节点 1-1' },
      { id: '1-2', label: '二级节点 1-2' }
    ]
  },
  {
    id: '2',
    label: '一级节点 2',
    children: [
      { id: '2-1', label: '二级节点 2-1' }
    ]
  }
]);

const selectedIds = ref([]);
const expandedIds = ref(['1']);

function onChange(selected) {
  console.log('选中项:', selected);
}

function onAdd(item) {
  console.log('添加节点:', item);
}

function onEdit(item) {
  console.log('编辑节点:', item);
}

function onDelete(item) {
  console.log('删除节点:', item);
}
</script>

<style scoped>
.tree-demo {
  padding: 20rpx;
}
</style>

Props

属性名说明类型默认值
list树形数据源UTSJSONObject[][]
selects选中项 ID 集合string[][]
folds默认展开的节点 ID 集合string[][]
accordion是否开启手风琴模式booleanfalse
showCheckbox是否显示选择框booleantrue
lazy是否开启懒加载booleanfalse
load懒加载函数function() => Promise.resolve([])
showAddButton是否显示增加按钮booleantrue
addIcon增加按钮图标string'plus-circle'
addIconClass增加按钮样式string''
showEditButton是否显示编辑按钮booleantrue
editIcon编辑按钮图标string'edit-pen'
editIconClass编辑按钮样式string''
showDeleteButton是否显示删除按钮booleantrue
deleteIcon删除按钮图标string'trash'
deleteIconClass删除按钮样式string''
rowHeight每行高度(px)number50
idKey节点唯一标识字段名string'id'
labelKey节点显示文字字段名string'label'
disabledKey节点禁用字段名string'disabled'
childrenKey子节点字段名string'children'
path点击组件后跳转的页面路径string''
hover是否启用点击效果booleanfalse
type组件主题类型string''
disabled是否禁用booleanfalse
effect组件显示主题string'normal'
size组件尺寸string''

Events

事件名说明回调参数
change选中状态变化时触发string[](选中项 ID 数组)
add点击增加按钮时触发节点数据
edit点击编辑按钮时触发节点数据
delete点击删除按钮时触发节点数据
click点击节点时触发event
initFinished组件初始化完成触发组件节点信息
touchstart触摸开始时触发event
touchend触摸结束时触发event
touchmove触摸移动时触发event
touchcancel触摸取消时触发event

外部类

类名说明
add-icon-class增加按钮样式
edit-icon-class编辑按钮样式
delete-icon-class删除按钮样式

数据格式

typescript
interface TreeNode {
  id: string;           // 唯一标识
  label: string;        // 显示文本
  disabled?: boolean;   // 是否禁用
  children?: TreeNode[];// 子节点数组
}