83 lines
1.4 KiB
Vue
83 lines
1.4 KiB
Vue
<template>
|
|
<view class="full-screen-loading" v-if="isLoading">
|
|
<view class="loading-content">
|
|
<view class="loading-spinner"></view>
|
|
<view class="loading-text">努力加载中...</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {
|
|
ref,
|
|
defineProps
|
|
} from 'vue';
|
|
|
|
|
|
const props = defineProps({
|
|
isLoading: {
|
|
type: Boolean,
|
|
default: true
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
/* 全屏遮罩 */
|
|
.full-screen-loading {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
// background: rgba(0, 0, 0, 0.7);
|
|
background:#fff;
|
|
/* 半透明背景 */
|
|
z-index: 9999;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
|
|
/* 加载内容容器 */
|
|
.loading-content {
|
|
background: #fff;
|
|
padding: 2rem;
|
|
border-radius: 8px;
|
|
text-align: center;
|
|
|
|
/* 旋转加载动画 */
|
|
.loading-spinner {
|
|
margin: 0 auto;
|
|
width: 40px;
|
|
height: 40px;
|
|
border: 4px solid #f3f3f3;
|
|
border-top: 4px solid #3498db;
|
|
/* 蓝色动画部分 */
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
margin-bottom: 1rem;
|
|
|
|
/* 加载文字 */
|
|
.loading-text {
|
|
color: #333;
|
|
font-size: 14px;
|
|
}
|
|
|
|
/* 定义旋转动画 */
|
|
@keyframes spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
</style> |