elementui 表头合并,两列共用一个表头,header-cell-style设置表头样式

下图是要实现的效果
elementui 表头合并,两列共用一个表头,header-cell-style设置表头样式_第1张图片
HTML
通过header-cell-style给table表头设置样式

<el-table :data="tableData" style="width: 100%" :header-cell-style="rowClass">
      <el-table-column label="建设任务内容" min-width="200">
        <el-table-column label="" prop="projectName" show-overflow-tooltip min-width="100"> el-table-column>
        <el-table-column label="" prop="projectContent" show-overflow-tooltip min-width="150">el-table-column>
      el-table-column>
      <el-table-column label="计划投资">
        <el-table-column prop="investPlan" :label="planTotal" show-overflow-tooltip min-width="120"> el-table-column>
      el-table-column>
      <el-table-column label="实际投资">
        <el-table-column prop="investActually" :label="actuallyTotal" show-overflow-tooltip min-width="120">el-table-column>
      el-table-column>
      <el-table-column label="投资完成率">
        <el-table-column prop="rateOfInvest" :label="rateOfInvest" show-overflow-tooltip min-width="120"> el-table-column>
      el-table-column>
    el-table>

data

data() {
      return {
        planTotal:"100",     //计划投资
        actuallyTotal:"100",     //实际投资
        rateOfInvest:"100%",     //投资完成率
        tableData: [{
          projectName: '主导产业提升工程',
          projectContent: '主导产业提升工程的内容描述巴拉巴拉巴拉',
          investPlan: '920',
          investActually: '1565.41',
          rateOfInvest: '170.15',
        }]
      }
    },

methods

methods: {
      rowClass({ row, column,rowIndex,columnIndex}) {
        if(rowIndex===0 && columnIndex===0) {
          this.$nextTick(()=> {
            if(document.getElementsByClassName(column.id).length!==0) {
              document.getElementsByClassName(column.id)[0].setAttribute('rowSpan',2);
              return false
            }
          })
        }
        if(rowIndex===1 && (columnIndex===0 || columnIndex===1)) {
          return {display:'none'}
        }

      }
    },

你可能感兴趣的:(vue.js)