以下是一个基于 Vue 和 Element UI 的树形表格,支持展开收缩的完整代码示例:

<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column type="expand">
        <template slot-scope="props">
          <el-table :data="props.row.children">
            <el-table-column prop="name" label="名称"></el-table-column>
            <el-table-column prop="age" label="年龄"></el-table-column>
            <el-table-column prop="gender" label="性别"></el-table-column>
          </el-table>
        </template>
      </el-table-column>
      <el-table-column prop="name" label="名称"></el-table-column>
      <el-table-column prop="age" label="年龄"></el-table-column>
      <el-table-column prop="gender" label="性别"></el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          name: '张三',
          age: 18,
          gender: '男',
          children: [
            {
              name: '张三的儿子',
              age: 1,
              gender: '男',
            },
            {
              name: '张三的女儿',
              age: 3,
              gender: '女',
            },
          ],
        },
        {
          name: '李四',
          age: 30,
          gender: '女',
          children: [
            {
              name: '李四的儿子',
              age: 5,
              gender: '男',
            },
            {
              name: '李四的女儿',
              age: 7,
              gender: '女',
            },
          ],
        },
      ],
    };
  },
};
</script>

在上面的代码中,我们使用了 Element UI 的 el-tableel-table-column 组件,同时定义了一个 tableData 数据源,其中每个数据项都有一个 children 属性,表示它的子节点。在 el-table-column 中,我们使用了 type="expand" 属性来定义展开收缩列,同时使用了 slot-scope 来自定义展开内容的显示。在展开内容中,我们又使用了一个嵌套的 el-table,从而实现了树形表格的效果。

vue 树行 表格 支持展开收缩 完整代码

原文地址: https://www.cveoy.top/t/topic/bx5I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录