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>
相关推荐
细节控菜鸡5 小时前
Webpack 核心知识点详解:proxy、热更新、Loader与Plugin全解析
前端·webpack·node.js
博客zhu虎康5 小时前
Element中 el-tree 如何隐藏 Tree 组件中的父节点 Checkbox
javascript·vue.js·elementui
长明5 小时前
Electron 的西天取经
vue.js·electron
Mintopia5 小时前
🧠 Next.js 文件上传(头像 / 图片)终极指南
前端·后端·全栈
欧阳天5 小时前
http环境实现通知
前端·javascript
疯狂踩坑人5 小时前
【面试系列】浏览器篇
前端·面试
Dgua5 小时前
✨五分钟快速弄懂作用域&作用域链✨
前端
九十一5 小时前
Reflect 在 Vue3 响应式中作用
前端·vue.js
东风西巷5 小时前
MyLanViewer(局域网IP扫描软件)
前端·网络·网络协议·tcp/ip·电脑·软件需求
中微子5 小时前
别再被闭包坑了!React 19.2 官方新方案 useEffectEvent,不懂你就 OUT!
前端·javascript·react.js