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

elementui treetable

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

ElementUI TreeTable 的使用方法

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

elementui treetable

实现 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>

动态加载子节点

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

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 treetable

分享给朋友:

相关文章

elementui升级plus

elementui升级plus

Element UI 升级到 Element Plus 的方法 Element Plus 是 Element UI 的升级版本,专为 Vue 3 设计,提供了更好的性能和更多新特性。以下是升级的具体步…

elementui流程

elementui流程

Element UI 流程设计 Element UI 提供了一套基于 Vue.js 的流程设计组件,适用于展示步骤流程、任务进度等场景。以下为关键实现方法和组件说明: 安装与引入 确保已安装 Ele…

elementui案例

elementui案例

Element UI 案例 Element UI 是一个基于 Vue.js 的组件库,广泛用于构建企业级中后台前端界面。以下是一些常见的 Element UI 案例和使用场景: 表单设计 Elem…

elementui作用

elementui作用

Element UI 的作用 Element UI 是一套基于 Vue.js 的桌面端组件库,主要用于快速构建用户界面。它提供了丰富的预定义组件,帮助开发者高效完成前端开发任务。 核心功能 提供高质…

elementui validetor

elementui validetor

Element UI 表单验证方法 Element UI 提供了 el-form 组件,结合 rules 和 prop 属性实现表单验证。以下是常用的验证方法: 基本表单验证 在 el-form…

elementui title

elementui title

ElementUI 的 Title 相关组件及用法 ElementUI 提供了多种与标题(Title)相关的组件和配置选项,适用于不同场景的需求。以下是常见的使用方法和组件介绍: 对话框(Dia…