cashier_wx/components/Loading.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>