vben
2022-03-18 b303f1bea3749c9fee51d401e3d394abe9209121
index.html
@@ -1,7 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en" id="htmlRoot">
  <head>
    <%= viteHtmlPluginOptions.hmScript %>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />
@@ -9,72 +8,151 @@
      name="viewport"
      content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
    />
    <title></title>
    <title><%= title %></title>
    <link rel="icon" href="/favicon.ico" />
    <%= viteHtmlPluginOptions.injectConfig %>
    <style>
      @keyframes load {
        0% {
          -webkit-transform: rotate(-360deg);
          transform: rotate(-360deg);
        }
        100% {
          -webkit-transform: rotate(0);
          transform: rotate(0);
        }
      }
      .app-loading {
        width: 100%;
        height: 100%;
        background: #f0f2f5;
      }
      .app-loading .app-loading-wrap {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate3d(-50%, -50%, 0);
        transform: translate3d(-50%, -50%, 0);
      }
      .app-loading .g-loading {
        display: block;
        width: 64px;
        margin: 30px auto;
        -webkit-animation: load 1.2s linear infinite;
        animation: load 1.2s linear infinite;
        -webkit-transform-origin: center center;
        transform-origin: center center;
      }
      .app-loading .app-loading-wrap img.logo {
        display: block;
        width: 90px;
        margin: 0 auto;
        margin-bottom: 20px;
      }
      .app-loading .app-loading-wrap .app-loading__tip {
        display: block;
        margin: 20px auto 0 0;
        font-size: 30px;
        color: #2c3a61;
      }
    </style>
  </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">
      <section class="app-loading">
        <section class="app-loading-wrap">
          <img src="./resource/img/logo.png" class="logo" alt="Logo" />
          <img src="./resource/img/loading.svg" alt="" class="g-loading" />
          <h1 class="app-loading__tip"><%= viteHtmlPluginOptions.title %></h1>
        </section>
      </section>
      <style>
        html[data-theme='dark'] .app-loading {
          background-color: #2c344a;
        }
        html[data-theme='dark'] .app-loading .app-loading-title {
          color: rgb(255 255 255 / 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;
          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: rgb(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: 30%;
          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;
          animation-delay: 0.4s;
        }
        .dot i:nth-child(3) {
          right: 0;
          bottom: 0;
          animation-delay: 0.8s;
        }
        .dot i:nth-child(4) {
          bottom: 0;
          left: 0;
          animation-delay: 1.2s;
        }
        @keyframes antRotate {
          to {
            transform: rotate(405deg);
          }
        }
        @keyframes antRotate {
          to {
            transform: rotate(405deg);
          }
        }
        @keyframes antSpinMove {
          to {
            opacity: 100%;
          }
        }
        @keyframes antSpinMove {
          to {
            opacity: 100%;
          }
        }
      </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>