react + ant design 实现动态合并Table表格(相同数据合并为一条)

一、首先来看看需求,主要就是一个表格的合并

《react + ant design 实现动态合并Table表格(相同数据合并为一条)》
这里是官方文档给出的关于合并的方法
《react + ant design 实现动态合并Table表格(相同数据合并为一条)》

表头只支持列合并,使用 column 里的 colSpan 进行设置。 表格支持行/列合并,使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时,设置的表格不会渲染。

根据他给出的demo可以看出是要合并的第一个数据设置他的colSpan ,而后边不展示的数据给他设置colSpan /rowSpan 为0 就可以,但是这样子的话,根据后端返回的不确定数据就好像有点不好整了是吧(要是后端能直接给你合并的格数,不展示的通过一个啥字段标记一下可能也行,或许有更好的方案,各位大佬评论区指出吧)。

《react + ant design 实现动态合并Table表格(相同数据合并为一条)》
但是,我们可以结合数组的filter() 方法试试,这玩意不是可以筛选符合条件的数据嘛,让他来返回相同的数据没毛病吧。
《react + ant design 实现动态合并Table表格(相同数据合并为一条)》

二、主要代码:

{
        title: 'GPS号',
        dataIndex: 'gpsNumber',
        key: 'gpsNumber',
        align: 'center',
        render: (value, record, index) => {
          const obj = {
            children: value,
            props: {},
          };
          let arr = this.state.tableListTest.filter((res) => {
            //这里gpsNumber是我需要判断的字段名(相同就合并)
            return res.gpsNumber == record.gpsNumber;
          });
          if (index == 0 || this.state.tableListTest[index - 1].gpsNumber != record.gpsNumber) {
            obj.props.rowSpan = arr.length;
          } else {
            obj.props.rowSpan = 0;
          }
          return obj;
        },
      },

三、我这里的部分数据

《react + ant design 实现动态合并Table表格(相同数据合并为一条)》

四、最终的效果

《react + ant design 实现动态合并Table表格(相同数据合并为一条)》
这里的表头也是有一个合并的效果的,官方文档有给出方案:
《react + ant design 实现动态合并Table表格(相同数据合并为一条)》

    原文作者:codernmx
    原文地址: https://blog.csdn.net/qq_31754591/article/details/118961277
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