vue 多级表头及表头对角线

 

 

展示效果

 

 

HTML部分

  <el-table :data="tableData4" style="width: 100%" customClass="table4">
    <el-table-column label="指标" align="right" width="90">
      <el-table-column prop="name" label="分配域"  width="90">
      </el-table-column>
    </el-table-column>
    <el-table-column v-for="(item,index) of mechanism4" :label="item.name"  
       align="center" :key="item" width="105">
      <el-table-column :label="item.mech1" align="center"  width="120">
        <el-table-column :label="item.mech2" align="center"  width="120">
          <template slot-scope="scope" style="background-color: chocolate;">  
             {{scope.row.mechanism[index]}} 
          </template>
        </el-table-column>
      </el-table-column>
    </el-table-column>
  </el-table>

 DATA部分

 data() {
    return {
      tableData4: [
        {
          name: '项目A',
          mechanism: [1,2,3,4,5,6]
        },
        {
          name: '项目B',
          mechanism: [7,6,5,4,3,1]
        }
      ],
      mechanism4: [
        {
          name: '第一列',
          mech1: '80-100',
          mech2: 80
        },
        {
          name: '第二列',
          mech1: '40-60',
          mech2: 55
        },
        {
          name: '第三列',
          mech1: '70-120',
          mech2: 110
        },
        {
          name: '第四列',
          mech1: '80-90',
          mech2: 80
        },
        {
          name: '第五列',
          mech1: '10-50',
          mech2: 30
        },
        {
          name: '第六列',
          mech1: '60-80',
          mech2: 73
        },
      ],
    }
  },

  

CSS部分 (调试表格对角线)

<style>
    .el-table thead.is-group th {
      background: none;
    }
    .el-table thead.is-group tr:first-of-type th:first-of-type {
      border-bottom: none;
    }
    .el-table thead.is-group tr:first-of-type th:first-of-type:before {
      content: '';
      position: absolute;
      width: 1px;
      height: 180px; /*这里需要自己调整,根据td的宽度和高度*/
      top: 0;
      left: 0;
      background-color: grey;
      opacity: 0.3;
      display: block;
      transform: rotate(326deg); /*这里需要自己调整,根据线的位置*/
      transform-origin: top;
    }
    .el-table th {
      overflow: visible;
    }
</style>

  

 

 

 

 

 

 

posted @ 2021-03-09 18:13  搜戴斯  阅读(832)  评论(0编辑  收藏  举报