Задать вопрос
@Snowyyy

Как выделять данные в столбце таблицы различными цветами?

Есть таблица, в ней есть столбец "Процесс", в этом столбец возможны значения "Ожидание", "Работа", "Завершено". Как сделать, чтобы "Ожидание" выделялось желтым цветом, "Работа" зеленым, а "Завершено" синим?
  • Вопрос задан
  • 271 просмотр
Подписаться 1 Простой 7 комментариев
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Определить классы для выделения текста:

.waiting { background: yellow; }
.working { background: green; }
.completed { background: blue; }

Определить, какому тексту какой класс соответствует:

const highlight = {
  'Ожидание': 'waiting',
  'Работа': 'working',
  'Завершено': 'completed',
};

Дальше остаётся эти классы назначить кому надо.

Класс получает элемент внутри ячейки:

<el-table-column label="Процесс">
  <template #default="{ row: { process } }">
    <span :class="highlight[process]">{{ process }}</span>
  </template>
</el-table-column>

Или, класс получает сама ячейка таблицы:

const cellClassName = ({ column, row }) =>
  column.property === 'process'
    ? (highlight[row.process] ?? '')
    : '';

<el-table
  :cell-class-name="cellClassName"
  ...
>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы