element-ui default-checked-keys 会把节点下所有子节点全部勾选解决方法
<el-tree class="filter-tree" :data="permissionData" :props="props" node-key="id" ref="treeForm" show-checkbox :default-checked-keys="this.savedPermissionIds" :default-expanded-keys="this.savedPermissionIds" @check="getCheckedNodes" ></el-tree>
showDialog(id) { this.isShowPermissionTree = true; this.roleId = id; this.savedPermissionIds = []; this.getPermissionTree(); }, //获取用户勾选的权限id用于传参后台 getCheckedNodes() { // let selectedPermission = this.$refs.treeForm.getCheckedNodes(false, true); //(leafOnly, includeHalfChecked) 接收两个 boolean 类型的参数,1. 是否只是叶子节点,默认值为 false 2. 是否包含半选节点,默认值为 false // this.permissionIds = selectedPermission.map(item => { // return item.id; // }); let parentArr = this.$refs.treeForm.getHalfCheckedKeys(); let childeArr = this.$refs.treeForm.getCheckedKeys(); let arr = childeArr.concat(parentArr); this.permissionIds = arr; }, //取消 cancel() { this.isShowPermissionTree = false; this.savedPermissionIds = []; this.getPermissionTree(); }, //获取树形权限列表 getPermissionTree() { menulistByPid({ flag: 1 }).then(res => { this.permissionData = res.body; //获取权限管理配置id并显示 getPermissionIds({ roleId: this.roleId }).then(res => { this.savedPermissionIds = res.body; let newArr = []; let item = ""; if (this.savedPermissionIds && this.savedPermissionIds.length !== 0) { this.savedPermissionIds.forEach(item => { this.checked(item, this.permissionData, newArr); }); this.savedPermissionIds = newArr; // console.log("this.savedPermissionIds111", this.savedPermissionIds); } }); }); }, checked(id, data, newArr) { data.forEach(item => { if (item.id == id) { if (item.items && item.items.length == 0) { newArr.push(item.id); } } else { if (item.items != null && item.items.length != 0) { this.checked(id, item.items, newArr); } } }); // console.log("newArr", newArr); },
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2017-09-19 angular 时间戳转换(星期过滤器)
2017-09-19 ajax+分页
2017-09-19 第三方登录接口
2017-09-19 从对象列表中获取一个对象,依据关键字和值
2017-09-19 将一个实体转换成 Url 参数的形式 ?a=a&b=b