element-ui table列表自定義表頭,修改列標題樣式、添加tooltip

在之前的博客中,提到在element-ui table列表自定義表頭,修改列標題樣式、添加tooltip,需要render-header,但是在2.4.11及以後,element-ui官方已經更新了,並添加了自定義表頭的方法

爲了廣大的羣衆少走彎路,我覺得還是有必要更新一下,如果element-ui版本是2.4.11以下,可以參考上個關於自定義表頭的博客Element-ui自定義table表頭,修改列標題樣式、添加tooltip, :render-header使用簡介
如果是2.4.11及以上版本可參考本文~

通過設置 Scoped slot 來自定義表頭。

官方文檔中描述通過設置 Scoped slot 來自定義表頭,使用了vue中slot插槽的方法。
如果還不清楚slot是什麼,怎麼用可以先參考一下vue官網文檔 vue插槽
用法示例:

<template slot="header" slot-scope="scope">
 ...
</template>

這個用法還是很人性化也比較簡單的,看看element-ui官方的文檔完全可以掌握,但是本着負責任的態度,我還是寫一下吧

在這拿在表頭添加一個tooltip作爲示範,在名字的後面加個tooltip提示信息

<template>
  <el-table
    :data="tableData.filter(data => !search || data.name.toLowerCase().includes(search.toLowerCase()))"
    style="width: 100%">
    <el-table-column
      label="Date"
      prop="date">
    </el-table-column>
    <el-table-column
      prop="name">
      <template slot="header" slot-scope="scope">
        <span>名字</span>
        <el-tooltip class="item" effect="dark" content="Right Center 提示文字" placement="right">
          <i class="el-icon-question"></i>
        </el-tooltip>
      </template>
    </el-table-column>
    <el-table-column
      align="right">
      <template slot="header" slot-scope="scope">
        <el-input
          v-model="search"
          size="mini"
          placeholder="輸入關鍵字搜索"/>
      </template>
      <template slot-scope="scope">
        <el-button
          size="mini"
          @click="handleEdit(scope.$index, scope.row)">Edit</el-button>
        <el-button
          size="mini"
          type="danger"
          @click="handleDelete(scope.$index, scope.row)">Delete</el-button>
      </template>
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    data() {
      return {
        tableData: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1517 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1519 弄'
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1516 弄'
        }],
        search: ''
      }
    },
    methods: {
      handleEdit(index, row) {
        console.log(index, row);
      },
      handleDelete(index, row) {
        console.log(index, row);
      }
    },
  }
</script>

代碼都是Element-ui官方文檔裏的,僅作爲參考使用,知道怎麼用就可以了
效果如下:
示例

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