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

完整教程:<el-table>构建树形结构

完整教程:<el-table>构建树形结构

最佳实践

el-table实现树形结构主要依靠row-keytree-props来实现的。
? 无论是el-table实现的树形结构还是el-tree组件都是绑定的树形结构的数据,因此如果数据是扁平的话,需要进行树化。

代码

<template><div><el-table:data="tableData"style="width: 100%;margin-bottom: 20px;"row-key="id"borderdefault-expand-all:tree-props="{children: 'children', hasChildren: 'hasChildren'}"><el-table-columnprop="date"label="日期"sortablewidth="180"></el-table-column><el-table-columnprop="name"label="姓名"sortablewidth="180">
</el-table-column>
<el-table-columnprop="address"label="地址">
</el-table-column>
</el-table>
</div>
</template>
<script>
export
default {
data(
) {
return {
tableData: [{
id: 1
,
date: '2016-05-02'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1518 弄'
}
,
{
id: 2
,
date: '2016-05-04'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1517 弄'
}
,
{
id: 3
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
,
children: [{
id: 31
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
}
,
{
id: 32
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
}]
}
, {
id: 4
,
date: '2016-05-03'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1516 弄'
}]
}
}
,
methods: {
}
,
}
</script>
当前视图

可以看到树形结构默认是打开的

在这里插入图片描述

核心属性

  • default-expand-all:树形结构打开还是关闭。
    关闭可以通过删除default-expand-all:default-expand-all = 'false'对属性值进行动态绑定,并将值置为false
  • children:指定子节点数据在父节点对象中的字段名,这里是 children 。
    也可以修改为其它名称,但是两处都需要进行修改
  • hasChildren:这个属性是非必须的,需要进行懒加载的时候才需要用到它。
    hasChildren需要和lazy属性、load属性来实现懒加载,lazy为true时,load方法才会生效。hasChildren属性和children属性相同,也可以修改名称。

懒加载

只加载需要展示的数据,其它数据等用户主动点击才会请求后端拿取。

代码

<template><div><el-table:data="tableData1"style="width: 100%"row-key="id"borderlazy:load="load":tree-props="{ children: 'children', hasChildren: 'hasChildren' }"><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>
</div>
</template>
<script>
export
default {
data(
) {
return {
tableData: [{
id: 1
,
date: '2016-05-02'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1518 弄'
}
,
{
id: 2
,
date: '2016-05-04'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1517 弄'
}
,
{
id: 3
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
,
children: [{
id: 31
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
}
,
{
id: 32
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
}]
}
, {
id: 4
,
date: '2016-05-03'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1516 弄'
}]
,
tableData1: [{
id: 1
,
date: '2016-05-02'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1518 弄'
}
, {
id: 2
,
date: '2016-05-04'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1517 弄'
}
, {
id: 3
,
date: '2016-05-01'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1519 弄'
,
hasChildren: true
}
, {
id: 4
,
date: '2016-05-03'
,
name: '王小虎'
,
address: '上海市普陀区金沙江路 1516 弄'
}]
}
}
,
methods: {
load(row, treeNode, resolve
) {
// 查找对应的父节点
const findChildren = (data, id
) =>
{
for (
let item of data) {
console.log(item.id)
;
if (item.id === id) {
console.log(item.id)
;
return item.children || []
;
}
}
return []
;
}
;
if (treeNode) {
const children = findChildren(
this.tableData, row.id)
;
resolve(children)
;
}
else {
resolve([]
)
;
}
}
}
,
}
</script>

效果图

在这里插入图片描述

到这里el-table加载树形结构就结束了。☺️

http://www.hskmm.com/?act=detail&tid=25161

相关文章:

  • 如何在markdown中插入折叠框
  • wqs二分
  • markdown语法详解
  • CF2115 VP 记录
  • 2-SAT模板
  • lab5
  • lab4
  • NumPy广播:12个技巧替代循环,让数组计算快40倍
  • 某中心2026年推出1111个技术实习岗位
  • 川土微变频器应用分享
  • POLIR-Society-Philosophy- Hegels 形而上学System Philosophy Dialectics 系统化哲学辩证法: 自由意志+封闭的绝对精神
  • 解决VLC 无法解码格式“h264” (H264 - MPEG-4 AVC (part 10))
  • CF2115 总结
  • luogu P8816 [CSP-J 2022] 上升点列 题解
  • CF558C Amr and Chemistry BFS解
  • Atbash密码和摩斯密码
  • Redis 中如何保证缓存与数据库的内容一致性?
  • Payload CMS:开发者优先的Next.js原生开源解决优秀的方案,重新定义无头内容管理
  • 第一次写博客
  • 07. 自定义组件
  • python语法记录
  • 2025 年储罐厂家推荐最新公司权威排行榜榜单发布,深度解析衬四氟储罐 / 硫酸储罐 / 盐酸储罐工厂选购指南
  • UnicodeEncodeError: locale codec cant encode character \u5e74 in position 2: encoding error
  • 2025 年生物除臭设备厂家最新推荐排行榜:覆盖污水处理厂 / 垃圾中转站等多场景,助力企业精准挑选优质设备
  • 2025 年球墨铸铁管公司:重庆南恩物资全品类管材供应与市政工程适配解决方案解析
  • 2025生物除臭设备厂家最新品牌企业推荐排行榜揭晓:印染厂污水,食品厂污水,污水处理厂,污水泵站,污水站,餐厨垃圾,屠宰场,厨余垃圾生物除臭设备公司推荐
  • 2025 工业加热器选型必看:六大加热器实力厂家深度推荐,覆盖多场景加热设备解决方案
  • YOLO模型部署
  • 从理念到沙盘:用悟空博弈模拟器点亮人机共治的曙光
  • 深入解析:Redis事务详解:原理、使用与注意事项