el-tree 树的全部展开和收起

在Vue.js项目中,使用el-tree组件构建的架构树需要添加全展开和全收起功能。通过深入研究和参考他人经验,成功实现了这一需求。关键在于访问并操作$refs.tree.store的expanded属性来控制节点的展开和折叠状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

架构树el-tree需要实现全部展开和全部收起功能,查阅资料借鉴别人的经验终于实现
在这里插入图片描述
this.$refs.tree.store 打印出来的是这样的数据,里面的expanded就是控制展开收起的功能
在这里插入图片描述

<div class="expand">
            <el-button size="small" @click="expandHandle">{{
              expandAll ? "全部收起" : "全部展开"
            }}</el-button>
          </div>
          <div class="func">
            <span>资源名称</span>
            <span>资源类型</span>
          </div>
          <el-tree
            :data="treeData"
            show-checkbox
            node-key="id"
            :default-expand-all="expandAll"
            :default-expanded-keys="defaultExpandedKeys"
            :expand-on-click-node="false"
            ref="tree"
            @check="handleCheck"
          >
            <span class="custom-tree-node" slot-scope="{ node, data }">
              <span>{{ node.label }}</span>
              <span>{{ data.type }}</span>
            </span>
          </el-tree>
methods方法
expandHandle() {
      console.log(this.$refs.tree.store);
      this.expandAll = !this.expandAll;
      this.expandNodes(this.$refs.tree.store.root);
    },
    // 遍历树形数据,设置每一项的expanded属性,实现展开收起
    expandNodes(node) {
      node.expanded = this.expandAll;
      for (let i = 0; i < node.childNodes.length; i++) {
        node.childNodes[i].expanded = this.expandAll;
        if (node.childNodes[i].childNodes.length > 0) {
          this.expandNodes(node.childNodes[i]);
        }
      }
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值