vue3 处理elementPlus的Tree树状结构的选中和编辑数据回显

 <!-- 添加角色 请求菜单:props="{ children: 'children', label: 'name' }" children:后端返回的子集结构的key label:name后端返回的名字:data="menus"  menus是后端返回的菜单权限列表--><el-treeref="elTreeRef":data="menus"show-checkboxnode-key="id"@check="handleCheckChange":props="{ children: 'children', label: 'name' }"/>

1:点击新建弹出Tree组件

		**1-1:首先调接口获取你的权限列表数据**
//我调取了 直接在vuex获取就可以了
//传到<el-tree :data="menus"/> 显示Tree结构 如下图
const menus = computed(() => {return store.state.entireMenu;
});

在这里插入图片描述

2:选中Tree选项

选中触发  @check事件

在这里插入图片描述

// 选中的权限
import {ref}  from  'vue'
const otherInfo=ref({})
const handleCheckChange = (data1: any, data2: any) => { // 选中的子节点(系统总览下的核心技术39);const checkedKeys = data2.checkedKeys;// 父节点38const halfCheckedKeys = data2.halfCheckedKeys;// 另外一种可能如果当前的父子节点选中之后 会全部存放在checkedKeysconst menuList = [...checkedKeys, ...halfCheckedKeys];otherInfo.value = { menuList: menuList };
};

3:选择完毕之后点击确定发送请求

import {useStore}  from '@/store'
const store=useStore()
//拿着选中的数据调用接口即可 这里接口在veux写好的,不在展示具体的代码
const handleConfirmClick=()=>{store.dispatch("system/createPageDataAction", {pageName:'role',newData: { ...otherInfo},});
}  

--------------------编辑的操作

我们都知道 列表可以定义scope scope.row就可以获取当前行的数据

  <template #handler="scope"><div class="handle-btns"><el-buttonv-if="isUpdate"type="text"size="mini"icon="el-icon-edit"@click="editCallback(scope.row)">编辑</el-button></div></template><script setup  lang='ts'> import {nextTick}  from 'vue';import { ElTree } from "element-plus";const  MenuMapLeafKeys=()=>{const leftKeys: number[] = []const _recurseGetLeaf = (menuList: any[]) => {for (const menu of menuList) {if (menu.children) {_recurseGetLeaf(menu.children);} else {leftKeys.push(menu.id)}}}_recurseGetLeaf(menuList)return leftKeys}const elTreeRef = ref<InstanceType<typeof ElTree>>(); // 点击编辑 拿到当前行的数据const editCallback = (item: any) => {//调用上面的函数 遍历出菜单的idconst leafKeys = MenuMapLeafKeys(item.menuList);nextTick(() => {elTreeRef.value?.setCheckedKeys(leafKeys, false);});};</script>

在这里插入图片描述

记得点击新建和编辑的时候把你们的弹窗打开哦
我的都是封装好的 这里就把关于Tree的代码分享下

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

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

相关文章

uniapp App强制更新

需要使用DClound插件市场的一个插件挺好用的&#xff01;app升级、整包更新和热更新组件 支持vue3 支持打开安卓、苹果应用市场&#xff0c;wgt静默更新https://ext.dcloud.net.cn/plugin?id7286 开始贴代码 // /utils/method.js/*** 获取当前app最新版本* param number ver…

博客质量分计算——发布 version 5.0

目录 1. 背景2. 质量分 version 5.02.1 version 4 存在问题分析2.2 version 5.0 改进2.3 消融分析2.3.1 正向积极得分消融实验2.3.2 正向累积得分单变量实验2.3.3 非高分文章消融实验 2.4 V4 和 V5.0 版本质量分分布对比 3. 总结4. 参考 1. 背景 博客质量分顾名思义是用于衡量…

Debezium系列之:prometheus采集debezium的jmx数据,grafana通过dashboard展示debezium的jmx数据

