el-tree树形结构笔记

el-tree树形结构笔记

java 复制代码
<template>
  <div>
    <el-card class="box-card">
      <!-- <el-tree 
        :data="treeData" 
        show-checkbox 
        node-key="id" 
        ref="tree"
        v-model="currentNodeKey"
        check-strictly 
        highlight-current
        @check-change="handleClick" 
        @check="handleNodeClick"
        default-expand-all
        >
      </el-tree> -->
      <el-tree 
        :data="treeData" 
        check-strictly 
        accordion 
        show-checkbox 
        node-key="id" 
        :props="defaultProps"
        @check="handleNodeClick" 
        @check-change="handleClick"
        default-expand-all
        ref="tree">
      </el-tree>
    </el-card>
  </div>
</template>
<script>
import { mapState } from 'vuex'

export default {
  data() {
    return {
      treeData: [{
        id: 0,
        label: '一级 0',
        children: [{
          id: 1,
          label: '一级 1',
          children: [{
            id: 2,
            label: '二级 1-1',
            children: [{
              id: 3,
              label: '三级 1-1-1'
            }, {
              id: 4,
              label: '三级 1-1-2'
            }]
          }]
        }, {
          id: 5,
          label: '一级 2',
          children: [{
            id: 6,
            label: '二级 2-1'
          }, {
            id: 7,
            label: '二级 2-2'
          }]
        }, {
          id: 8,
          label: '一级 3',
          children: [{
            id: 9,
            label: '二级 3-1'
          }, {
            id: 10,
            label: '二级 3-2'
          }]
        },
        {
          id: 11,
          label: '一级 4',
          children: null,
        },
        {
          id: 12,
          label: '一级 5',
          children: null,
        },
        {
          id: 13,
          label: '一级 6',
          children: null,
        },
        {
          id: 14,
          label: '一级 7',
          children: null,
        },
        {
          id: 15,
          label: '一级 8',
          children: null,
        },
        {
          id: 16,
          label: '一级 9',
          children: null,
        }
        ],
      }],
      currentNodeKey: null, // 当前选中节点的key
    }
  },
  created() {
  },
  methods: {
    handleClick(data, checked, node) {
      if (checked) {
        this.currentNodeKey = data.id
        this.$refs.tree.setCheckedNodes([data]);
        console.log("勾选项目data", data);
        console.log("勾选项目checked", checked);
        console.log("勾选项目node", node);
      }
    },
    handleNodeClick(data, node, self) {
      // 如果已经选中了一个节点,则取消选择
      if (this.currentNodeKey && this.$refs.tree) {
        this.$refs.tree.setCheckedKeys([]);
        // 修改当前选中节点key
        this.$refs.tree.setCheckedNodes([data]);
      }
      // 更新当前选中节点的 key
      this.currentNodeKey = data;
    },

  },

}
</script>
<style>
.box-card {
  height: 600px;
}

/* 修改组件样式 */
.el-checkbox__inner {
  border-radius: 50%;
  border: 1px solid #aaaaaa;
}

/* 隐藏所有子节点 */
/* .el-tree-node__children > .el-tree-node > .el-tree-node__content > .el-checkbox {
  display: none;
} */
/* 只显示最深层次节点 */
/* .el-tree {
    .is-leaf + .el-checkbox .el-checkbox__inner {
        display: none;
}} */
/* 只隐藏根节点勾选框 */
.el-tree>.el-tree-node>.el-tree-node__content .el-checkbox {
  display: none;
}
</style>
相关推荐
qq_2842740510 分钟前
液压泵工作原理与性能参数笔记:能量转换与吸压油三必要条件、压力分级、排量流量与三种效率特性曲线、径向轴向柱塞泵变量原理及配流配油盘(含考点)
笔记·学习·自动化·制造
ljt272496066111 分钟前
Python笔记(四)--模式匹配与正则
笔记·python
小羊没烦恼!12 分钟前
T-SQL查询高级—SQL Server索引中的碎片和填充因子
开发语言·前端·javascript·数据库·后端·python·web安全
冰暮流星27 分钟前
mysql索引失效的情形
数据库·笔记·sql·mysql
Liu.77430 分钟前
Vue3 中如何使用 GET 请求传递复杂参数
vue.js·vue3
小熊在忙fpga1 小时前
N32G430芯片的flash表示
前端·javascript·html
NC 王炸1 小时前
AI 做的便签,换个浏览器就没了?加一个导出按钮,把数据带走
javascript·ai编程·数据备份·localstorage·txt导出
todoitbo1 小时前
本来只想给内网开个口子,Natapp 却多给了一道防护
前端·javascript·vue.js·内网穿透·网络防护·natapp
Chloe.Zz1 小时前
一篇入门Agent
开发语言·前端·javascript
白杨尚青1 小时前
C++入门篇(十八):模板进阶——非类型参数、特化全家桶与分离编译(收官篇)
开发语言·c++·笔记·模板·偏特化·分离编译