Files
urldb/web/components/LoadingState.vue
2025-07-30 23:22:49 +08:00

51 lines
990 B
Vue

<template>
<div class="loading-container">
<div class="loading-spinner"></div>
<p class="loading-text">{{ message }}</p>
</div>
</template>
<script setup lang="ts">
// 组件属性
interface Props {
message?: string
}
const props = withDefaults(defineProps<Props>(), {
message: '正在检测访问环境...'
})
</script>
<style scoped>
.loading-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
background: url('/assets/images/banner.webp') center / cover no-repeat;
}
.loading-spinner {
width: 50px;
height: 50px;
border: 4px solid rgba(255, 255, 255, 0.3);
border-top: 4px solid #ffffff;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 20px;
}
.loading-text {
color: #ffffff;
font-size: 16px;
font-weight: 500;
text-align: center;
margin: 0;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>