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

el-table复杂表头(多级表头行或列的合并)

el-table复杂表头(多级表头行或列的合并)

第一种

需求

在这里插入图片描述

实现效果

在这里插入图片描述

实现方式

<el-table:data="tableData"bordermax-height="550px":header-cell-style="headerCellStyle":span-method="objectSpanMethod"
><el-table-column label="分公司下发" align="center"><el-table-column label="总数" prop="index" align="center"><el-table-column prop="index" label="序号" align="center"></el-table-column></el-table-column><el-table-column label="总数的值" align="center"><template #header><div class="tableTitleContent">31</div></template><el-table-column prop="content" label="内容" align="center"></el-table-column></el-table-column><el-table-column label="已完成" prop="content" align="center"><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="已完成的值" align="center"><template #header><div class="tableTitleContent">12</div></template><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="未完成" align="center"><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="未完成的值" align="center"><template #header><div class="tableTitleContent">19</div></template><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="完成率" align="center"><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="完成率的值" align="center"><template #header><div class="tableTitleContent">38.80%</div></template><el-table-column label="内容(占位列)"></el-table-column></el-table-column></el-table-column><el-table-column label="中心创建" align="center"><el-table-column label="总数" align="center"><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="总数的值" align="center"><template #header><div class="tableTitleContent">12</div></template><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="已完成" align="center"><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="已完成的值" align="center"><template #header><div class="tableTitleContent">6</div></template><el-table-column label="内容(占位列)"></el-table-column></el-table-column><el-table-column label="未完成" align="center"><el-table-column prop="startTime" label="开始时间" align="center"></el-table-column></el-table-column><el-table-column label="未完成的值" align="center"><template #header><div class="tableTitleContent">6</div></template><el-table-column prop="endTime" label="结束时间" align="center"></el-table-column></el-table-column><el-table-column label="完成率" align="center"><el-table-column prop="deptName" label="创建部门" align="center"></el-table-column></el-table-column><el-table-column label="完成率的值" align="center"><template #header><div class="tableTitleContent">50%</div></template><el-table-column prop="isFinished" label="是否完成" align="center"></el-table-column></el-table-column></el-table-column><template v-slot:empty><table-empty></table-empty></template>
</el-table>// 计算表头是否展示
const headerCellStyle = ({ row, column, rowIndex, columnIndex }) => {if (rowIndex === 2) {if (columnIndex > 1 && columnIndex < 12) {return { display: 'none' }}}// 然后让第2行第1列的单元格横向占据11个单元格位置填充刚刚隐去导致的空白if ((columnIndex == 1) & (rowIndex == 2)) {nextTick(() => {document.querySelector(`.${column.id}`).setAttribute('colspan', '11')})}
}
// 合并单元格
const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {if (columnIndex == 1) {return {rowspan: 1,colspan: 11}} else if (columnIndex > 1 && columnIndex <= 11) {return {rowspan: 0,colspan: 0}} else {return {rowspan: 1,colspan: 1}}
}

第二种

需求

在这里插入图片描述

实现效果

在这里插入图片描述

实现方式


