el-table 树形数据 tree-props 多层级使用避坑
发布日期:2025-01-04 11:05 点击次数:69
实现效果:
element官网提示设置tree-props为{children: ‘children’,hasChildren: ‘hasChildren’},data数据需要设置children和hasChildren属性,row-key也绑定了数据的唯一值变量id,但是树形结构的第三级就是出不来
如图
可以看到只有第二级,第三级并没有,于是查看了数据格式,和官方要求的也是一样的呢,但是第三层级就是不展示
最后发现
在el-table中,支持树类型的数据的显示。当 row 中包含 children 字段时,被视为树形数据。渲染树形数据时,必须要指定 row-key 。支持子节点数据异步加载。
设置 Table 的 lazy 属性为 true 与加载函数 load 。通过指定 row 中的 hasChildren 字段来指定哪些行是包含子节点。 children 与 hasChildren 都可以通过 tree-props 配置。
default-expand-all 属性表示默认展开,不需要展开可以删除。 row-key="id" 和 row 里面的属性有 children 字段(即数据里面需要有 children 字段) 是必须的,:tree-props="{children: ‘children’,hasChildren: ‘hasChildren’}可有可无。
如果不是 懒加载 的话,后端不要设置 hasChildren 这个属性,要不然树形不能显示; 如果是懒加载,则需要设置 hasChildren 字段。
错误代码:
因为我的数据不是懒加载,所以不需要添加后面的 hasChildren: 'hasChildren' 配置
并且在组装数据格式时,也不需要加上 hasChildren=true / hasChildren=false 的字段
完整代码:
接口返回的数据 为 二级 数据格式 但是table表格中要展示 三个层级 需要前端自己来处理 组装需要的格式(有和我一样的小伙伴,可以让后端组装好格式返回噢)
可以看出
有的数据中没有 children 字段,有的有 children 字段后端返回的树形结构数据一个 二级数据格式 ,还需要前端处理,将 children 中每一条数据里的 posName 字段值取出来 并赋值给一个 barcode 的新字段 加上id 组成第二级数据,后端返回的 第二层级数据 作为 树形结构的 第三层级数据 使用
js代码
三级树形结构 官方例子
实现效果
到此这篇关于el-table 树形数据 tree-props 多层级使用避坑的文章就介绍到这了,更多相关el-table tree-props 多层级使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!