element-ui table列合并

示例json数组:

tableData6: [{
          id: '12987122',
          name: '王小虎',
          amount1: '234',
          amount2: '3.2',
          amount3: 10
        }, {
          id: '12987123',
          name: '王小虎',
          amount1: '165',
          amount2: '4.43',
          amount3: 12          
        }, {
          id: '12987124',
          name: '王小虎',
          amount1: '324',
          amount2: '1.9',
          amount3: 9
        }, {
          id: '12987125',
          name: '王小虎',
          amount1: '621',
          amount2: '2.2',
          amount3: 17
        }, {
          id: '12987126',
          name: '王小虎',
          amount1: '539',
          amount2: '4.1',
          amount3: 15
        },
			{
          id: '12987124',
          name: '王小虎',
          amount1: '324',
          amount2: '1.9',
          amount3: 9
        }, {
          id: '12987125',
          name: '王小虎',
          amount1: '621',
          amount2: '2.2',
          amount3: 17
        }, {
          id: '12987126',
          name: '王小虎',
          amount1: '539',
          amount2: '4.1',
          amount3: 15
        }],
        column_row_offset: {  
        id: [3, 1, 1,1,1,1],  
        name: [2, 1, 1, 1,1,1,1],  
        amount1: [1, 1, 1, 1, 1,1,1,1],  
        amount2: [1, 1, 1, 1, 1,1,1,1],  
        amount3: [1, 1, 1, 1, 1,1,1,1]  
      },  
      now_col_row_num: {},  
      now_col_offset: {}, 

根据

column_row_offset数组里面相应字段的值进行行合并   

比如  id:[2,1,1,1]  就是说列一共五列  前两列进行合并

其他自行脑补。

 

 

方法:

 objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (!this.now_col_row_num[column.property]) {  
        this.now_col_row_num[column.property] = Object.assign([], this.column_row_offset[column.property]);  
        let a = this.now_col_row_num[column.property].shift();  
        this.now_col_offset[column.property] = a;  
        return {  
          rowspan: a,  
          colspan: 1  
        };  
      } else if (rowIndex >= this.now_col_offset[column.property]) {  
        let a = this.now_col_row_num[column.property].shift();  
        this.now_col_offset[column.property] += a;  
        return {  
          rowspan: a,  
          colspan: 1  
        };  
      } else {  
        return {  
          rowspan: 0,  
          colspan: 0  
        };  
      }  
   
    }  

组件:

<el-table :data="tableData6" :span-method="objectSpanMethod" border style="width: 100%; margin-top: 20px">
					<el-table-column prop="id" label="ID" width="180">
					</el-table-column>
					<el-table-column prop="name" label="姓名">
					</el-table-column>
					<el-table-column prop="amount1" label="数值 1(元)">
					</el-table-column>
					<el-table-column prop="amount2" label="数值 2(元)">
					</el-table-column>
					<el-table-column prop="amount3" label="数值 3(元)">
					</el-table-column>
				</el-table>

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿轻丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值