element-ui之树形表格(treetable&&treegrid)

Element-UI之树形表格(treetable&&treegrid)

Element-UI是一套基于Vue.js的UI组件库,提供了丰富的组件和功能。其中,树形表格(treet&&treegrid)是一种常用的组,用于展示具有层级关系的数据。本文将介绍如何使用Element-UI的树形表格组件,并提供两个例说明。

1. treetable和treegrid的区别

在Element-UI中,树形表格有两种实现方式:treetable和treegrid。它们的区别在于:

  • treetable:每一行都可以展开子行,子行和父行在同一级别。
  • treegrid:每一行都可以展子行,子行和父行在不同的级别。

2. 使用treetable实现树形表格

使用treetable实现树形表格的步骤如下:

  1. 引入treetable组件:
<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column typeexpand"></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="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
import { ElTable, ElTableColumn } from 'element-ui'

export default {
  components: {
    ElTable,
    ElTableColumn
  },
  data() {
    return {
      tableData: [
        {
          name: '张三',
          age: 18,
          address: '北京市朝阳区',
          children: [
            {
              name: '李四',
              age: 20,
              address: '北京市海淀区'
            },
            {
              name: '王五',
              age: 22,
              address: '北京市西城区'
            }
          ]
        },
        {
          name: '赵六',
          age: 25,
          address: '北京市东城区'
        }
      ]
    }
  }
}
</script>

上面的代码使用了treetable组件展示了一个包含层级关系的数据。

  1. 配置展开行:
<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column type="expand">
        <template slot-scope="props">
          <div>
            <el-table :data="props.row.children" style="width: 100%">
              <el-table-column prop="name" label="名称"></el-table-column>
              <el-table-column prop="age" label="年龄"></el-table-column>
              <el-table-column prop="address" label="地址"></el-table-column>
            </el-table>
          </div>
        </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="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

上面的代码使用了type="expand"配置了展开行,并使用了slot-scope插槽自定义了展开行的内容。

3. 使用treegrid实现树形表格

使用treegrid实现树形表格的步骤如下:

  1. 引入treegrid组件:
<template>
  <div>
    <el-table :data="tableData" style="width: 100%" :tree-props="{ children: '', hasChildren: 'hasChildren' }">
      <el-table-column type="expand"></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="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
import { ElTable, ElTableColumn } from 'element-ui'

export default {
  components: {
    ElTable,
    ElTableColumn
  },
  data() {
    return {
      tableData: [
        {
          name: '张三',
          age: 18,
          address: '北京市朝阳区',
          hasChildren: true,
          children: [
            {
              name: '李四',
              age: 20,
              address: '北京市海淀区',
              hasChildren: false
            },
            {
              name: '王五',
              age: 22,
              address: '北京市西城区',
              hasChildren: false
            }
          ]
        },
        {
          name: '赵六',
          age: 25,
          address: '北京市东城区',
          hasChildren: false
        }
      ]
    }
  }
}
</script>

上面的代码使用了treegrid组件展示了一个包含层级关系的数据。

  1. 配置展开行:
<template>
  <div>
    <el-table :data="tableData" style="width: 100%" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
      <el-table-column type="expand">
        <template slot-scope="props">
          <div>
            <el-table :data="props.row.children" style="width: 100%" :tree-props="{ children: 'children', hasChildren: 'hasChildren }">
              <el-table-column type="expand"></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="address" label="地址"></el-table-column>
            </el-table>
          </div>
        </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="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

上面的代码使用了type="expand"配置了展开行,并使用了slot-scope插槽自定义了展开行的内容。同时,使用了:tree-props配置了treegrid的相关属性。

4. 示例1:使用treetable实现树形表格

<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column type="expand">
        <template slot-scope="props">
          <div>
            <el-table :data="props.row.children" style="width: 100%">
              <el-table-column prop="name" label="名称"></el-table-column>
              <el-table-column prop="age" label="年龄"></el-table-column>
              <el-table-column prop="address" label="地址"></el-table-column>
            </el-table>
          </div>
        </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="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
import { ElTable, ElTableColumn } from 'element-ui'

export default {
  components: {
    ElTable,
    ElTableColumn
  },
  data() {
    return {
      tableData: [
        {
          name: '张三',
          age: 18,
          address: '北京市朝阳区',
          children: [
            {
              name: '李四',
              age: 20,
              address: '北京市海淀区'
            },
            {
              name: '王五',
              age: 22,
              address: '北京市西城区'
            }
          ]
        },
        {
          name: '赵六',
          age: 25,
          address: '北京市东城区'
        }
      ]
    }
  }
}
</script>

上面的代码使用了treetable组件展示了一个包含层级关系的数据。

5. 示例2:使用treegrid实现树形表格

<template>
  <div>
    <el-table :data="tableData" style="width: 100%" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
      <el-table-column type="expand">
        <template slot-scope="props">
          <div>
            <el-table :data="props.row.children" style="width: 100%" :tree-props="{ children: 'children', hasChildren: 'hasChildren }">
              <el-table-column type="expand"></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="address" label="地址"></el-table-column>
            </el-table>
          </div>
        </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="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
