第一種:
參考:https://my.oschina.net/u/3455362/blog/4674804
<template>
<div class="test">
<el-table :data="gridData" border stripe style="width: 100%">
<template v-for="item in gridDataHeader">
<el-table-column :prop="item.key" :key="item.key" :label="item.label" :align="item.align" show-overflow-tooltip>
<template slot-scope="scope" slot="header">
<div @mouseover="onMouseOver('refName' + scope.$index)">
<el-tooltip :disabled="isShowTooltip" :content="item.label" placement="top">
<div class="long_title">
<span :ref="'refName' + scope.$index">{{item.label}}</span>
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
</template>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
gridDataHeader: [
{key:'date',label:'日期afdsasfasdfasfdasasfasfasdfasdfasdfadsfdfasdf',width:'100',aling:'center'},
{key:'name',label:'姓名',width:'200',aling:'center'},
{key:'address',label:'地址',width:'100',aling:'center'}
],
gridData: [
{
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 弄afsafasfergtujyjhgngfhddfghdgfhgfdh",
},
],
isShowTooltip: false,
};
},
methods: {
onMouseOver(refName) {
let parentWidth = this.$refs[refName][0].parentNode.offsetWidth;
let contentWidth = this.$refs[refName][0].offsetWidth;
// 判斷是否開啟tooltip功能
if (contentWidth > parentWidth) {
this.isShowTooltip = false;
} else {
this.isShowTooltip = true;
}
},
},
};
</script>
<style>
.long_title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
第二種:el-table中render-header
<template>
<div class="TableHeaderTest">
<el-table
size="small"
border
v-loading="loading"
:data="tableData"
style="width: 100%"
>
<el-table-column prop="city_name" label="城市"> </el-table-column>
<el-table-column prop="maxprice" :render-header="renderHeader">
<template slot-scope="scope">
<span
><span class="skucost-pruice">¥</span
><span class="skucost-pruice">{{ scope.row.maxprice }}</span></span
>
</template>
</el-table-column>
<el-table-column prop="company_name" label="機構名稱"> </el-table-column>
<el-table-column prop="area_name" label="區域"> </el-table-column>
<el-table-column prop="price" label="價格">
<template slot-scope="scope">
<span
><span class="skucost-pruice">¥</span
><span class="skucost-pruice">{{ scope.row.price }}</span></span
>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "TableHeaderTest",
data() {
return {
loading: false,
tableData: [
{
city_name: "fafa",
maxprice: "123",
company_name: "sfdgsfdgfsd",
area_name: "hgfhdgf",
price: "123",
},
],
};
},
methods: {
//自定義表頭
renderHeader(h) {
return h("span", {}, [
// h("span",{class: "headerTest",},"價格"),
h(
"el-popover",
{
props: {
placement: "top",
width: "200",
trigger: "hover",
content: "城市價格為該城市所有加盟商價格的最高價",
},
},
// [h("", { slot: "reference", class: "el-icon-question" }, "")]
[h("span",{slot: "reference",class: "headerTest",},"價格就分手;收款方使肌膚的哈薩克復讀機啊阿凡達阿斯頓發的說法放大石頭人gas發送到發")]
),
]);
},
},
};
</script>
<style>
.headerTest {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
注:el-tooltip寫法
renderHeader(h,{column}){
console.log(column);
if(column.label){//表頭名稱
reutrn (
<el-tooltip errect="dark" content={column.label} placement="top">//鼠標懸浮提示
<span style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">{column.label}</span>//表頭名稱
</el-tooltip>
)
}
}
