table表格合并行

场景:切换页码也能满足合并的能力("ant-design-vue": "^1.7.1")

模板

<div class='wrapper'>
  <a-table
    :columns="columns" 
    :data-source="data" 
    :pagination="{
      pageSize: currentPageSize,
      current: currentPage,
      onChange: changPage,
    }" 
  >
  </a-table>
</div>

  处理rowSpan

const columns_ = [
            {
              title: 'field_name',
              dataIndex: 'field_name',
              customRender(value, record, _rowIndex) {
                const obj = {
                  children: value,
                  attrs: { },
                };
                
                const data_ = self.data;
                const curPage = self.currentPage;
                const curPageSize = self.currentPageSize;
                const start = (curPage - 1) * curPageSize;
                const end = data_.length > curPageSize * curPage ? 
                  data_.length -1 : curPageSize * curPage;
                const curPageData = data_.slice(start, end);
                
                const fields = ['field_name']
                const cellValue = record[fields];
                if (cellValue) {
                  const prevRow = curPageData[_rowIndex - 1]
                  let nextRow = curPageData[_rowIndex + 1]
                  if (prevRow && prevRow[fields] === cellValue) {
                    obj.attrs.rowSpan = 0;
                    obj.attrs.colSpan = 0;
                  } else {
                    let countRowspan = 1
                    while (nextRow && nextRow[fields] === cellValue) {
                      nextRow = curPageData[++countRowspan + _rowIndex]
                    }
                    if (countRowspan > 1) {
                      obj.attrs.rowSpan = countRowspan;
                      obj.attrs.colSpan = 1;
                    }
                  }
                }
                return obj;
              },
            },
            ...filterColumns_,
          ]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值