feat(index): 优化index.html页面结构和加载体验

- 添加基础meta标签、SEO描述信息和安全相关meta标签
- 配置移动端和PWA支持,更新图标和manifest配置
- 优化CSS样式,包括box-sizing重置和加载动画样式
- 改进加载器动画效果,添加无障碍属性和noscript提示
- 修复viewport配置,移除过时的IE兼容性代码
- 统一CSS单位格式,优化margin和padding设置
```
This commit is contained in:
2025-12-24 14:15:08 +08:00
parent 4c6886be6a
commit c297072b36
33 changed files with 119 additions and 338 deletions

View File

@@ -1,38 +1,63 @@
<!DOCTYPE html>
<html>
<head>
<!-- 基础 meta 标签 -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<!-- <link rel="icon" href="src/assets/images/ccu.png" /> -->
<link rel="icon" href="src/assets/images/ccu.png" />
<link rel="stylesheet" type="text/css" media="print" href="/print-lock.css">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- SEO 和描述信息 -->
<meta name="description" content="医院信息管理系统 - 提供全面的医疗信息化解决方案" />
<meta name="keywords" content="医院信息管理系统,医疗信息化,HIS,医院管理" />
<meta name="author" content="OpenHIS Team" />
<!-- 安全相关 meta 标签 -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;">
<meta name="referrer" content="no-referrer-when-downgrade">
<!-- 移动端和 PWA 支持 -->
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="theme-color" content="#1890ff">
<!-- Favicon 和图标 -->
<link rel="icon" href="/favicon/favicon.ico" sizes="any">
<link rel="icon" type="image/png" href="/favicon/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicon/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicon/favicon-48x48.png" sizes="48x48">
<link rel="manifest" href="/favicon/faviconsite.webmanifest">
<link rel="icon" type="image/png" href="/favicon/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="/favicon/android-chrome-512x512.png" sizes="512x512">
<link rel="apple-touch-icon" href="/favicon/apple-touch-icon.png">
<link rel="mask-icon" href="/favicon/safari-pinned-tab.svg" color="#5bbad5">
<link rel="icon" href="/favicon/favicon.svg" type="image/svg+xml">
<!-- 打印样式按需加载 -->
<link rel="stylesheet" type="text/css" media="print" href="/print-lock.css" onload="this.media='all'">
<title>医院信息管理系统</title>
<!--[if lt IE 11
]><script>
<!--[if lt IE 11]>
<script>
window.location.href = '/html/ie.html';
</script><!
[endif]-->
</script>
<![endif]-->
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
margin: 0;
padding: 0;
box-sizing: border-box;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
*,
*::before,
*::after {
box-sizing: inherit;
}
/* 加载动画样式优化 */
#loader-wrapper {
position: fixed;
top: 0;
@@ -45,7 +70,7 @@
justify-content: center;
align-items: center;
z-index: 9999;
transition: opacity 0.5s, visibility 0.5s;
transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}
.loaded #loader-wrapper {
@@ -56,62 +81,70 @@
.jumping-dots-loader {
width: 100px;
height: 100px;
border-radius: 100%;
position: relative;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}
.jumping-dots-loader span {
display: inline-block;
width: 15px;
height: 15px;
border-radius: 100%;
border-radius: 50%;
background-color: #1890ff;
margin: 35px 5px;
animation: bounce 1.2s ease-in-out infinite;
}
.jumping-dots-loader span:nth-child(1) {
animation: bounce 1s ease-in-out infinite;
animation-delay: 0s;
}
.jumping-dots-loader span:nth-child(2) {
animation: bounce 1s ease-in-out 0.33s infinite;
animation-delay: 0.2s;
}
.jumping-dots-loader span:nth-child(3) {
animation: bounce 1s ease-in-out 0.66s infinite;
animation-delay: 0.4s;
}
@keyframes bounce {
0%,
75%,
100% {
transform: translateY(0);
0%, 80%, 100% {
transform: translateY(0) scale(1);
}
25% {
transform: translateY(-20px);
40% {
transform: translateY(-20px) scale(1.1);
}
}
.load-title {
margin-top: 20px;
margin-top: 30px;
color: #666;
font-size: 16px;
font-weight: 500;
letter-spacing: 0.5px;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div class="jumping-dots-loader">
<div id="loader-wrapper" role="status" aria-live="polite" aria-label="系统正在加载">
<div class="jumping-dots-loader" aria-hidden="true">
<span></span>
<span></span>
<span></span>
</div>
<div class="load-title">正在加载系统资源,请耐心等待</div>
<noscript>
<div style="color: #ff4d4f; text-align: center; margin-top: 20px;">
请启用 JavaScript 以正常使用本系统
</div>
</noscript>
</div>
</div>
<script type="module" src="/src/main.js"></script>
<script type="module" src="./src/main.js"></script>
</body>
</html>