Files

97 lines
1.7 KiB
Vue
Raw Permalink Normal View History

<template>
<!-- 加载中页面 -->
<div class="portal-loading">
<div class="loading-content">
<!-- 加载动画 -->
<div class="loading-spinner">
<div class="spinner-ring"></div>
<div class="spinner-ring"></div>
<div class="spinner-ring"></div>
</div>
<!-- 加载文本 -->
<h2 class="loading-title">正在加载...</h2>
<p class="loading-subtitle">请稍候正在准备您的工作台</p>
</div>
</div>
</template>
<script setup lang="ts">
// 加载中页面,无特殊逻辑
</script>
<style scoped>
/* 页面容器 */
.portal-loading {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
/* 加载内容 */
.loading-content {
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
}
/* 加载动画 */
.loading-spinner {
position: relative;
width: 80px;
height: 80px;
}
.spinner-ring {
position: absolute;
width: 100%;
height: 100%;
border: 3px solid transparent;
border-top-color: #3b82f6;
border-radius: 50%;
animation: spin 1.5s linear infinite;
}
.spinner-ring:nth-child(2) {
width: 60px;
height: 60px;
top: 10px;
left: 10px;
border-top-color: #f59e0b;
animation-duration: 1.2s;
animation-direction: reverse;
}
.spinner-ring:nth-child(3) {
width: 40px;
height: 40px;
top: 20px;
left: 20px;
border-top-color: #10b981;
animation-duration: 0.9s;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
/* 加载文本 */
.loading-title {
font-size: 24px;
font-weight: 600;
color: #f1f5f9;
}
.loading-subtitle {
font-size: 14px;
color: #94a3b8;
}
</style>