当前位置: 首页 > ds >正文

vben admin5组件文档(豆包版)---VbenTree

VbenTree 用法说明

VbenTree 是 Vben5 中基于 radix-vue 实现的树形组件,支持单选、多选、展开/折叠、权限控制等功能。以下是其核心用法说明:

1. 基础引入
import { VbenTree } from '@vben-core/shadcn-ui';
2. 核心属性(Props)
属性名类型说明默认值
treeDataRecordable<any>[]树形结构数据-(必填)
valueFieldstring节点值字段名(用于标识节点唯一性)'value'
labelFieldstring节点显示文本字段名'label'
childrenFieldstring子节点字段名'children'
multipleboolean是否支持多选false
checkStrictlyboolean是否取消父子节点关联(独立选择)false
autoCheckParentboolean非严格模式下,是否自动选中父节点true
defaultExpandedKeysArray<number/string>默认展开的节点 key 数组[]
defaultExpandedLevelnumber默认展开的层级(优先级高于 defaultExpandedKeys0
disabledboolean是否禁用整个树false
disabledFieldstring节点禁用状态的字段名'disabled'
borderedboolean是否显示边框false
showIconboolean是否显示节点图标(通过 iconField 指定字段)true
iconFieldstring节点图标字段名'icon'
3. 事件(Events)
事件名回调参数说明
select(item: FlattenedItem) => void节点选中状态变化时触发
expand(item: FlattenedItem) => void节点展开/折叠状态变化时触发
4. 插槽(Slots)
插槽名说明参数
node自定义节点内容{ value: 节点数据, level: 层级 }
header树顶部的自定义内容-
5. 示例代码
<template><VbenTreev-model="selectedKeys":tree-data="treeData":multiple="true":check-strictly="false"label-field="name"value-field="id"children-field="children"@select="handleSelect"><template #node="{ value }"><span>{{ value.name }}</span><span v-if="value.size" class="ml-2 text-gray-500">({{ value.size }})</span></template></VbenTree>
</template><script lang="ts" setup>
import { ref } from 'vue';
import { VbenTree } from '@core/ui-kit/shadcn-ui/src/ui/tree';// 示例数据
const treeData = ref([{id: 1,name: '文件夹1',children: [{ id: 11, name: '文件1-1', size: '10KB' },{ id: 12, name: '文件1-2', size: '20KB' },],},{id: 2,name: '文件夹2',children: [{ id: 21, name: '文件2-1', size: '15KB' }],},
]);// 选中的节点值
const selectedKeys = ref<number[]>([11]);// 选中事件处理
const handleSelect = (item) => {console.log('选中节点:', item.value);
};
</script>
6. 方法(通过 ref 调用)
方法名说明参数
expandAll展开所有节点-
collapseAll折叠所有节点-
expandNodes展开指定节点keys: Arrayable<number/string>
collapseNodes折叠指定节点keys: Arrayable<number/string>
getItemByValue根据值获取节点数据value: number/string

示例:

<template><VbenTree ref="treeRef" :tree-data="treeData" /><button @click="handleExpandAll">展开全部</button>
</template><script lang="ts" setup>
import { ref } from 'vue';
import { VbenTree } from '@core/ui-kit/shadcn-ui/src/ui/tree';const treeRef = ref();
const handleExpandAll = () => {treeRef.value?.expandAll();
};
</script>
注意事项
  • 数据格式:treeData 需为数组,每个节点的子节点通过 childrenField 指定的字段(默认 children)嵌套。
  • 选中值绑定:通过 v-model 绑定选中的节点值(单选为单个值,多选为数组)。
  • 禁用节点:可通过节点数据中的 disabledField 字段(默认 disabled)单独禁用某个节点。
http://www.xdnf.cn/news/19282.html

相关文章:

  • 【C++】C++入门——(上)
  • 用docker实现Redis主从配置
  • Android14 init.qcom.usb.rc详解
  • 2025年渗透测试面试题总结-38(题目+回答)
  • WebRTC音频QoS方法五(音频变速算法之Expand算法实现)
  • 订餐后台管理系统 -day03 登录模块
  • Electron 项目来实现文件下载和上传功能(AI)
  • 前端网页源码模板 静态HTML源码网站
  • 【C++八股文】计算机网络篇
  • 企业级-搭建CICD(持续集成持续交付)实验手册
  • Web开发工具一套式部署Maven/Nvm/Mysql/Redis
  • 【问题】Windows的dockerdesktop/wsl虚拟化支持问题总结
  • 2025年OE SCI2区TOP,势场蚁群算法+无人水面艇路径规划,深度解析+性能实测
  • RustDesk(跨平台远程桌面软件) v1.4.1 中文绿色版
  • 根据并发和响应延迟,实现语音识别接口自动切换需求
  • 「日拱一码」058 机器学习——监督学习
  • CesiumJS 封装 - 初始化与配置
  • 《零基础入门AI:YOLOv2算法解析》
  • 【菜狗每日记录】VSCode远程连接多个账号、创建环境
  • Linux Shell 脚本基础002
  • Day16(前端:JavaScript基础阶段)
  • 8月科技前沿速递 | 存算一体开发者社区月报
  • HCIE考试截图及作答文件上传流程
  • Baseline|基线
  • 在vue/react项目中单独引入一个js文件,在js文件中使用DOMContentLoaded函数querySelectorAll为空数组解决办法
  • OpenCV轮廓近似与Python命令行参数解析
  • 第四十七天(jndi注入)
  • 柳州市委常委、统战部部长,副市长潘展东率队首访深兰科技集团新总部,共探 AI 赋能制造大市与东盟合作新局
  • 前端vue框架实现反向代理详解
  • 响应式编程框架Reactor【3】