element-ui tree树形结构全选、取消全选,展开收起

控制树形结构全选、取消全选,展开收起

复制代码
<template>
	<div>
		<!-- 添加 ref="tree" 属性-->
		<el-tree
		  :data="data"
		  show-checkbox
		  default-expand-all
		  node-key="id"
		  ref="tree"
		  highlight-current
		  :props="defaultProps">
		</el-tree>
		
		<div class="buttons">
		  <el-button @click="allExpanded">折叠/展开</el-button>
		  <el-button @click="allChecked">全选</el-button>
		  <el-button @click="resetChecked">清空</el-button>
		</div>
	</div>
</template>
 
<script>
  export default {
    methods: {
		 // this.$refs.tree  tree是上面控件 el-tree 的 ref 属性的值
	  allExpanded(){
		  // 展开还是收起
		  this.expanded = !this.expanded;
		  var treeNodeList = this.$refs.tree.store._getAllNodes();
		  for (var i = 0; i < treeNodeList.length; i++) {
		  	treeNodeList[i].expanded = this.expanded;
		  }
	  },
      allChecked() {
		  // 将根节点赋值上去
        this.$refs.tree.setCheckedKeys([1,2,3]);
      },
      resetChecked() {
		  // 将选中设置为空
        this.$refs.tree.setCheckedKeys([]);
      }
    },
 
    data() {
      return {
		expanded:true,
        data: [{
          id: 1,
          label: '一级 1',
          children: [{
            id: 4,
            label: '二级 1-1',
            children: [{
              id: 9,
              label: '三级 1-1-1'
            }, {
              id: 10,
              label: '三级 1-1-2'
            }]
          }]
        }, {
          id: 2,
          label: '一级 2',
          children: [{
            id: 5,
            label: '二级 2-1'
          }, {
            id: 6,
            label: '二级 2-2'
          }]
        }, {
          id: 3,
          label: '一级 3',
          children: [{
            id: 7,
            label: '二级 3-1'
          }, {
            id: 8,
            label: '二级 3-2'
          }]
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
      };
    }
  };
</script>
相关推荐
牛奶1 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶1 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
Kagol4 小时前
🎉OpenTiny NEXT-SDK 重磅发布:四步把你的前端应用变成智能应用!
前端·开源·agent
GIS之路5 小时前
ArcGIS Pro 中的 notebook 初识
前端
JavaGuide5 小时前
7 道 RAG 基础概念知识点/面试题总结
前端·后端
ssshooter5 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
格砸6 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
Live000007 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉7 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化