elementUI中el-tree组件单选没有复选框时,选中、current-node-key高亮、刷新后保留展开状态功能的实现

news2024/9/27 12:16:52

目录

  • 一、代码实现
    • 1. 属性了解 ([更多](https://element.eleme.cn/#/zh-CN/component/tree))
    • 2. 实现步骤
    • 3.代码示例
  • 二、 效果图

一、代码实现

1. 属性了解 (更多)

  1. node-key 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 String
  2. current-node-key 当前选中的节点 string, number
  3. expand-on-click-node 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 boolean — true
  4. default-expand-all 是否默认展开所有节点 boolean — false
  5. highlight-current 是否高亮当前选中节点,默认值是 false。 boolean — false
  6. check-on-click-node 是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。 boolean — false

2. 实现步骤

  1. 设置一个固定值 node-key=“id”, 根据实际项目配置唯一的标记

  2. 定义当前选中节点 :current-node-key=“currentDeptId”

  3. 设置highlight-current为true

  4. 设置current-node-key为currentDeptId,同时刷新接口时重新设置currentDeptId,代码如下

    this.$nextTick(() => {
     this.$refs['tree'].setCurrentKey(this.currentDeptId);
    })
    

    3.代码示例

    1.html部分

      <el-tree :data="deptOptions" :props="defaultProps" node-key="id" :expand-on-click-node="false"
           ref="tree" default-expand-all highlight-current @node-click="handleNodeClick"
              :current-node-key="currentDeptId" :check-on-click-node="true">
              <span class="custom-tree-node" slot-scope="{ node, data }">
                  <span>{{ node.label }} </span>
              </span>
       </el-tree>
    
    1. js部分:
       // 部门树选项
        deptOptions: undefined,
      // 配置选项
        defaultProps: {
            children: "children",
            label: "label",
        },
         //默认选中的部门
         currentDeptId: null,   // 比如:107
         currentDeptName: null, 
    	  methods: {
    	      // 节点单击事件
    	      handleNodeClick(data) {
    	          console.log(data, '节点单击事件')
    	          this.currentDeptId = data.id
    	          this.currentDeptName = data.label
    	      },
    	     }
    

    根据实际需要,在刷新下拉树的时候,这个currentDeptId,需要重置。(以便在刷新后,保留刷新前的选中状态)

     /** 查询下拉树结构 */
            getTreeselect() {
                deptTreeselect({
                 
                }).then((response) => {
                    this.deptOptions = response.data;
                    // 设置highlight-current为true
                    // 设置current-node-key为currentDeptId,同时刷新接口时重新设置currentDeptId,新后保留展开状态功能的实现 ,代码如下
                    // 设置选中
                    this.$nextTick(() => {
                        this.$refs["tree"].setCurrentKey(this.currentDeptId);
                    });
                });
            },
    
    1. css部分
    <style scoped>
    /*  鼠标hover改变背景颜色 */
      /deep/ .el-tree-node  .el-tree-node__content:hover {
        background-color: #f0f7ff !important;
        color: #409eff;
      }
      /*  颜色高亮 */
      /deep/ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
        color: #409eff;
      }
    </style>
    

    二、 效果图

    在这里插入图片描述

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

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

相关文章

WebAssembly002 FFmpegWasmLocalServer项目

项目介绍 https://github.com/incubated-geek-cc/FFmpegWasmLocalServer.git可将音频或视频文件转换为其他可选的多媒体格式&#xff0c;并导出转码的结果 $ bash run.sh FFmpeg App is listening on port 3000!运行效果 相关依赖 Error: Cannot find module ‘express’ …

2、安全开发-Python-Socket编程端口探针域名爆破反弹Shell编码免杀

用途&#xff1a;个人学习笔记&#xff0c;欢迎指正&#xff01; 目录 主要内容&#xff1a; 一、端口扫描(未开防火墙情况) 1、Python关键代码: 2、完整代码&#xff1a;多线程配合Queue进行全端口扫描 二、子域名扫描 三、客户端&#xff0c;服务端Socket编程通信cmd命…

Python GCN、GAT、MP等图神经网络学习,从入门全面概述和讲解GNN,入门到精通图神经网络

1. 图的分类&#xff1a; 1.1 根据边的方向性&#xff1a; 有向图&#xff08;Directed Graph&#xff09;&#xff1a;图中的边具有方向性&#xff0c;表示节点之间的单向关系。例如&#xff0c;A指向B的边表示节点A指向节点B。无向图&#xff08;Undirected Graph&a…

LeetCode热题HOT100【栈的压入、弹出序列】

&#x1f525;LeetCode热题HOT100【栈的压入、弹出序列】 1. 题目来源2.题目 1. 题目来源 来自LeetCode热题HOT100 https://leetcode.cn/studyplan/top-100-liked/?isDarktrue 2.题目 题目地址 Leetcode地址 3.Stack 在Java中&#xff0c;Stack 是一个基于后进先出&#…

SpringCloud服务通信

目录 Ribbon实现服务通信 创建工程product-basic-provider&#xff08;提供者&#xff09; 创建工程product-img-provider&#xff08;提供者&#xff09; 创建工程product-detail-api&#xff08;消费者&#xff09; OpenFeign实现服务通信 创建工程product-detail-api-…

关于Ubuntu下docker-mysql:ERROR 2002报错

报错场景&#xff1a; mysql容器创建好后登录mysql时即使密码正确也是报出下方提示&#xff1a; 原因是在创建mysql容器在创建时本地目录缺失&#xff0c; 先去自建一个目录&#xff0c;例如&#xff1a; /opt/my_sql 正确完整目录如下&#xff1a; docker run --namemys…

EasyCVR视频融合平台如何助力执法记录仪高效使用

旭帆科技的EasyCVR平台可接入的设备除了常见的智能分析网关与摄像头以外 &#xff0c;还可通过GB28181协议接入执法记录仪&#xff0c;实现对执法过程的全称监控与录像&#xff0c;并对执法轨迹与路径进行调阅回看。那么&#xff0c;如何做到执法记录仪高效使用呢&#xff1f; …

20240202在Ubuntu20.04.6下配置环境变量之后让nvcc --version显示正常

20240202在Ubuntu20.04.6下配置环境变量之后让nvcc --version显示正常 2024/2/2 20:19 在Ubuntu20.04.6下编译whiper.cpp的显卡模式的时候&#xff0c;报告nvcc异常了&#xff01; 百度&#xff1a;nvcc -v nvidia-cuda-toolkit rootrootrootroot-X99-Turbo:~/whisper.cpp$ WH…

【Python基础】matplotlib 使用指南

文章目录 matplotlib 使用指南1 matplotlib安装与基本介绍1.1 %matplotlib inline1.2 认识matplotlib图表 2 matplotlib基本使用2.1 参数2.2格式配置2.3设置x与y轴2.4 字体设置2.5 title/图例设置2.6 子图2.7 创建画布2.8 设置坐标轴 3 matplotlib常用的图表3.1 折线图3.1 散点…

vue3、vue2以及非vue项目中拖拽改变dom结构以及数组顺序 vuedraggable

文章目录 vue3、vue2以及非vue项目中拖拽改变dom结构以及数组顺序先看效果属性名称 说明具体代码 vue3、vue2以及非vue项目中拖拽改变dom结构以及数组顺序 参考链接&#xff0c;这个还有其他库的教程&#xff0c;可以收藏的 展示效果 github地址 vue.draggable.next 是一款vu…

如何使用 ZoomEye 搜索引擎保姆级教程(附链接)

一、介绍 ZoomEye&#xff08;中文名&#xff1a;钟馗之眼&#xff09;是一款专注于网络设备和物联网设备搜索的搜索引擎。它提供了一种通过互联网上的设备进行搜索的方式&#xff0c;使用户能够发现和分析各种连接到互联网的设备&#xff0c;包括服务器、路由器、摄像头、数据…

Linux 网络编程 + 笔记

协议&#xff1a;一组规则 分层模型结构&#xff1a; OSI七层模型&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP 4层模型&#xff1a;链路层/网络接口层、网络层、传输层、应用层 应用层&#xff1a;http、ftp、nfs、ssh、telnet、传输层&am…

【24美赛思路已出】2024年美赛A~F题解题思路已出 | 无偿自提

A题&#xff1a;资源可用性和性别比例 问题一&#xff1a; 涉及当灯鱼种群的性别比例发生变化时&#xff0c;对更大的生态系统产生的影响。为了分析这个问题&#xff0c;可以采用以下的数学建模思路&#xff1a;建立灯鱼种群模型&#xff1a; 首先&#xff0c;建立一个灯鱼种群…

爬虫入门到精通_基础篇4(BeautifulSoup库_解析库,基本使用,标签选择器,标准选择器,CSS选择器)

1 Beautiful说明 BeautifulSoup库是灵活又方便的网页解析库&#xff0c;处理高效&#xff0c;支持多种解析器。利用它不用编写正则表达式即可方便地实线网页信息的提取。 安装 pip3 install beautifulsoup4解析库 解析器使用方法优势劣势Python标准库BeautifulSoup(markup,…

Session与Cookie、部署redis、redis基本操作、Session共享

1 案例1&#xff1a;PHP的本地Session信息 1.1 问题 通过Nginx调度器负载后端两台Web服务器&#xff0c;实现以下目标&#xff1a; 部署Nginx为前台调度服务器调度算法设置为轮询后端为两台LNMP服务器部署测试页面&#xff0c;查看PHP本地的Session信息 1.2 方案 实验拓扑…

亚马逊新店铺视频怎么上传?视频验证失败怎么办?——站斧浏览器

亚马逊新店铺视频怎么上传&#xff1f; 登录亚马逊卖家中心&#xff1a;首先&#xff0c;卖家需要登录亚马逊卖家中心。在登录后&#xff0c;可以点击左侧导航栏上的“库存”选项&#xff0c;然后选择“新增或管理商品”。 选择商品&#xff1a;接下来&#xff0c;在“新增或…

如何部署Node.js服务并实现无公网ip远程访问本地项目【内网穿透】

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

YOLOv8进阶 | 如何用yolov8训练自己的数据集(以安全帽佩戴检测举例)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv8是一种目标检测算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的最新版本。本节课就带领大家如何基于YOLOv8来训练自己的目标检测模型&#xff0c;本次作者就以安全帽佩戴检测为案例进…

二叉树的最小深度

给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;2示例 2&#xff1a; 输入&…

postgres:锁申请

什么是弱锁&#xff0c;强锁&#xff1f; 为了提高并发控制&#xff0c;PG通过将锁信息在本地缓存&#xff08;**LOCALLOCK**&#xff09;和快速处理常见锁&#xff08;fastpath&#xff09;&#xff0c;减少了对共享内存的访问&#xff0c;提高性能。从而出现了弱锁和强锁的概…