列表合并单元格

1.项目名称进行截取显示

 
<a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        class="j-table-force-nowrap"
        :scroll="{x:true}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        @change="handleTableChange">
         <span slot="projectName" slot-scope="text">
          <j-ellipsis :value="text" :length="20" />
        </span>
......



     data () {
          let ellipsis = (v, l = 10) => (<j-ellipsis value={v} length={15}/>)
          return {
          }
     }

2.根据项目名称进行合并单元格

{
            title:'项目名称',
            align:"center",
            dataIndex: 'projectName',
            customRender: (text, record, index) => {

              const data = this.dataSource; // 或其他你存储表格数据的地方
              const currentProjectRows = data.filter(row => row.projectName === text).reduce((acc, row) => {
                acc.push(row);
                return acc;
              }, []);

              const rowSpan = currentProjectRows.length;
              const { projectName: prevProjectName } = this.dataSource[index - 1] || {};

              if (index > 0 && text === prevProjectName) {
                return { children: ellipsis(text), attrs: { rowSpan: 0, display: 'none' } };
              }

              return { children: ellipsis(text), attrs: { rowSpan: rowSpan, colSpan: 1 } };

              // const data = this.dataSource; // 或其他你存储表格数据的地方
              // // 找到当前行所在项目的所有连续行
              // let currentProjectRows = [];
              // const count=0;
              // for (let i = count; i < data.length; i++) {
              //   if (data[i].projectName ===text) {
              //     currentProjectRows.push(data[i]);
              //   }
              // }
              //
              // const rowSpan = currentProjectRows.length;
              // // return { children: ellipsis(text), attrs: { rowSpan: rowSpan > 0 ? rowSpan : 1 ,colSpan: 1} }
              // if(index>0){
              //   if(text==this.dataSource[index-1].projectName){
              //     return { children: ellipsis(text), attrs: { rowSpan: 0, display: 'none' } };
              //   }
              // }
              // return { children: ellipsis(text), attrs: { rowSpan: rowSpan , colSpan: 1 } };

            },
          },

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值