实现 element-ui 的 el-table 单元格自定义样式
微wx笑 2022-03-14【前端开发】 5 0关键字: element-ui el-table
有些时候我们需要根据条件,为特定的单元格指定自定义格式,以突出显示,element-ui 的 el-table 要怎么实现呢?
根据官方文档,我们需要使用:cell-style 单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style。 Function({row, column, rowIndex, columnIndex})/Object
相关代码:
el-table 添加 :cell-style="handleCellStyle" 单元格的 style 的回调方法
<el-table :data="tableData" stripe border style="width: 100%" :header-cell-style="{background:'#70b6ff',color:'#FFF',fontSize:'16px'}" :cell-style="handleCellStyle"> <el-table-column prop="name" label="参赛人员"> </el-table-column> <el-table-column prop="my_stock" label="自选股"> </el-table-column> <el-table-column prop="work_stock" label="作业股"> </el-table-column> <el-table-column prop="work_date" label="作业股发布时间"> </el-table-column> <el-table-column prop="work_author" label="作业股作者"> </el-table-column> </el-table>
methods 中添加处理程序 handleCellStyle,注意参数的写法,是需要带花括号的!
如果你不想使用花括号的形式,那么只需要指定一个参数,比如:handleCellStyle(cell),那么cell的属性就有 row, column, rowIndex, columnIndex
methods: { handleCellStyle({row, column, rowIndex, columnIndex}){ //console.log("handleCellStyle"); //console.log(row, column, rowIndex, columnIndex); if (columnIndex == 1 || columnIndex == 2){ //console.log(cell.row); var count = 0; for(var i=0; i<this.tableData.length; i++){ dr = this.tableData[i]; if (columnIndex == 1 && (dr.my_stock == row.my_stock || dr.work_stock == row.my_stock)){ count++; } if (columnIndex == 2 && (dr.work_stock == row.work_stock || dr.my_stock == row.work_stock)){ count++; } } if (count == 2){ return "color:white;background:#194a6e; font-weight: bold; font-size: 14px;"; } if (count == 3){ return "color:red;background:#66bfbf; font-weight: bold; font-size: 14px;"; } if (count > 3){ return "color:red;background:#00bfbf; font-weight: bold; font-size: 14px;"; } } } }
效果如下图:相同的股票会突出显示
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/front/2022-03-14/1093.html