0


el-table 怎么合并相同单元格

问题背景

项目需求table表格中,相同的类型合并成一个单元格展示。

问题描述

el-table

并没有相关的语法直接合并,需要我们自己传入一个方法返回一个数组格式,来确定要合并行列。

效果图

解决问题

首先需要在

el-table

标签上绑定

:span-method="objectSpanMethod"
<el-table:data="tableData":span-method="objectSpanMethod"><el-table-columnprop="projectName"label="订单类型"/></el-table>

再去

methods

中定义

objectSpanMethod

方法,

data

中定义一个

rowSpanArr

参数

// 获取相同名称的个数 tableData: 表格的数据, projectName: 确定相同的参数handleTableData(tableData){let rowSpanArr =[], position =0;for(let[index, item]of tableData.entries()){if(index ==0){
          rowSpanArr.push(1);
          position =0;}else{if(item.projectName == tableData[index -1].projectName){
            rowSpanArr[position]+=1;//项目名称相同,合并到同一个数组中
            rowSpanArr.push(0);}else{
            rowSpanArr.push(1);
            position = index;}}}this.rowSpanArr = rowSpanArr
}// 单元格的处理方法 当前行row、当前列column、当前行号rowIndex、当前列号columnIndexobjectSpanMethod({ row, column, rowIndex, columnIndex }){if(columnIndex ===0){const rowSpan =this.rowSpanArr[rowIndex];return{rowspan: rowSpan,//行colspan:1//列};}}

扩展

objectSpanMethod({ row, column, rowIndex, columnIndex }){if(columnIndex ===0){// 判断是不是第一列,只有第一列才执行合并if(rowIndex %2===0){// 判断能不能被2整除return{rowspan:2,// 从当前单元格开始,执行合并2行colspan:1,// 从当前单元格开始,执行合并1列};}else{return{// 第一列的其他元素不执行合并rowspan:0,// 为0,不执行合并colspan:0// 为0,不执行合并};}}}

点赞评论收藏 ~~ 留言讨论,如有错误,也希望大家不吝指出。 ~~ 点赞评论收藏


本文转载自: https://blog.csdn.net/weixin_49175501/article/details/128873185
版权归原作者 shaoin_2 所有, 如有侵权,请联系我们删除。

“el-table 怎么合并相同单元格”的评论:

还没有评论