Debezium系列之:prometheus采集debezium的jmx数据,grafana通过dashboard展示debezium的jmx数据 一、需求背景二、实现的效果三、导出debezium jmx四、debezium jmx重要指标五、部署prometheus和grafana六、Debezium MySQL Connector的dashboard七、debezium-dashboard.json八…

【单片机】msp430f5529 万年历,数字时钟,矩阵键盘修改时间,7针OLED显示,内部温度读取

文章目录 功能实物图原理图一些程序片段矩阵键盘内部温度读取将年月日转为星期 功能 1 显示万年历&#xff0c;利用内部RTC模块 2 按键修改时间 3 显示芯片内部的温度数值 实物图 原理图 一些程序片段 矩阵键盘 https://qq742971636.blog.csdn.net/article/details/1316505…

【新版系统架构】第十八章-安全架构设计理论与实践

信息安全体系架构设计 信息系统安全设计重点考虑&#xff1a;系统安全保障体系&#xff0c;信息安全体系架构 系统安全保障体系&#xff1a; 安全区域策略的确定&#xff0c;根据安全区域的划分&#xff0c;主管部门应制定针对性的安全策略统一配置和管理防病毒系统&#xff…

【Linux系统编程】Linux下的编译器——gcc/g++的使用 及 动态库和静态库的认识

文章目录 1. 概念2. gcc 的使用2.1 预处理&#xff08;预编译&#xff09;2.2 编译2.3 汇编2.4 链接 3. 动态库和静态库3.1 动静态库的理解3.2 默认是动态链接&#xff0c;我们如何进行静态 这篇文章我们继续学习Linux中的开发工具&#xff0c;今天要学的是&#xff1a; Linux下…

数据备份与恢复

目录 数据备份 1、备份单个数据库中的所有表 2、备份数据库中的某些表 3、备份所有数据库 4、只备份emp表结构 数据库恢复 方法1:使用mysql 命令恢复 方法2:进入数据库&#xff0c;使用source加载备份文件恢复 MySQL表的导入导出 数据备份 MySQLdump备份数据库语句的…

对RAM和ROM的理解

什么是RAM、ROM&#xff1f; RAM(Random Access Memory)随机存取存储器 ROM(Read Only Memory)只读存储器 先记住一件事 RAM断电将失去数据 ROM断电仍会保留数据 RAM、ROM、Flash、内存条、硬盘、SD卡到底怎么归类&#xff1f; 我们先来看下计算机的原理和计算机的需求 …

国网技术学院MySQL课堂练习

一、数据库的安装和配置 在虚拟机中安装WINDOWS7操作系统 正常安装&#xff0c;查询安装教程即可安装必备组件和MYSQL5.7数据库 正常安装&#xff0c;查询安装教程即可修改my.ini配置文件中关于character_set的相关设置 直接补下面的代码即可&#xff0c;作用为设置默认的内…

SpringBoot集成Flowable工作流

SpringBoot集成Flowable工作流 Flowable是什么&#xff1f;一、添加依赖二、flowable配置三、定义流程文件1.使用流程文件定义工作流2.idea使用插件来定义流程图1.安装插件2.创建bpmn文件并画流程图3.右击流程用模型设计器打开文件 四、测试controller Flowable是什么&#xff…

数据结构 - 线性表(C语言版)

线性表分为顺序表和单链表 线性表的操作主要是查询、插入、删除 1、顺序表 首先&#xff0c;定义一个顺序表的结构体 #define MAX_SIZE 10 typedef struct {int data[MAX_SIZE];int length; }SqList, * PsqList;创建一个顺序表 //创建顺序表 void createSqList(PsqList pSq…

【Excel】csv乱码

原因 CSV用UTF-8编码 Excel用ANSI编码 解决 1 创建一个新的Excel 2 数据 > 从文本/CSV 3 选择文件 4 选择 文件原始格式 和 分隔符 &#xff08;根据自己文件进行选择&#xff0c;如果不知道编码&#xff0c;可以一个一个的试&#xff0c;直到不出现乱码&#xff09;