Skip to content

FxProgress 进度条

用于展示任务进度,告知用户当前操作的状态。支持线性 / 环形 / 仪表盘三种形态、状态色、不确定动画、条纹流动、自定义颜色与文字。不依赖任何 UI 框架,样式走 @fx/styles token。

线性进度条

percentage 设置进度(必填,0-100)。可用 format 自定义文字格式。

内嵌文字

stroke-width 决定进度条宽度,用 text-inside 将描述文字放入进度条内(不占额外空间)。

自定义颜色

color 设置进度条颜色,支持字符串、函数、数组三种形式。

环形进度条

type="circle" 切换为环形进度条,width 改变画布尺寸。

仪表盘进度条

type="dashboard" 切换为仪表盘进度条。

自定义内容

用默认插槽自定义显示内容。

不确定进度

indeterminate 设置不确定进度,duration 控制动画时长。

条纹

striped 设置条纹进度,striped-flow 让条纹流动,duration 控制动画时长。

API

Attributes

参数说明类型默认值
percentage进度值(0-100,必填)number0
type类型'line' | 'circle' | 'dashboard''line'
stroke-width线宽(line 为 px,circle/dashboard 为相对)number6
text-inside文字内嵌(仅 line)booleanfalse
status当前状态'' | 'success' | 'exception' | 'warning'''
indeterminate不确定进度(往复动画)booleanfalse
duration动画时长(秒,indeterminate / striped-flow)number3
color颜色(覆盖 status)string | ProgressColor[] | ((p: number) => string)
width画布宽度(circle / dashboard,px)number126
show-text是否显示文字booleantrue
stroke-linecap线帽形状'butt' | 'round' | 'square''round'
format自定义文字(percentage: number) => stringp => \${p}%``
striped条纹booleanfalse
striped-flow条纹流动booleanfalse

Slots

名称说明作用域参数
default自定义显示内容(覆盖默认文字 / 状态图标){ percentage: number }

实现说明

  • 三种形态line(线性)/ circle(环形整圈)/ dashboard(仪表盘 3/4 圈,缺口在下方)。circle/dashboard 用 SVG path + stroke-dasharray 控制进度。
  • 颜色优先级color prop > status 映射 > 默认主色。color 支持字符串(固定色)/ 断点数组(按百分比分段)/ 函数(动态返回);状态色走 @fx/styles 语义 token(--color-success / --color-warning / --color-danger / --color-primary),不硬编码色值。
  • 状态图标:line 用 ep:circle-check / ep:circle-close;circle/dashboard 用 ep:check / ep:close;warning 用 ep:warning-filled
  • 动画indeterminate(往复)/ striped-flow(条纹流动),duration 控制周期;过渡时长用 --duration-normal