当前位置:首页 > 前端教程

elementui treetable

2026-03-06 06:00:05前端教程

ElementUI TreeTable 的使用方法

ElementUI 本身并未直接提供 TreeTable 组件,但可以通过结合 el-tableel-tree 的功能实现类似效果。

实现 TreeTable 的基本思路

  1. 使用 el-tablerow-keytree-props 属性来展示树形数据
  2. 数据格式需要包含 children 字段来表示层级关系

代码示例

<template>
  <el-table
    :data="tableData"
    row-key="id"
    :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
    border
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        id: 1,
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄',
        children: [{
          id: 11,
          date: '2016-05-01',
          name: '王小小',
          address: '上海市普陀区金沙江路 1519 弄'
        }]
      }]
    }
  }
}
</script>

自定义展开/折叠图标

可以通过 expand-row-keys 控制默认展开的行,并使用 scoped slot 自定义展开图标:

<el-table
  :data="tableData"
  row-key="id"
  :tree-props="{children: 'children'}"
  :expand-row-keys="[1]">
  <el-table-column type="expand">
    <template #default="props">
      <span v-if="props.row.children && props.row.children.length">
        <i :class="props.expanded ? 'el-icon-arrow-down' : 'el-icon-arrow-right'"></i>
      </span>
    </template>
  </el-table-column>
  <!-- 其他列 -->
</el-table>

动态加载子节点

对于大数据量情况,可以实现懒加载:

elementui treetable

methods: {
  load(tree, treeNode, resolve) {
    setTimeout(() => {
      resolve([
        {
          id: 31,
          date: '2016-05-01',
          name: '王小小',
          address: '上海市普陀区金沙江路 1519 弄'
        }
      ])
    }, 1000)
  }
}

注意事项

  1. 必须设置 row-key 属性,值为数据中的唯一标识字段
  2. 树形数据需要包含 children 字段来表示子节点
  3. 对于性能优化,可以考虑使用虚拟滚动插件

通过以上方法,可以在 ElementUI 中实现类似 TreeTable 的功能,满足大多数树形表格展示需求。

分享给朋友:

相关文章

elementui vue2

elementui vue2

使用 Element UI 与 Vue 2 的指南 Element UI 是一个基于 Vue 2 的组件库,专为开发者、设计师和产品经理设计,提供丰富的组件和交互方式。 安装 Element UI…

elementui nuxt

elementui nuxt

在 Nuxt.js 中使用 Element UI Element UI 是一个基于 Vue.js 的组件库,适用于开发后台管理系统。在 Nuxt.js 项目中集成 Element UI 需要一些额外配…

elementui ref

elementui ref

ElementUI 中使用 ref 的方法 在 ElementUI 中,ref 主要用于获取组件实例或 DOM 元素的引用,方便直接调用组件方法或操作 DOM。以下是几种常见的使用场景和示例: 获取…

elementui滚动

elementui滚动

ElementUI 滚动相关功能 ElementUI 提供了多种滚动相关的组件和功能,适用于不同场景的需求。以下是一些常见的滚动实现方法和组件: 滚动条组件(ElScrollbar) Element…

elementui合计

elementui合计

ElementUI 合计功能实现 ElementUI 的表格组件(el-table)提供了合计行功能,可以通过设置 show-summary 属性和 summary-method 方法来自定义合计行的…

elementui keyup

elementui keyup

监听键盘事件的方法 在Element UI中监听键盘事件(如keyup)可以通过原生Vue事件绑定或Element UI组件提供的native修饰符实现。以下是具体方法: 1. 在普通HTML元素上…