[Vue] Em el-table-column de el-table, como controlar uma única linha, uma única coluna e definir estilos individualmente de acordo com o conteúdo. Por exemplo: modificar a cor do texto, cor de fundo

Use o atributo de tabela de estilo de célula para conseguir. É assim que esse atributo é expresso no site oficial.

 

 Vincule este atributo com v-bind em el-table. (A abreviação para v-bind é:)

      <el-table
        :data="options"
        :cell-style="cell"
      >
        <el-table-column prop="id" label="id" width="50px"></el-table-column>
        <el-table-column prop="label" label="时间" width="200px"></el-table-column>
      </el-table>

Os dados de opções em dados são:

 data() {
    return {
      options: [
        { id: 1, label: "inner" },
        { id: 2, label: "webapi" },
        { id: 3, label: "inner-cron" }
      ],
    };
  },

Neste ponto a página é exibida como:

 

 

Declare o método cellStyle em métodos. Vamos imprimir cada parâmetro para ver o que ele representa.

    cell({ row, column, rowIndex, columnIndex }) {
      console.log(row);
      console.log(column);
      console.log(rowIndex);
      console.log(columnIndex);
    },

O console imprime o seguinte: 

 

 Na verdade, é fácil entender que linha é uma linha, e a primeira linha impressa no console é o primeiro objeto do array. coluna é uma coluna, que é el-table-column. rowIndex é o índice da linha e columnIndex é o índice da coluna.

Se quisermos mudar a cor da fonte da primeira linha para verde. Pode ser escrito assim:

    cell({ row, column, rowIndex, columnIndex }) {
      if(rowIndex === 0){
        return "color:green"
      }
    },

O efeito da página é:

Se você deseja que a cor de fundo da primeira coluna seja vermelha. Então:

    cell({ row, column, rowIndex, columnIndex }) {
      if(columnIndex === 0){
        return "background-color : red"
      }
      if(rowIndex === 0){
        return "color:green"
      }
    },

 A página aparece como:

 Se você deseja que a fonte do rótulo seja inner-cron, fique em negrito. Então:

    cell({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        return "background-color : red";
      }
      if (rowIndex === 0) {
        return "color:green";
      }
      if (row.label === "inner-cron") {
        return "font-weight : bold";
      }
    },

A página aparece como:

 

Acho que você gosta

Origin blog.csdn.net/qq_56715703/article/details/131944549
Recomendado
Clasificación