• Circle 进度环
    • 概述
    • 代码示例
    • API
      • Circle props
      • Circle slot

    Circle 进度环

    概述

    图表类组件。一般有两种用途:

    • 显示某项任务进度的百分比;
    • 统计某些指标的占比。注意:没有使用 iview-loader 时,必须使用 i-circle 标签。

    代码示例

    Circle 进度环 - 图1

    基础用法

    圆形进度环有一系列的参数可配置,具体可以查看下面的API文档。

    1. <template>
    2. <Circle :percent="80">
    3. <span class="demo-Circle-inner" style="font-size:24px">80%</span>
    4. </Circle>
    5. <Circle :percent="100" stroke-color="#5cb85c">
    6. <Icon type="ios-checkmark" size="60" style="color:#5cb85c"></Icon>
    7. </Circle>
    8. <Circle :percent="35" stroke-color="#ff5500">
    9. <span class="demo-Circle-inner">
    10. <Icon type="ios-close" size="50" style="color:#ff5500"></Icon>
    11. </span>
    12. </Circle>
    13. </template>
    14. <script>
    15. export default {
    16. }
    17. </script>

    Circle 进度环 - 图2

    配合外部组件使用

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

    1. <template>
    2. <Circle :percent="percent" :stroke-color="color">
    3. <Icon v-if="percent == 100" type="ios-checkmark" size="60" style="color:#5cb85c"></Icon>
    4. <span v-else style="font-size:24px">{{ percent }}%</span>
    5. </Circle>
    6. <ButtonGroup size="large">
    7. <Button icon="ios-add" @click="add"></Button>
    8. <Button icon="ios-remove" @click="minus"></Button>
    9. </ButtonGroup>
    10. </template>
    11. <script>
    12. export default {
    13. data () {
    14. return {
    15. percent: 0
    16. }
    17. },
    18. computed: {
    19. color () {
    20. let color = '#2db7f5';
    21. if (this.percent == 100) {
    22. color = '#5cb85c';
    23. }
    24. return color;
    25. }
    26. },
    27. methods: {
    28. add () {
    29. if (this.percent >= 100) {
    30. return false;
    31. }
    32. this.percent += 10;
    33. },
    34. minus () {
    35. if (this.percent <= 0) {
    36. return false;
    37. }
    38. this.percent -= 10;
    39. }
    40. }
    41. }
    42. </script>

    Circle 进度环 - 图3

    自定义更多样式

    通过自定义slot和丰富的配置,可以组合出很多统计效果。

    1. <style lang="less">
    2. .demo-Circle-custom{
    3. & h1{
    4. color: #3f414d;
    5. font-size: 28px;
    6. font-weight: normal;
    7. }
    8. & p{
    9. color: #657180;
    10. font-size: 14px;
    11. margin: 10px 0 15px;
    12. }
    13. & span{
    14. display: block;
    15. padding-top: 15px;
    16. color: #657180;
    17. font-size: 14px;
    18. &:before{
    19. content: '';
    20. display: block;
    21. width: 50px;
    22. height: 1px;
    23. margin: 0 auto;
    24. background: #e0e3e6;
    25. position: relative;
    26. top: -15px;
    27. };
    28. }
    29. & span i{
    30. font-style: normal;
    31. color: #3f414d;
    32. }
    33. }
    34. </style>
    35. <template>
    36. <Circle
    37. :size="250"
    38. :trail-width="4"
    39. :stroke-width="5"
    40. :percent="75"
    41. stroke-linecap="square"
    42. stroke-color="#43a3fb">
    43. <div class="demo-Circle-custom">
    44. <h1>42,001,776</h1>
    45. <p>消费人群规模</p>
    46. <span>
    47. 总占人数
    48. <i>75%</i>
    49. </span>
    50. </div>
    51. </Circle>
    52. </template>
    53. <script>
    54. export default {
    55. }
    56. </script>

    Circle 进度环 - 图4

    仪表盘

    通过设置属性 dashboard,可以很方便地实现仪表盘样式的进度环。

    <template>
        <Circle :percent="80" dashboard>
            <span class="demo-circle-inner" style="font-size:24px">80%</span>
        </Circle>
    </template>
    <script>
        export default {
    
        }
    </script>
    

    API

    Circle props

    属性说明类型默认值
    percent百分比Number0
    size图表的宽度和高度,单位 pxNumber120
    stroke-linecap进度环顶端的形状,可选值为square(方)和round(圆)Stringround
    stroke-width进度环的线宽,单位 pxNumber6
    stroke-color进度环的颜色,4.0.0 版本开始支持传入数组显示为渐变色String | Array#2db7f5
    trail-width进度环背景的线宽,单位 pxNumber5
    trail-color进度环背景的颜色String#eaeef2
    dashboard是否显示为仪表盘Booleanfalse

    Circle slot

    名称说明
    自定义显示中间内容,内容默认垂直居中