当前位置: 首页 > 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.lryc.cn/news/572708.html

相关文章:

  • Mac电脑 窗口分屏管理 Magnet Pro
  • 4、做中学 | 二年级下期 Golang整型和浮点型
  • react扩展
  • Excel批量计算时间差
  • 【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载缓存占满 C 盘问题:更改缓存位置全流程
  • ElSelect 多选远程搜索选项丢失问题
  • 甘肃安全员A证考试备考题库含答案2025年
  • WIFI原因造成ESP8266不断重启的解决办法
  • 【同声传译】RealtimeSTT:超低延迟语音转文字,支持唤醒词与中译英
  • npm 更新包名,本地导入
  • vue2通过leaflet实现图片点位回显功能
  • Fiddler抓包工具使用技巧:如何结合Charles和Wireshark提升开发调试效率
  • OpenCV C++ 边缘检测与图像分割
  • NY339NY341美光固态闪存NW841NW843
  • 【VUE】某时间某空间占用情况效果展示,vue2+element ui实现。场景:会议室占用、教室占用等。
  • PVE使用ubuntu-cloud-24.img创建虚拟机并制作模板
  • NVIDIA开源Fast-dLLM!解析分块KV缓存与置信度感知并行解码技术
  • 旋转图像C++
  • json.Unmarshal精度丢失问题分析
  • vue3组件式开发示例
  • 大模型与搜索引擎的技术博弈及未来智能范式演进
  • MySQL查询语句的通配符*
  • 组态王工程运行时间显示
  • 【案例拆解】米客方德 SD NAND 在车联网中(有方模块)的应用:破解传统 TF 卡振动脱落与寿命短板
  • 在VTK中捕捉体绘制图像进阶(同步操作)
  • 零基础入门PCB设计 一实践项目篇 第三章(STM32开发板原理图设计)
  • 云计算处理器选哪款?性能与能效的平衡艺术
  • 【网络安全】文件上传型XSS攻击解析
  • 特征金字塔在Vision Transformer中的创新应用:原理、优势与实现分析
  • AS32系列MCU芯片I2C模块性能解析与调试