element el-tree 刷新后保留展开状态

在el-tree中添加两个方法

@node-expand="handleNodeExpand" // 展开节点时触发

@node-collapse="handleNodeCollapse" // 关闭节点时触发

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值