43 lines
		
	
	
		
			862 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			862 B
		
	
	
	
		
			JavaScript
		
	
	
| import { Line, Circle } from '../index'
 | |
| import '../assets/index.less'
 | |
| 
 | |
| export default {
 | |
|   data () {
 | |
|     return {
 | |
|       percent: 0,
 | |
|     }
 | |
|   },
 | |
|   mounted () {
 | |
|     this.$nextTick(() => {
 | |
|       this.increase()
 | |
|     })
 | |
|   },
 | |
|   methods: {
 | |
|     increase () {
 | |
|       const percent = this.percent + 1
 | |
|       if (percent >= 100) {
 | |
|         clearTimeout(this.tm)
 | |
|         return
 | |
|       }
 | |
|       this.percent = percent
 | |
|       this.tm = setTimeout(this.increase, 10)
 | |
|     },
 | |
|     restart () {
 | |
|       clearTimeout(this.tm)
 | |
|       this.percent = 0
 | |
|       this.$nextTick(() => {
 | |
|         this.increase()
 | |
|       })
 | |
|     },
 | |
|   },
 | |
|   render () {
 | |
|     return (
 | |
|       <div style='margin: 10px;width: 200px'>
 | |
|         <Circle strokeWidth='6' percent={this.percent} />
 | |
|         <Line strokeWidth='4' percent={this.percent} />
 | |
|         <button onClick={this.restart}>Restart</button>
 | |
|       </div>
 | |
|     )
 | |
|   },
 | |
| }
 |