Компонент Timeline предназначен для отображения последовательности событий или шагов процесса во временной шкале. Он используется для визуализации историй, этапов задач, логов действий и других последовательных данных. В Element Plus Timeline реализован с гибкой настройкой элементов, ориентации и стилей.
Базовая структура Timeline состоит из контейнера
<el-timeline> и элементов
<el-timeline-item>:
<template>
<el-timeline>
<el-timeline-item timestamp="2026-03-18 10:00" placement="top">
Инициализация проекта
</el-timeline-item>
<el-timeline-item timestamp="2026-03-19 14:30" placement="top" type="success">
Завершение первого этапа
</el-timeline-item>
<el-timeline-item timestamp="2026-03-20 09:15" placement="top" type="warning">
Обнаружены проблемы
</el-timeline-item>
</el-timeline>
</template>
timestamp – дата или время
события.placement – положение метки времени
относительно элемента (top или bottom).type – цвет маркера события. Возможные
значения: success, info, warning,
danger.Каждый элемент может иметь собственный цвет и иконку:
<el-timeline-item
timestamp="2026-03-21 16:00"
type="danger"
:icon="ErrorIcon">
Ошибка выполнения задачи
</el-timeline-item>
icon – позволяет использовать
кастомные иконки (SVG или компоненты).По умолчанию Timeline вертикальный, но можно задать горизонтальный
вид с помощью свойства direction:
<el-timeline direction="horizontal">
<el-timeline-item timestamp="10:00">Шаг 1</el-timeline-item>
<el-timeline-item timestamp="12:00">Шаг 2</el-timeline-item>
</el-timeline>
direction="horizontal" – располагает
элементы слева направо.direction="vertical" или не
указывать вовсе.Timeline позволяет вставлять любые Vue-компоненты внутри элементов:
<el-timeline-item timestamp="12:30">
<div class="custom-content">
<h4>Задача выполнена</h4>
<p>Результаты отправлены в базу данных</p>
</div>
</el-timeline-item>
Слот default используется для основного содержимого,
слот icon – для кастомной иконки.
Для создания различимых этапов можно управлять линиями и цветами:
<el-timeline-item
timestamp="14:00"
:style="{ borderLeft: '2px dashed #409EFF', color: '#409EFF' }">
Промежуточная проверка
</el-timeline-item>
.el-timeline-item__dot и
.el-timeline-item__tail.Каждое событие может иметь визуальное состояние:
success – зелёный маркер, событие выполнено
успешно.info – синий, нейтральная информация.warning – жёлтый, требует внимания.danger – красный, критическая ошибка.Для отображения последних событий сверху можно использовать свойство
reverse:
<el-timeline :reverse="true">
<el-timeline-item timestamp="09:00">Начало работы</el-timeline-item>
<el-timeline-item timestamp="15:00">Завершение работы</el-timeline-item>
</el-timeline>
reverse=true инвертирует порядок элементов, что полезно
для логов или хронологических отчетов.Компонент корректно работает с адаптивной версткой:
Timeline отлично подходит для динамического контента через
v-for:
<template>
<el-timeline>
<el-timeline-item
v-for="event in events"
:key="event.id"
:timestamp="event.time"
:type="event.type">
{{ event.title }}
</el-timeline-item>
</el-timeline>
</template>
<script>
export default {
data() {
return {
events: [
{ id: 1, time: '08:00', title: 'Старт проекта', type: 'success' },
{ id: 2, time: '10:30', title: 'Промежуточный отчёт', type: 'info' },
{ id: 3, time: '12:00', title: 'Ошибка на сервере', type: 'danger' }
]
};
}
};
</script>
dot – позволяет полностью переопределить маркер
события.color – задаёт цвет линии между событиями.<el-timeline-item
timestamp="13:00"
color="#FF9900"
:dot="customDot">
Событие с уникальным маркером
</el-timeline-item>
customDot может быть Vue-компонентом или
HTML-разметкой.Timeline в Element Plus предоставляет гибкий и визуально настраиваемый способ отображения последовательностей событий, позволяя адаптировать его под задачи от простых логов до сложных хронологических диаграмм с динамическими данными и кастомной визуализацией.