<!-- 加载动画页面 -->
<template>
	<view v-if="loading" class="loading">
		<div class="loader"></div>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				num : 4,		//默认2秒后关闭(这里处理初始页面重叠的bug,初始页面是2秒后消失，所以这里加个2)
				interval : null
			}
		},
		created(){
			this.interval = setInterval(() => {
				if(this.num <= 0){
					this.num = 4;
					this.$emit('close');
					clearInterval(this.interval)
				}
				this.num--;
			},1000)
		},
		destroyed(){
			if(this.interval){
				clearInterval(this.interval)
			}
		},
		props : {
			loading : {
				type : Boolean,
				default : true
			}
		},
		methods: {

		}
	}
</script>

<style lang="scss" scoped>
	.loading {
		display: flex;
		justify-content: center;
		
		.loader {
			width: 50px;
			aspect-ratio: 1;
			display: grid;
		}

		.loader::before,
		.loader::after {
			content: "";
			grid-area: 1/1;
			--c: no-repeat radial-gradient(farthest-side, #B0C73B 92%, #0000);
			background:
				var(--c) 50% 0,
				var(--c) 50% 100%,
				var(--c) 100% 50%,
				var(--c) 0 50%;
			background-size: 12px 12px;
			animation: l12 1s infinite;
		}

		.loader::before {
			margin: 4px;
			filter: hue-rotate(45deg);
			background-size: 8px 8px;
			animation-timing-function: linear
		}

		@keyframes l12 {
			100% {
				transform: rotate(.5turn)
			}
		}
	}
</style>