element ui 表格如何动态合并列

如图,将mainId相同的前2列合并,因为mainId相同的数据个数不定,需要动态合并列,一直想不到好法子,请求各位网友。
代码在此,方便大家修改:https://jsfiddle.net/ryx47gL8/

clipboard.png

阅读 5.2k
2 个回答
export function rowSpan (id, row, cols, standardCol) {
  var tb = document.getElementById(id)
  var lastValue = ''
  var value = ''
  var pos = 1
  for (var i = row; i < tb.rows.length; i++) {
    value = tb.rows[i].cells[standardCol].innerHTML
    if (value !== '' && value !== '\t' && value !== '\n' && value !== '\r') {
      if (lastValue == value) { // eslint-disable-line
        var colsbak = cols.slice(0)
        colsbak.sort(function (a, b) {
          return a - b
        })
        for (var c = colsbak.length - 1; c >= 0; c--) {
          tb.rows[i].deleteCell(colsbak[c])
          tb.rows[i - pos].cells[colsbak[c]].rowSpan = tb.rows[i - pos].cells[colsbak[c]].rowSpan + 1
        }
        pos++
      } else {
        lastValue = value
        pos = 1
      }
    }
  }
}

我是操作dom的。
id是表格的id,row:从第几行开始合并,一般是0,cols:数组,要合并的列,standardCol:标准列,也就是你的mainId那一列

像下面这样调用,要有dom后调用

rowSpan('fixedtb', 0, [0, 1, 2, 3, 4, 5], 5)

意思是,从第一行开始,以第6列为标准,合并前6列

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