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

通过el-table 树形材料,子行数据能够异步加载

1、

<el-table
border
:header-cell-style="tableStyle?.headerCellStyle"
ref="tableRef"
:data="tableData"
row-key="id"
:
default-expand-all="false" // 默认不展开所有树形节点
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
/*
配置树形结构的属性,
children:指定子节点数据的字段名,
hasChildren:指定一个布尔值字段,表示是否有子节点
这样组件就知道如何递归渲染树形结构。*/
lazy // 启用懒加载模式(子节点数据不会一次性加载,而是当用户展开某个节点时,通过load方法动态加载)
:load="load"
/*
指定懒加载时调用的方法,这里绑定的是load方法。
当用户展开一个节点时,会触发这个方法,传入当前行的数据和resolve回调函数,用于异步加载子节点数据。
*/
>
<
/el-table>
import {
treeByParentId
}
from '/@/api/admin/dept'
;
const tableData = ref([]
)
let nowRowId = ref(''
)
const getTableList = (parentId
) =>
{
return
new Promise(resolve =>
{
treeByParentId({
parentId
}
).then(res =>
{
if(res.code == 0 && Array.isArray(res.data)
){
resolve(res.data)
}
else {
resolve([]
)
useMessage(
).error(res.msg || '数据已加载完毕'
)
}
}
).catch((
) =>
{
resolve([]
)
}
)
}
)
}
const load =
async (row, treeNode, resolve
) =>
{
if (!row.hasChildren) {
return resolve([]
)
}
else {
nowRowId.value = row.id
const data =
await getTableList(row.id)
row.children = data
resolve(data)
}
}
const getData =
async (parentId = nowRowId.value
) =>
{
// 查询的时候,如果deptName的值不为空,parentId置为空
if(state.queryForm.deptName != ''
){
parentId = ''
}
const {
data
} =
await treeByParentId({
parentId, deptName: state.queryForm.deptName
}
)
tableData.value = data
}
onMounted((
) =>
{
getData(
)
}
)
// 重置
const reset = (
) =>
{
nowRowId.value = ''
state.queryForm.deptName = ''
getData(
)
}

2、

接口的数据结构:

{
"code": 0
,
"data": [
{
"id": "唯一标识"
,
"name": "节点名称"
,
"hasChildren": true
, // 必须字段!
"children": [] // 必须字段(即使为空数组)
}
,
// ...其他节点
]
}
http://www.jsqmd.com/news/10247/

相关文章:

  • [KaibaMath]1002 关于[x+n]=[x]+n的证明
  • SpringBoot进阶教程(八十七)数据压缩
  • 塑料回收技术创新与可持续发展
  • 共享掩码:TFHE在打包消息上的自举技术
  • 打印
  • 实用指南:Cursor 工具项目构建指南: Web Vue-Element UI 环境下的 Prompt Rules 约束(new Vue 方式)
  • 完整教程:vue2 项目中 npm run dev 运行98% after emitting CopyPlugin 卡死
  • VsCode 安装 Cline 插件并使用免费模型(例如 DeepSeek) - 指南
  • 2025球墨铸铁管厂家 TOP 企业品牌推荐排行榜,市政球墨铸铁管、球墨铸铁管件、防腐球墨铸铁管、给水球墨铸铁管推荐这十家公司!
  • Say 题选记(10.5 - 10.11)
  • E. Rasta Thamaye Dilo
  • 微信机器人开发最新协议API
  • JDK的安装与使用 - XYX
  • 不连网也能跑大模型? - 教程
  • Rust 的英文数字验证码识别系统实现
  • 实用指南:go get下载三方库异常
  • 微信机器人制作教程+源码
  • 基于 Rust 的英文数字验证码识别系统实现
  • 使用 Fortran 实现英文数字验证码识别系统
  • 力扣热题100之翻转二叉树 - 详解
  • 初来乍到,发篇博客试试功能
  • 国庆集训游记
  • P11967 [GESP202503 八级] 割裂
  • LeetCode热题100-74题、数据流的中位数
  • 用 Ada 实现英文数字验证码识别
  • 【sgImportBtn】自定义组件:导入按钮(支持上下文关联导出菜单,配置下载导入Excel模板按钮命令、样式、图标路径等) - 实践
  • WPS word 已有多级列表序号 - 指南
  • 数据增强操作
  • HTML5实现简洁的端午节节日网站源码 - 实践
  • Visio的图片,粘到word中显示不全,右边和下面显示不出来