elementUI中el-tree树形结构中节点过滤问题

elementUI中el-tree树形结构中节点过滤问题

1.业务需求:
  • vue项目,权限管理模块中经常遇到树形结构的处理,这篇文章我们讲一下树形结构的节点过滤问题。在权限管理中的菜单管理模块,当我们新增菜单是需要选择它的父级菜单或者目录(有这样一个需求,就是菜单下面是可以新增按钮的,所以新增按钮就需要选择它的父级菜单,菜单的父级当然只是目录),那么这里选择上级菜单或者目录时就需要对树形结构进行过滤。
2.需求分析
  • 处理el-tree的树形结构过滤问题我们首先会想到遍历递归去给要过滤的节点的值置空,这样它既然是空置那么就不会被el-tree树形渲染,经过踩坑这里的答案是不行的,它虽然为空,但还是会占位显示为空。这里我使用的是el-tree控件的filter-node-method 方法进行过滤。
2.解决方案:
  • 第一步是既然要过滤的节点置空不行,那么我们就给他设置一个特殊的过滤值,我用的是'undefined',所以在递归遍历的时候就给要过滤的节点的值设置为'undefined',然后再对树形数据进行过滤:

  •          // 树形数据过滤
         	 this.$nextTick(() => {
                this.$refs.menutree.filter('undefined')
              })
    
  • 第二步,当已经执行树形数据过滤之后,然后在树形组件上绑定:filter-node-method="filterNode"方法对树形结构的节点进行过滤:

  •       // 树形节点过滤
          filterNode(value, data, node) {
            // if (!value) return true;
            // 当节点的data.resourcesName里面有值时展示它,否则过滤它
            if (data.resourcesName.includes(value)) {
              return false
            } else {
              return true
            }
          },
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木屋x

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值