element单元格类型相同的合并

在这里插入图片描述

<el-table :data="tableDataFile" border style="width: 100%" :span-method="objectSpanMethod">
          <el-table-column prop="fileType" label="文件类型"  >
              <template #default="scope">{{ scope.row.fileType }} </template>
          </el-table-column>
          <el-table-column prop="originalName" label="文件名称"  />
          <el-table-column prop="fileSize" label="文件大小"  />
          <el-table-column prop="fileVersion" label="版本号"  >
            <template #default="scope">V{{scope.row.fileVersion }} </template>
          </el-table-column>
          <el-table-column prop="updateBy" label="更新人"  />
          <el-table-column prop="updateTime" label="上传时间"  />
          <el-table-column  label="操作" width="120">
            <template #default="scope">
              <el-button
                link
                type="primary"
                size="small"
                @click.prevent="deleteRow(scope.$index)"
              >
                删除
              </el-button>
            </template>
          </el-table-column>
        </el-table>


			
      const tableDataFile = [
      { fileType: 2, originalName: 'File 4', fileSize: '8MB', fileVersion: 1, updateBy: 'User 4', updateTime: '2024-05-28' },
      { fileType: 2, originalName: 'File 5', fileSize: '8MB', fileVersion: 1, updateBy: 'User 4', updateTime: '2024-05-28' },
      { fileType: 2, originalName: 'File 6', fileSize: '8MB', fileVersion: 1, updateBy: 'User 4', updateTime: '2024-05-28' },
      { fileType: 3, originalName: 'File 7', fileSize: '8MB', fileVersion: 1, updateBy: 'User 4', updateTime: '2024-05-28' },
      { fileType: 1, originalName: 'File 1', fileSize: '10MB', fileVersion: 1, updateBy: 'User 1', updateTime: '2024-05-31' },
      { fileType: 1, originalName: 'File 2', fileSize: '15MB', fileVersion: 2, updateBy: 'User 2', updateTime: '2024-05-30' },
      { fileType: 1, originalName: 'File 3', fileSize: '12MB', fileVersion: 1, updateBy: 'User 3', updateTime: '2024-05-29' },
      { fileType: 2, originalName: 'File 3', fileSize: '12MB', fileVersion: 1, updateBy: 'User 3', updateTime: '2024-05-29' },
      { fileType: 2, originalName: 'File 8', fileSize: '8MB', fileVersion: 1, updateBy: 'User 4', updateTime: '2024-05-28' }
    ];


	const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
            console.log('objectSpanMethod',row, column, rowIndex, columnIndex)
            if (columnIndex === 0) {
            const _row = flitterData(tableDataFile).one[rowIndex];
            const _col = _row > 0 ? 1 : 0;
            return {
                rowspan: _row,
                colspan: _col,
            };
		      }
        }

    const flitterData = (arr) => {
            // 合并表格第一列
            let spanOneArr = [];
            let concatOne = 0;
            arr.forEach((item, index) => {

                if (index === 0) {
                    spanOneArr.push(1);
                    }
                else {
                    console.log('item',item,index)
                    console.log('arr',arr[index-1])
                    // 这里的fileType是表格绑定的字段,也就是需要合并的字段,根据自己的需求来改
                    if (item.fileType == arr[index -1].fileType) {
                        // 第一列需合并相同内容的判断条件
                        spanOneArr[concatOne] += 1;
                        spanOneArr.push(0);
                    } else {
                        spanOneArr.push(1);
                        concatOne = index;
                    }

                }
            });
            return {
                one: spanOneArr,
            };
        }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值