html
<el-table-column header-align="right" align="right" :render-header="renderHeader">
<el-table-column prop="week" label="日期"></el-table-column>
<el-table-column prop="name" label="项目"></el-table-column>
</el-table-column>
js部分
javascript
renderHeader(h, {column}) {
return h('el-button', {
style: 'margin-top: 2px;', // 样式
class: '',
props: { // 标签自定义属性
size: 'medium',
type: 'success'
},
on: {
click: this.exportExcel, // 选中事件
},
}, '导出');
},
标签多层嵌套
在表头添加el-tooltip
javascript
renderHeader(h, { column }) {
return h('div', [
h('span', column.label),
h(
'el-tooltip',
{
props: {
effect: 'dark',
content: '这是一个提示',
placement: 'top',
},
},
[
h('i', {
class: 'el-icon-question',
style: 'color:#409eff;margin-left:5px;',
}),
],
),
]);
},
在表头后添加一个单选框
javascript
renderHeader(h, { column }) {
// h即为cerateElement的简写,具体可看vue官方文档
return h('div', [
h('span', column.label),
h('el-checkbox', {
style: 'margin-left:5px',
on: {
change: this.select, // 选中事件
},
}),
]);
},
// 添加选中事件
select(data) {
console.log(data);
},
}
其它资料还有这种方式
<el-table-column
prop="date"
label="日期/(生产旺季)"
width="180"
align='center'
:render-header="renderHeader"/>
methods:{
renderHeader(h, { column, $index }) {
let columnArr = column.label.split("/");//此处换行标志
if (columnArr.length >= 2) {
let divArr = [];
columnArr.map((item) => {
if(item == columnArr[0]){
divArr.push(h("div", { style: "text-align: center "}, item));
}else{
divArr.push(h("span", { style:"text-align:right;color:#fc5563;font-size:12px"}, item));
}
});
return h("span", {style:"display: line-block"}, divArr);
}
return h("span", {}, column.label);
},
}