Skip to content

Switch 开关选择器

CSS 实现的圆环形的进度条组件,支持渐变。

提示

此组件使用 cssconic-gradient 实现的,目前测试在H5微信小程序支付宝小程序抖音小程序APP中都能正常使用,其他平台暂未测试。

提示

因为此组件使用 cssconic-gradient 来实现,所以不支持设置进度条两端的圆角,另外,还不能使用 transition 设置过渡效果,当前组件的过渡效果是通过组件内设置递归函数实现的。

基础使用

通过 percent 设置当前进度,0-100

vue
<template>
    <hi-circle-progress :percent="percent"></hi-circle-progress>
</template>

<script setup>
    import { ref } from "vue";

    // 进度
    const percent = ref(75);
</script>

主题

通过 theme 属性设置主题。

vue
<template>
    <hi-circle-progress :percent="percent" theme="primary"></hi-circle-progress>
    <hi-circle-progress :percent="percent" theme="success"></hi-circle-progress>
    <hi-circle-progress :percent="percent" theme="warning"></hi-circle-progress>
    <hi-circle-progress :percent="percent" theme="error"></hi-circle-progress>
    <hi-circle-progress :percent="percent" theme="info"></hi-circle-progress>
</template>

自定义颜色

  • 通过 inactiveColor 属性设置未激活进度的颜色。
  • 通过 color 设置激活进度的颜色,可以是一个颜色字符串,也可以是一组颜色数组(渐变进度条)。
vue
<template>
    <!-- 自定义单色进度条 -->
    <hi-circle-progress :percent="percent" inactiveColor="#ff9900" color="#ff0000"></hi-circle-progress>

    <!-- 自定义多色渐变进度条 -->
    <hi-circle-progress
        :percent="percent"
        :color="['#ff0000', '#ff9900', '#ff0099', '#0099ff', '#00ff99', '#99ff00', '#9900ff']"
    ></hi-circle-progress>
</template>

进度条粗细

通过 width 属性设置进度条粗细。

vue
<template>
    <hi-circle-progress :percent="percent" width="10px" theme="success"></hi-circle-progress>
    <hi-circle-progress :percent="percent" width="32rpx" theme="warning"></hi-circle-progress>
</template>

自定义大小

通过 size 属性设置圆的大小。

vue
<template>
    <hi-circle-progress :percent="percent" size="60px" theme="primary"></hi-circle-progress>
    <hi-circle-progress :percent="percent" size="260rpx" theme="success"></hi-circle-progress>
</template>

状态展示

通过 status 设置进度条中间内容状态:

  • on: 进行中,此时会显示 75% 这样的文字,显示的内容格式可以通过 format 属性自定义。
  • success: 完成,此时会显示一个成功图标,图标名称、颜色和大小可以自定义。
  • fail: 失败,此时会显示一个失败图标,图标名称、颜色和大小可以自定义。

提示

组件不会自动更新状态,需在使用的地方去控制,如果不需要显示状态,可以将 showStatus 组件设置未 false,或通过默认 slot 将状态内容替换掉。

vue
<template>
    <!-- 进行中 -->
    <hi-circle-progress :percent="percent" status="on" theme="primary"></hi-circle-progress>

    <!-- 完成 -->
    <hi-circle-progress :percent="percent" status="success" theme="success"></hi-circle-progress>

    <!-- 失败 -->
    <hi-circle-progress :percent="percent" status="fail" theme="error"></hi-circle-progress>
</template>

自定义状态文字格式

  • 通过 format 可以自定义状态文字的格式,一个字符串,格式为:"{percent}%",其中 {percent} 表示进度值。
vue
<template>
    <!-- 自定义文字格式 -->
    <hi-circle-progress :percent="percent" status="on" format="已完成{percent}%"></hi-circle-progress>
</template>

Props

属性名说明类型默认值可选值版本
theme主题String---
size大小String---
width进度条粗细String---
percent进度值Number---
inactiveColor未激活进度的颜色String---
color激活进度的颜色[String, Array[String]]---
bg背景String---
status状态Stringonon、success、fail-
format状态内容格式字符串String"{percent}%"--
step更新进度值时过渡效果每次更新的步长Number0.1--
interval更新进度值时过渡效果的间隔时间,毫秒Number10--
showStatus是否显示状态内容Booleantruefalse-
statusColor状态内容颜色String---
statusFontSize状态内容字体大小String---
successIcon成功图标名称String__checked--
successIconColor成功图标颜色String---
successIconSize成功图标大小String---
failIcon失败图标名称String__error--
failIconColor失败图标颜色String---
failIconSize失败图标大小String---

Slots

名称说明参数版本
default默认内容--

样式变量

组件提供了以下样式变量,可以在使用时设置这些变量来修改组件的样式。

变量名默认值版本
--hi-circle-progress-size90px-
--hi-circle-progress-background--
--hi-circle-progress-width10px-
--hi-circle-progress-content-justify-contentcenter-
--hi-circle-progress-content-flex-directioncolumn-
--hi-circle-progress-content-align-itemscenter-
--hi-circle-progress-content-text-aligncenter-
--hi-circle-progress-status-font-size1.15em-
--hi-circle-progress-status-color--
--hi-circle-progress-status-icon-font-size1.15em-
--hi-circle-progress-status-icon-color--
--hi-circle-progress-status-success-icon-font-sizevar(--hi-circle-progress-status-icon-font-size, 1.15em)-
--hi-circle-progress-status-success-icon-colorvar(--hi-circle-progress-status-icon-color, var(--hi-circle-progress-active-color, var(--hi-theme-primary)))-
--hi-circle-progress-status-fail-icon-font-sizevar(--hi-circle-progress-status-icon-font-size, 1.15em)-
--hi-circle-progress-status-fail-icon-colorvar(--hi-circle-progress-status-icon-color, var(--hi-circle-progress-active-color, var(--hi-theme-error)))-

基于 MIT 许可发布