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

el-table 树形数据,子行数据可以异步加载

1、

<el-tableborder: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.idconst data = await getTableList(row.id)row.children = dataresolve(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.lryc.cn/news/2400737.html

相关文章:

  • 【使用JAVA调用deepseek】实现自能回复
  • 【Linux系列】rsync命令详解与实践
  • Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复
  • C++——智能指针 unique_ptr
  • 【Python训练营打卡】day43 @浙大疏锦行
  • 1-【源码剖析】kafka核心概念
  • JavaScript中判断两个对象是否相同(所有属性的值是否都相同)
  • Flask 应用的生产环境部署指南
  • 思科设备网络实验
  • Oracle OCP与MySQL OCP认证如何选?
  • AWS之数据分析
  • C# Onnx 动漫人物头部检测
  • 【Ragflow】24.Ragflow-plus开发日志:增加分词逻辑,修复关键词检索失效问题
  • gin 常见中间件配置
  • 蚂蚁森林自动收能量助手:Ant_Forest_1_5_4_3绿色行动新选择
  • Zookeeper 集群部署与故障转移
  • Redis最佳实践——电商应用的性能监控与告警体系设计详解
  • 区域徘徊检测算法AI智能分析网关V4助力公共场所/工厂等多场景安全升级
  • 修复与升级suse linux
  • 电力高空作业安全检测(2)数据集构建
  • 嵌入式开发之STM32学习笔记day18
  • [论文阅读]PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning
  • 一键 Ubuntu、Debian、Centos 换源(阿里源、腾讯源等)
  • 汽车安全:功能安全FuSa、预期功能安全SOTIF与网络安全Cybersecurity 解析
  • 【C++高级主题】虚继承
  • 基于 ZYNQ 的实时运动目标检测系统设计
  • 数据结构(JAVA版)练习题
  • C#编程过程中变量用中文有啥影响?
  • 哈希表入门:用 C 语言实现简单哈希表(开放寻址法解决冲突)
  • [华为eNSP] 在eNSP上实现IPv4地址以及IPv4静态路由的配置