Vue_Elenent 表格相同数据列进行合并

Vue_Elenent 表格相同数据列进行合并
作者:秋名
思路:后台查询表格数据,查询出来后直接传到前端,前端通过foreach循环,然后对相同的表格进行合并。(同一个表格,但是每一行,固定一列的数据都相同,即可使用合并单元格,做到了既美观,也清晰。)
撰写时间:2020 年 11 月 29 日

template:

 <el-table
         :span-method="objectSpanMethod4" //在el-table里面添加合并单元格属性
        >

Js:

data(){
return{
 orderdata:null,// 后端将数据查询出来后,绑定到orderdata里面
}
},
 methods: {
flitterData4(){
      let spanOneArr = []
      let concatOne = 0
       //let spanOneArr1 = []
      //let concatOne1 = 0
      this.orderdata.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
        if(index === 0){
          spanOneArr.push(1)
        }else{
          //name 修改
          if(item.ENTERNAME === this.orderdata[index - 1].ENTERNAME){ //第一列需合并相同内容的字段
            spanOneArr[concatOne] += 1
            spanOneArr.push(0)
          }else{
            spanOneArr.push(1)
            concatOne = index
          }
            //if(item.coachName === this.coachdata[index - 1].coachName){ //第二列需合并相同内容的判断条件
            //spanOneArr1[concatOne1] += 1
            //spanOneArr1.push(0)
          //}else{
            //spanOneArr1.push(1)
            //concatOne1 = index
         // }
        }
      })
      return  {
        one: spanOneArr,
        //two:spanOneArr1
      }
    },
    objectSpanMethod4({row, column, rowIndex, columnIndex}){
      if(columnIndex === 0 ) {
        // this.tableData  修改
        const _row = (this.flitterData4(this.tableData).one)[rowIndex]
        const _col = _row > 0 ? 1 : 0
        return {
          rowspan: _row,
          colspan: _col
        }
      }
      //判断是否是第二列,如果是就将第二列相同字段进行合并
       //if(columnIndex === 1) {
       // const _row = (this.flitterData(this.tableData).two)[rowIndex]
       // const _col = _row > 0 ? 1 : 0
       // return {
         // rowspan: _row,
        //  colspan: _col
       // }
      }
    },
    }

效果图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值