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

vue使用TreeSelect设置带所有父级节点的回显

在这里插入图片描述
Element Plus的el-tree-select组件

思路: 选中节点时,给选中的节点赋值 pathLabel,pathLabel 为函数生成的节点名字拼接,数据源中不包含。
在el-tree-select组件中设置 props=“{ label: ‘pathLabel’ }” 控制选中时input框中回显的字段。选择项的名称(option-label)使用插槽#default控制。

<template>
<div class="content"><el-tree-select filterable :data="deptData" :props="{ value: 'id', label: 'pathLabel', children: 'children' }"@change="handleDeptData" node-key="id"class="w100" clearable placeholder="请选择/输入分组"check-strictly :render-after-expand="true"v-model="deptIds"><template #default="{ data: { name } }"><span>{{ name }}</span></template></el-tree-select>
</div>
</template>
<script setup lang="ts">
const deptIds = ref('')
const deptData = ref([{id: 1100, name: '第一级', children: [{ id: 1101, name: '1-1' ,children: [{ id: 110101, name: '1-1-1' },{ id: 110102, name: '1-2-2' },{ id: 110103, name: '1-3-3' },] },{ id: 1102, name: '1-2' },{ id: 1103, name: '1-3' },]},{id: 1200, name: '第二级', children: [{ id: 1201, name: '2-1' },{ id: 1202, name: '2-2' },{ id: 1203, name: '2-3' },]},
])
const handleDeptData = (deptId: string) => {findPath(deptData.value, deptId);
}// 根据分组id获取分组名
function findPath(tree:any, targetId:string) {let path = [];let currentNode;// 查找节点function findNode(nodes, currentPath) {for (let node of nodes) {const newPath = [...currentPath, node.name];if (node.id === targetId) {currentNode = node;path = newPath;return true;}if (node.children && findNode(node.children, newPath)) {return true;}}return false;}findNode(tree, []);// 选中节点赋值 pathLabelif (currentNode) currentNode.pathLabel = path.length ? path.join('/') : null;return path.length ? path.join('/') : null;
}
</script>
http://www.lryc.cn/news/439454.html

相关文章:

  • 智能机巢+无人机:自动化巡检技术详解
  • 摩托车加装车载手机充电usb方案/雅马哈USB充电方案开发
  • 进阶岛 任务3: LMDeploy 量化部署进阶实践
  • vue 使用jszip,file-saver下载压缩包,自定义文件夹名,文件名打包下载为zip压缩包文件,全局封装公共方法使用。
  • 计网八股文
  • [001-03-007].第07节:Redis中的事务
  • WLAN实验简述
  • Docker简介在Centos和Ubuntu环境下安装Docker
  • C:字符串函数(续)-学习笔记
  • Depth靶机详解
  • go get -u @latest没有更新依赖模块
  • 介绍一些免费 的 html 5模版网站 和配色 网站
  • 【C++】入门基础(下)
  • Spring Boot 集成 MongoDB - 入门指南
  • 基于云计算的虚拟电厂负荷预测
  • Android应用性能优化
  • fiddler抓包01:工具介绍
  • Spring Boot母婴商城:打造一站式购物体验
  • 【面试八股总结】GC垃圾回收机制
  • arcgisPro修改要素XY容差
  • Java 21的Enhanced Deprecation的笔记
  • Ubuntu下Git使用教程:从入门到实践
  • 【开放词汇检测】基于MMDetection的MM-Grounding-DINO实战
  • PLC-Recorder 对西门子传动的采集方法
  • 【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议
  • centos更改静态ip
  • YOLOv5/v8 + 双目相机测距
  • 双三次插值及MATLAB实现
  • Kubernetes 持续集成与交付(CI/CD)
  • 【Rust练习】14.流程控制