Files
jurong_circle_frontdesk/src/views/Loading.vue
2025-08-08 09:41:19 +08:00

106 lines
2.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="maintenance-container">
<div class="maintenance-content">
<img
src="/public/imgs/loading.png"
alt="加载中"
class="maintenance-spinner"
>
<h1 class="maintenance-title">服务器维护中</h1>
<p class="maintenance-message">
我们正在对系统进行升级维护以提供更好的服务体验<br>
请稍后再访问感谢您的理解与支持
</p>
<div class="maintenance-progress">
<div class="progress-bar"></div>
</div>
</div>
</div>
</template>
<style scoped>
.maintenance-container {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: #333;
padding: 20px;
text-align: center;
}
.maintenance-content {
max-width: 500px;
padding: 40px;
background: rgba(255, 255, 255, 0.9);
border-radius: 16px;
box-shadow: 0 8px 32px rgba(31, 38, 135, 0.1);
backdrop-filter: blur(8px);
animation: fadeIn 0.6s ease-out;
}
.maintenance-spinner {
width: 80px;
height: 80px;
margin-bottom: 20px;
animation: spin 2s linear infinite;
}
.maintenance-title {
font-size: 28px;
font-weight: 600;
margin-bottom: 15px;
color: #2c3e50;
}
.maintenance-message {
font-size: 16px;
line-height: 1.6;
margin-bottom: 25px;
color: #7f8c8d;
}
.maintenance-progress {
height: 6px;
background: #ecf0f1;
border-radius: 3px;
overflow: hidden;
margin-top: 30px;
}
.progress-bar {
height: 100%;
width: 60%;
background: linear-gradient(90deg, #3498db, #9b59b6);
animation: progressAnimation 2s ease-in-out infinite;
border-radius: 3px;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes progressAnimation {
0% { width: 20%; }
50% { width: 80%; }
100% { width: 20%; }
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 600px) {
.maintenance-content {
padding: 30px 20px;
}
.maintenance-title {
font-size: 24px;
}
}
</style>