Element-Plus组件Tree树形控件时,传输失去父节点和回显父节点下的子节点全选问题解决

news2024/9/21 2:39:54

使用环境

Vue 3 in Vite

Element-Plus

JS语法(非TS)

问题描述:

在使用Element-Plus组件Tree树形控件时,会出现如下问题:

1、子节点未全选时,往后端传输的选中节点没有包含父节点。

如下图,往后端传选中节点时,无法传输父节点Level one 2的信息

2、从后端获取数据渲染时,如果获取的数据不是全选的,回显时父节点下的所有数据会自动全选。

如下图,当我只传输父节点下的部分节点时,我获取数据会显示父节点下的所有子节点会自动全选。

解决问题:

组件在页面中的显示代码

<template>
  <div>
    <el-tree ref="rabcTree" :data="menuListData" show-checkbox node-key="id" :props="defaultProps" />
  </div>
</template>
<script setup>
// 只展示关键代码
const rbacChecked = ref([])
const menuListData = ref([])
const defaultProps = ref({
    children: 'children',
    label: 'name'
})
</script>

1、子节点未全选时,往后端传输的选中节点没有包含父节点。解决办法如下:

function editRbac() {
    // 此处获取已选取的节点,不包含父节点
    let permissionids = rabcTree.value.getCheckedKeys(false)
    // rabcTree.value.getHalfCheckedKeys()获取的是父节点,通过concat将父节点拼接,传入后端
    const permissionParams = {
        // 获取全选中的id
        ids: permissionids.concat(rabcTree.value.getHalfCheckedKeys()),
        // 将两个数组进行拼接
        id: roleid.value
    }
    authorizePut(permissionParams).then(response => {
        ElMessage({
            message: '修改成功!',
            type: 'success',
            duration: 5 * 1000
            })
    })
}

2、从后端获取数据渲染时,如果获取的数据不是全选的,回显时父节点下的所有数据会自动全选。解决办法如下:

// 处理子父节点关联问题,在请求数据方法获取后添加以下代码
nextTick(() => {
    rbacChecked.value.forEach((i, n) => {
    let node = rabcTree.value.getNode(i);
    // 如果是叶子节点就设置
    if (node.isLeaf) {
        rabcTree.value.setChecked(node, true, true);
    }
     else{
        rabcTree.value.setChecked(node, true);
    }
    });
});

原文地址:http://www.article.wang/portal/article/8

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

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

相关文章

学习大数据DAY33 Flask 库 API 开发介绍,OS 库,pandas 库和简单爬虫

目录 Python API 接口开发用法介绍 Postman 调试接口 OS 库 pandas Pandas 数据结构 - Series Pandas 处理数据方法 Pandas CSV 文件 Pandas JSON Pandas excel 文件 上机练习 11 爬虫 爬取所有数据 pandas 分析处理数据 导入到 mysql 上机练习 12---使用爬虫pan…

Ubuntu 24.04 LTS安装elasticsearch-8.14.3+Kibana

1.安装Elasticsearch 1.1 下载Elasticsearch # 1. 更新包索引 sudo apt update# 2. 升级已安装的软件包 sudo apt upgrade -y# 3. 进入 /opt 目录 cd /opt# 4. 下载Elasticsearch压缩包 sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.…

国产化飞腾D2000独显可插拔式OPS电脑主板,应用于信创教育、信创会议、信创办公等领域

国产化飞腾D2000 主板规格书 产品概述 XM-F611是我司自主研发设计的一款独显可插拔式OPS电脑主板&#xff0c;符合Intel OPS(Open Pluggable Specification)标准规范。采用飞腾腾锐D2000八核处理器加国产独立显卡&#xff0c;搭配国产银河麒麟或统信操作系统&#xff0c;能够…

sparkhive--练习2

需求&#xff1a; 在hive中创建对应表&#xff0c;并且导入数据&#xff0c;使用spark完成对应的查询 stu_name course score 张三 语文 98 张三 数学 95 张三 英语 89 李四 语文 97 李四 数学…

【天数计算】输入某年某月某日,判断这一天是这一年的第几天

要求&#xff1a;输入某年某月某日&#xff0c;判断这一天是这一年的第几天&#xff0c;使用C语言实现 #include<stdio.h>int dayYear(int year,int month,int day){int days_in_month[] {0,31,28,31,30,31,30,31,31,30,31,30,31};int i,days0;for(i1;i<month;i){da…

分类预测|基于粒子群优化核极限学习机的Adaboost集成模型数据分类预测Matlab程序 PSO-KELM-Adaboost

分类预测|基于粒子群优化核极限学习机的Adaboost集成模型数据分类预测Matlab程序 PSO-KELM-Adaboost 文章目录 前言分类预测|基于粒子群优化核极限学习机的Adaboost集成模型数据分类预测Matlab程序 PSO-KELM-Adaboost 一、PSO-KELM-Adaboost模型1. 核化极限学习机 (KELM)2. 粒子…

5G边缘计算网关应用

在信息技术浪潮的推动下&#xff0c;5G网络与边缘计算的结合正快速地推动着人们步入一个前所未有的智能生活新纪元。5G边缘计算网关作为两者融合的重要枢纽&#xff0c;其应用领域的拓展和优势表现越来越受到企业和行业的重视。      5G边缘计算网关的技术背景   5G网络为…

