vue 中element-ui 表格合并 span-method

vue 中element-ui 表格合并 span-method

  • template
   <el-table :data="tagConfLost" :span-method="arraySpanMethod">
  • script
   arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
      /**
       * row: 行---横
       * column: 列---竖
       * 这个函数,表格有多少格子就执行多少次,rowIndex和columnIndex确定当前在那个格子。
       * 被合并的那些格子每个都要 return [0,0],不然数据填放的位置会不对。
       * {Array} mergeData=[]
       *   
       * {
       *    rowIndex:0,//表格合并开始的行的索引
       *    columnIndex:0,//表格合列开始的行的索引
       *    mergeRowIndex:10,//合并的行数
       *    mergeColumnIndex:1,//合并的列数
       *    rowMergeArr:[0,1,2,3,4,5,6,7,8,9],//长度mergeRowIndex,[rowIndex,rowIndex+1,rowIndex=2,...]
       *    columnMergeArr:[0],//长度mergeColumnIndex,[columnIndex,columnIndex+1,columnIndex+2,...]
       * },
      */
     let returnArr=[]
     try {   
       mergeData.forEach(el=>{
         if (rowIndex === el.rowIndex&&columnIndex==el.columnIndex) { 
           returnArr= [el.mergeRowIndex, el.mergeColumnIndex]
           throw new Error('end')
          }else if(el.rowMergeArr.includes(rowIndex)&&el.columnMergeArr.includes(columnIndex)){
            returnArr= [0, 0]
            throw new Error('end')
          }
       })
     } catch (error) {
       console.log('end');
     }
     if(returnArr.length>0) return returnArr
   }
  • 数据
const tagConfLost = [
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: '基础属性标签',
          tag_thr_name: '立项时间',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: '基础属性标签',
          tag_thr_name: '立项时间',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '风控标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: '基础属性标签',
          tag_thr_name: '筹款规模',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '风控标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '风控标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: '基础业务标签',
          tag_sec_name: '基础属性标签',
          tag_thr_name: '筹款规模',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
        {
          id: 1,
          tag_fir_name: 'test标签',
          tag_sec_name: 'test',
          tag_thr_name: 'test',
          tag_name: 'test',
          val_type: 'test',
          creater: 'test',
        },
      ]

  const mergeData=[
    {
      rowIndex:0,
      columnIndex:0,
      mergeRowIndex:10,
      mergeColumnIndex:1,
      rowMergeArr:[0,1,2,3,4,5,6,7,8,9],
      columnMergeArr:[0],
    },
    {
      rowIndex:4,
      columnIndex:3,
      mergeRowIndex:3,
      mergeColumnIndex:2,
      rowMergeArr:[4,5,6],
      columnMergeArr:[3,4],
    }
  ]

版权声明:本文为qiubai_ouyang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。