|                                                                                                                                                                                                      |  | <template>	<view class="u-circle-progress">		<view class="u-circle-progress__left">			<view			    class="u-circle-progress__left__circle"			    :style="[leftSyle]"			    ref="left-circle"			>
			</view>		</view>		<view		    class="u-circle-progress__right"		>			<view			    class="u-circle-progress__right__circle"			    ref="right-circle"				:style="[rightSyle]"			>
			</view>		</view>		<view class="u-circle-progress__circle">
		</view>	</view></template>
<script>	import props from './props.js';	// #ifdef APP-NVUE
	const animation = uni.requireNativePlugin('animation')	// #endif
	/**	 * CircleProgress 圆形进度条 TODO: 待完善 	 * @description 展示操作或任务的当前进度,比如上传文件,是一个圆形的进度环。	 * @tutorial https://www.uviewui.com/components/circleProgress.html
	 * @property {String | Number}	percentage	圆环进度百分比值,为数值类型,0-100 (默认 30 )	 * @example	 */	export default {		name: 'u-circle-progress',		mixins: [uni.$u.mpMixin, uni.$u.mixin,props],		data() {			return {				leftBorderColor: 'rgb(200, 200, 200)',				rightBorderColor: 'rgb(200, 200, 200)',			}		},		computed: {			leftSyle() {				const style = {}				style.borderTopColor = this.leftBorderColor				style.borderRightColor = this.leftBorderColor				return style			},			rightSyle() {				const style = {}				style.borderLeftColor = this.rightBorderColor				style.borderBottomColor = this.rightBorderColor				return style			}		},		mounted() {			uni.$u.sleep().then(() => {				this.rightBorderColor = 'rgb(66, 185, 131)'				// this.init()
			})		},		methods: {			init() {				animation.transition(this.$refs['right-circle'].ref, {					styles: {						transform: 'rotate(45deg)',						transformOrigin: 'center center'					},				}, () => {					this.rightBorderColor = 'rgb(66, 185, 131)'					// animation.transition(this.$refs['right-circle'].ref, {
					// 	styles: {
					// 		transform: 'rotate(225deg)',
					// 		transformOrigin: 'center center'
					// 	},
					// 	duration: 3000,
					// }, () => {
					// 	animation.transition(this.$refs['left-circle'].ref, {
					// 		styles: {
					// 			transform: 'rotate(45deg)',
					// 			transformOrigin: 'center center'
					// 		},
					// 	}, () => {
					// 		this.leftBorderColor = 'rgb(66, 185, 131)'
					// 		animation.transition(this.$refs['left-circle'].ref, {
					// 			styles: {
					// 				transform: 'rotate(225deg)',
					// 				transformOrigin: 'center center'
					// 			},
					// 			duration: 1500,
					// 		}, () => {
					// 		})
					// 	})
					// })
				})
			}		},	}</script>
<style lang="scss" scoped>	@import "../../libs/css/components.scss";
	.u-circle-progress {		@include flex(row);		position: relative;		border-radius: 100px;		height: 100px;		width: 100px;		// transform: rotate(0deg);
		// background-color: rgb(66, 185, 131);
		background-color: rgb(200, 200, 200);		overflow: hidden;		justify-content: space-between;
		&__circle {			border-radius: 100px;			height: 90px;			width: 90px;			transform: translate(-50%, -50%);			background-color: rgb(255, 255, 255);			left: 50px;			top: 50px;			position: absolute;		}
		&__left {			position: absolute;			left: 0;			width: 50px;			height: 100px;			overflow: hidden;			box-sizing: border-box;			// background-color: rgb(66, 185, 131);
			// background-color: rgb(200, 200, 200);
			// transform-origin: left center;
			&__circle {				box-sizing: border-box;				// background-color: red;
				border-left-color: transparent;				border-bottom-color: transparent;				border-top-left-radius: 50px;				border-top-right-radius: 50px;				border-bottom-right-radius: 50px;				// border-left-color: rgb(66, 185, 131);
				// border-bottom-color: rgb(66, 185, 131);
				border-top-color: rgb(66, 185, 131);				border-right-color: rgb(66, 185, 131);				border-width: 5px;				width: 100px;				height: 100px;				transform: rotate(225deg);				// border-radius: 100px;
			}		}
		&__right {			position: absolute;			right: 0;			width: 50px;			height: 100px;			overflow: hidden;
			&__circle {				position: absolute;				right: 0;				box-sizing: border-box;				// background-color: red;
				border-top-color: transparent;				border-right-color: transparent;				border-top-left-radius: 50px;				border-bottom-left-radius: 50px;				border-bottom-right-radius: 50px;				// border-left-color: rgb(66, 185, 131);
				// border-bottom-color: rgb(66, 185, 131);
				border-left-color: rgb(200, 200, 200);				border-bottom-color: rgb(200, 200, 200);				border-width: 5px;				width: 100px;				height: 100px;				transform: rotate(45deg);				transform-origin: center center;				// border-radius: 100px;
			}		}	}</style>
 |