| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- <!doctype html>
- <html lang="en">
- <head>
- <script src="https://g.alicdn.com/code/npm/@ali/dingtalk-h5-remote-debug/0.1.3/index.js"></script>
- <script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
- <meta charset="UTF-8" />
- <link rel="icon" href="/favicon.ico" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="keywords" content="研发管理平台" />
- <meta name="description" content="研发管理平台" />
- <title>%VITE_APP_TITLE%</title>
- </head>
- <body>
- <div id="app">
- <style>
- .app-loading {
- display: flex;
- width: 100%;
- height: 100%;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- background: #f0f2f5;
- }
- .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 .app-loading-title {
- margin-bottom: 30px;
- font-size: 20px;
- font-weight: bold;
- text-align: center;
- color: #2d8cf0 !important;
- }
- .app-loading .app-loading-logo {
- position: relative;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 118px;
- height: 118px;
- color: #2d8cf0;
- margin: 0 auto 18px auto;
- border-radius: 50%;
- background: radial-gradient(
- circle at top,
- rgb(255 255 255 / 90%) 0%,
- rgb(235 245 255 / 80%) 60%,
- rgb(105 162 255 / 12%) 100%
- );
- box-shadow: 0 14px 42px rgb(45 140 240 / 16%);
- animation: logo-breathe 1.6s ease-in-out infinite;
- }
- .app-loading .app-loading-logo::before {
- position: absolute;
- inset: -8px;
- content: '';
- border: 2px solid rgb(45 140 240 / 24%);
- border-top-color: #2d8cf0;
- border-right-color: transparent;
- border-radius: 50%;
- animation: logo-spin 1.2s linear infinite;
- }
- .app-loading .app-loading-logo img {
- position: relative;
- z-index: 1;
- width: 88px;
- height: 88px;
- object-fit: contain;
- animation: logo-rotate 1.4s linear infinite;
- }
- .app-loading .app-loading-item {
- position: relative;
- display: inline-block;
- width: 60px;
- height: 60px;
- vertical-align: middle;
- border-radius: 50%;
- }
- .app-loading .app-loading-outter {
- position: absolute;
- width: 100%;
- height: 100%;
- border: 4px solid #2d8cf0;
- border-bottom: 0;
- border-left-color: transparent;
- border-radius: 50%;
- animation: loader-outter 1s cubic-bezier(0.42, 0.61, 0.58, 0.41) infinite;
- }
- .app-loading .app-loading-inner {
- position: absolute;
- top: calc(50% - 20px);
- left: calc(50% - 20px);
- width: 40px;
- height: 40px;
- border: 4px solid #87bdff;
- border-right: 0;
- border-top-color: transparent;
- border-radius: 50%;
- animation: loader-inner 1s cubic-bezier(0.42, 0.61, 0.58, 0.41) infinite;
- }
- @-webkit-keyframes loader-outter {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
- }
- @keyframes loader-outter {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
- }
- @-webkit-keyframes loader-inner {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(-360deg);
- transform: rotate(-360deg);
- }
- }
- @keyframes loader-inner {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(-360deg);
- transform: rotate(-360deg);
- }
- }
- @keyframes logo-spin {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
- }
- @keyframes logo-breathe {
- 0%,
- 100% {
- transform: scale(1);
- opacity: 0.95;
- }
- 50% {
- transform: scale(1.04);
- opacity: 1;
- }
- }
- @keyframes logo-rotate {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
- }
- /* From Uiverse.io by Juanes200122 */
- #svg-global {
- zoom: 1.2;
- overflow: visible;
- }
- @keyframes fade-particles {
- 0%,
- 100% {
- opacity: 1;
- }
- 50% {
- opacity: 0.5;
- }
- }
- @keyframes floatUp {
- 0% {
- transform: translateY(0);
- opacity: 0;
- }
- 10% {
- opacity: 1;
- }
- 100% {
- transform: translateY(-40px);
- opacity: 0;
- }
- }
- #particles {
- animation: fade-particles 5s infinite alternate;
- }
- .particle {
- animation: floatUp linear infinite;
- }
- .p1 {
- animation-duration: 2.2s;
- animation-delay: 0s;
- }
- .p2 {
- animation-duration: 2.5s;
- animation-delay: 0.3s;
- }
- .p3 {
- animation-duration: 2s;
- animation-delay: 0.6s;
- }
- .p4 {
- animation-duration: 2.8s;
- animation-delay: 0.2s;
- }
- .p5 {
- animation-duration: 2.3s;
- animation-delay: 0.4s;
- }
- .p6 {
- animation-duration: 3s;
- animation-delay: 0.1s;
- }
- .p7 {
- animation-duration: 2.1s;
- animation-delay: 0.5s;
- }
- .p8 {
- animation-duration: 2.6s;
- animation-delay: 0.2s;
- }
- .p9 {
- animation-duration: 2.4s;
- animation-delay: 0.3s;
- }
- @keyframes bounce-lines {
- 0%,
- 100% {
- transform: translateY(0);
- }
- 50% {
- transform: translateY(-3px);
- }
- }
- #line-v1,
- #line-v2,
- #node-server,
- #panel-rigth,
- #reflectores,
- #particles {
- animation: bounce-lines 3s ease-in-out infinite alternate;
- }
- #line-v2 {
- animation-delay: 0.2s;
- }
- #node-server,
- #panel-rigth,
- #reflectores,
- #particles {
- animation-delay: 0.4s;
- }
- </style>
- <div class="app-loading">
- <div class="app-loading-wrap">
- <div class="app-loading-title">
- <div class="app-loading-logo">
- <img src="./src/assets/imgs/logo.png" alt="logo" />
- </div>
- <div class="app-loading-title">%VITE_APP_TITLE%</div>
- </div>
- </div>
- </div>
- </div>
- <script type="module" src="/src/main.ts"></script>
- </body>
- </html>
|