vueElement之table合并单元格

不念不忘少年蓝@ 2022-10-25 15:27 468阅读 0赞

运用情景:在某些场景需要table表格 合并行 或者合并列

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMwNzI4Mw_size_16_color_FFFFFF_t_70

合并行:你需要知道那一列需要合并行,需要合并几行。

如图:我需要在第一列合并projectItem相等的行数,所以我们需要算出projectItem相等的行数有几行

计算出那些行数需要合并(projectItem相等的行数)

  1. getSpanArr (data) {//
  2. // console.log(data)//从后台获取的数据
  3. if(!data){
  4. return
  5. }
  6. this.spanArr = []
  7. for (var i = 0; i < data.length; i++) {
  8. console.log("i",i)
  9. if (i === 0) {
  10. // 如果是第一条记录(即索引是0的时候),向数组中加入1
  11. this.spanArr.push(1)
  12. this.pos = 0
  13. } else {
  14. if (data[i].projectItem === data[i - 1].projectItem) {
  15. // 如果projectItem相等就累加,并且push 0
  16. this.spanArr[this.pos] += 1
  17. this.spanArr.push(0)
  18. console.log("相等",this.spanArr,this.pos)
  19. } else {
  20. // 不相等push 1
  21. this.spanArr.push(1)
  22. this.pos = i
  23. console.log("不相等",this.spanArr,this.pos)
  24. }
  25. }
  26. }
  27. // console.log("aa",this.spanArr)
  28. },

table组件

  1. //:span-method="objectSpanMethod"合并单元格的方法
  2. <el-table
  3. :data="tableData"
  4. style="width: 100%"
  5. :span-method="objectSpanMethod"
  6. >
  7. ....
  8. ....
  9. </el-table>
  10. objectSpanMethod({ row, column, rowIndex, columnIndex }) {
  11. // columnIndex === 0 找到第一列,实现合并随机出现的行数
  12. if (columnIndex === 0) {
  13. const _row = this.spanArr[rowIndex]; //拿到需要合并的行数
  14. const _col = _row > 0 ? 1 : 0; //如果需要合并的行数大于0返回1 否则返回0
  15. return {
  16. rowspan: _row, //要合并的行
  17. colspan: _col,//要合并的列
  18. }
  19. }
  20. },

发表评论

表情:
评论列表 (有 0 条评论,468人围观)

还没有评论,来说两句吧...

相关阅读