WEB应用(十三)---RCE

什么是RCE&#xff1f; Remote Command/Code Execute&#xff0c;远程命令或代码执行。通过构造特殊的字符串&#xff0c;将数据提交至Web应用程序&#xff0c;并利用该方式执行外部程序或系统命令实施攻击&#xff0c;类似于SQL注入。 Web应用程序使用了一些可以执行系统命令或…

多变量时间序列生成模型GAN介绍与实现

目录 1. 模型介绍2. 问题提出3. 模型具体实现3.1 数据预处理3.2 生成对抗网络&#xff08;GAN&#xff09;结构3.3 模式崩溃解决3.4 合成数据验证 4. 代码实现参考文献 1. 模型介绍 在大数据时代&#xff0c;生成逼真的时间序列数据对于负载平衡、负载预测和智能资源配置等方面…

openwrt 性能工具perf和cpu占用查看工具sysstat编译及使用

代码使用的lean源码&#xff0c;只需要用make menuconfig打开perf对应的编译选项即可 1.第一步选择Global build settings 2.第二步选择Kernel build options 3.第三步选择Enable kernel cgroups 4.第四步选择Enable perf_event per-cpu per-container group (cgroup) monitor…

计算机网络-CSP初赛知识点整理

历年真题 [2016-NOIP-普及-第3题] 以下不属于无线通信技术的是( ) A. 蓝牙 B. Wifi C. GPRS D. 以太网 [2015-NOIP-普及-第10题] FTP 可以用于( )。 A. 远程传输文件 B. 发送电子邮件 C. 浏览网页 D. 网上聊天 [2019-CSP-J-第1题] 中国的国家顶级域名是( ). A. .cn B. .ch C.…

国内自闭症学校指南:了解孩子的康复需求和解决方案

在国内&#xff0c;自闭症儿童的数量逐年增加&#xff0c;为他们提供专业的教育和康复支持变得至关重要。对于家长来说&#xff0c;选择一所合适的自闭症学校是帮助孩子走向康复的关键一步。在众多的选择中&#xff0c;星贝育园以其独特的优势和全面的服务脱颖而出。 当孩子被诊…

android系统中data下的xml乱码无法查看问题剖析及解决方法

背景&#xff1a; Android12高版本以后系统生成的很多data路径下的xml都变成了二进制类型&#xff0c;根本没办法看xml的内容具体如下&#xff1a; 比如想要看当前系统的widget的相关数据 ./system/users/0/appwidgets.xml 以前老版本都是可以直接看的&#xff0c;这些syste…

Cxx primer-chap13-Copy Control

copy控制涉及类的五个成员函数&#xff1a;&#xff0c;这五个成员函数被显式或隐式的被调用&#xff0c;各司其职&#xff1a;我们必须根据类的实际情况来确定是否需要显式定义这些成员函数&#xff1a;什么是拷贝构造函数呢&#xff1f;简单讲就是该函数的第一个形参是refere…

malloc函数与free函数

目录 开头1.怎样把数组初始化时的项数变成变量?malloc函数free函数 2.malloc函数与free函数的实际运用CC6 牛牛的排序随机乱码打印随机数组打印 结尾 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我们来学一下如何把数组初始化时的项数变成变量的一些知识。 1.怎…

【书生大模型实战营第三期 | 入门岛第3关-Git 基础知识】

学习Git版本控制系统心得体会 摘要 通过参与InternLM Git教程&#xff0c;我对Git这一开源的分布式版本控制系统有了更深入的理解和实践。Git以其高效的团队协作能力、详尽的代码历史记录以及灵活的分支管理功能&#xff0c;成为软件开发中不可或缺的工具。 文章大纲 Git简介…

自查出癌症后 凯特王妃的生活观发生了变化 王室的粉丝们也应该会很少见到她

凯特米德尔顿今年的健康问题令人意外,这也改变了王室的面貌。这位威尔士王妃每次露面都引来巨大关注,因此王室不得不发挥创意,将更多精力放在威廉王子、索菲、爱丁堡公爵夫人,甚至查理三世国王的社交日程上。王室粉丝们可能期待着凯特恢复健康,恢复正常日程,但内部人士称…

unity 粒子系统学习

差不多了解了基本的ui面板&#xff0c;学一下粒子系统 取消轮廓线 这样粒子biubiu的时候就没有橙黄色的轮廓线了

lvs的dr模式实现

目录 一、实验环境准备 1、五台红帽9系统的主机 2、关闭所有的防火墙以及关闭selinux 二、在lvs中配置 1、在lvs中安装lvs软件并设置开机启动 2、在lvs中打开内核路由功能&#xff0c;并把它写入/etc/sysctl.conf文件中 3、webserver1和webserver2下载httpd 4、在lvs主机…

【Redis进阶】Redis单线程模型和多线程模型

目录 单线程 为什么Redis是单线程 处文件事件理器的结构 文件处理器的工作流程 总结 文件事件处理器 连接应答处理器 命令请求处理器 命令回复处理器 多线程 为什么引入多线程 多线程架构 多线程执行流程 关于Redis的问题 Redis为什么采用单线程模型 Redis为什…