vue+ antd 表格多行合并问题

**

vue+ antd 表格行合并问题

**这里的代码适合多行合并,例如我得表格先按照年份,在按照月份

在这里插入图片描述

if (data.success) {
            let arr = data.data;
            // 处理表格合并
            const arr1 = _.sortBy(arr, ['year', 'month']);
            const obj = _.groupBy(arr1, 'year');
            console.log(arr1, obj, '===========arr1');
            for (const firstKey in obj) {
              let firstColRowSpan = 1;
              let secondColRowSpan = 1;
              if (Object.hasOwnProperty.call(obj, firstKey)) {
                firstColRowSpan = obj[firstKey].length;
                obj[firstKey].forEach((element, i) => {
                  element.firstColRowSpan = i % firstColRowSpan === 0 ? firstColRowSpan : 0;
                });
                const obj2 = _.groupBy(obj[firstKey], 'month');
                for (const secondKey in obj2) {
                  if (Object.hasOwnProperty.call(obj2, secondKey)) {
                    secondColRowSpan = obj2[secondKey].length;
                    obj2[secondKey].forEach((element, i) => {
                      element.secondColRowSpan = i % secondColRowSpan === 0 ? secondColRowSpan : 0;
                    });
                  }
                }
              }
            }
            this.tableData = arr1;
          }

在column部分

const handleFirstCollapseRows = (value, row, index) => {
  const { firstColRowSpan } = row || {};
  return {
    children: value,
    attrs: {
      rowSpan: firstColRowSpan
    }
  };
};
const handleSecondCollapseRows = (value, row, index) => {
  const { secondColRowSpan } = row || {};
  return {
    children: value,
    attrs: {
      rowSpan: secondColRowSpan
    }
  };
};

{
        title: '年份',
        dataIndex: 'year',
        align: 'center',
        width: 100,
        customRender: handleFirstCollapseRows,
      },
      {
        title: '月份',
        dataIndex: 'month',
        align: 'center',
        width: 100,
        customRender: handleSecondCollapseRows,
      },

这个代码通用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值