60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Vue
		
	
	
<docs>
 | 
						|
---
 | 
						|
order: 5
 | 
						|
title:
 | 
						|
  zh-CN: 进度圈动态展示
 | 
						|
  en-US: Dynamic circular progress bar
 | 
						|
---
 | 
						|
 | 
						|
## zh-CN
 | 
						|
 | 
						|
会动的进度条才是好进度条。
 | 
						|
 | 
						|
## en-US
 | 
						|
 | 
						|
A dynamic progress bar is better.
 | 
						|
 | 
						|
</docs>
 | 
						|
 | 
						|
<template>
 | 
						|
  <div>
 | 
						|
    <a-progress type="circle" :percent="defaultPercent" />
 | 
						|
    <a-button-group>
 | 
						|
      <a-button @click="decline">
 | 
						|
        <template #icon><minus-outlined /></template>
 | 
						|
      </a-button>
 | 
						|
      <a-button @click="increase">
 | 
						|
        <template #icon><plus-outlined /></template>
 | 
						|
      </a-button>
 | 
						|
    </a-button-group>
 | 
						|
  </div>
 | 
						|
</template>
 | 
						|
<script lang="ts">
 | 
						|
import { MinusOutlined , PlusOutlined } from '@ant-design/icons-vue';
 | 
						|
import { defineComponent, ref } from 'vue';
 | 
						|
export default defineComponent({
 | 
						|
  components: {
 | 
						|
    MinusOutlined,
 | 
						|
    PlusOutlined,
 | 
						|
  },
 | 
						|
  setup() {
 | 
						|
    const defaultPercent = ref<number>(0);
 | 
						|
 | 
						|
    const increase = () => {
 | 
						|
      const percent = defaultPercent.value + 10;
 | 
						|
      defaultPercent.value = percent > 100 ? 100 : percent;
 | 
						|
    };
 | 
						|
 | 
						|
    const decline = () => {
 | 
						|
      const percent = defaultPercent.value - 10;
 | 
						|
      defaultPercent.value = percent < 0 ? 0 : percent;
 | 
						|
    };
 | 
						|
    return {
 | 
						|
      defaultPercent,
 | 
						|
      increase,
 | 
						|
      decline,
 | 
						|
    };
 | 
						|
  },
 | 
						|
});
 | 
						|
</script>
 |