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,可以很方便地实现仪表盘样式的进度环。

  1. <template>
  2. <Circle :percent="80" dashboard>
  3. <span class="demo-circle-inner" style="font-size:24px">80%</span>
  4. </Circle>
  5. </template>
  6. <script>
  7. export default {
  8. }
  9. </script>

API

Circle props

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

Circle slot

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