Skip to content

Индикатор выполнения ​

Показывает прогресс задачи; поддерживает статусные цвета, собственный цвет и форматирование текста.

Базовое использование ​

vue
<template>
  <lh-progress :percentage="42" />
</template>

Состояния ​

vue
<template>
  <lh-progress :percentage="70" status="success" />
  <lh-progress :percentage="70" status="warning" />
  <lh-progress :percentage="70" status="exception" />
  <lh-progress :percentage="100" />
</template>

Если status равен normal и достигнуто 100, значение автоматически трактуется как success.

Толщина линии и скрытие текста ​

vue
<template>
  <lh-progress :percentage="60" :stroke-width="12" />
  <lh-progress :percentage="60" :show-text="false" />
</template>

Собственный цвет ​

Строка используется как цвет линии напрямую, функция возвращает цвет в зависимости от процента.

vue
<template>
  <lh-progress :percentage="60" color="#C4A35A" />
  <lh-progress :percentage="60" :color="gradient" />
</template>

<script setup lang="ts">
const gradient = (p: number) => `rgb(${p}, 0, 0)`
</script>

Форматирование и слот текста ​

vue
<template>
  <lh-progress :percentage="42" :format="format" />
  <lh-progress :percentage="42">
    <template #text="{ percentage }">
      <text>{{ percentage }} / 100</text>
    </template>
  </lh-progress>
</template>

<script setup lang="ts">
const format = (p: number) => `Прогресс ${p}`
</script>

Props ​

ПропОписаниеТипПо умолчанию
percentageПроцент выполнения 0-100 (выход за пределы автоматически клампится)number0
typeТип'line' | 'circle''line'
statusСостояние'normal' | 'success' | 'warning' | 'exception''normal'
colorЦвет линии: строка или функция, возвращающая цвет по процентуstring | ((percentage: number) => string)—
strokeWidthТолщина линии, pxnumber6
widthШирина полотна в круговом режиме, pxnumber126
showTextПоказывать текстbooleantrue
formatФункция форматирования текста(percentage: number) => string—
customClassПользовательский классstring—
sxБыстрые свойства раскладкиLhSxProps—

Slots ​

СлотОписаниеПараметры области видимости
textТекст прогресса{ percentage: number }

Круговой тип пока не реализован

Поддержка svg в Mini Program ограничена, в первом выпуске реализован только тип line. Передача type="circle" отрендерит линию и выдаст одно предупреждение в режиме разработки (без молчаливой деградации); круговой тип оставлен на вторую итерацию.