当前位置: 首页 > news >正文

el-table树状表格,默认展开第一个节点的每一层

效果如图
在这里插入图片描述

<template>
  <el-table
    :data="tableData"
    style="width: 100%"
    :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
    :expand-row-keys="expandRowKeys"
    row-key="id"
    @expand-change="handleExpandChange"
  >
    <el-table-column
      prop="name"
      label="名称"
      width="180"
    ></el-table-column>
    <el-table-column
      prop="value"
      label="值"
    ></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          id: 1,
          name: "一级1",
          value: "A",
          children: [
            {
              id: 2,
              name: "二级1-1",
              value: "A-1",
              children: [
                { id: 3, name: "三级1-1-1", value: "A-1-1" },
                { id: 4, name: "三级1-1-2", value: "A-1-2" }
              ]
            },
            {
              id: 5,
              name: "二级1-2",
              value: "A-2",
              children: [
                { id: 6, name: "三级1-2-1", value: "A-2-1" }
              ]
            }
          ]
        },
        {
          id: 7,
          name: "一级2",
          value: "B",
          children: [
            {
              id: 8,
              name: "二级2-1",
              value: "B-1",
              children: [
                { id: 9, name: "三级2-1-1", value: "B-1-1" }
              ]
            }
          ]
        }
      ],
      expandRowKeys: [], // 保存展开的行的key
    };
  },
  methods: {
    // 递归函数来获取每层的第一个节点id 
   
    getFirstNodeKeys(data) {
      let keys = [];
      data.forEach(item => {
        keys.push(item.id); // 添加当前节点的id
        if (item.children && item.children.length) {
          keys = keys.concat(this.getFirstNodeKeys(item.children)); // 递归获取子节点的第一个
        }
      });
      return keys;
    },
    // 处理展开行的变化
    handleExpandChange(row, expandedRows) {
      // 可选处理扩展展开事件
    }
  },
  created() {
    // 初始化时设置默认展开每一层第一个节点
     // 注意!!!展开节点id数组必须是字符串的
    this.expandRowKeys = this.getFirstNodeKeys(this.tableData);
  }
};
</script>

<style scoped>
</style>

相关文章:

  • 基因研究的“北极盲区”
  • 浏览器开发者工具(F12)查看请求的响应体内容显示”无法加载响应数据: No resource with given identifier found“
  • Linux网络 | 多路转接Reactor
  • HTB—OnlyHacks
  • 利用大模型deepseek搭建本地知识库并且实现 java 调用
  • DRF框架中viewsets.ModelViewSet、APIView区别与联系
  • 八大元素定位
  • TRELLIS 部署笔记
  • 高速硬件电路设计
  • 基于阿里云调用deepseek大模型
  • 如何搭建同城O2O服务平台?AI外卖跑腿APP技术革新与开发实践
  • 【Java基础】Java数组
  • 深圳SMT贴片加工厂家核心技术及服务优势解析
  • mybatis使用typeHandler实现类型转换
  • elabradio入门第三讲——PSK传输系统的载波同步
  • maya创建文字模型
  • 深入理解 Java 反射机制:获取类信息与动态操作
  • Windows 环境下 Grafana 安装指南
  • C++接口继承和实现继承
  • 观察者模式原理详解以及Spring源码如何使用观察者模式?
  • 印巴战火LIVE丨“快速接近战争状态”:印度袭击巴军事基地,巴启动反制军事行动
  • 泰特现代美术馆25年:那些瞬间,让艺术面向所有人
  • 1450亿元!财政部拟发行2025年中央金融机构注资特别国债(二期)
  • 数理+AI+工程,上海交大将开首届“笛卡尔班”招生约20名
  • 明明睡够了,怎么还有黑眼圈?可能是身体在求救
  • 上海将发布新一版不予行政处罚清单、首份减轻行政处罚清单