Element-ui table使用中的自定義列頭方法 (Element版本2.4以下)

render-header
render-header在官方文檔中的介紹是這樣的:


修改列標題樣式
1.在列標題後面加一個圖標。

以element-ui官方文檔一個table表格爲例,我們在地址的後面加一個定位標誌的圖標,代碼如下:

<template>
  <el-table
    :data="tableData2"
    style="width: 100%"
    :row-class-name="tableRowClassName">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址" :render-header="renderHeader"> // 加入render事件
    </el-table-column>
  </el-table>
</template>

<style>
  .el-table .warning-row {
    background: oldlace;
  }

  .el-table .success-row {
    background: #f0f9eb;
  }
</style>

<script>
  export default {
    methods: {
      tableRowClassName({row, rowIndex}) {
        if (rowIndex === 1) {
          return 'warning-row';
        } else if (rowIndex === 3) {
          return 'success-row';
        }
        return '';
      },
      // render 事件
      renderHeader (h,{column}) { // h即爲cerateElement的簡寫,具體可看vue官方文檔
        return h(
          'div',
          [ 
            h('span', column.label),
            h('i', {
              class:'el-icon-location',
              style:'color:#409eff;margin-left:5px;'
            })
          ],
        );
       }
    },
    data() {
      return {
        tableData2: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄',
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄',
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }]
      }
    }
  }
</script>

效果如下:

在這裏使用的是render-header的一個方法來實現自定義, 其中h參數就是vue的createElement來實現的, 如果還不太懂得同學可能現需要去了解一下才好操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章