Vue el-tree 加载过滤出的父节点以及其包含的子节点

由于el-tree提供的过滤函数,过滤出来的目录节点不包含子节点,因此需要改造过滤函数,使其过滤出的目录节点包含子节点。

<template><div><el-input placeholder="请输入内容" v-model="filterText" clearable></el-input><el-tree :data="treeData" :filter-node-method="filterNode" ref="tree"></el-tree></div>
</template><script>
export default {data() {return {filterText: "",treeData: [{id: 1,label: "一级 1",children: [{id: 4,label: "二级 1-1",children: [{id: 9,label: "三级 1-1-1",},{id: 10,label: "三级 1-1-2",},],},],},{id: 2,label: "一级 2",children: [{id: 5,label: "二级 2-1",},{id: 6,label: "二级 2-2",},],},{id: 3,label: "一级 3",children: [{id: 7,label: "二级 3-1",},{id: 8,label: "二级 3-2",},],},],};},//实现输入就进行筛选功能,进行监听该值的变化watch: {filterText(val) {this.$refs.tree.filter(val);},},methods: {// 方法1//因为需要筛选出过滤的父节点以及其所有子节点,只调用element-ui自带的方法只会返回对应的数据,因此需要进行改造筛选条件filterNode(value, data, node) {if (!value) return true;// return data.label.indexOf(value) !== -1;//原有代码 不包含子节点let _array = []; //这里使用数组存储 只是为了存储值。this.getReturnNode(node, _array, value);let result = false;_array.forEach((item) => {result = result || item;});return result;},getReturnNode(node, _array, value) {let isPass =node.data && node.data.label && node.data.label.indexOf(value) !== -1;isPass ? _array.push(isPass) : "";if (!isPass && node.level != 1 && node.parent) {this.getReturnNode(node.parent, _array, value);}},// 方法2 速度更快filterNode(value, data, node) {if (!value) return true;// return data.label.indexOf(value) !== -1;//原有代码 不包含子节点let parentNode = node.parent,labels = [node.label],level = 1;while (level < node.level) {labels = [...labels, parentNode.label];parentNode = parentNode.parent;level++;}return labels.some((label) => label.indexOf(value) !== -1);},},
};
</script>
原有效果

在这里插入图片描述

改造后效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14646.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

认识O(NlogN)的排序

归并排序 归并排序&#xff08;任何一个递归&#xff09;如果不懂可以画一个树状结构去帮助自己去理解。 核心排序方法为Merger public class 归并排序 {public static void main(String[] args) {int[] arr1 {3, 1, 2, 2, 5, 6};int[] arr2 Arrays.copyOf(arr1, arr1.len…

如何使用Gemini模型,国内如何订阅购买Gemini Pro的教程,Gemini Pro 免费试用操作步骤, 谷歌 aistudio 使用入口

最近的榜首又被Gemini给霸占了&#xff0c;很多童鞋想要体验一翻 Gemini免费库模型更新了 Gemini2.0向所有人开放了&#xff01;使用了真香 目前呢2.0flash和Gemini-2.0-Flash-Thinking-Exp、Gemini-2.0-Flash-Thinking-Exp-with-apps已经免费给所有注册用户开放了&#xff0c…

【数据结构】(7) 栈和队列

一、栈 Stack 1、什么是栈 栈是一种特殊的线性表&#xff0c;它只能在固定的一端&#xff08;栈顶&#xff09;进行出栈、压栈操作&#xff0c;具有后进先出的特点。 2、栈概念的例题 答案为 C&#xff0c;以C为例进行讲解&#xff1a; 第一个出栈的是3&#xff0c;那么 1、…

安宝特方案 | AR助力制造业安全巡检智能化革命!

引言&#xff1a; 在制造业中&#xff0c;传统巡检常面临流程繁琐、质量波动、数据难以追溯等问题。安宝特AR工作流程标准化解决方案&#xff0c;通过增强现实AR技术&#xff0c;重塑制造业安全巡检模式&#xff0c;以标准化作业流程为核心&#xff0c;全面提升效率、质量与…

语言月赛 202308【小粉兔做麻辣兔头】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202308] 小粉兔做麻辣兔头 题目描述 粉兔喜欢吃麻辣兔头&#xff0c;麻辣兔头的辣度分为若干级&#xff0c;用数字表示&#xff0c;数字越大&#xff0c;兔头越辣。为了庆祝粉兔专题赛 #1 的顺利举行&#xff0c;粉兔要做一些麻…

Dify Ollama本地私有化模型实践

今天给大家带来一篇deepseek本地部署&#xff0c;笔者最近由于研究AI大模型应用开发&#xff0c;笔记较少&#xff0c;后面将持续输出关于AI行业应用知识&#xff0c;请大家继续关注&#xff0c;话不多说&#xff0c;开始吧&#xff0c;啊哈哈。 DeepSeek 呢&#xff0c;最近十…

