css - 根据值更改 Vue Element UI 表格单元格样式

标签 css vue.js vuejs2 vue-component element-ui

我使用 Element UI . 如何更改 rate 单元格值的颜色?如果速率 < 0,则颜色为红色,否则颜色为绿色。

也许表属性 cell-class-name 可以帮到我?

HTML

<el-table
    :data="tableData"
    style="width: 100%">
    <el-table-column
        prop="date"
        label="Date"
        width="180">
    </el-table-column>
    <el-table-column
        prop="name"
        label="Name"
        width="180">
    </el-table-column>
    <el-table-column
        prop="rate"
        label="Rate">
    </el-table-column>
</el-table>

JS

export default {
    data() {
        return {
            tableData: [{
                date: '2016-05-03',
                name: 'Tom',
                rate: 1
            }, {
                date: '2016-05-02',
                name: 'Tom',
                rate: -1
            }, {
                date: '2016-05-04',
                name: 'Tom',
                rate: 22
            }, {
                date: '2016-05-01',
                name: 'Tom',
                rate: -22
            }]
        }
    }
}

最佳答案

将方法绑定(bind)到 cell-class-name <el-table>的 Prop :

<el-table
  :data="tableData"
  style="width: 100%"
  :cell-class-name="classChecker"
>

定义 classChecker rate 的测试方法列并根据值有条件地将类应用于单元格:

methods: {
  classChecker({ row, column }) {
    if (column.property === 'rate') {
      const val = row[column.property];
      if (val > 0 ) {
        return 'greenClass'
      } else {
        return 'redClass'
      }
    }
  }
}

CSS

.greenClass {
  background: green;
}
.redClass {
  background: red;
}

关于css - 根据值更改 Vue Element UI 表格单元格样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66452677/

相关文章:

javascript - 仅当在文本框中输入文本时才显示 X 按钮

javascript - 在 Vue.js + Vite.js 中禁用代码拆分( block )

vue.js - 从路由导航时如何在vue中调用函数?

javascript - 我应该如何正确使用同步修饰符和 vuetify 输入自定义事件 `@update:error` ?

javascript - Vue - 使用 v-bind 和 props 对选择元素进行两种方式绑定(bind)

css - Box-shadow 不适用于 Webkit?

html - 如何将输入样式设置为与标签完全相同?

javascript - 自动调整div

vue.js - 在嵌套的 v-for 中使用 v-model

vuejs2 - 是否有推荐的方法在使用 VueJS 时为 SEO 目的预加载所有 HTML,而不使用 SSR?