在之前的博客中,提到在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官方文檔裏的,僅作爲參考使用,知道怎麼用就可以了
效果如下: