elementUI的el-tree的赋值回显问题

博客主要围绕el-tree组件的default-checked-keys属性展开,介绍正常回显已选中值用该属性,但传值需传递父节点值。还提到保存后再次编辑回显时系统管理会自动勾选,回显菜单树需对返回数据处理,去掉系统管理菜单的id,指出tree组件坑较多。
部署运行你感兴趣的模型镜像

el-tree

default-checked-keys

正常回显已经选中的值是 用(default-checked-keys)这个属性

// An highlighted block  
<el-tree
  ref="menuTree"
  :data="allMenu"
  show-checkbox
  node-key="id"
  :default-expand-all="true"
  :default-checked-keys="roleMenu"
  :props="defaultProps"
  @check="changeMenu">
</el-tree>
// 点击保存传值时需要将两个数组合并
const menuIds = this.$refs.menuTree.getCheckedKeys()
const halfMenuIds = this.$refs.menuTree.getHalfCheckedKeys()
const allMenuIds = menuIds.concat(halfMenuIds)

但是由于传值时需要把父节点的值传递过去。getCheckedKeys + getHalfCheckedKeys。

保存时如下图

+在这里插入图片描述

保存后再次编辑时回显会如下图一样 (系统管理会自动勾选中)

在这里插入图片描述

回显菜单树时需要对返回的数据处理,把系统管理 菜单 的id去掉

// allMenu就是整个菜单树 []
// roleMenu 就是当前选中的菜单id数组节点 ['111', '2222']
// 循环遍历整个树  
 const newRoleMenu = [] // 处理数据后的菜单数组
 this.allMenu.forEach(item => {
    if (this.roleMenu.includes(item.id)) {
      if (item.hasChildren) { // 是否有子菜单
      	// 默认一级菜单 下的子菜单,都选中时保留该id, 否则去掉
        let isAllChecked = true 
        item.children.forEach(subItem => {
          if (isAllChecked && !this.roleMenu.includes(subItem.id)) {
            isAllChecked = false
          }
          if (this.roleMenu.includes(subItem.id)) {
            newRoleMenu.push(subItem.id)
          }
        })
        if (isAllChecked) {
          newRoleMenu.push(item.id)
        }
      } else {
        newRoleMenu.push(item.id)
      }
    }
  })

有问题可以评论沟通交流,tree的坑还是较多

链接: elemetUI el-drawer头部样式问题,header样式被黑线框住.

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值