<el-table :data="tableData" border :header-cell-style="headerCellStyle" :span-method="objectSpanMethod"><el-table-column label="成果" align="center" show-overflow-tooltip><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column prop="index" label="序号" align="center"></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="专利" align="center" show-overflow-tooltip><el-table-column label="论文" align="center" show-overflow-tooltip><el-table-column label="软著" align="center" show-overflow-tooltip><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column prop="content" label="内容" align="center" show-overflow-tooltip></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="专利的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="论文的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="软著的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="内容(占位单元格)"/></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="项目" align="center" show-overflow-tooltip><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="内容(占位单元格)"/></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="自研产品" align="center" show-overflow-tooltip><el-table-column label="科研项目" align="center" show-overflow-tooltip><el-table-column label="全员双创" align="center" show-overflow-tooltip><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="内容(占位单元格)"/></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="自研产品的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="科研项目的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="全员双创的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="内容(占位单元格)"/></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="标准" align="center" show-overflow-tooltip><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="占位单元格"><el-table-column label="内容(占位单元格)"/></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="国家标准" align="center" show-overflow-tooltip><el-table-column label="行业标准" align="center" show-overflow-tooltip><el-table-column label="地方标准" align="center" show-overflow-tooltip><el-table-column label="团体标准" align="center" show-overflow-tooltip><el-table-column label="企业标准" align="center" show-overflow-tooltip><el-table-column label="创新成果分类" align="center" show-overflow-tooltip></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><el-table-column label="国家标准的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="行业标准的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="地方标准的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="团体标准的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="企业标准的值" align="center" show-overflow-tooltip><template #header><div class="tableTitleContent">--</div></template><el-table-column label="详细分类" align="center" show-overflow-tooltip></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column></el-table-column><template v-slot:empty><table-empty></table-empty></template>
</el-table>// 计算表头是否展示
const headerCellStyle = ({row, column, rowIndex, columnIndex}) => {// 合并内容列if (rowIndex === 5) {if (columnIndex > 1 && columnIndex < 7) {return { display: 'none' }}// 然后让第5行第1列的单元格横向占据8个单元格位置填充刚刚隐去导致的空白if (columnIndex === 1) {nextTick(() => {document.querySelector(`.${column.id}`).setAttribute('colspan', '6')})}}// 合并成果、专利、标准列if (rowIndex > 0 && rowIndex < 5) {if (columnIndex === 0 || columnIndex === 3 || columnIndex === 6) {return { display: 'none' }}}if (rowIndex === 0 && (columnIndex === 0 || columnIndex === 3 || columnIndex === 6)) {nextTick(() => {document.querySelector(`.${column.id}`).setAttribute('rowspan', '5')})}// 合并其他单元格if (rowIndex === 3 || rowIndex === 4) {if (columnIndex !== 0 && columnIndex !== 3 && columnIndex !== 6 && columnIndex !== 7 && columnIndex !== 8) {return { display: 'none' }// return { visibility: 'hidden' }}}if (rowIndex === 2) {if (columnIndex == 1 || columnIndex === 2 || columnIndex === 4 || columnIndex === 5) {nextTick(() => {document.querySelector(`.${column.id}`).setAttribute('rowspan', '3')})}}
}
// 合并单元格
const objectSpanMethod = ({row, column, rowIndex, columnIndex}) => {if (columnIndex == 1) {return {rowspan: 1,colspan: 6}} else if (columnIndex > 1 && columnIndex < 7) {return {rowspan: 0,colspan: 0}} else {return {rowspan: 1,colspan: 1}}
}
http://www.lqws.cn/news/456643.html

相关文章:

  • Llama 4 模型卡及提示格式介绍
  • 数据融合平台是什么?如何搭建数据融合平台?
  • windows清理系统备份文件夹WinSxS文件夹清理
  • 深入理解JVM执行引擎
  • FramePack 安装指南(中文)
  • 层级冲突的处理,弹窗生成遮罩问题
  • Xinference部署教程
  • 【CS创世SD NAND征文】STM32户外无线终端管理设备的数据存储方案
  • SelectDB 在 AWS Graviton ARM 架构下相比 x86 实现 36% 性价比提升
  • 代码随想录day10栈和队列1
  • Java 通过QQ邮箱发送邮件(包括附件) 直接可以使用
  • Postman接口测试完整版
  • Docker 容器技术入门与环境部署
  • 运算放大器
  • 应用层协议HTTP
  • shell脚本--变量
  • GNU Octave 基础教程(2):第一个 Octave 程序
  • 碳中和时代的家电革命,从华为智选IAM看科技企业的环保担当
  • conda导出环境文件requirements.txt
  • 解决 Conda 玑境激活问题:缺少 `bin/activate` 文件的应对方法
  • react 面试题
  • 信创 CDC 实战|国产数据库的数据高速通道:OceanBase 实时入仓 StarRocks
  • flask静态资源与模板页面、模板用户登录案例
  • 服务网格安全(Istio):用零信任架构重构微服务通信安全
  • 【系统规划与管理师第二版】1.3 新一代信息技术及发展
  • 三维视频融合怎么弄?三步实现精准投射与自由修剪
  • 如何在服务器终端下载百度网盘数据
  • Spring 的IoC 和 AOP
  • Git 查询与切换分支的完整指南
  • 语音相关-浏览器的自动播放策略研究和websocket研究