解决expand-change第一次展开无数据显示与实现

server/2024/10/20 6:06:45/
  • 最近写需求时用到了expand-change表格展开回调,但我发现第一次展开后并没有展示任何数据,但我的返回值是存在的,当第二次展开时发现数据就有了。此原因是因为获取数据的接口是异步的,导致Dom渲染不同步导致的,其实解决办法也很简单,只需在外层的表格列表中的每一个数组对象加一个空数据作为默认展示即可
1 . 解决expand-change第一次展开无数据显示问题
  • 首先:定义好需要展示的数据并设置type="expand"展开子表格,用expand-change来获取当前行展开回调,设置row-key防止数据混乱(这个要加上不然,展开行又自己合上了)
<template><el-table :data="tableData" @expand-change="handleExpand" :border="parentBorder" style="width: 100%"><el-table-column type="expand"><template #default="props"><div m="4"><p m="t-0 b-2">State: {{ props.row.number || '' }}</p><p m="t-0 b-2">City: {{ props.row.chargeTime || '' }}</p><p m="t-0 b-2">Address: {{ props.row.serverAmount|| '' }}</p><h3>Family</h3><el-table :data="props.row.family" :border="childBorder"><el-table-column label="Name" prop="name" /><el-table-column label="State" prop="state" /><el-table-column label="City" prop="city" /><el-table-column label="Address" prop="address" /><el-table-column label="Zip" prop="zip" /></el-table></div></template></el-table-column><el-table-column label="Date" prop="date" /><el-table-column label="Name" prop="name" /></el-table>
</template><script lang="ts" setup>
import { ref } from 'vue'const parentBorder = ref(false)
const childBorder = ref(false)
const tableData = [{date: '2016-05-03',name: 'Tom',state: 'California',city: 'San Francisco',address: '3650 21st St, San Francisco',},{date: '2016-05-02',name: 'Tom',state: 'California',city: 'San Francisco',address: '3650 21st St, San Francisco',},{date: '2016-05-04',name: 'Tom',state: 'California',city: 'San Francisco',address: '3650 21st St, San Francisco',},
]// 展开某行详情
const handleExpand = async (item, expandedRows) => {if (!item.expand) {const detail = await api.front.remoteConfig.getBillDetail({ number: item.number })item.number = detail.numberitem.chargeTime = detail.chargeTimeitem.serverAmount = detail.serverAmountitem.expand = true}
}
</script>


http://www.ppmy.cn/server/55906.html

相关文章

备考AMC8和AMC10竞赛,吃透2000以来1850道真题和解析(持续)

距离2024年AMC10竞赛还有3个多月的时间&#xff0c;距离2025年AMC8竞赛还有6个多月的时间&#xff0c;那么&#xff0c;如何备考接下来的AMC8、AMC10竞赛呢&#xff1f; 做真题&#xff0c;吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。 通过做真题&#xff0c;可…

容器自动化:docker-compose

ansible一键部署docker-compus+lnmp+lnmt项目 一、docker-compose 我们知道使用一个dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排,服务编排有多种技术方案。 1.1、docker-compose简介 docker-compose项目是docker官方的开源项目,…

「技术分享」FDL对接金蝶云API取数

很多企业的ERP系统都在用金蝶云星空&#xff0c;金蝶云星空API是IT人员获取数据的重要来源&#xff0c; 常常用来生成定制化报表&#xff0c;进行数据分析&#xff0c;或是将金蝶云的数据与OA系统、BI工具集成。 通常情况下&#xff0c;IT人员需要使用Python、Java等语言编写脚…

AI在软件开发中的革新与未来挑战

目录 前言 AI工具的广泛应用与优势 AI与开发者技能需求的互动关系 AI的未来展望与面临的挑战 结语 前言 在当今快速发展的技术领域中&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;正以前所未有的方式改变着软件开发的面貌。从代码生成到错误检测&#xff0c;再…

iPhone苹果手机iOS18如何隐藏打开APP怎么找出来恢复隐藏APP?

iPhone苹果手机如何隐藏APP&#xff1f; 1、iPhone苹果手机上一些APP不想让别人看到可以设置为隐藏APP&#xff0c;请长按要设置隐藏的APP&#xff0c;选择需要面容ID&#xff1b; 2、然后再接着选择隐藏并需要面容ID&#xff0c;选择后手机桌面将不在显示该APP&#xff1b; i…

软件运维服务方案(Word原件2024)

软件运维服务方案&#xff08;Word原件&#xff09; 1. 服务简述 我们提供全面的软件运维服务&#xff0c;确保软件系统的稳定运行。 1.1 服务内容 包括监控、维护、故障排查与优化。 1.2 服务方式 结合远程与现场服务&#xff0c;灵活响应客户需求。 1.3 服务要求 高效响应&am…

Java Selenium入门程序

需求&#xff1a;使用chrome浏览器打开百度首页 1.配置浏览器驱动 &#xff08;1&#xff09;下载浏览器驱动&#xff0c;浏览器版本需与驱动版本一致&#xff1b; &#xff08;2&#xff09;编辑系统环境变量-->编辑Path-->填入浏览器驱动路径&#xff1a; 2.maven工…

26 华三防火墙安全区域

防火墙区域规划 配置网络网卡的地址在同一网段 第一个问题 为什么防火墙直连在同一个网段ping不通? 配置IP地址 local区域: 将local区域的所有接口启用 华三防火墙的local区域是指设备本地接口所在的区域&#xff0c;也称为局域网&#xff08;LAN&#xff09;或内部网络 Int…