进度组件

简介

进度组件用于在表格列中展示进度条,可视化显示数值进度。

用法示例

基础用法

use plugin\xbCode\builder\Builder;

// 创建表格
Builder::crud(function($builder) {
  // 添加进度列
  $builder->addColumnProgress('progress', '完成进度');
});

自定义配置

Builder::crud(function($builder) {
  // 使用回调函数自定义配置
  $builder->addColumnProgress('completion', '完成率', function($component) {
    $component->showLabel(true); // 显示百分比标签
    $component->mode('line'); // 线性进度条
    $component->map([
      'success' => '<= 100',
      'warning' => '> 60 && < 100',
      'danger' => '<= 60'
    ]);
  });
  
  // 使用数组方式配置
  $builder->addColumnProgress('score', '得分', [
    'showLabel' => true,
    'className' => 'progress-bar-striped'
  ]);
});

组件参数

参数名类型默认值说明
namestring必填字段名称,对应数据库字段(存储0-100的数值)
labelstring必填列标题,显示在表格头部
optioncallable|array[]配置选项,可以是回调函数或数组

进度组件属性

属性名类型默认值说明
modestringline进度条模式:'line'(线性)、'circle'(圆形)、'dashboard'(仪表盘)
classNamestring-CSS 类名
showLabelboolfalse是否显示百分比标签
stripebool-是否显示斑马纹
animatebool-是否显示动画效果
maparray-颜色映射配置
widthint|string-列宽度

颜色映射配置

可以根据进度值设置不同的颜色:

'map' => [
  'success' => '>= 80',      // 绿色:大于等于80
  'warning' => '>= 60 && < 80', // 黄色:60-80之间
  'danger' => '< 60'         // 红色:小于60
]

使用场景

  • 任务完成进度
  • 下载上传进度
  • 学习进度展示
  • 目标达成率
  • 考试成绩展示

注意事项

  1. 数据库字段应存储0-100之间的数值
  2. 支持三种显示模式:线性、圆形、仪表盘
  3. 可以通过 map 配置根据进度值显示不同颜色
  4. showLabel 可以在进度条上显示具体百分比