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

vue3 el-table 行颜色根据 字段改变

在 Vue 3 中使用 Element Plus 的 <el-table> 组件来根据某个字段改变行的颜色,可以通过自定义渲染函数或使用 row-class-name 属性来实现。以下是两种常见的方法:

方法 1:使用 row-class-name 属性

<el-table> 组件的 row-class-name 属性允许你根据行的数据动态返回一个类名,你可以在这个类名中定义颜色。

<template><el-table :data="tableData" row-class-name="rowClassName"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
</template><script setup>
import { ref } from 'vue';const tableData = ref([{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄', type: 'A' },{ date: '2016-05-04', name: '张小刚', address: '上海市普陀区金沙江路 1517 弄', type: 'B' },// 更多数据...
]);const rowClassName = ({ row, rowIndex }) => {if (row.type === 'A') {return 'row-color-a';} else if (row.type === 'B') {return 'row-color-b';}return ''; // 默认返回空字符串,不应用任何特殊样式
};
</script><style>
.row-color-a {background-color: #f0f9eb; /* 例如,类型A的行背景色 */
}
.row-color-b {background-color: #ebf4fa; /* 例如,类型B的行背景色 */
}
</style>

方法 2:使用自定义渲染函数

如果你需要更复杂的行样式控制,可以使用 <el-table-column> 的 render 函数来自定义每一行的渲染。

<template><el-table :data="tableData"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column><el-table-column label="操作" width="100"><template #default="{ row, rowIndex }"><div :class="getRowClass(row)">{{ row.type }}</div></template></el-table-column></el-table>
</template><script setup>
import { ref } from 'vue';const tableData = ref([{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄', type: 'A' },{ date: '2016-05-04', name: '张小刚', address: '上海市普陀区金沙江路 1517 弄', type: 'B' },// 更多数据...
]);const getRowClass = (row) => {if (row.type === 'A') {return 'row-color-a';} else if (row.type === 'B') {return 'row-color-b';}return ''; // 默认返回空字符串,不应用任何特殊样式
};
</script><style>
.row-color-a {background-color: #f0f9eb; /* 例如,类型A的行背景色 */
}
.row-color-b {background-color: #ebf4fa; /* 例如,类型B的行背景色 */
}
</style>

这两种方法都可以根据字段。

http://www.xdnf.cn/news/14578.html

相关文章:

  • 【论文阅读 | CVPR 2024 |Fusion-Mamba :用于跨模态目标检测】
  • Python打卡训练营Day56
  • 【单调栈】-----【Largest Rectangle in a Histogram】
  • AWS VPC 子网划分实战指南:从基础到进阶
  • 人人都是音乐家?腾讯开源音乐生成大模型SongGeneration
  • 人工智能学习51-ResNet训练
  • 【51单片机2位数码管100毫秒的9.9秒表】2022-5-16
  • 【转】如何画好架构图:架构思维的三大底层逻辑
  • 大数据时代的“广告魔法”:精准投放到底怎么玩?
  • 软件工程概述:核心概念、模型与方法全解析
  • 58-Oracle Autotrace功能和演进
  • Python新春烟花
  • 江科大STM32入门:DMA传输数据
  • CNN工作原理和架构
  • 【基础算法】贪心 (一) :简单贪心
  • Input事件处理引起卡顿
  • vue3+arcgisAPI4案例:智慧林业资源监测分析平台(附源码下载)
  • 55-Oracle-EXPLAIN PLAN(含23ai )实操
  • 终端里的AI黑魔法:OpenCode深度体验与架构揭秘
  • 启动hardhat 项目,下载依赖的npm问题
  • Taro 跨端应用性能优化全攻略:从原理到实践
  • 【设计模式】6.原型模式
  • FTTR+软路由网络拓扑方案
  • NY339NY341美光固态闪存NW841NW843
  • Flutter ListTile 深度解析
  • 西门子S7通信协议抓包分析应用
  • OSI网络通信模型详解
  • react扩展
  • 智能群跃小助手发布说明
  • 局域网文件共享及检索系统