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>
相关推荐
小村儿17 分钟前
连载10-Sub-agents 深度解析:从源码理解 Claude Code 的分身术
前端·后端·ai编程
IT_陈寒1 小时前
Vite动态导入把我坑惨了,原来要这样用才对
前端·人工智能·后端
DFT计算杂谈1 小时前
KPROJ编译教程
java·前端·python·算法·conda
觅_1 小时前
前端学习后端的时候 选择一个技术
前端·学习
独泪了无痕1 小时前
CryptoJS:数据安全的JavaScript加密利器
前端·vue.js·node.js
发现一只大呆瓜1 小时前
一文搞懂 Vite 处理CommonJS包、按需编译逻辑及 Rollup 插件兼容规则
前端
Edwardwu1 小时前
写了个y-mxgraph:给 draw.io 接上了 Yjs,顺便解决了部署在 iframe 里的一堆问题
前端·typescript
其实防守也摸鱼2 小时前
软件安全与漏洞--软件安全编码
java·前端·网络·安全·网络安全·web·工具
发现一只大呆瓜2 小时前
Vite 开发预构建机制详解,搞懂 esbuild 与 Rollup 分工差异
前端·面试·vite
熊猫_豆豆2 小时前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行