只要加个!important就可以了,像这样。标点符合不能多写
header-cell-style是官网写的修改el-table表头样式的回调,且说header-row-style不生效也就罢了,header-cell-style也不生效是不是有点过分。
我抓耳挠腮的看了半天,最后手写了个样式进去,但还是气不过,把他改过来,最后在多次查资料(搜索)终于找到了原因,或许是表格父级元素使用了flex布局的原因,只要加个!important就可以了,像这样。
<el-table :data="tableData" border :style="{ width: width }" :height="height"
:header-cell-style="tableHeaderCellStyle"
>
<template v-for="(item, index) in tableHeader">
<el-table-column v-if="item.label == '排序' || item.label == '排名'" :prop="item.prop" :label="item.label"
:width="item.width" show-overflow-tooltip align="center">
<template #default="scope">
<span :style="getStyle(scope)">{{ scope.row[item.prop] }}</span>
</template>
</el-table-column>
<el-table-column v-else :prop="item.prop" :label="item.label" :width="item.width" align="center"
show-overflow-tooltip>
</el-table-column>
</template>
</el-table>
// 修改 table header cell的背景色
const tableHeaderCellStyle = ({ row, column, rowIndex, columnIndex }) => {
let background = null
if (rowIndex == 0) {
props.tableHeader.map((item, index) => {
if (columnIndex == index && item.background) {
background = `${item.background} !important`
}
})
}
// return { background: 'pink !important' } // 使用 backgroundColor
// 如果有背景色,则返回一个样式对象
if (background) {
return { background: background }; // 使用 backgroundColor
}
}