el-tree刷新树默认展开/保留当前操作节点获取展开的节点

 @node-expand="openNode"

@node-collapse="closeNode"

分别是展开节点时触发和收起节点时触发

:default-expanded-keys="defaultShowNodes"指定需要默认展开的数组 

一定要加node-key,代表唯一的值,一般都是id

 openNode (data, node, self) {
      // console.log(data,node.self,'展开');
      // 保存当前展开的节点
      let flag = false
      this.defaultShowNodes.some(item => {
        if (item === data.id) { // 判断当前节点是否存在, 存在不做处理
          flag = true
          return
        }
      })
      if (!flag) { // 不存在则存到数组里
        this.defaultShowNodes.push(data.id)
      console.log(this.defaultShowNodes);
  }
    },
    closeNode (data, node, self) {
      //  console.log(data,node.self,'关闭');
      // 删除当前关闭的节点
      this.defaultShowNodes.some((item, i) => {
        if (item === data.id) {
          this.defaultShowNodes.splice(i, 1)
        }
      })
    // 这里主要针对多级树状结构,当关闭父节点时,递归删除父节点下的所有子节点
      this.removeChildrenIds(data)
      console.log(this.defaultShowNodes);
    },
   
    // 删除树子节点
    removeChildrenIds(data) {
      const ts = this
    //懒加载的时候想要删除子节点  得在加载下级数据时添加上data.children
      if (data.children) {
        data.children.forEach(function(item) {
          const index = ts.defaultShowNodes.indexOf(item.id)
          if (index != -1) {
            ts.defaultShowNodes.splice(index, 1)
          }
          ts.removeChildrenIds(item)
        })
      }
    },
   // 模糊查询
     filterNode(value, data) {
        if (!value) return true;
        return data.name.indexOf(value) !== -1;
      },

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值