• Progress 进度条
    • 何时使用
    • 代码演示
      • 进度条
      • 进度圈
      • 小型进度条
      • 小型进度圈
      • 进度圈动态展示
      • 自定义文字格式
      • 动态展示
      • 仪表盘
      • 分段进度条
      • 圆角/方角边缘
  • API
    • type="line"
    • type="circle"
    • type="dashboard"

    Progress 进度条

    展示操作的当前进度。

    何时使用

    在操作需要较长时间才能完成时,为用户显示该操作的当前进度和状态。

    • 当一个操作会打断当前界面,或者需要在后台运行,且耗时可能超过2秒时;
    • 当需要显示一个操作完成的百分比时。

    代码演示

    Progress 进度条 - 图1

    进度条

    标准的进度条。

    1. <template>
    2. <div>
    3. <a-progress :percent="30" />
    4. <a-progress :percent="50" status="active" />
    5. <a-progress :percent="70" status="exception" />
    6. <a-progress :percent="100" />
    7. <a-progress :percent="50" :showInfo="false" />
    8. </div>
    9. </template>

    Progress 进度条 - 图2

    进度圈

    圈形的进度。

    1. <template>
    2. <div>
    3. <a-progress type="circle" :percent="75" />
    4. <a-progress type="circle" :percent="70" status="exception" />
    5. <a-progress type="circle" :percent="100" />
    6. </div>
    7. </template>
    8. <style scoped>
    9. .ant-progress-circle-wrap,
    10. .ant-progress-line-wrap {
    11. margin-right: 8px;
    12. margin-bottom: 5px;
    13. }
    14. </style>

    Progress 进度条 - 图3

    小型进度条

    适合放在较狭窄的区域内。

    1. <template>
    2. <div style="width: 170px">
    3. <a-progress :percent="30" size="small" />
    4. <a-progress :percent="50" size="small" status="active" />
    5. <a-progress :percent="70" size="small" status="exception" />
    6. <a-progress :percent="100" size="small" />
    7. </div>
    8. </template>

    Progress 进度条 - 图4

    小型进度圈

    小一号的圈形进度。

    1. <template>
    2. <div>
    3. <a-progress type="circle" :percent="30" :width="80" />
    4. <a-progress type="circle" :percent="70" :width="80" status="exception" />
    5. <a-progress type="circle" :percent="100" :width="80" />
    6. </div>
    7. </template>
    8. <style scoped>
    9. .ant-progress-circle-wrap,
    10. .ant-progress-line-wrap {
    11. margin-right: 8px;
    12. margin-bottom: 5px;
    13. }
    14. </style>

    Progress 进度条 - 图5

    进度圈动态展示

    会动的进度条才是好进度条。

    1. <template>
    2. <div>
    3. <a-progress type="circle" :percent="percent" />
    4. <a-button-group>
    5. <a-button @click="decline" icon="minus" />
    6. <a-button @click="increase" icon="plus" />
    7. </a-button-group>
    8. </div>
    9. </template>
    10. <script>
    11. export default {
    12. data() {
    13. return {
    14. percent: 0,
    15. };
    16. },
    17. methods: {
    18. increase() {
    19. let percent = this.percent + 10;
    20. if (percent > 100) {
    21. percent = 100;
    22. }
    23. this.percent = percent;
    24. },
    25. decline() {
    26. let percent = this.percent - 10;
    27. if (percent < 0) {
    28. percent = 0;
    29. }
    30. this.percent = percent;
    31. },
    32. },
    33. };
    34. </script>

    Progress 进度条 - 图6

    自定义文字格式

    format 属性指定格式。

    1. <template>
    2. <div>
    3. <a-progress type="circle" :percent="75" :format="percent => `${percent} Days`" />
    4. <a-progress type="circle" :percent="100" :format="() => 'Done'" />
    5. <a-progress type="circle" :percent="75">
    6. <template v-slot:format="percent">
    7. <span style="color: red">{{percent}}</span>
    8. </template>
    9. </a-progress>
    10. </div>
    11. </template>
    12. <style scoped>
    13. div.ant-progress-circle,
    14. div.ant-progress-line {
    15. margin-right: 8px;
    16. margin-bottom: 8px;
    17. }
    18. </style>

    Progress 进度条 - 图7

    动态展示

    会动的进度条才是好进度条。

    1. <template>
    2. <div>
    3. <a-progress :percent="percent" />
    4. <a-button-group>
    5. <a-button @click="decline" icon="minus" />
    6. <a-button @click="increase" icon="plus" />
    7. </a-button-group>
    8. </div>
    9. </template>
    10. <script>
    11. export default {
    12. data() {
    13. return {
    14. percent: 0,
    15. };
    16. },
    17. methods: {
    18. increase() {
    19. let percent = this.percent + 10;
    20. if (percent > 100) {
    21. percent = 100;
    22. }
    23. this.percent = percent;
    24. },
    25. decline() {
    26. let percent = this.percent - 10;
    27. if (percent < 0) {
    28. percent = 0;
    29. }
    30. this.percent = percent;
    31. },
    32. },
    33. };
    34. </script>

    Progress 进度条 - 图8

    仪表盘

    By setting type=dashboard, you can get a dashboard style of progress easily.

    1. <template>
    2. <div>
    3. <a-progress type="dashboard" :percent="75" />
    4. </div>
    5. </template>

    Progress 进度条 - 图9

    分段进度条

    标准的进度条。

    1. <template>
    2. <div>
    3. <a-tooltip title="3 done / 3 in progress / 4 to do">
    4. <a-progress :percent="60" :successPercent="30" />
    5. </a-tooltip>
    6. <a-tooltip title="3 done / 3 in progress / 4 to do">
    7. <a-progress :percent="60" :successPercent="30" type="circle" />
    8. </a-tooltip>
    9. <a-tooltip title="3 done / 3 in progress / 4 to do">
    10. <a-progress :percent="60" :successPercent="30" type="dashboard" />
    11. </a-tooltip>
    12. </div>
    13. </template>

    Progress 进度条 - 图10

    圆角/方角边缘

    strokeLinecap="square|round" 可以调整进度条边缘的形状。

    1. <template>
    2. <div>
    3. <a-progress strokeLinecap="square" :percent="75" />
    4. <a-progress strokeLinecap="square" :percent="75" type="circle" />
    5. <a-progress strokeLinecap="square" :percent="75" type="dashboard" />
    6. </div>
    7. </template>

    API

    各类型共用的属性。

    属性说明类型默认值
    type类型,可选 line circle dashboardstringline
    format内容的模板函数function(percent, successPercent) | v-slot:format="percent, successPercent"percent => percent + '%'
    percent百分比number0
    showInfo是否显示进度数值或状态图标booleantrue
    status状态,可选:success exception active normalstring-
    strokeLinecapEnum{ 'round', 'square' }round
    strokeColor进度条的色彩string-
    successPercent已完成的分段百分比number0

    type="line"

    属性说明类型默认值
    strokeWidth进度条线的宽度,单位 pxnumber10

    type="circle"

    属性说明类型默认值
    width圆形进度条画布宽度,单位 pxnumber132
    strokeWidth圆形进度条线的宽度,单位是进度条画布宽度的百分比number6

    type="dashboard"

    属性说明类型默认值
    width仪表盘进度条画布宽度,单位 pxnumber132
    strokeWidth仪表盘进度条线的宽度,单位是进度条画布宽度的百分比number6
    gapDegree仪表盘进度条缺口角度,可取值 0 ~ 360number0
    gapPosition仪表盘进度条缺口位置Enum{ 'top', 'bottom', 'left', 'right' }top