el-tree刷新数据后选中节点样式丢失,重置,无效

el-tree在重新获取后原本节点的选中状态会随着丢失,查看官方文档尝试用了这两个方法后没有效果 这里的选中大概只支持show-checkbox
这里的选中只支持show-checkbox
所以这里需要自己去添加样式

解决思路

查看控制台后可以看到被选中的节点的父级元素被赋值了样式,如果手动实现的话也需要我们自己去绑定样式
在这里插入图片描述

解决步骤

1.给父级节点和子节点都绑定上id值,可以使用随机数,只要不重复,这里因为原本数据里有id值,直接利用源数据id值进行绑定

 <el-tree>
 <template slot-scope="{node, data}">
          <!--父节点-->
          <div :id="data.id" v-if="data.children.length > 0" ></div>
           <!-- 子节点-->
          <div :id="data.id" v-else >
</div>
<template>
<el-tree>

2.在进行数据刷新的方法之前记录当前选中节点的id值,重新获取数据后利用原本的id值获取到需要上色节点,将节点储存并添加样式

const node = this.$refs.Etree.getCurrentNode()
  await this.getTree()
          //给原本选中的节点上色
   this.domDiv = document.getElementById(node.id)
   this.domDiv.classList.add('colorBlue')

3.el-tree添加节点点击事件,将赋值的节点样式清除,搞定

<el-tree>
 @node-click="nodeData"
 </el-tree>
function nodeData(){
      //去除节点样式
      if (this.domDiv) {
        this.domDiv.classList.remove('colorBlue')
        this.domDiv = null
      }
}
  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值