Kafka中的KRaft算法

我们之前的Kafka值依赖于Zookeeper注册中心来启动的&#xff0c;往里面注册我们节点信息 Kafka是什么时候不依赖Zookeeper节点了 在Kafka2.8.0开始就可以不依赖Zookeeper了 可以用KRaft模式代替Zookeeper管理Kafka集群 KRaft Controller和KRaft Leader的关系 两者关系 Lea…

GitPuk快速安装配置教程(入门级)

GitPuk是一款国产开源免费的代码管理工具&#xff0c;工具简洁易用&#xff0c;开源免费&#xff0c;本文将讲解如何快速安装和配置GitPuk&#xff0c;以快速入门上手。 1、安装 支持 Windows、Mac、Linux、docker 等操作系统。 1.1 Linux安装&#xfeff; 以下以Centos7安装…

2025年02月08日Github流行趋势

项目名称&#xff1a;anything-llm 项目地址url&#xff1a;https://github.com/Mintplex-Labs/anything-llm项目语言&#xff1a;JavaScript历史star数&#xff1a;34323今日star数&#xff1a;675项目维护者&#xff1a;timothycarambat, shatfield4, MrSimonC, franzbischof…

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现&#xff08;概念性&#xff09; 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…

Linux之kernel(1)系统基础理论(1)

Linux之Kernel(1)系统基础理论(1) Author: Once Day Date: 2025年2月6日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: Linux内核知识_Once-Day的…

从 Facebook 到元宇宙:社交网络的技术进化与前景

引言 社交网络的演变不仅仅是技术进步的体现&#xff0c;更是人类沟通方式革命的缩影。从 Facebook 的诞生到元宇宙的兴起&#xff0c;我们见证了社交互动从简单的信息交换到沉浸式虚拟体验的转变。本文将探讨这一技术演进的历程&#xff0c;并展望社交网络在元宇宙时代的新形…

内容中台赋能人工智能技术提升业务创新能力

内容概要 在当今快速变化的市场环境中&#xff0c;企业需要不断寻求创新以保持竞争力。内容中台作为一种新型的内容管理架构&#xff0c;能够极大地提升企业在内容创建、管理和分发方面的效率。通过与人工智能技术的深度融合&#xff0c;企业能够将海量的数据和信息转化为有价…

qt部分核心机制

作业 1> 手动将登录项目实现&#xff0c;不要使用拖拽编程 并且&#xff0c;当点击登录按钮时&#xff0c;后台会判断账号和密码是否相等&#xff0c;如果相等给出登录成功的提示&#xff0c;并且关闭当前界面&#xff0c;发射一个跳转信号&#xff0c;如果登录失败&#…

深度解析全钢陶瓷防静电地板在机房装修中应用较多的原因

全钢陶瓷防静电地板之所以在机房装修中应用较多&#xff0c;是因为它结合了全钢结构和陶瓷面层的双重优势&#xff0c;能够满足高要求场景&#xff08;如数据中心、实验室、医疗设施等&#xff09;对防静电性能、承重能力、耐用性及环境适应性的综合需求。以下是具体原因分析&a…

数据表中的视图操作

文章目录 一、视图概述二、为什么要使用视图三、创建视图四、查看视图 一、视图概述 小学的时候&#xff0c;每年都会举办一次抽考活动&#xff0c;意思是从每一个班级里面筛选出几个优秀的同学去参加考试&#xff0c;这时候很多班级筛选出来的这些同学就可以临时组成一个班级…

zzcms接口index.php id参数存在SQL注入漏洞

zzcms接口index.php id参数存在SQL注入漏洞 漏洞描述 ZZCMS 2023中发现了一个严重漏洞。该漏洞影响了文件/index.php中的某些未知功能,操纵参数id会导致SQL注入,攻击可能是远程发起的,该漏洞已被公开披露并可被利用。攻击者可通过sql盲注等手段,获取数据库信息。 威胁等级:…

Mobaxterm上传下载文件

上传文件 ctrl 右击,选择send file use z-modem 弹窗选择要上传的文件即可 下载文件 输入sz xxx.log ctrl 右击,选择receive file use z-modem 弹窗选择要文件下载的路径即可

cs106x-lecture2(上)(Autumn 2017)

打卡cs106x(Autumn 2017)-lecture2 1、parameterMysteryBCA What is the output of the following code? void mystery(int& b, int c, int& a) {a;b--;c a; } ​ int main() {int a 5;int b 2;int c 8;mystery(c, a, b);cout << a << " "…

e2studio开发RA2E1(9)----定时器GPT配置输入捕获

e2studio开发RA2E1.9--定时器GPT配置输入捕获 概述视频教学样品申请硬件准备参考程序源码下载选择计时器时钟源UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uart_callback ()printf输出重定向到串口定时器输入捕获配…