当前位置: 首页 > news >正文

Element表格单元格类名动态设置

在 Element UI 的 el-table 组件中,cell-class-name 属性用于动态自定义表格单元格的 CSS 类名,通常用于根据数据条件设置样式。

1. 基本用法

在 el-table 上绑定 :cell-class-name 属性,值为一个函数。该函数接收一个对象参数,返回字符串(类名)或数组(多个类名)。

<el-table :data="tableData" :cell-class-name="cellClassName"
><el-table-column prop="name" label="姓名"></el-table-column><el-table-column prop="age" label="年龄"></el-table-column>
</el-table>

2. 函数参数说明

函数格式:({ row, column, rowIndex, columnIndex }) => className

  • row: 当前行数据

  • column: 当前列配置

  • rowIndex: 行索引(从 0 开始)

  • columnIndex: 列索引(从 0 开始)


3. 示例代码

根据数据条件添加类名
methods: {cellClassName({ row, column, rowIndex, columnIndex }) {// 针对特定列设置样式if (column.property === 'age') {if (row.age > 60) {return 'warning-cell'; // 年龄大于60添加警告样式}}// 针对特定行设置样式if (rowIndex === 0) {return 'first-row-cell'; // 第一行特殊样式}// 默认返回空return '';}
}
CSS 定义样式
.warning-cell {background-color: #fff6f7;color: #ff0000;font-weight: bold;
}.first-row-cell {background-color: #f5f7fa;
}

4. 高级用法

返回多个类名
cellClassName({ row, column }) {const classes = [];if (row.status === 'error') {classes.push('error-cell');}if (column.property === 'name') {classes.push('bold-cell');}return classes; // 返回数组,如 ['error-cell', 'bold-cell']
}
结合列属性判断
cellClassName({ column }) {// 为表头是"操作"的列设置样式if (column.label === '操作') {return 'action-cell';}
}

5. 注意事项

  1. 优先级问题:自定义类名会覆盖 Element 默认样式,必要时使用 !important

  2. 性能优化:避免在函数中执行复杂计算,特别是大数据表格。

  3. 列标识:建议通过 column.property(对应 prop 值)或 column.label 识别列。


完整示例

<template><el-table :data="tableData" :cell-class-name="cellClassName"><el-table-column prop="name" label="姓名"></el-table-column><el-table-column prop="age" label="年龄"></el-table-column><el-table-column prop="status" label="状态"></el-table-column></el-table>
</template><script>
export default {data() {return {tableData: [{ name: '张三', age: 25, status: '正常' },{ name: '李四', age: 70, status: '警告' }]};},methods: {cellClassName({ row, column }) {// 年龄列且值大于60if (column.property === 'age' && row.age > 60) {return 'warning-cell';}// 状态列为"警告"if (column.property === 'status' && row.status === '警告') {return 'error-cell';}}}
};
</script><style>
.warning-cell {background: #fff8e6;color: #ff9900;
}
.error-cell {color: #ff0000;font-weight: bold;
}
</style>

http://www.lryc.cn/news/601175.html

相关文章:

  • VILA系列论文解读
  • 基于mnn架构在本地 c++运行llm与mllm模型
  • PostgreSQL AND OR 操作符详解
  • esp32s3创建rust工程 window成功mac
  • 前后端分离:架构模式与实践
  • Qt 分裂布局:QSplitter 使用指南
  • 四、搭建springCloudAlibaba2021.1版本分布式微服务-加入openFeign远程调用和sentinel流量控制
  • UNet 改进(38):融合多尺度输入与可变形卷积、门控特征融合的医学图像Unet分割网络
  • MySQL 事务和锁
  • 02人工智能中优雅草商业实战项目视频字幕翻译以及声音转译之以三方AI模型API制作方式预算-卓伊凡|莉莉
  • 车载诊断架构 ---面向售后的DTC应该怎么样填写?
  • KNN算法实战:手写数字识别详解
  • 前端基础班学习路线
  • Git+宝塔面板部署Hugo博客
  • net8.0一键创建辅助开发的个人小工具
  • 剑指offer第2版:双指针+排序+分治+滑动窗口
  • 零基础学习性能测试第五章:JVM性能分析与调优-GC垃圾分代回收机制与优化
  • 【嵌入式硬件实例】-555定时器调光电路实现
  • 工业控制系统安全之 Modbus 协议中间人攻击(MITM)分析与防范
  • DAY21-二叉树的遍历方式
  • 数据结构 堆(4)---TOP-K问题
  • Canvas实现微信小程序图片裁剪组件全攻略
  • mmap的调用层级与内核态陷入全过程
  • 六、搭建springCloudAlibaba2021.1版本分布式微服务-admin监控中心
  • 记录一次薛定谔bug
  • 基于LNMP架构的分布式个人博客搭建
  • Java大数据面试实战:Hadoop生态与分布式计算
  • 数据权属雷区:原始数据与衍生数据的法律边界如何划清?
  • AI与区块链Web3技术融合:重塑数字经济的未来格局
  • ROS2入门到精通教程(三)快速体验