如何根据条件将类映射到Element UI表中的特定行单元格?

时间:2018-06-27 11:08:42

标签: vue.js vuejs2 element-ui

<el-table :data="confirmedAppointments" highlight-current-row style="width: 100%">
                  <el-table-column type="index" width="50">
                  </el-table-column>
                  <el-table-column prop='token' label="Token" width="180">
                  </el-table-column>
                  <el-table-column prop='date'  label="Appoint. date" width="180">
                  </el-table-column>
                  <el-table-column prop='ROV' label="ROV" width="180">
                  </el-table-column>
                  <el-table-column prop='speciality' label="Speciality" width="180">
                  </el-table-column>
                  <el-table-column prop='time' label="Appoint. time" width="180">
                  </el-table-column>
                  <el-table-column prop='status' label="Status" class="red" v-bind:class="{ 'green': status == 'Accepted' }">
                  </el-table-column>

              </el-table>

我正在使用映射有动态数据的Element UI表组件。在最后一列,我的状态显示“已批准”或“已拒绝”文本。

那么如何根据单元格值将特定的类设置为特定的单元格。默认情况下,该类别应为红色,但是当状态值为“批准”时,该类别应为绿色。

2 个答案:

答案 0 :(得分:3)

看看cell-class-name表属性而不是行类名称。它可以访问行和列数据以及行和列索引。 您应该能够自定义类,从而为每个单元格设置样式。

答案 1 :(得分:2)

我对元素ui不太熟悉,但是我通过将行类名添加到el-table来解决了相同的问题

tableRowClassName({ row }) {

    if (row.status === 'Appproved') {
        return 'success-row'
      } else if (row.status === 'Rejected') {
        return 'warning-row'
      }
      return ''
    },
  .el-table .warning-row td:last-child {  (or just .el-table td:last-child (as default color))

    background: red;
  }

  .el-table .success-row td:last-child {

    background: green;
  }
< el-table :row-class-name="tableRowClassName">