Компонент Progress используется для визуального отображения прогресса выполнения задачи. Он показывает пользователю, какая часть процесса уже завершена и сколько осталось до окончания операции.
В интерфейсах веб-приложений прогресс может обозначать:
В библиотеке Element Plus компонент el-progress
предоставляет несколько вариантов отображения прогресса:
Каждый вариант может настраиваться через параметры, позволяя адаптировать визуализацию под конкретный интерфейс.
В большинстве проектов компонент доступен сразу после установки библиотеки Element Plus.
Простейшее использование:
<template>
<el-progress :percentage="50" />
</template>
Параметр percentage определяет текущий процент
выполнения операции.
Диапазон значения:
0 – 100
Если указано 50, индикатор показывает половину
выполнения.
По умолчанию используется линейный тип прогресса.
<template>
<el-progress :percentage="30"></el-progress>
</template>
В результате отображается горизонтальная шкала, заполненная на 30%.
Линейный прогресс:
По умолчанию компонент показывает процент выполнения.
Пример:
<template>
<el-progress :percentage="70"></el-progress>
</template>
Отображение:
[███████████████████ ] 70%
Текст можно отключить.
<template>
<el-progress :percentage="70" :show-text="false"></el-progress>
</template>
Теперь будет отображаться только графический индикатор.
Толщина прогресс-бара задаётся через свойство
stroke-width.
<template>
<el-progress :percentage="60" :stroke-width="20"></el-progress>
</template>
Значение указывается в пикселях.
Пример вариантов:
| Значение | Результат |
|---|---|
| 6 | тонкий индикатор |
| 12 | стандартный |
| 20+ | крупный индикатор |
Толстые линии часто используются в административных панелях и дашбордах.
Цвет можно задать напрямую.
<template>
<el-progress :percentage="80" color="#409EFF"></el-progress>
</template>
Поддерживаются:
Пример:
<el-progress :percentage="50" color="green"></el-progress>
Цвет можно изменять в зависимости от процента выполнения.
<template>
<el-progress
:percentage="percentage"
:color="customColors"
/>
</template>
<script setup>
const percentage = 65
const customColors = [
{ color: '#f56c6c', percentage: 20 },
{ color: '#e6a23c', percentage: 40 },
{ color: '#5cb87a', percentage: 60 },
{ color: '#1989fa', percentage: 80 },
]
</script>
Логика работы:
| Процент | Цвет |
|---|---|
| 0–20 | красный |
| 21–40 | оранжевый |
| 41–60 | зелёный |
| 61–80 | синий |
Такая схема используется для отображения статуса выполнения.
Компонент поддерживает несколько состояний.
<el-progress :percentage="100" status="success" />
Отображается:
<el-progress :percentage="50" status="exception" />
Используется для обозначения:
Индикатор окрашивается в красный цвет.
<el-progress :percentage="80" status="warning" />
Применяется для ситуаций:
Текст прогресса можно изменять с помощью функции
format.
<template>
<el-progress
:percentage="40"
:format="format"
/>
</template>
<script setup>
const format = (percentage) => {
return percentage === 100 ? 'Complete' : percentage + '%'
}
</script>
Теперь вместо стандартного текста можно выводить:
Complete
или любой другой формат.
Тип circle отображает индикатор в виде круга.
<template>
<el-progress
type="circle"
:percentage="60"
/>
</template>
Используется для:
Размер регулируется параметром width.
<template>
<el-progress
type="circle"
:percentage="75"
:width="120"
/>
</template>
Значение задаётся в пикселях.
Примеры:
| width | диаметр |
|---|---|
| 100 | компактный |
| 150 | средний |
| 200+ | крупный |
Толщина круга также регулируется через stroke-width.
<el-progress
type="circle"
:percentage="70"
:stroke-width="10"
/>
Это влияет на визуальную плотность кольца.
Тип dashboard представляет собой полукруговой
индикатор, похожий на спидометр.
<template>
<el-progress
type="dashboard"
:percentage="65"
/>
</template>
Применяется для:
Параметр dashboard использует свойство
dashboard с настройкой percentage и отображает
дугу вместо полного круга.
Полукруг создаёт эффект индикатора прибора.
Компонент автоматически анимирует изменение значения
percentage.
Пример динамического изменения:
<template>
<el-progress :percentage="progress"></el-progress>
</template>
<script setup>
import { ref } from 'vue'
const progress = ref(0)
setInterval(() => {
if (progress.value < 100) {
progress.value += 10
}
}, 1000)
</script>
Каждую секунду индикатор увеличивается.
Часто используется при загрузке файлов.
Пример:
<template>
<el-progress
:percentage="uploadProgress"
status="success"
/>
</template>
Логика:
загрузка файла → обновление процента → отображение прогресса
Значение обычно приходит из API загрузки.
Компонент удобно комбинируется с другими компонентами библиотеки Element Plus.
Пример карточки статистики:
<el-card>
<h3>Загрузка сервера</h3>
<el-progress
type="circle"
:percentage="72"
/>
</el-card>
Такие карточки часто используются в административных панелях.
В интерфейсе могут отображаться несколько операций.
<template>
<el-progress :percentage="20" />
<el-progress :percentage="45" status="warning" />
<el-progress :percentage="80" status="success" />
</template>
Каждый индикатор отражает отдельный процесс.
Текст внутри круга можно полностью заменить.
<template>
<el-progress type="circle" :percentage="50">
<span>50 / 100</span>
</el-progress>
</template>
Это позволяет отображать:
Компонент Progress широко применяется в современных веб-приложениях:
Upload → 0% → 25% → 70% → 100%
Download packages
Install dependencies
Configure system
Complete
Каждый этап может отображаться прогрессом.
Пример:
Task completion
[███████████████ ] 65%
Круговые индикаторы показывают:
Большое количество прогресс-баров перегружает интерфейс.
Если операция неизвестна по времени, лучше использовать:
Типичная схема:
| Цвет | Значение |
|---|---|
| зелёный | успех |
| синий | выполнение |
| жёлтый | предупреждение |
| красный | ошибка |
Резкие скачки значений ухудшают восприятие интерфейса.
Лучше увеличивать значение постепенно.
| Свойство | Назначение |
|---|---|
| percentage | процент выполнения |
| type | тип индикатора |
| stroke-width | толщина линии |
| width | размер круга |
| show-text | отображение текста |
| color | цвет индикатора |
| status | состояние прогресса |
| format | кастомный формат текста |
| Тип | Описание |
|---|---|
| line | горизонтальный индикатор |
| circle | круговой индикатор |
| dashboard | полукруговой индикатор |
Компонент Progress является одним из ключевых элементов визуальной обратной связи интерфейса. Он помогает пользователю понимать текущее состояние операций и оценивать время их завершения, обеспечивая прозрачность работы приложения.