欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > vue3+element plus +el-tree-v2实现树形单选

vue3+element plus +el-tree-v2实现树形单选

2025/11/1 9:20:46 来源:https://blog.csdn.net/weixin_49078296/article/details/146602445  浏览:    关键词:vue3+element plus +el-tree-v2实现树形单选

需求:仅叶子节点可点击,非叶子节点只可展开收起

实现代码:

<template><el-tree-v2:data="data":props="props":node-key="nodeKey":default-expand-all="true"><template #default="{ node, data }"><div class="custom-tree-node"><!-- 只有叶子节点显示单选框 --><el-radiov-if="!node.children || node.children.length === 0":model-value="selectedNodeId":label="data.id"@click.stop="handleRadioClick(data.id)">{{ node.label }}</el-radio><!-- 非叶子节点只显示文本 --><span v-else>{{ node.label }}</span></div></template></el-tree-v2>
</template><script setup>
import { ref } from 'vue'const data = [// 你的树形数据{id: 1,label: '一级节点',children: [{id: 2,label: '二级节点',children: [{ id: 3, label: '三级节点1' },{ id: 4, label: '三级节点2' }]}]}
]const props = {label: 'label',children: 'children',
}const nodeKey = 'id'
const selectedNodeId = ref(null)const handleRadioClick = (id) => {selectedNodeId.value = idconsole.log('选中的节点ID:', id)
}
</script><style>
.custom-tree-node {flex: 1;display: flex;align-items: center;justify-content: space-between;padding-right: 8px;
}
</style>

实现效果:
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词