Files
Yi.Admin/Yi.Ai.Vue3/index.html

160 lines
4.0 KiB
HTML
Raw Normal View History

2025-06-17 22:37:37 +08:00
<!doctype html>
<html lang="en">
<head>
2025-07-20 15:15:05 +08:00
<meta charset="UTF-8"/>
<link rel="icon" href="/favicon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="baidu-site-verification" content="codeva-mkVpSFmYJm"/>
<meta name="description" content="意心AI一站式多模型 AI 平台,提供 GPT-4o、DeepSeek 等服务"/>
<meta name="description" content="各大主流AI无限制使用直连AIclaude ,DeepSeek,open-ai"/>
<meta name="keywords" content="意心AI, GPT-4.5, 多模型AI, AI工具"/>
<meta name="keywords" content="橙子chengzi,橙子老哥ccnetcore意社区"/>
<meta name="author" content="橙子chengzi,橙子老哥ccnetcore"/>
<meta name="version" content="%VITE_APP_VERSION%"/>
<meta name="version" content="%VITE_WEB_TITLE%"/>
2025-06-17 22:37:37 +08:00
<title>%VITE_WEB_TITLE%</title>
2025-07-20 15:15:05 +08:00
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
2025-07-20 21:01:41 +08:00
<style>
/* 全局样式 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* 加载动画样式 */
.loader-container {
position: fixed;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: #fff;
z-index: 1000;
transition: opacity 0.5s ease;
}
.loader-title {
font-size: clamp(1.5rem, 3vw, 2.5rem);
font-weight: bold;
margin-bottom: 0.5rem;
letter-spacing: -0.02em;
}
.loader-subtitle {
font-size: 0.875rem;
color: #555;
margin-bottom: 1.5rem;
}
.loader-logo {
font-size: 3rem;
margin-bottom: 1.5rem;
display: flex;
justify-content: center;
}
.pulse-box {
width: 32px;
height: 32px;
background: #000;
display: inline-block;
transform-origin: center;
animation: pulse 1.2s infinite ease-in-out;
}
@keyframes pulse {
0% {
transform: scale(1) rotate(0deg);
opacity: 1;
}
50% {
transform: scale(1.2) rotate(45deg);
opacity: 0.8;
}
100% {
transform: scale(1) rotate(90deg);
opacity: 1;
}
}
.loader-text {
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 1rem;
}
.loader-progress-bar {
width: 90%;
max-width: 400px;
height: 8px;
background: #f0f0f0;
border-radius: 4px;
overflow: hidden;
}
.loader-progress {
height: 100%;
width: 0%;
background: #000;
transition: width 0.3s ease-out;
}
</style>
2025-07-20 15:15:05 +08:00
2025-06-17 22:37:37 +08:00
</head>
<body>
2025-07-20 15:15:05 +08:00
<!-- 加载动画容器 -->
<div id="loader" class="loader-container">
<div class="loader-title">意心Ai</div>
<div class="loader-subtitle">海外地址仅首次访问预计加载约10秒</div>
<div class="loader-logo">
<div class="pulse-box"></div>
</div>
<div class="loader-text" id="progress-text">0%</div>
<div class="loader-progress-bar">
<div id="progress-bar" class="loader-progress"></div>
</div>
</div>
2025-07-20 21:01:41 +08:00
<!-- 加载进度脚本:放在 main.ts 之前,保证先执行 -->
2025-07-20 15:15:05 +08:00
<script>
2025-07-20 21:01:41 +08:00
// 立即执行函数改为更简单的写法,减少解析时间
(function(){
const bar = document.getElementById('progress-bar');
const text = document.getElementById('progress-text');
2025-07-20 15:15:05 +08:00
let progress = 0;
2025-07-20 21:01:41 +08:00
function update() {
progress = Math.min(progress + 2 + Math.random() * 3, 95);
bar.style.width = progress + '%';
text.textContent = Math.floor(progress) + '%';
if(progress < 95) requestAnimationFrame(update);
2025-07-20 15:15:05 +08:00
}
2025-07-20 21:01:41 +08:00
update();
2025-07-20 15:15:05 +08:00
2025-07-20 21:01:41 +08:00
window.finishLoading = function() {
bar.style.width = '100%';
text.textContent = '100%';
2025-07-20 15:15:05 +08:00
setTimeout(() => {
2025-07-20 21:01:41 +08:00
document.getElementById('loader').style.opacity = '0';
setTimeout(() => document.getElementById('loader').remove(), 500);
2025-07-20 15:15:05 +08:00
}, 300);
2025-07-20 21:01:41 +08:00
};
})();
2025-07-20 15:15:05 +08:00
</script>
2025-07-20 21:01:41 +08:00
<div id="app"></div>
2025-07-20 15:15:05 +08:00
<script async type="module" src="/src/main.ts"></script>
2025-06-17 22:37:37 +08:00
</body>
</html>