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,必填) | number | 0 |
| type | 类型 | 'line' | 'circle' | 'dashboard' | 'line' |
| stroke-width | 线宽(line 为 px,circle/dashboard 为相对) | number | 6 |
| text-inside | 文字内嵌(仅 line) | boolean | false |
| status | 当前状态 | '' | 'success' | 'exception' | 'warning' | '' |
| indeterminate | 不确定进度(往复动画) | boolean | false |
| duration | 动画时长(秒,indeterminate / striped-flow) | number | 3 |
| color | 颜色(覆盖 status) | string | ProgressColor[] | ((p: number) => string) | — |
| width | 画布宽度(circle / dashboard,px) | number | 126 |
| show-text | 是否显示文字 | boolean | true |
| stroke-linecap | 线帽形状 | 'butt' | 'round' | 'square' | 'round' |
| format | 自定义文字 | (percentage: number) => string | p => \${p}%`` |
| striped | 条纹 | boolean | false |
| striped-flow | 条纹流动 | boolean | false |
Slots
| 名称 | 说明 | 作用域参数 |
|---|---|---|
| default | 自定义显示内容(覆盖默认文字 / 状态图标) | { percentage: number } |
实现说明
- 三种形态:
line(线性)/circle(环形整圈)/dashboard(仪表盘 3/4 圈,缺口在下方)。circle/dashboard 用 SVG path +stroke-dasharray控制进度。 - 颜色优先级:
colorprop >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。
