当前位置: 首页 > 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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • k8s多节点集群搭建
  • 【运维】好用的线上项目运维命令
  • Java之线程篇四
  • 知识|智能网联汽车多域电子电气架构会如何发展?
  • unity 图片置灰shader
  • Datawhale------Tiny-universe学习笔记——Qwen(1)
  • 算法——贡献法
  • k8s 微服务 ingress-nginx 金丝雀发布
  • 几种修改docker默认存储位置的方法
  • Linux:RPM软件包管理以及Yum软件包仓库
  • Leetcode—环形链表||
  • 下载chromedriver驱动
  • openmv与stm32通信
  • 面试经典150题——多数元素
  • 基于深度学习的因果推理与决策
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Apache Pulsar 2.1 重磅发布
  • Bytom交易说明(账户管理模式)
  • Docker容器管理
  • Joomla 2.x, 3.x useful code cheatsheet
  • Kibana配置logstash,报表一体化
  • Mysql数据库的条件查询语句
  • Spark学习笔记之相关记录
  • tensorflow学习笔记3——MNIST应用篇
  • 程序员最讨厌的9句话,你可有补充?
  • 二维平面内的碰撞检测【一】
  • 检测对象或数组
  • 前端面试之闭包
  • 前端相关框架总和
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 说说动画卡顿的解决方案
  • 写代码的正确姿势
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ### RabbitMQ五种工作模式:
  • #数据结构 笔记一
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (function(){})()的分步解析
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (pojstep1.1.2)2654(直叙式模拟)
  • (pytorch进阶之路)扩散概率模型
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (WSI分类)WSI分类文献小综述 2024
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (转)linux 命令大全
  • **CI中自动类加载的用法总结
  • .gitignore
  • .net 7和core版 SignalR
  • .Net Core 中间件与过滤器
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .net下简单快捷的数值高低位切换