import { ElTable, ElTableColumn } from 'element-ui'

export default {
  components: {
    ElTable,
    ElTableColumn
  },
  data() {
    return {
      tableData: [
        {
          name: '张三',
          age: 18,
          address: '北京市朝阳区',
          hasChildren: true,
          children: [
            {
              name: '李四',
              age: 20,
              address: '北京市海淀区',
              hasChildren: false
            },
            {
              name: '王五',
              age: 22,
              address: '北京市西城区',
              hasChildren: false
            }
          ]
        },
        {
          name: '赵六',
          age: 25,
          address: '北京市东城区',
          hasChildren: false
        }
      ]
    }
  }
}
</script>

上面的代码使用了treegrid组件展示了一个包含层级关系的数据。

阅读剩余 85%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:element-ui之树形表格(treetable&&treegrid) - Python技术站

(0)
上一篇 2023年5月7日
下一篇 2023年5月7日

相关文章

  • Linux中多命令执行’;’和’&&’的区别解释

    在Linux中,可以通过使用多命令组合来完成复杂的操作,常见的多命令执行方式有’;’和’&&’。它们的区别如下: ‘;’ 分号: “;”是一种简单的命令组合方式,它可以顺序执行多条命令,即不管前面的命令是否执行成功都会执行后面的命令。 示例1:执行两条命令 $ echo ‘hello’; echo ‘world’ hello world 示例…

    other 2023年6月26日
    00
  • java反射获取包下所有类的操作

    Java反射获取包下所有类的操作 要使用Java反射获取指定包下的所有类,可以按照以下步骤进行操作: 获取包名对应的路径:首先,将包名转换为对应的路径。例如,将包名com.example转换为路径com/example。 获取类加载器:使用类加载器来加载指定路径下的类。可以通过当前线程的上下文类加载器或者指定的类加载器来获取。 遍历路径下的文件:使用类加载器…

    other 2023年10月13日
    00
  • spring通过构造函数注入实现方法分析

    Spring通过构造函数注入实现方法分析攻略 在Spring框架中,通过构造函数注入是一种常见的依赖注入方式。它允许我们在创建对象时通过构造函数传递依赖项,从而实现对象之间的解耦。下面是一个详细的攻略,介绍了如何使用构造函数注入来实现方法分析。 步骤一:定义接口和实现类 首先,我们需要定义一个接口和一个实现类。接口定义了要实现的方法,而实现类则提供了具体的实…

    other 2023年8月6日
    00
  • harbor修改配置文件后重启操作

    修改 Harbor 的配置文件后需要重启 Harbor 才能生效,以下是 Harbor 修改配置文件后重启的完整攻略。 修改 Harbor 配置文件 Harbor 的配置文件默认位置为 /etc/harbor/harbor.yml,可以使用编辑器打开该文件进行修改。根据需要修改相应的配置项,例如: hostname: example.com http: po…

    other 2023年6月27日
    00
  • Java实现Http工具类的封装操作示例

    这个问题需要分几个部分来回答,包括介绍HTTP工具类的封装、Java中HTTP请求的实现、封装HTTP请求的示例。 HTTP工具类的封装 HTTP工具类是封装HTTP请求的方法的类,可以通过调用其中的方法实现HTTP请求。封装HTTP工具类可以带来以下好处: 隐藏HTTP请求的细节,降低代码的复杂度; 可以复用代码,避免重复实现HTTP请求; 可以实现统一的…

    other 2023年6月25日
    00
  • 使用CSS自定义属性实现骨架屏效果

    使用CSS自定义属性可以实现骨架屏效果,使页面在加载过程中展示一个简单的占位符,提高用户体验。 1. CSS自定义属性 CSS自定义属性是用来保存一些可以在多处使用的值的变量,其语法如下: element { –variable-name: value; } 其中element是指应用了该变量的元素,–variable-name表示自定义变量的名称,va…

    other 2023年6月25日
    00
  • 【ruby】ruby安装

    以下是关于“【Ruby】Ruby安装”的完整攻略,包括基本概念、安装方法和两个示例。 基本概念 Ruby是一种面向对象的动态编程语言,具有简单、易、高效、灵活等特点,被广泛应用于Web开发、系统管理、数据处理等领域。在安装Ruby之前,需要先安装Ruby的运行环境,即Ruby解释器。 安装方法 以下是在不同操作系统上安装的方法: 在Windows上安装Rub…

    other 2023年5月7日
    00
  • vue部署后静态文件加载404的解决

    针对“vue部署后静态文件加载404的解决”,我给出了以下完整攻略: 问题描述 在vue应用部署到服务器后,访问页面时静态资源文件(如js、css、img等)出现404错误,该如何解决? 解决步骤 步骤一:修改配置文件 首先在vue.config.js文件中增加如下代码: javascript module.exports = { publicPath: ‘…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部