107 lines
3.5 KiB
HTML
107 lines
3.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content="th - 智能对话助手,支持知识库问答" />
|
|
<meta name="keywords" content="TH-Agenter, AI, 对话, 知识库, 问答" />
|
|
<meta name="author" content="TH-Agenter Team" />
|
|
<title>TH智能对话助手</title>
|
|
|
|
<!-- Preload critical resources -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
|
|
<!-- Favicon -->
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
|
<link rel="manifest" href="/site.webmanifest">
|
|
|
|
<!-- Theme color -->
|
|
<meta name="theme-color" content="#409eff" />
|
|
|
|
<!-- Open Graph / Facebook -->
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://TH-Agenter.example.com/" />
|
|
<meta property="og:title" content="th - 智能对话助手" />
|
|
<meta property="og:description" content="th - 智能对话助手,支持知识库问答" />
|
|
<meta property="og:image" content="/og-image.png" />
|
|
|
|
<!-- Twitter -->
|
|
<meta property="twitter:card" content="summary_large_image" />
|
|
<meta property="twitter:url" content="https://TH-Agenter.example.com/" />
|
|
<meta property="twitter:title" content="th - 智能对话助手" />
|
|
<meta property="twitter:description" content="th - 智能对话助手,支持知识库问答" />
|
|
<meta property="twitter:image" content="/twitter-image.png" />
|
|
|
|
<!-- Loading styles -->
|
|
<style>
|
|
#loading {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: #f5f7fa;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 9999;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.loading-spinner {
|
|
width: 40px;
|
|
height: 40px;
|
|
border: 4px solid #e1e6ef;
|
|
border-top: 4px solid #409eff;
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
|
|
.loading-text {
|
|
margin-top: 16px;
|
|
color: #606266;
|
|
font-size: 14px;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<!-- Loading screen -->
|
|
<div id="loading">
|
|
<div>
|
|
<div class="loading-spinner"></div>
|
|
<div class="loading-text">正在加载 TH-Agenter...</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- App root -->
|
|
<div id="app"></div>
|
|
|
|
<!-- Main script -->
|
|
<script type="module" src="/src/main.ts"></script>
|
|
|
|
<!-- Remove loading screen when app is ready -->
|
|
<script>
|
|
window.addEventListener('load', function() {
|
|
setTimeout(function() {
|
|
const loading = document.getElementById('loading');
|
|
if (loading) {
|
|
loading.style.opacity = '0';
|
|
setTimeout(function() {
|
|
loading.remove();
|
|
}, 300);
|
|
}
|
|
}, 500);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |