171 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			HTML
		
	
	
| <!DOCTYPE html>
 | |
| <html lang="zh_CN" id="htmlRoot">
 | |
|   <head>
 | |
|     <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.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
 | |
|     />
 | |
| 
 | |
|     <title><%= title %></title>
 | |
|     <link rel="icon" href="/logo.png" />
 | |
|     <!-- 全局配置 -->
 | |
|     <script>
 | |
|       window._CONFIG = {};
 | |
|     </script>
 | |
|   </head>
 | |
|   <body>
 | |
|     <script>
 | |
|       (() => {
 | |
|         var htmlRoot = document.getElementById('htmlRoot');
 | |
|         var theme = window.localStorage.getItem('__APP__DARK__MODE__');
 | |
|         if (htmlRoot && theme) {
 | |
|           htmlRoot.setAttribute('data-theme', theme);
 | |
|           theme = htmlRoot = null;
 | |
|         }
 | |
|       })();
 | |
|     </script>
 | |
|     <div id="app">
 | |
|       <style>
 | |
|         html[data-theme='dark'] .app-loading {
 | |
|           background-color: #2c344a;
 | |
|         }
 | |
| 
 | |
|         html[data-theme='dark'] .app-loading .app-loading-title {
 | |
|           color: rgba(255, 255, 255, 0.85);
 | |
|         }
 | |
| 
 | |
|         .app-loading {
 | |
|           display: flex;
 | |
|           width: 100%;
 | |
|           height: 100%;
 | |
|           justify-content: center;
 | |
|           align-items: center;
 | |
|           flex-direction: column;
 | |
|           background-color: #f4f7f9;
 | |
|         }
 | |
| 
 | |
|         .app-loading .app-loading-wrap {
 | |
|           position: absolute;
 | |
|           top: 50%;
 | |
|           left: 50%;
 | |
|           display: flex;
 | |
|           -webkit-transform: translate3d(-50%, -50%, 0);
 | |
|           transform: translate3d(-50%, -50%, 0);
 | |
|           justify-content: center;
 | |
|           align-items: center;
 | |
|           flex-direction: column;
 | |
|         }
 | |
| 
 | |
|         .app-loading .dots {
 | |
|           display: flex;
 | |
|           padding: 98px;
 | |
|           justify-content: center;
 | |
|           align-items: center;
 | |
|         }
 | |
| 
 | |
|         .app-loading .app-loading-title {
 | |
|           display: flex;
 | |
|           margin-top: 30px;
 | |
|           font-size: 30px;
 | |
|           color: rgba(0, 0, 0, 0.85);
 | |
|           justify-content: center;
 | |
|           align-items: center;
 | |
|         }
 | |
| 
 | |
|         .app-loading .app-loading-logo {
 | |
|           display: block;
 | |
|           width: 90px;
 | |
|           margin: 0 auto;
 | |
|           margin-bottom: 20px;
 | |
|         }
 | |
| 
 | |
|         .dot {
 | |
|           position: relative;
 | |
|           display: inline-block;
 | |
|           width: 48px;
 | |
|           height: 48px;
 | |
|           margin-top: 30px;
 | |
|           font-size: 32px;
 | |
|           transform: rotate(45deg);
 | |
|           box-sizing: border-box;
 | |
|           animation: antRotate 1.2s infinite linear;
 | |
|         }
 | |
| 
 | |
|         .dot i {
 | |
|           position: absolute;
 | |
|           display: block;
 | |
|           width: 20px;
 | |
|           height: 20px;
 | |
|           background-color: #0065cc;
 | |
|           border-radius: 100%;
 | |
|           opacity: 0.3;
 | |
|           transform: scale(0.75);
 | |
|           animation: antSpinMove 1s infinite linear alternate;
 | |
|           transform-origin: 50% 50%;
 | |
|         }
 | |
| 
 | |
|         .dot i:nth-child(1) {
 | |
|           top: 0;
 | |
|           left: 0;
 | |
|         }
 | |
| 
 | |
|         .dot i:nth-child(2) {
 | |
|           top: 0;
 | |
|           right: 0;
 | |
|           -webkit-animation-delay: 0.4s;
 | |
|           animation-delay: 0.4s;
 | |
|         }
 | |
| 
 | |
|         .dot i:nth-child(3) {
 | |
|           right: 0;
 | |
|           bottom: 0;
 | |
|           -webkit-animation-delay: 0.8s;
 | |
|           animation-delay: 0.8s;
 | |
|         }
 | |
| 
 | |
|         .dot i:nth-child(4) {
 | |
|           bottom: 0;
 | |
|           left: 0;
 | |
|           -webkit-animation-delay: 1.2s;
 | |
|           animation-delay: 1.2s;
 | |
|         }
 | |
|         @keyframes antRotate {
 | |
|           to {
 | |
|             -webkit-transform: rotate(405deg);
 | |
|             transform: rotate(405deg);
 | |
|           }
 | |
|         }
 | |
|         @-webkit-keyframes antRotate {
 | |
|           to {
 | |
|             -webkit-transform: rotate(405deg);
 | |
|             transform: rotate(405deg);
 | |
|           }
 | |
|         }
 | |
|         @keyframes antSpinMove {
 | |
|           to {
 | |
|             opacity: 1;
 | |
|           }
 | |
|         }
 | |
|         @-webkit-keyframes antSpinMove {
 | |
|           to {
 | |
|             opacity: 1;
 | |
|           }
 | |
|         }
 | |
|       </style>
 | |
|       <div class="app-loading">
 | |
|         <div class="app-loading-wrap">
 | |
|           <img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
 | |
|           <div class="app-loading-dots">
 | |
|             <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
 | |
|           </div>
 | |
|           <div class="app-loading-title"><%= title %></div>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|     <script type="module" src="/src/main.ts"></script>
 | |
|   </body>
 | |
| </html>
 |