element中Tree 树形控件实现节点过滤和懒加载节点

目录

  • 1.代码实现
  • 2. 效果图
  • 3. 使用到的部分属性说明
  • 4. 更多属性配置查看element官网

1.代码实现

<template><div class="TreePage"><el-row :gutter="20"><!--村数据--><el-col :span="24"><div class="head-container"><el-input v-model="deptName" placeholder="请输入名称" clearable size="small" prefix-icon="el-icon-search"style="margin-bottom: 20px" /></div><!-- 组织树 --><div class="head-container"><el-tree ref="tree" :props="defaultProps" :default-expanded-keys="treeData" :expand-on-click-node="false":load="loadNode" lazy node-key="deptId" :filter-node-method="filterNode" @node-click="handleNodeClick" /></div></el-col></el-row></div>
</template><script>
// import { lazyList } from '@/api/manager/tree'
export default {name: "TreePage",props: {},data() {return {// 模拟数据analoDdata_01: [{"deptId": 100,"parentId": 0,"parentName": null,"ancestors": "0","deptName": "XX街道","children": [],"existSub": true, //是否还存在下级}],analoDdata_02: [{"deptId": 1201,"parentId": 100,"parentName": null,"ancestors": "0,100","deptName": "XX01村","children": [],"existSub": true},{"deptId": 1202,"parentId": 100,"parentName": null,"ancestors": "0,100","deptName": "XX02村","children": [],"existSub": true},{"deptId": 1203,"parentId": 100,"parentName": null,"ancestors": "0,100","deptName": "XX03村","children": [],"existSub": false}],// 村名称deptName: undefined,defaultProps: {children: 'children',label: 'deptName',isLeaf: 'leaf',//指定节点是否为叶子节点,仅在指定了 lazy 属性的情况下生效},// 默认展开的节点的 key 的数组treeData: [],};},watch: {// 在需要对节点进行过滤时,调用 Tree 实例的filter方法,参数为关键字。// 需要注意的是,此时需要设置filter-node-method,值为过滤函数。// 根据名称筛选村社树deptName(val) {this.$refs.tree.filter(val)}},methods: {//  关于树懒加载 (组件加载完成后,会主动触发一次),后续则是点击时候会触发,// 或者通过default-expanded-keys默认展开的节点的 key 的数组来触发这个方法,实现指定加载哪几层的数据。loadNode(node, resolve) {console.log(node, 'node')// 如果展开第一级节点,从后台加载一级节点列表if (node.level == 0) { // 获取第一层 也就是 analoDdata_01的数据console.log('第一级节点')const queryParams = {}this.loadNodeHandle(resolve, queryParams, 1) //1获取模拟数据需要,实际可不用传递}// 如果展开其他级节点,动态从后台加载下一级节点列表if (node.level >= 1) { // 获取第一层的下级 也就是 analoDdata_02的数据console.log('其他级节点')const queryParams = {}// 根据当前节点的id,查询他下级的相关节点queryParams.parentId = node.keythis.loadNodeHandle(resolve, queryParams, 2)// 2获取模拟数据需要,实际可不用传递}},async loadNodeHandle(resolve, queryParams, type) {console.log(queryParams, 'queryParams')// 根据实践项目调用接口// const list = await lazyList(queryParams).then(res => {//   console.log(res, '关于树懒加载')//   res.data.forEach(item => {//     item.leaf = !item.existSub//   })//   return res.data// })// 模拟数据let list = [];if (type == 1) {list = this.analoDdata_01list.forEach(item => {item.leaf = !item.existSub})} else if (type == 2) {list = this.analoDdata_02list.forEach(item => {item.leaf = !item.existSub})}// 根据某些条件,获取到需要默认展开的节点的 key 的数组 this.treeData; // this.treeData 中的id对应的节点,都会默认加载loadNode方法获取其下级数据,并展开;if (list.length == 1) {list.forEach(element => {this.treeData.push(element.deptId)})}return resolve(list)},// 过滤函数filterNode(value, data) {// console.log(value, data)if (!value) return truereturn data.deptName.indexOf(value) !== -1},// 左侧网格树-节点单击事件handleNodeClick(data) {console.log(data, '左侧网格树-节点单击事件')},},};
</script>

2. 效果图

在这里插入图片描述

3. 使用到的部分属性说明

  1. default-expanded-keys: 默认展开的节点的 key 的数组;
  2. expand-on-click-node: 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点;
  3. load :加载子树数据的方法,仅当 lazy 属性为true 时生效;
  4. lazy :是否懒加载子节点,需与 load 方法结合使用;
  5. node-key :每个树节点用来作为唯一标识的属性,整棵树应该是唯一的;
  6. filter-node-method: 对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏;
  7. node-click :节点被点击时的回调;

4. 更多属性配置查看element官网

https://element.eleme.cn/#/zh-CN/component/tree

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

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

相关文章

平安人寿新疆分公司:深化消费帮扶,为乡村振兴注入平安力量

为深入贯彻关于“三农”工作的重要论述&#xff0c;落实自治区乡村振兴局的指导部署&#xff0c;近日&#xff0c;平安人寿新疆分公司一把手刘湑杰总一行赴和田县访惠聚驻村工作队走访&#xff0c;慰问了驻村工作队、五老人员及困难村民。 期间&#xff0c;刘湑杰总一行调研了…

【ROS2】MOMO的鱼香ROS2(五)ROS2入门篇——ROS2接口与自定义

ROS2接口与自定义 引言1 ROS2自带接口1.1 ROS2通用标准消息包1.2 ROS2传感器消息包1.3 ROS2几何相关消息包 2 ROS2接口介绍2.1 常用CLI命令2.2 原始数据类型与包装类型 3 自定义接口示例3.1 接口定义3.2 自定义接口RCLPY 引言 笔者跟着鱼香ROS的ROS2学习之旅 学习参考&#xf…

印刷企业MES管理系统需求分析时哪些方面需要注意

随着数字化和智能化技术的快速发展&#xff0c;MES管理系统在印刷企业中扮演着越来越重要的角色。为了确保MES管理系统的成功实施&#xff0c;对需求进行深入分析是至关重要的。本文将探讨在印刷企业MES管理系统需求分析中&#xff0c;哪些方面是值得特别关注的。 1、生产流程的…

代码随想录刷题笔记(DAY 7)

今日总结&#xff1a;前端开始学习 vue3 的新特性&#xff0c;花费时间比较多&#xff0c;今天的题目后面有点难度&#xff0c;明天抽时间复习一下。 Day 7 01. 四数相加 II&#xff08;No. 454&#xff09; 题目链接 代码随想录题解 1.1 题目 给你四个整数数组 nums1、nu…

上海亚商投顾:创业板指低开低走 煤炭等周期股逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日弱势震荡&#xff0c;创业板指低开低走&#xff0c;尾盘跌超1.8%&#xff0c;北证50指数则拉升涨超2%…

x-cmd pkg | trafilatura - 网络爬虫和搜索引擎优化工具

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trafilatura 是一个用于从网页上提取文本的命令行工具和 python 包: 提供网络爬虫、下载、抓取以及提取主要文本、元数据和评论等功能可帮助网站导航和从站点地图和提要中提取链接无需数据库&#xff0c;输出即可转换…

【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Docker-compose使用全解 一)

Docker-compose使用全解 Compose介绍Compose的作用和职能 Compose和Docker兼容性安装docker-compose添加可执行权限 Docker Compose常用配置imagebuildcontext上下文指定镜像名args构建环境变量 commanddepends_onports特殊映射关系 volumesenvironment Docker Compose命令详解…

关于简单的数据可视化

1. 安装数据可视化必要的openpyxl、pandas&#xff0c;matplotlib等软件包 使用清华源&#xff0c;命令如下&#xff1a; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pandaspip install -i https://pypi.tuna.tsingh…

ModStartCMS v7.9.0 内容推荐支持,用户授权升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

SomeIP/CommonAPI与Franca IDL使用教程(一)

回顾 SomeIP/CommonAPI环境搭建可以看我上一篇博客&#xff1a;Ubuntu环境下SomeIP/CommonAPI环境搭建详细步骤 什么是SomeIP SOME/IP&#xff08;Service-Oriented Middleware over IP&#xff09;是一种基于IP网络的通信协议&#xff0c;旨在支持汽车电子系统和嵌入式系统…

WSL 与真实 linux 环境区别有多大?

随着 Windows 系统的不断发展和完善&#xff0c;WSL&#xff08;Windows Subsystem for Linux&#xff09;作为 Windows 10 的一个功能&#xff0c;为 Windows 用户提供了一个可以在 Windows 环境下运行 Linux 二进制可执行文件的环境。然而&#xff0c;尽管 WSL 为用户提供了一…

海外SaaS应用加速难题如何破解?

随着云计算和软件即服务&#xff08;SaaS&#xff09;的发展&#xff0c;海外SaaS软件展现的优势逐渐体现&#xff0c;越来越多企业开始利用其进行降本增效。但是&#xff0c;海外SaaS软件的使用过程中常有问题出现&#xff0c;下文将介绍这些难题以及如何进行海外SaaS应用加速…

Java项目:107SpringBoot房屋租赁网站

博主主页&#xff1a;Java旅途 简介&#xff1a;分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 房屋租赁网站基于SpringBootMybatis开发&#xff0c;系统分为管理员和普通用户两种角色。 管理员功能如下&#xff1a; 登录修改密码查看用户房屋管理图…

图像的腐蚀与膨胀

图像的腐蚀与膨胀 设集合 B B B的反射为 B ^ \hat{B} B^&#xff0c;其定义如下 B ^ { w ∣ w − b , b ∈ B } \hat{B}\begin{Bmatrix}w|w-b,b\in B\end{Bmatrix} B^{w∣w−b,b∈B​} 设集合 B B B按照点 z ( z 1 , z 2 ) z(z_1,z_2) z(z1​,z2​)平移得到集合 ( B ) z (…

数据结构学习 jz46把数字翻译成字符串

关键词&#xff1a;动态规划 字符串 数组 滚动数组优化 这道题还算简单&#xff0c;调滚动数组废了点时间&#xff0c;dp状态和转移方程比较容易推出。 用时28mins。 题目&#xff1a; 思路&#xff1a; 把ciphertext拆成一个一个数字的方法&#xff1a; 求10的余数得到最…

AI边缘计算智能分析网关V4如何配置周界入侵检测算法

旭帆科技的智能分析网关V4内含近40种智能分析算法&#xff0c;包括人体、车辆、消防、环境卫生、异常检测等等&#xff0c;在消防安全、生产安全、行为检测等场景应用十分广泛&#xff0c;如常见的智慧工地、智慧校园、智慧景区、智慧城管等等&#xff0c;还支持抓拍、记录、告…

一个人去广东怎么找工作

广东这么大&#xff0c;不用怕没有学历活不下去。没有学历想好好活下去&#xff0c;就得卖力气。 广东找工作上 吉鹿力招聘网 打开 吉鹿力招聘网 “注册账号”&#xff0c;然后输入个人基本信息&#xff0c;进行注册&#xff08;可使用手机号注册&#xff0c;也可以使用邮箱注…

stable diffusion 基础教程-提示词之光的用法

基图 prompt: masterpiece,best quality,1girl,solo,looking at viewer,brown hair,hair between eyes,bangs,very long hair,red eyes,blush,bare shoulders,(white sundress),full body,leaning forward,medium breasts,unbuttoned clothes,Negative prompt: EasyNegativ…

【MPC学习笔记】02:MPC详细简介(Lecture 1_1 Unconstrained MPC)

本笔记来自北航诸兵老师的课程 课程地址&#xff1a;模型预测控制&#xff08;2022春&#xff09;lecture 1-1 Unconstrained MPC 接上一篇&#xff1a;【MPC学习笔记】01&#xff1a;MPC简介&#xff08;Lecture 1_1 Unconstrained MPC&#xff09; 文章目录 1 详细介绍1.1 状…