Progress 进度条

概述

展示操作或任务的当前进度,比如上传文件。

注意:非 template/render 模式下,需使用 i-progress

代码示例

Progress 进度条 - 图1

基本用法

处在不同状态下的进度条,当 percent 为 100 时,自动将状态置为 success。

  1. <template>
  2. <Progress :percent="25" />
  3. <Progress :percent="45" status="active" />
  4. <Progress :percent="65" status="wrong" />
  5. <Progress :percent="100" />
  6. <Progress :percent="25" hide-info />
  7. </template>
  8. <script>
  9. export default {
  10. }
  11. </script>

Progress 进度条 - 图2

百分比内显

4.0.0 设置属性 text-inside 可以将百分比显示在进度条内部。

需要通过属性 stroke-width 设置一个足够的高度。

  1. <template>
  2. <Progress :percent="25" :stroke-width="20" text-inside />
  3. <Progress :percent="45" :stroke-width="20" status="active" text-inside />
  4. <Progress :percent="65" :stroke-width="20" status="wrong" text-inside />
  5. <Progress :percent="100" :stroke-width="20" text-inside />
  6. </template>
  7. <script>
  8. export default {
  9. }
  10. </script>

Progress 进度条 - 图3

垂直方向

设置属性 vertical 将以垂直方向显示。

  1. <template>
  2. <div style="height: 100px;">
  3. <Progress vertical :percent="25" />
  4. <Progress vertical :percent="45" status="active" />
  5. <Progress vertical :percent="65" status="wrong" />
  6. <Progress vertical :percent="100" />
  7. <Progress vertical :percent="25" hide-info />
  8. </div>
  9. </template>
  10. <script>
  11. export default {
  12. }
  13. </script>

Progress 进度条 - 图4

配合外部组件使用

通过数据的联动和逻辑控制,实现动态效果。

  1. <template>
  2. <Progress :percent="percent" />
  3. <ButtonGroup size="large">
  4. <Button icon="ios-add" @click="add"></Button>
  5. <Button icon="ios-remove" @click="minus"></Button>
  6. </ButtonGroup>
  7. </template>
  8. <script>
  9. export default {
  10. data () {
  11. return {
  12. percent: 0
  13. }
  14. },
  15. methods: {
  16. add () {
  17. if (this.percent >= 100) {
  18. return false;
  19. }
  20. this.percent += 10;
  21. },
  22. minus () {
  23. if (this.percent <= 0) {
  24. return false;
  25. }
  26. this.percent -= 10;
  27. }
  28. }
  29. }
  30. </script>

Progress 进度条 - 图5

自定义更多样式

通过自定义slot和属性stroke-width改变进度条效果。

  1. <template>
  2. <Progress :percent="25" :stroke-width="5" />
  3. <Progress :percent="100">
  4. <Icon type="checkmark-circled"></Icon>
  5. <span>成功</span>
  6. </Progress>
  7. </template>
  8. <script>
  9. export default {
  10. }
  11. </script>

Progress 进度条 - 图6

渐变色

4.0.0 设置属性 stroke-color 为数组时,可以显示为渐变色。

数组只能设置为两项。

<template>
    <Progress :percent="90" :stroke-color="['#108ee9', '#87d068']" />
</template>
<script>
    export default {

    }
</script>

Progress 进度条 - 图7

分段进度条

标准的进度条。

<template>
    <Tooltip content="3 done / 3 in progress / 4 to do" style="width: 100%">
        <Progress :percent="60" :success-percent="30" />
    </Tooltip>
</template>
<script>
    export default {

    }
</script>

API

Progress props

属性 说明 类型 默认值
percent 百分比 Number 0
status 状态,可选值为normalactivewrongsuccess String normal
stroke-width 进度条的线宽,单位 px Number 10
stroke-color 3.3.0 进度条的颜色,4.0.0 开始支持传入数组,显示为渐变色 String | Array -
hide-info 隐藏数值或状态图标 Boolean false
vertical 是否在垂直方向显示 Boolean false
success-percent 已完成的分段百分比 Number 0
text-inside 4.0.0 百分比是否置于进度条内 Boolean false

Progress slot

名称 说明
自定义显示状态内容