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

el-table 实现嵌套表格的思路及完整功能代码

要实现的需求是这样的:
在这里插入图片描述
本来我是用 el-table 的 :span-method 方法实现的,但发现合并起来有问题,跟我的需求差距有些大,于是我想到了嵌套表格。但是嵌套完之后的样子也是很奇怪:
在这里插入图片描述
不要气馁,思路还是对的,只要改下样式就好了,于是就有了以下的代码:

<template><el-tableborder:data="tableData"v-loading="loading"class="el-child-table"><el-table-columnprop="applyDate"label="申请日期"align="center"width="120px"></el-table-column><el-table-columnprop="table"label="子表"class-name="has-child":render-header="renderHeader"><template slot-scope="scope"><el-table:data="scope.row.details"class="child-table":show-header="false"><el-table-columnprop="startDate"align="center"label="开始日期"width="120px"></el-table-column><el-table-columnprop="endDate"align="center"label="结束日期"width="120px"></el-table-column><el-table-columnprop="applyDay"align="center"label="申请天数"width="120px"></el-table-column> <el-table-column label="操作" align="center" width="220px"><el-button type="text" @click="viewItem(scope.row)">查看</el-button></el-table-column> </el-table></template></el-table-column></el-table>
</template><script>
export default {data() {return {loading: false,childColumn: [{label: "起始日期",key: 'startDate',width: "120px",},{label: "结束日期",key: 'endDate',width: "120px",},{label: "申请天数",key: 'applyDay',width: "120px",},{label: "操作",width: "220px",}],tableData: [{applyDate: '2016-05-02',details: [{startDate: '2016-05-02',endDate: '2016-05-02',applyDay: 5},{startDate: '2016-05-02',endDate: '2016-05-02',applyDay: 5}]},{applyDate: '2016-05-02',details: [{startDate: '2016-05-02',endDate: '2016-05-02',applyDay: 5},{startDate: '2016-05-02',endDate: '2016-05-02',applyDay: 5}]},{applyDate: '2016-05-02',details: [{startDate: '2016-05-02',endDate: '2016-05-02',applyDay: 5},{startDate: '2016-05-02',endDate: '2016-05-02',applyDay: 5}]}]};},methods: {renderHeader(h, { column, $index }) {const childTable = this.childColumn.map((item) => {return h("div",{style: {width: item.width,padding: "0 10px",textAlign: "center",flexShrink: 0,flexGrow: 0,},},item.label);});return h("div",{style: {display: 'flex'},},childTable);},viewItem(row){}}
}
</script><style scoped lang="scss">
.has-child {padding: 0px !important;// display: none;& > .cell {padding: 0 !important;}::before {height: 0;}.child-table {background-color: transparent;.cell{line-height: 34px;}}.el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {background-color: transparent;}.el-table__body tr.current-row > td.el-table__cell,.el-table__body tr.selection-row > td.el-table__cell {background-color: transparent;}tr {background-color: transparent;}.child-head {display: flex!important;}::v-deep .el-table .el-table__cell{padding: 0;}::v-deep .el-table .cell{line-height: 34px;}
}
</style>

总算功夫不负有心人,最终效果还是让我实现了。
在这里插入图片描述

总结知识点

这里总结以下要点啊,
首先嵌套就是 el-table 中再套一个 el-table,但重点是子表格不要显示表头,而且样式要自己写,尤其是要通过 :render-header 重写表格样式。这里只是粗略实现了样式,需要的同学自行优化样式。

相关文章:

  • “胖东来”超市商业模式,为何被誉为中国零售业是神一般的存在?
  • C++的第一道门坎:类与对象(一)
  • 用队列实现栈 用栈实现队列 设计循环队列
  • Python 基于深度图、RGB图生成RGBD点云数据
  • 代码随想录算法训练营第36期DAY42
  • 深入解析:Element Plus 与 Vite、Nuxt、Laravel 的结合使用
  • 【Linux】centos7下载安装Python3.10,下载安装openssl1.1.1
  • RabbitMQ(一)概述第一个应用程序
  • 视频监控平台AS-V1000产品介绍:账户或用户数据的导入和导出功能介绍
  • ts:条件类型
  • MySQL:如果用left join的话,左边的表一定是驱动表吗
  • Diffusion Policy:基于扩散模型的机器人动作生成策略
  • CLIP源码详解:clip.py 文件
  • 【除了知乎,大家都在逛什么?持续更新~~】
  • python数据分析——apply 1
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 4个实用的微服务测试策略
  • C# 免费离线人脸识别 2.0 Demo
  • Date型的使用
  • HTML中设置input等文本框为不可操作
  • Java IO学习笔记一
  • PHP 7 修改了什么呢 -- 2
  • Puppeteer:浏览器控制器
  • Python3爬取英雄联盟英雄皮肤大图
  • Sass 快速入门教程
  • vue 个人积累(使用工具,组件)
  • 浮现式设计
  • 精彩代码 vue.js
  • 理清楚Vue的结构
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 怎么把视频里的音乐提取出来
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • (1)Nginx简介和安装教程
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (Forward) Music Player: From UI Proposal to Code
  • (js)循环条件满足时终止循环
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (一)Docker基本介绍
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)iOS字体
  • (转载)深入super,看Python如何解决钻石继承难题
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net访问oracle数据库性能问题
  • .NET开源快速、强大、免费的电子表格组件
  • .sh
  • @Validated和@Valid校验参数区别
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [2024-06]-[大模型]-[Ollama]- WebUI