#
luxiaotao1123
2022-03-02 aaf2e5aed7df2d082935cf91a538a037557c368e
#
2个文件已修改
1个文件已添加
1个文件已删除
2734 ■■■■ 已修改文件
src/main/webapp/static/css/home.css 2065 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/home/charts.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/home/console.html 666 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/css/home.css
New file
@@ -0,0 +1,2065 @@
.header-container {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 1000;
  background-color: #fff; }
  .header-container-primary {
    background-color: transparent; }
  .header-container-normal {
    background-color: #fff;
    box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.08); }
  .header-container .header-body {
    max-width: 1280px;
    margin: 0 auto;
    height: 66px;
    line-height: 66px; }
    .header-container .header-body .logo {
      margin-left: 40px;
      width: 96px;
      vertical-align: sub; }
    .header-container .header-body .header-menu {
      float: right; }
      .header-container .header-body .header-menu .header-menu-toggle {
        display: none;
        width: 19px;
        margin-right: 40px;
        margin-top: 18px;
        cursor: pointer; }
    .header-container .header-body ul {
      padding: 0;
      margin: 0; }
    .header-container .header-body li {
      display: inline-block;
      margin-right: 40px; }
    .header-container .header-body .menu-item {
      font-family: Avenir-Heavy;
      font-size: 14px;
      vertical-align: bottom; }
    .header-container .header-body .menu-item-primary a {
      color: #fff;
      opacity: 0.6;
      font-family: Avenir-Medium; }
    .header-container .header-body .menu-item-primary:hover a {
      opacity: 1; }
    .header-container .header-body .menu-item-primary-active a {
      opacity: 1; }
    .header-container .header-body .menu-item-normal a {
      color: #333;
      opacity: 0.6;
      font-family: Avenir-Medium; }
    .header-container .header-body .menu-item-normal:hover a {
      opacity: 1; }
    .header-container .header-body .menu-item-normal-active a {
      opacity: 1; }
    .header-container .header-body .language-switch {
      float: right;
      box-sizing: border-box;
      width: 24px;
      height: 24px;
      display: none !important;
      line-height: 20px;
      margin-top: 21px;
      margin-right: 40px;
      text-align: center;
      border-radius: 2px;
      cursor: pointer;
      font-family: PingFangSC-Medium;
      font-size: 14px;
      opacity: 0.6; }
      .header-container .header-body .language-switch:hover {
        opacity: 1; }
    .header-container .header-body .language-switch-primary {
      border: 1px solid #FFF;
      color: #FFF;
      display: none !important; }
    .header-container .header-body .language-switch-normal {
      border: 1px solid #333;
      color: #333;
      display: none !important; }
    .header-container .header-body .search {
      float: right;
      width: 24px;
      height: 24px;
      margin-top: 21px;
      margin-right: 40px;
      line-height: normal;
      position: relative; }
      .header-container .header-body .search .icon-search {
        display: inline-block;
        cursor: pointer;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        border: 2px solid;
        position: relative; }
        .header-container .header-body .search .icon-search::before {
          content: '';
          transform: rotate(45deg);
          width: 8px;
          height: 2px;
          position: absolute;
          top: 13px;
          left: 11px; }
      .header-container .header-body .search-primary .icon-search {
        border-color: #fff;
        opacity: 0.6; }
        .header-container .header-body .search-primary .icon-search::before {
          background-color: #fff; }
        .header-container .header-body .search-primary .icon-search:hover {
          opacity: 1; }
      .header-container .header-body .search-normal .icon-search {
        border-color: #333;
        opacity: 0.6; }
        .header-container .header-body .search-normal .icon-search::before {
          background-color: #333; }
        .header-container .header-body .search-normal .icon-search:hover {
          opacity: 1; }
      .header-container .header-body .search .search-input {
        position: absolute;
        left: -172px;
        top: 28px;
        background: #fff;
        border-radius: 4px;
        overflow: hidden;
        box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.05), 0 -8px 16px 0 rgba(0, 0, 0, 0.05); }
        .header-container .header-body .search .search-input img {
          width: 28px;
          height: 28px;
          cursor: pointer;
          vertical-align: middle; }
        .header-container .header-body .search .search-input input {
          padding: 0 4px;
          border: none;
          outline: none;
          width: 160px;
          height: 24px;
          vertical-align: middle; }
@media screen and (max-width: 640px) {
  .header-container .header-body .logo {
    margin-left: 20px; }
  .header-container .header-body .language-switch {
    margin-right: 20px; }
  .header-container .header-body .header-menu ul {
    display: none; }
  .header-container .header-body .header-menu .header-menu-toggle {
    display: inline-block;
    margin-right: 20px; }
  .header-container .header-body .header-menu-open ul {
    background-color: #f8f8f8;
    display: inline-block;
    position: absolute;
    right: 0;
    top: 66px;
    z-index: 100; }
  .header-container .header-body .header-menu-open li {
    width: 200px;
    display: list-item;
    padding-left: 30px;
    list-style: none;
    line-height: 40px;
    margin-right: 0; }
    .header-container .header-body .header-menu-open li a {
      color: #333;
      display: inline-block;
      width: 100%; }
    .header-container .header-body .header-menu-open li:hover {
      background: #8755FF; }
      .header-container .header-body .header-menu-open li:hover a {
        color: #fff;
        opacity: 1; }
  .header-container .header-body .header-menu-open .menu-item-primary-active, .header-container .header-body .header-menu-open .menu-item-normal-active {
    background: #8755FF; }
    .header-container .header-body .header-menu-open .menu-item-primary-active a, .header-container .header-body .header-menu-open .menu-item-normal-active a {
      color: #fff;
      opacity: 1; } }
.footer-container {
  background: #F8F8F8; }
  .footer-container .footer-body {
    max-width: 1280px;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 40px 40px 0; }
    @media screen and (max-width: 640px) {
      .footer-container .footer-body {
        padding-left: 20px;
        padding-right: 20px; } }
    .footer-container .footer-body img {
      width: 125px;
      height: 26px;
      margin-bottom: 28px;
      margin-right: 20px;
      vertical-align: middle; }
    .footer-container .footer-body .cols-container {
      margin-bottom: 60px; }
      .footer-container .footer-body .cols-container .col {
        display: inline-block;
        box-sizing: border-box;
        vertical-align: top; }
      .footer-container .footer-body .cols-container .col-12 {
        width: 50%;
        padding-right: 125px; }
      .footer-container .footer-body .cols-container .col-6 {
        width: 25%; }
      .footer-container .footer-body .cols-container h3 {
        font-family: Avenir-Heavy;
        font-size: 18px;
        color: #333;
        line-height: 18px;
        margin-bottom: 20px; }
      .footer-container .footer-body .cols-container p {
        font-family: Avenir-Medium;
        font-size: 12px;
        color: #999;
        line-height: 18px; }
      .footer-container .footer-body .cols-container dl {
        font-family: Avenir-Heavy;
        line-height: 18px; }
      .footer-container .footer-body .cols-container dt {
        font-weight: bold;
        font-size: 18px;
        color: #333;
        margin-bottom: 20px; }
      .footer-container .footer-body .cols-container dd {
        padding: 0;
        margin: 0; }
        .footer-container .footer-body .cols-container dd a {
          text-decoration: none;
          display: block;
          font-size: 14px;
          color: #999;
          margin: 10px 0; }
        .footer-container .footer-body .cols-container dd a:hover {
          color: #2DACEC; }
    .footer-container .footer-body .copyright {
      border-top: 1px solid #ccc;
      min-height: 60px;
      line-height: 20px;
      text-align: center;
      font-family: Avenir-Medium;
      font-size: 12px;
      color: #999;
      display: flex;
      align-items: center; }
      .footer-container .footer-body .copyright span {
        display: inline-block;
        margin: 0 auto; }
@media screen and (max-width: 640px) {
  .footer-container .footer-body .cols-container .col {
    width: 100%;
    text-align: center;
    padding: 0; } }
.button {
  box-sizing: border-box;
  display: inline-block;
  height: 48px;
  line-height: 48px;
  min-width: 140px;
  font-family: Avenir-Heavy;
  font-size: 16px;
  color: #FFF;
  text-align: center;
  border-radius: 4px;
  text-decoration: none; }
  .button-primary {
    background: #4190FF; }
  .button-normal {
    background: transparent;
    border: 1px solid #fff;
    cursor: pointer;
    transition: all 300ms;
  }
  .button-normal:hover {
    background: #FFF;
    color: #5eccf6;
    font-weight: bold;
  }
@charset "UTF-8";
@font-face {
  font-family: octicons-link;
  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format("woff"); }
.markdown-body {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  line-height: 1.5;
  color: #24292e;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word; }
.markdown-body .pl-c {
  color: #6a737d; }
.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #005cc5; }
.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #6f42c1; }
.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #24292e; }
.markdown-body .pl-ent {
  color: #22863a; }
.markdown-body .pl-k {
  color: #d73a49; }
.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: #032f62; }
.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #e36209; }
.markdown-body .pl-bu {
  color: #b31d28; }
.markdown-body .pl-ii {
  color: #fafbfc;
  background-color: #b31d28; }
.markdown-body .pl-c2 {
  color: #fafbfc;
  background-color: #d73a49; }
.markdown-body .pl-c2::before {
  content: "^M"; }
.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #22863a; }
.markdown-body .pl-ml {
  color: #735c0f; }
.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #005cc5; }
.markdown-body .pl-mi {
  font-style: italic;
  color: #24292e; }
.markdown-body .pl-mb {
  font-weight: bold;
  color: #24292e; }
.markdown-body .pl-md {
  color: #b31d28;
  background-color: #ffeef0; }
.markdown-body .pl-mi1 {
  color: #22863a;
  background-color: #f0fff4; }
.markdown-body .pl-mc {
  color: #e36209;
  background-color: #ffebda; }
.markdown-body .pl-mi2 {
  color: #f6f8fa;
  background-color: #005cc5; }
.markdown-body .pl-mdr {
  font-weight: bold;
  color: #6f42c1; }
.markdown-body .pl-ba {
  color: #586069; }
.markdown-body .pl-sg {
  color: #959da5; }
.markdown-body .pl-corl {
  text-decoration: underline;
  color: #032f62; }
.markdown-body .octicon {
  display: inline-block;
  vertical-align: text-top;
  fill: currentColor; }
.markdown-body a {
  background-color: transparent; }
.markdown-body a:active,
.markdown-body a:hover {
  outline-width: 0; }
.markdown-body strong {
  font-weight: inherit; }
.markdown-body strong {
  font-weight: bolder; }
.markdown-body h1 {
  font-size: 2em;
  margin: 0.67em 0; }
.markdown-body img {
  border-style: none; }
.markdown-body code,
.markdown-body kbd,
.markdown-body pre {
  font-family: monospace, monospace;
  font-size: 1em; }
.markdown-body hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible; }
.markdown-body input {
  font: inherit;
  margin: 0; }
.markdown-body input {
  overflow: visible; }
.markdown-body [type="checkbox"] {
  box-sizing: border-box;
  padding: 0; }
.markdown-body * {
  box-sizing: border-box; }
.markdown-body input {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }
.markdown-body a {
  color: #0366d6;
  text-decoration: none; }
.markdown-body a:hover {
  color: #0366d6;
  text-decoration: underline; }
.markdown-body strong {
  font-weight: 600; }
.markdown-body hr {
  height: 0;
  margin: 15px 0;
  overflow: hidden;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #dfe2e5; }
.markdown-body hr::before {
  display: table;
  content: ""; }
.markdown-body hr::after {
  display: table;
  clear: both;
  content: ""; }
.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse; }
.markdown-body td,
.markdown-body th {
  padding: 0; }
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 0;
  margin-bottom: 0; }
.markdown-body h1 {
  font-size: 32px;
  font-weight: 600; }
.markdown-body h2 {
  font-size: 24px;
  font-weight: 600; }
.markdown-body h3 {
  font-size: 20px;
  font-weight: 600; }
.markdown-body h4 {
  font-size: 16px;
  font-weight: 600; }
.markdown-body h5 {
  font-size: 14px;
  font-weight: 600; }
.markdown-body h6 {
  font-size: 12px;
  font-weight: 600; }
.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px; }
.markdown-body blockquote {
  margin: 0; }
.markdown-body ul,
.markdown-body ol {
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0; }
.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman; }
.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha; }
.markdown-body dd {
  margin-left: 0; }
.markdown-body code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 12px; }
.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 12px; }
.markdown-body .octicon {
  vertical-align: text-bottom; }
.markdown-body .pl-0 {
  padding-left: 0 !important; }
.markdown-body .pl-1 {
  padding-left: 4px !important; }
.markdown-body .pl-2 {
  padding-left: 8px !important; }
.markdown-body .pl-3 {
  padding-left: 16px !important; }
.markdown-body .pl-4 {
  padding-left: 24px !important; }
.markdown-body .pl-5 {
  padding-left: 32px !important; }
.markdown-body .pl-6 {
  padding-left: 40px !important; }
.markdown-body::before {
  display: table;
  content: ""; }
.markdown-body::after {
  display: table;
  clear: both;
  content: ""; }
.markdown-body > *:first-child {
  margin-top: 0 !important; }
.markdown-body > *:last-child {
  margin-bottom: 0 !important; }
.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none; }
.markdown-body .anchor {
  float: left;
  padding-right: 4px;
  margin-left: -20px;
  line-height: 1; }
.markdown-body .anchor:focus {
  outline: none; }
.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre {
  margin-top: 0;
  margin-bottom: 16px; }
.markdown-body hr {
  height: 0.25em;
  padding: 0;
  margin: 24px 0;
  background-color: #e1e4e8;
  border: 0; }
.markdown-body blockquote {
  padding: 0 1em;
  color: #6a737d;
  border-left: 0.25em solid #dfe2e5; }
.markdown-body blockquote > :first-child {
  margin-top: 0; }
.markdown-body blockquote > :last-child {
  margin-bottom: 0; }
.markdown-body kbd {
  display: inline-block;
  padding: 3px 5px;
  font-size: 11px;
  line-height: 10px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: solid 1px #c6cbd1;
  border-bottom-color: #959da5;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #959da5; }
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 24px;
  margin-bottom: 16px;
  font-weight: 600;
  line-height: 1.25; }
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: #1b1f23;
  vertical-align: middle;
  visibility: hidden; }
.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none; }
.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible; }
.markdown-body h1 {
  padding-bottom: 0.3em;
  font-size: 2em;
  border-bottom: 1px solid #eaecef; }
.markdown-body h2 {
  padding-bottom: 0.3em;
  font-size: 1.5em;
  border-bottom: 1px solid #eaecef; }
.markdown-body h3 {
  font-size: 1.25em; }
.markdown-body h4 {
  font-size: 1em; }
.markdown-body h5 {
  font-size: 0.875em; }
.markdown-body h6 {
  font-size: 0.85em;
  color: #6a737d; }
.markdown-body ul,
.markdown-body ol {
  padding-left: 2em; }
.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0; }
.markdown-body li {
  word-wrap: break-all; }
.markdown-body li > p {
  margin-top: 16px; }
.markdown-body li + li {
  margin-top: 0.25em; }
.markdown-body dl {
  padding: 0; }
.markdown-body dl dt {
  padding: 0;
  margin-top: 16px;
  font-size: 1em;
  font-style: italic;
  font-weight: 600; }
.markdown-body dl dd {
  padding: 0 16px;
  margin-bottom: 16px; }
.markdown-body table {
  display: block;
  width: 100%;
  overflow: auto; }
.markdown-body table th {
  font-weight: 600; }
.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid #dfe2e5; }
.markdown-body table tr {
  background-color: #fff;
  border-top: 1px solid #c6cbd1; }
.markdown-body table tr:nth-child(2n) {
  background-color: #f6f8fa; }
.markdown-body img {
  max-width: 100%;
  box-sizing: content-box;
  background-color: #fff; }
.markdown-body img[align=right] {
  padding-left: 20px; }
.markdown-body img[align=left] {
  padding-right: 20px; }
.markdown-body code {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  background-color: rgba(27, 31, 35, 0.05);
  border-radius: 3px; }
.markdown-body pre {
  word-wrap: normal; }
.markdown-body pre > code {
  padding: 0;
  margin: 0;
  font-size: 100%;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0; }
.markdown-body .highlight {
  margin-bottom: 16px; }
.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal; }
.markdown-body .highlight pre,
.markdown-body pre {
  padding: 16px;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  background-color: #f6f8fa;
  border-radius: 3px; }
.markdown-body pre code {
  display: inline;
  max-width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0; }
.markdown-body .full-commit .btn-outline:not(:disabled):hover {
  color: #005cc5;
  border-color: #005cc5; }
.markdown-body kbd {
  display: inline-block;
  padding: 3px 5px;
  font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  line-height: 10px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: solid 1px #d1d5da;
  border-bottom-color: #c6cbd1;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #c6cbd1; }
.markdown-body :checked + .radio-label {
  position: relative;
  z-index: 1;
  border-color: #0366d6; }
.markdown-body .task-list-item {
  list-style-type: none; }
.markdown-body .task-list-item + .task-list-item {
  margin-top: 3px; }
.markdown-body .task-list-item input {
  margin: 0 0.2em 0.25em -1.6em;
  vertical-align: middle; }
.markdown-body hr {
  border-bottom-color: #eee; }
/* 代码高亮 */
.markdown-body pre code {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  background: #f6f8fa;
  color: #24292e; }
/*
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
*/
.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  color: #333;
  background: #f8f8f8; }
.hljs-comment,
.hljs-quote {
  color: #998;
  font-style: italic; }
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
  color: #333;
  font-weight: bold; }
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
  color: #008080; }
.hljs-string,
.hljs-doctag {
  color: #d14; }
.hljs-title,
.hljs-section,
.hljs-selector-id {
  color: #900;
  font-weight: bold; }
.hljs-subst {
  font-weight: normal; }
.hljs-type,
.hljs-class .hljs-title {
  color: #458;
  font-weight: bold; }
.hljs-tag,
.hljs-name,
.hljs-attribute {
  color: #000080;
  font-weight: normal; }
.hljs-regexp,
.hljs-link {
  color: #009926; }
.hljs-symbol,
.hljs-bullet {
  color: #990073; }
.hljs-built_in,
.hljs-builtin-name {
  color: #0086b3; }
.hljs-meta {
  color: #999;
  font-weight: bold; }
.hljs-deletion {
  background: #fdd; }
.hljs-addition {
  background: #dfd; }
.hljs-emphasis {
  font-style: italic; }
.hljs-strong {
  font-weight: bold; }
@font-face {
  font-family: KaTeX_AMS;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_AMS-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_AMS-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_AMS-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_AMS-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_AMS-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Caligraphic;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Bold.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Bold.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Bold.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Bold.ttf) format("ttf");
  font-weight: 700;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Caligraphic;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Caligraphic-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Fraktur;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Bold.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Bold.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Bold.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Bold.ttf) format("ttf");
  font-weight: 700;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Fraktur;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Fraktur-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Main;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Bold.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Bold.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Bold.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Bold.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Bold.ttf) format("ttf");
  font-weight: 700;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Main;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Italic.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Italic.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Italic.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Italic.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Italic.ttf) format("ttf");
  font-weight: 400;
  font-style: italic; }
@font-face {
  font-family: KaTeX_Main;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Main-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Math;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Math-Italic.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Math-Italic.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Math-Italic.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Math-Italic.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Math-Italic.ttf) format("ttf");
  font-weight: 400;
  font-style: italic; }
@font-face {
  font-family: KaTeX_SansSerif;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_SansSerif-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_SansSerif-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_SansSerif-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_SansSerif-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Script;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Script-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Script-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Script-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Script-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Script-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Size1;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size1-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size1-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size1-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size1-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size1-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Size2;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size2-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size2-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size2-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size2-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size2-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Size3;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size3-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size3-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size3-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size3-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size3-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Size4;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size4-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size4-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size4-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size4-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Size4-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
@font-face {
  font-family: KaTeX_Typewriter;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Typewriter-Regular.eot);
  src: url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Typewriter-Regular.eot#iefix) format("embedded-opentype"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Typewriter-Regular.woff) format("woff"), url(https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/fonts/KaTeX_Typewriter-Regular.ttf) format("ttf");
  font-weight: 400;
  font-style: normal; }
.katex-display {
  display: block;
  margin: 1em 0;
  text-align: center; }
.katex-display > .katex {
  display: inline-block; }
.katex {
  font: 400 1.21em KaTeX_Main;
  line-height: 1.2;
  white-space: nowrap;
  text-indent: 0; }
.katex .katex-html {
  display: inline-block; }
.katex .katex-mathml {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden; }
.katex .base, .katex .strut {
  display: inline-block; }
.katex .mathit {
  font-family: KaTeX_Math;
  font-style: italic; }
.katex .mathbf {
  font-family: KaTeX_Main;
  font-weight: 700; }
.katex .amsrm, .katex .mathbb {
  font-family: KaTeX_AMS; }
.katex .mathcal {
  font-family: KaTeX_Caligraphic; }
.katex .mathfrak {
  font-family: KaTeX_Fraktur; }
.katex .mathtt {
  font-family: KaTeX_Typewriter; }
.katex .mathscr {
  font-family: KaTeX_Script; }
.katex .mathsf {
  font-family: KaTeX_SansSerif; }
.katex .mainit {
  font-family: KaTeX_Main;
  font-style: italic; }
.katex .textstyle > .mord + .mop {
  margin-left: .16667em; }
.katex .textstyle > .mord + .mbin {
  margin-left: .22222em; }
.katex .textstyle > .mord + .mrel {
  margin-left: .27778em; }
.katex .textstyle > .mop + .mop, .katex .textstyle > .mop + .mord, .katex .textstyle > .mord + .minner {
  margin-left: .16667em; }
.katex .textstyle > .mop + .mrel {
  margin-left: .27778em; }
.katex .textstyle > .mop + .minner {
  margin-left: .16667em; }
.katex .textstyle > .mbin + .minner, .katex .textstyle > .mbin + .mop, .katex .textstyle > .mbin + .mopen, .katex .textstyle > .mbin + .mord {
  margin-left: .22222em; }
.katex .textstyle > .mrel + .minner, .katex .textstyle > .mrel + .mop, .katex .textstyle > .mrel + .mopen, .katex .textstyle > .mrel + .mord {
  margin-left: .27778em; }
.katex .textstyle > .mclose + .mop {
  margin-left: .16667em; }
.katex .textstyle > .mclose + .mbin {
  margin-left: .22222em; }
.katex .textstyle > .mclose + .mrel {
  margin-left: .27778em; }
.katex .textstyle > .mclose + .minner, .katex .textstyle > .minner + .mop, .katex .textstyle > .minner + .mord, .katex .textstyle > .mpunct + .mclose, .katex .textstyle > .mpunct + .minner, .katex .textstyle > .mpunct + .mop, .katex .textstyle > .mpunct + .mopen, .katex .textstyle > .mpunct + .mord, .katex .textstyle > .mpunct + .mpunct, .katex .textstyle > .mpunct + .mrel {
  margin-left: .16667em; }
.katex .textstyle > .minner + .mbin {
  margin-left: .22222em; }
.katex .textstyle > .minner + .mrel {
  margin-left: .27778em; }
.katex .mclose + .mop, .katex .minner + .mop, .katex .mop + .mop, .katex .mop + .mord, .katex .mord + .mop, .katex .textstyle > .minner + .minner, .katex .textstyle > .minner + .mopen, .katex .textstyle > .minner + .mpunct {
  margin-left: .16667em; }
.katex .reset-textstyle.textstyle {
  font-size: 1em; }
.katex .reset-textstyle.scriptstyle {
  font-size: .7em; }
.katex .reset-textstyle.scriptscriptstyle {
  font-size: .5em; }
.katex .reset-scriptstyle.textstyle {
  font-size: 1.42857em; }
.katex .reset-scriptstyle.scriptstyle {
  font-size: 1em; }
.katex .reset-scriptstyle.scriptscriptstyle {
  font-size: .71429em; }
.katex .reset-scriptscriptstyle.textstyle {
  font-size: 2em; }
.katex .reset-scriptscriptstyle.scriptstyle {
  font-size: 1.4em; }
.katex .reset-scriptscriptstyle.scriptscriptstyle {
  font-size: 1em; }
.katex .style-wrap {
  position: relative; }
.katex .vlist {
  display: inline-block; }
.katex .vlist > span {
  display: block;
  height: 0;
  position: relative; }
.katex .vlist > span > span {
  display: inline-block; }
.katex .vlist .baseline-fix {
  display: inline-table;
  table-layout: fixed; }
.katex .msupsub {
  text-align: left; }
.katex .mfrac > span > span {
  text-align: center; }
.katex .mfrac .frac-line {
  width: 100%; }
.katex .mfrac .frac-line:before {
  border-bottom-style: solid;
  border-bottom-width: 1px;
  content: "";
  display: block; }
.katex .mfrac .frac-line:after {
  border-bottom-style: solid;
  border-bottom-width: .04em;
  content: "";
  display: block;
  margin-top: -1px; }
.katex .mspace {
  display: inline-block; }
.katex .mspace.negativethinspace {
  margin-left: -.16667em; }
.katex .mspace.thinspace {
  width: .16667em; }
.katex .mspace.mediumspace {
  width: .22222em; }
.katex .mspace.thickspace {
  width: .27778em; }
.katex .mspace.enspace {
  width: .5em; }
.katex .mspace.quad {
  width: 1em; }
.katex .mspace.qquad {
  width: 2em; }
.katex .llap, .katex .rlap {
  width: 0;
  position: relative; }
.katex .llap > .inner, .katex .rlap > .inner {
  position: absolute; }
.katex .llap > .fix, .katex .rlap > .fix {
  display: inline-block; }
.katex .llap > .inner {
  right: 0; }
.katex .rlap > .inner {
  left: 0; }
.katex .katex-logo .a {
  font-size: .75em;
  margin-left: -.32em;
  position: relative;
  top: -.2em; }
.katex .katex-logo .t {
  margin-left: -.23em; }
.katex .katex-logo .e {
  margin-left: -.1667em;
  position: relative;
  top: .2155em; }
.katex .katex-logo .x {
  margin-left: -.125em; }
.katex .rule {
  display: inline-block;
  border-style: solid;
  position: relative; }
.katex .overline .overline-line {
  width: 100%; }
.katex .overline .overline-line:before {
  border-bottom-style: solid;
  border-bottom-width: 1px;
  content: "";
  display: block; }
.katex .overline .overline-line:after {
  border-bottom-style: solid;
  border-bottom-width: .04em;
  content: "";
  display: block;
  margin-top: -1px; }
.katex .sqrt > .sqrt-sign {
  position: relative; }
.katex .sqrt .sqrt-line {
  width: 100%; }
.katex .sqrt .sqrt-line:before {
  border-bottom-style: solid;
  border-bottom-width: 1px;
  content: "";
  display: block; }
.katex .sqrt .sqrt-line:after {
  border-bottom-style: solid;
  border-bottom-width: .04em;
  content: "";
  display: block;
  margin-top: -1px; }
.katex .sqrt > .root {
  margin-left: .27777778em;
  margin-right: -.55555556em; }
.katex .fontsize-ensurer, .katex .sizing {
  display: inline-block; }
.katex .fontsize-ensurer.reset-size1.size1, .katex .sizing.reset-size1.size1 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size1.size2, .katex .sizing.reset-size1.size2 {
  font-size: 1.4em; }
.katex .fontsize-ensurer.reset-size1.size3, .katex .sizing.reset-size1.size3 {
  font-size: 1.6em; }
.katex .fontsize-ensurer.reset-size1.size4, .katex .sizing.reset-size1.size4 {
  font-size: 1.8em; }
.katex .fontsize-ensurer.reset-size1.size5, .katex .sizing.reset-size1.size5 {
  font-size: 2em; }
.katex .fontsize-ensurer.reset-size1.size6, .katex .sizing.reset-size1.size6 {
  font-size: 2.4em; }
.katex .fontsize-ensurer.reset-size1.size7, .katex .sizing.reset-size1.size7 {
  font-size: 2.88em; }
.katex .fontsize-ensurer.reset-size1.size8, .katex .sizing.reset-size1.size8 {
  font-size: 3.46em; }
.katex .fontsize-ensurer.reset-size1.size9, .katex .sizing.reset-size1.size9 {
  font-size: 4.14em; }
.katex .fontsize-ensurer.reset-size1.size10, .katex .sizing.reset-size1.size10 {
  font-size: 4.98em; }
.katex .fontsize-ensurer.reset-size2.size1, .katex .sizing.reset-size2.size1 {
  font-size: .71428571em; }
.katex .fontsize-ensurer.reset-size2.size2, .katex .sizing.reset-size2.size2 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size2.size3, .katex .sizing.reset-size2.size3 {
  font-size: 1.14285714em; }
.katex .fontsize-ensurer.reset-size2.size4, .katex .sizing.reset-size2.size4 {
  font-size: 1.28571429em; }
.katex .fontsize-ensurer.reset-size2.size5, .katex .sizing.reset-size2.size5 {
  font-size: 1.42857143em; }
.katex .fontsize-ensurer.reset-size2.size6, .katex .sizing.reset-size2.size6 {
  font-size: 1.71428571em; }
.katex .fontsize-ensurer.reset-size2.size7, .katex .sizing.reset-size2.size7 {
  font-size: 2.05714286em; }
.katex .fontsize-ensurer.reset-size2.size8, .katex .sizing.reset-size2.size8 {
  font-size: 2.47142857em; }
.katex .fontsize-ensurer.reset-size2.size9, .katex .sizing.reset-size2.size9 {
  font-size: 2.95714286em; }
.katex .fontsize-ensurer.reset-size2.size10, .katex .sizing.reset-size2.size10 {
  font-size: 3.55714286em; }
.katex .fontsize-ensurer.reset-size3.size1, .katex .sizing.reset-size3.size1 {
  font-size: .625em; }
.katex .fontsize-ensurer.reset-size3.size2, .katex .sizing.reset-size3.size2 {
  font-size: .875em; }
.katex .fontsize-ensurer.reset-size3.size3, .katex .sizing.reset-size3.size3 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size3.size4, .katex .sizing.reset-size3.size4 {
  font-size: 1.125em; }
.katex .fontsize-ensurer.reset-size3.size5, .katex .sizing.reset-size3.size5 {
  font-size: 1.25em; }
.katex .fontsize-ensurer.reset-size3.size6, .katex .sizing.reset-size3.size6 {
  font-size: 1.5em; }
.katex .fontsize-ensurer.reset-size3.size7, .katex .sizing.reset-size3.size7 {
  font-size: 1.8em; }
.katex .fontsize-ensurer.reset-size3.size8, .katex .sizing.reset-size3.size8 {
  font-size: 2.1625em; }
.katex .fontsize-ensurer.reset-size3.size9, .katex .sizing.reset-size3.size9 {
  font-size: 2.5875em; }
.katex .fontsize-ensurer.reset-size3.size10, .katex .sizing.reset-size3.size10 {
  font-size: 3.1125em; }
.katex .fontsize-ensurer.reset-size4.size1, .katex .sizing.reset-size4.size1 {
  font-size: .55555556em; }
.katex .fontsize-ensurer.reset-size4.size2, .katex .sizing.reset-size4.size2 {
  font-size: .77777778em; }
.katex .fontsize-ensurer.reset-size4.size3, .katex .sizing.reset-size4.size3 {
  font-size: .88888889em; }
.katex .fontsize-ensurer.reset-size4.size4, .katex .sizing.reset-size4.size4 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size4.size5, .katex .sizing.reset-size4.size5 {
  font-size: 1.11111111em; }
.katex .fontsize-ensurer.reset-size4.size6, .katex .sizing.reset-size4.size6 {
  font-size: 1.33333333em; }
.katex .fontsize-ensurer.reset-size4.size7, .katex .sizing.reset-size4.size7 {
  font-size: 1.6em; }
.katex .fontsize-ensurer.reset-size4.size8, .katex .sizing.reset-size4.size8 {
  font-size: 1.92222222em; }
.katex .fontsize-ensurer.reset-size4.size9, .katex .sizing.reset-size4.size9 {
  font-size: 2.3em; }
.katex .fontsize-ensurer.reset-size4.size10, .katex .sizing.reset-size4.size10 {
  font-size: 2.76666667em; }
.katex .fontsize-ensurer.reset-size5.size1, .katex .sizing.reset-size5.size1 {
  font-size: .5em; }
.katex .fontsize-ensurer.reset-size5.size2, .katex .sizing.reset-size5.size2 {
  font-size: .7em; }
.katex .fontsize-ensurer.reset-size5.size3, .katex .sizing.reset-size5.size3 {
  font-size: .8em; }
.katex .fontsize-ensurer.reset-size5.size4, .katex .sizing.reset-size5.size4 {
  font-size: .9em; }
.katex .fontsize-ensurer.reset-size5.size5, .katex .sizing.reset-size5.size5 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size5.size6, .katex .sizing.reset-size5.size6 {
  font-size: 1.2em; }
.katex .fontsize-ensurer.reset-size5.size7, .katex .sizing.reset-size5.size7 {
  font-size: 1.44em; }
.katex .fontsize-ensurer.reset-size5.size8, .katex .sizing.reset-size5.size8 {
  font-size: 1.73em; }
.katex .fontsize-ensurer.reset-size5.size9, .katex .sizing.reset-size5.size9 {
  font-size: 2.07em; }
.katex .fontsize-ensurer.reset-size5.size10, .katex .sizing.reset-size5.size10 {
  font-size: 2.49em; }
.katex .fontsize-ensurer.reset-size6.size1, .katex .sizing.reset-size6.size1 {
  font-size: .41666667em; }
.katex .fontsize-ensurer.reset-size6.size2, .katex .sizing.reset-size6.size2 {
  font-size: .58333333em; }
.katex .fontsize-ensurer.reset-size6.size3, .katex .sizing.reset-size6.size3 {
  font-size: .66666667em; }
.katex .fontsize-ensurer.reset-size6.size4, .katex .sizing.reset-size6.size4 {
  font-size: .75em; }
.katex .fontsize-ensurer.reset-size6.size5, .katex .sizing.reset-size6.size5 {
  font-size: .83333333em; }
.katex .fontsize-ensurer.reset-size6.size6, .katex .sizing.reset-size6.size6 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size6.size7, .katex .sizing.reset-size6.size7 {
  font-size: 1.2em; }
.katex .fontsize-ensurer.reset-size6.size8, .katex .sizing.reset-size6.size8 {
  font-size: 1.44166667em; }
.katex .fontsize-ensurer.reset-size6.size9, .katex .sizing.reset-size6.size9 {
  font-size: 1.725em; }
.katex .fontsize-ensurer.reset-size6.size10, .katex .sizing.reset-size6.size10 {
  font-size: 2.075em; }
.katex .fontsize-ensurer.reset-size7.size1, .katex .sizing.reset-size7.size1 {
  font-size: .34722222em; }
.katex .fontsize-ensurer.reset-size7.size2, .katex .sizing.reset-size7.size2 {
  font-size: .48611111em; }
.katex .fontsize-ensurer.reset-size7.size3, .katex .sizing.reset-size7.size3 {
  font-size: .55555556em; }
.katex .fontsize-ensurer.reset-size7.size4, .katex .sizing.reset-size7.size4 {
  font-size: .625em; }
.katex .fontsize-ensurer.reset-size7.size5, .katex .sizing.reset-size7.size5 {
  font-size: .69444444em; }
.katex .fontsize-ensurer.reset-size7.size6, .katex .sizing.reset-size7.size6 {
  font-size: .83333333em; }
.katex .fontsize-ensurer.reset-size7.size7, .katex .sizing.reset-size7.size7 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size7.size8, .katex .sizing.reset-size7.size8 {
  font-size: 1.20138889em; }
.katex .fontsize-ensurer.reset-size7.size9, .katex .sizing.reset-size7.size9 {
  font-size: 1.4375em; }
.katex .fontsize-ensurer.reset-size7.size10, .katex .sizing.reset-size7.size10 {
  font-size: 1.72916667em; }
.katex .fontsize-ensurer.reset-size8.size1, .katex .sizing.reset-size8.size1 {
  font-size: .28901734em; }
.katex .fontsize-ensurer.reset-size8.size2, .katex .sizing.reset-size8.size2 {
  font-size: .40462428em; }
.katex .fontsize-ensurer.reset-size8.size3, .katex .sizing.reset-size8.size3 {
  font-size: .46242775em; }
.katex .fontsize-ensurer.reset-size8.size4, .katex .sizing.reset-size8.size4 {
  font-size: .52023121em; }
.katex .fontsize-ensurer.reset-size8.size5, .katex .sizing.reset-size8.size5 {
  font-size: .57803468em; }
.katex .fontsize-ensurer.reset-size8.size6, .katex .sizing.reset-size8.size6 {
  font-size: .69364162em; }
.katex .fontsize-ensurer.reset-size8.size7, .katex .sizing.reset-size8.size7 {
  font-size: .83236994em; }
.katex .fontsize-ensurer.reset-size8.size8, .katex .sizing.reset-size8.size8 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size8.size9, .katex .sizing.reset-size8.size9 {
  font-size: 1.19653179em; }
.katex .fontsize-ensurer.reset-size8.size10, .katex .sizing.reset-size8.size10 {
  font-size: 1.43930636em; }
.katex .fontsize-ensurer.reset-size9.size1, .katex .sizing.reset-size9.size1 {
  font-size: .24154589em; }
.katex .fontsize-ensurer.reset-size9.size2, .katex .sizing.reset-size9.size2 {
  font-size: .33816425em; }
.katex .fontsize-ensurer.reset-size9.size3, .katex .sizing.reset-size9.size3 {
  font-size: .38647343em; }
.katex .fontsize-ensurer.reset-size9.size4, .katex .sizing.reset-size9.size4 {
  font-size: .43478261em; }
.katex .fontsize-ensurer.reset-size9.size5, .katex .sizing.reset-size9.size5 {
  font-size: .48309179em; }
.katex .fontsize-ensurer.reset-size9.size6, .katex .sizing.reset-size9.size6 {
  font-size: .57971014em; }
.katex .fontsize-ensurer.reset-size9.size7, .katex .sizing.reset-size9.size7 {
  font-size: .69565217em; }
.katex .fontsize-ensurer.reset-size9.size8, .katex .sizing.reset-size9.size8 {
  font-size: .83574879em; }
.katex .fontsize-ensurer.reset-size9.size9, .katex .sizing.reset-size9.size9 {
  font-size: 1em; }
.katex .fontsize-ensurer.reset-size9.size10, .katex .sizing.reset-size9.size10 {
  font-size: 1.20289855em; }
.katex .fontsize-ensurer.reset-size10.size1, .katex .sizing.reset-size10.size1 {
  font-size: .20080321em; }
.katex .fontsize-ensurer.reset-size10.size2, .katex .sizing.reset-size10.size2 {
  font-size: .2811245em; }
.katex .fontsize-ensurer.reset-size10.size3, .katex .sizing.reset-size10.size3 {
  font-size: .32128514em; }
.katex .fontsize-ensurer.reset-size10.size4, .katex .sizing.reset-size10.size4 {
  font-size: .36144578em; }
.katex .fontsize-ensurer.reset-size10.size5, .katex .sizing.reset-size10.size5 {
  font-size: .40160643em; }
.katex .fontsize-ensurer.reset-size10.size6, .katex .sizing.reset-size10.size6 {
  font-size: .48192771em; }
.katex .fontsize-ensurer.reset-size10.size7, .katex .sizing.reset-size10.size7 {
  font-size: .57831325em; }
.katex .fontsize-ensurer.reset-size10.size8, .katex .sizing.reset-size10.size8 {
  font-size: .69477912em; }
.katex .fontsize-ensurer.reset-size10.size9, .katex .sizing.reset-size10.size9 {
  font-size: .8313253em; }
.katex .fontsize-ensurer.reset-size10.size10, .katex .sizing.reset-size10.size10 {
  font-size: 1em; }
.katex .delimsizing.size1 {
  font-family: KaTeX_Size1; }
.katex .delimsizing.size2 {
  font-family: KaTeX_Size2; }
.katex .delimsizing.size3 {
  font-family: KaTeX_Size3; }
.katex .delimsizing.size4 {
  font-family: KaTeX_Size4; }
.katex .delimsizing.mult .delim-size1 > span {
  font-family: KaTeX_Size1; }
.katex .delimsizing.mult .delim-size4 > span {
  font-family: KaTeX_Size4; }
.katex .nulldelimiter {
  display: inline-block;
  width: .12em; }
.katex .op-symbol {
  position: relative; }
.katex .op-symbol.small-op {
  font-family: KaTeX_Size1; }
.katex .op-symbol.large-op {
  font-family: KaTeX_Size2; }
.katex .accent > .vlist > span, .katex .op-limits > .vlist > span {
  text-align: center; }
.katex .accent .accent-body > span {
  width: 0; }
.katex .accent .accent-body.accent-vec > span {
  position: relative;
  left: .326em; }
.katex .mtable .vertical-separator {
  display: inline-block;
  margin: 0 -.025em;
  border-right: .05em solid #000; }
.katex .mtable .arraycolsep {
  display: inline-block; }
.katex .mtable .col-align-c > .vlist {
  text-align: center; }
.katex .mtable .col-align-l > .vlist {
  text-align: left; }
.katex .mtable .col-align-r > .vlist {
  text-align: right; }
* {
  padding: 0;
  margin: 0; }
a {
  text-decoration: none; }
h1, h2, h3, h4, h5, h6 {
  font-weight: 400; }
@keyframes fallingStar1 {
  0% {
    transform: translate3d(0, -100%, 0);
    opacity: 1; }
  100% {
    transform: translate3d(0, 500px, 0);
    opacity: 0; } }
@keyframes fallingStar2 {
  0% {
    transform: translate3d(0, -100%, 0);
    opacity: 1; }
  100% {
    transform: translate3d(0, 375px, 0);
    opacity: 0; } }
@keyframes fallingStar3 {
  0% {
    transform: translate3d(0, -100%, 0);
    opacity: 1; }
  100% {
    transform: translate3d(0, 248px, 0);
    opacity: 0; } }
@keyframes fallingStar4 {
  0% {
    transform: translate3d(0, -100%, 0);
    opacity: 1; }
  100% {
    transform: translate3d(0, 570px, 0);
    opacity: 0; } }
@keyframes fallingStar5 {
  0% {
    transform: translate3d(0, -100%, 0);
    opacity: 1; }
  100% {
    transform: translate3d(0, 460px, 0);
    opacity: 0; } }
.home-page .top-section {
  position: relative;
  height: 720px;
  background-image: linear-gradient(0deg, #03DDE4 0%, #30AFED 51%, #8755FF 100%); }
  .home-page .top-section .animation {
    position: absolute;
    top: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.3);
    transform: scaleX(0.5); }
    .home-page .top-section .animation::before {
      content: '';
      height: 16px;
      opacity: 1;
      border-right: 4px solid #fff;
      position: absolute;
      left: -2px;
      transform: translate3d(0, -100%, 0); }
    .home-page .top-section .animation1 {
      left: 15%;
      height: 500px; }
      .home-page .top-section .animation1::before {
        animation: fallingStar1 1.3s infinite ease-in-out; }
    .home-page .top-section .animation2 {
      left: 35%;
      height: 375px; }
      .home-page .top-section .animation2::before {
        animation: fallingStar2 1.5s infinite ease-in-out; }
    .home-page .top-section .animation3 {
      left: 52%;
      height: 248px; }
      .home-page .top-section .animation3::before {
        animation: fallingStar3 2s infinite ease-in-out; }
    .home-page .top-section .animation4 {
      left: 65%;
      height: 570px; }
      .home-page .top-section .animation4::before {
        animation: fallingStar4 1.5s infinite ease-in-out; }
    .home-page .top-section .animation5 {
      left: 85%;
      height: 460px; }
      .home-page .top-section .animation5::before {
        animation: fallingStar5 1.3s infinite ease-in-out; }
  .home-page .top-section .vertical-middle {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    box-sizing: border-box;
    width: 100%;
    text-align: center;
    padding: 0 20px; }
  .home-page .top-section .product-name {
    position: relative;
    display: inline-block; }
    .home-page .top-section .product-name h2 {
      font-family: Avenir-Heavy;
      font-size: 46px;
      color: #FFF;
      text-align: center;
      word-break: break-word;
      margin: 0; }
  .home-page .top-section .product-desc {
    opacity: 0.6;
    font-family: Avenir-Medium;
    font-size: 24px;
    color: #FFF;
    text-align: center;
    margin: 12px auto 0;
    max-width: 730px; }
  .home-page .top-section .button-area {
    text-align: center;
    margin-top: 40px; }
    .home-page .top-section .button-area .button {
      margin-right: 20px; }
    .home-page .top-section .button-area .button:last-child {
      margin-right: 0; }
.home-page .introduction-section {
  background: #F9FAFA; }
  .home-page .introduction-section .introduction-body {
    max-width: 1280px;
    box-sizing: border-box;
    margin: 0 auto;
    min-height: 640px;
    padding: 0 40px;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between; }
    .home-page .introduction-section .introduction-body::before {
      content: '';
      position: absolute;
      top: 0;
      left: 40px;
      height: 165px;
      opacity: 0.3;
      border-right: 1px solid #666; }
    .home-page .introduction-section .introduction-body::after {
      content: '';
      position: absolute;
      left: 39px;
      top: 165px;
      width: 3px;
      height: 17px;
      background-image: linear-gradient(0deg, #03DDE4 0%, #30AFED 51%, #8755FF 100%); }
    .home-page .introduction-section .introduction-body .introduction {
      display: inline-block;
      width: calc(100% - 726px);
      min-width: 300px;
      max-width: 590px; }
      .home-page .introduction-section .introduction-body .introduction h3 {
        font-family: Avenir-Heavy;
        font-size: 36px;
        color: #333;
        margin-bottom: 40px;
        word-break: break-word; }
      .home-page .introduction-section .introduction-body .introduction p {
        opacity: 0.56;
        font-family: Avenir-Medium;
        font-size: 18px;
        color: #999; }
    .home-page .introduction-section .introduction-body img {
      width: 562px;
      margin: 0 82px;
      max-width: 100%;
      box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.05); }
    @media screen and (max-width: 1106px) {
      .home-page .introduction-section .introduction-body .introduction {
        display: inline-block;
        width: 100%;
        max-width: 100%; }
      .home-page .introduction-section .introduction-body img {
        margin: 0; } }
.home-page .feature-section {
  box-sizing: border-box;
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  padding: 80px 40px 40px; }
  .home-page .feature-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    margin: 0 auto;
    height: 83px;
    opacity: 0.3;
    border-right: 1px solid #666; }
  .home-page .feature-section::after {
    content: '';
    position: absolute;
    top: 66px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 17px;
    background-image: linear-gradient(0deg, #03DDE4 0%, #30AFED 51%, #8755FF 100%); }
  .home-page .feature-section h3 {
    font-family: Avenir-Heavy;
    font-size: 36px;
    color: #333;
    text-align: center;
    margin: 0 0 40px; }
  .home-page .feature-section ul {
    list-style: none;
    padding: 0;
    margin: 0; }
    .home-page .feature-section ul li {
      vertical-align: top;
      display: inline-block;
      margin-bottom: 40px;
      width: 50%; }
      .home-page .feature-section ul li img {
        vertical-align: top;
        width: 60px;
        height: 60px;
        margin-right: 20px; }
      .home-page .feature-section ul li div {
        display: inline-block;
        width: 80%; }
        .home-page .feature-section ul li div h4 {
          font-family: Avenir-Heavy;
          font-size: 20px;
          color: #333;
          margin-top: 10px; }
        .home-page .feature-section ul li div p {
          font-family: Avenir-Medium;
          font-size: 14px;
          line-height: 20px;
          color: #999; }
    @media screen and (max-width: 768px) {
      .home-page .feature-section ul li {
        width: 100%; } }
.home-page .start-section {
  background-image: linear-gradient(0deg, #03DDE4 0%, #30AFED 51%, #8755FF 100%); }
  .home-page .start-section .start-body {
    max-width: 1280px;
    margin: 0 auto;
    box-sizing: border-box;
    height: 260px;
    padding: 35px 40px;
    position: relative; }
    .home-page .start-section .start-body::before {
      content: '';
      position: absolute;
      top: 0;
      left: 20px;
      height: 100%;
      opacity: 0.3;
      border-right: 1px solid #fff; }
    .home-page .start-section .start-body::after {
      content: '';
      position: absolute;
      left: 19px;
      top: 48px;
      width: 3px;
      height: 17px;
      background: #fff; }
    .home-page .start-section .start-body .left-part {
      display: inline-block;
      width: 50%;
      vertical-align: top; }
      .home-page .start-section .start-body .left-part h3 {
        font-family: Avenir-Heavy;
        font-size: 36px;
        color: #FFF;
        margin: 0; }
      .home-page .start-section .start-body .left-part p {
        opacity: 0.8;
        font-family: Avenir-Medium;
        font-size: 18px;
        color: #FFF;
        line-height: 24px;
        margin: 6px 0 12px; }
      .home-page .start-section .start-body .left-part a {
        font-family: Avenir-Heavy;
        font-size: 14px;
        color: #2DACEC;
        text-align: center;
        display: inline-block;
        width: 140px;
        height: 48px;
        line-height: 48px;
        background: #FFF;
        border-radius: 4px; }
    .home-page .start-section .start-body .right-part {
      display: inline-block;
      width: 50%;
      font-size: 0;
      margin-top: 15px; }
      .home-page .start-section .start-body .right-part img {
        margin-left: 5%;
        width: 500px; }
    @media screen and (max-width: 1050px) {
      .home-page .start-section .start-body {
        height: 474px; }
      .home-page .start-section .start-body .left-part {
        width: 100%; }
      .home-page .start-section .start-body .right-part {
        width: 100%;
        margin-top: 38px; }
        .home-page .start-section .start-body .right-part img {
          max-width: 100%;
          margin-left: 0; } }
.home-page .users-section {
  box-sizing: border-box;
  max-width: 1280px;
  margin: 0 auto;
  padding: 80px 40px 40px;
  position: relative; }
  .home-page .users-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    margin: 0 auto;
    height: 83px;
    opacity: 0.3;
    border-right: 1px solid #666; }
  .home-page .users-section::after {
    content: '';
    position: absolute;
    top: 66px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 17px;
    background-image: linear-gradient(0deg, #03DDE4 0%, #30AFED 51%, #8755FF 100%); }
  .home-page .users-section h3 {
    font-family: Avenir-Heavy;
    font-size: 36px;
    color: #333;
    text-align: center;
    margin-bottom: 40px; }
  .home-page .users-section p {
    font-family: Avenir-Medium;
    font-size: 14px;
    color: #666;
    text-align: center;
    margin: 0 0 40px; }
    .home-page .users-section p a {
      color: #1e6bb8;
      text-decoration: none; }
  .home-page .users-section .users {
    display: inline-block;
    text-align: center; }
    .home-page .users-section .users img {
      margin-right: 10px;
      width: 140px;
      height: 80px;
      margin-bottom: 40px; }
@media screen and (max-width: 640px) {
  .home-page .introduction-section {
    padding: 0 20px; }
    .home-page .introduction-section::before {
      left: 20px; }
    .home-page .introduction-section::after {
      left: 19px; }
  .home-page .feature-section, .home-page .users-section {
    padding-left: 20px;
    padding-right: 20px; } }
src/main/webapp/views/home/charts.json
File was deleted
src/main/webapp/views/home/console.html
@@ -1,623 +1,77 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>工作台</title>
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title></title>
    <link rel="stylesheet" href="../../static/css/home.css">
    <style>
        /** 应用快捷块样式 */
        .console-app-group {
            padding: 16px;
            border-radius: 4px;
            text-align: center;
            background-color: #fff;
            cursor: pointer;
            display: block;
        html {
            height: 100%;
        }
        .console-app-group .console-app-icon {
            width: 32px;
            height: 32px;
            line-height: 32px;
            margin-bottom: 6px;
            display: inline-block;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            font-size: 32px;
            color: #69c0ff;
        body {
            height: 100%;
        }
        .console-app-group:hover {
            box-shadow: 0 0 15px rgba(0, 0, 0, .08);
        #root {
            height: 100%;
        }
        /** //应用快捷块样式 */
        /** 小组成员 */
        .console-user-group {
            position: relative;
            padding: 10px 0 10px 40px;
        .home-page {
            height: 100%;
        }
        .console-user-group .console-user-group-head {
            width: 32px;
            height: 32px;
            position: absolute;
            top: 50%;
            left: 12px;
            margin-top: -10px;
            border-radius: 50%;
            font-size: 18px;
            font-weight: bolder;
        }
        .console-user-group .layui-badge {
            position: absolute;
            top: 50%;
            right: 8px;
            margin-top: -10px;
        }
        .console-user-group .console-user-group-name {
            line-height: 1.2;
        }
        .console-user-group .console-user-group-desc {
            color: #8c8c8c;
            line-height: 1;
            font-size: 12px;
            margin-top: 5px;
        }
        /** 卡片轮播图样式 */
        .admin-carousel .layui-carousel-ind {
            position: absolute;
            top: -41px;
            text-align: right;
        }
        .admin-carousel .layui-carousel-ind ul {
            background: 0 0;
        }
        .admin-carousel .layui-carousel-ind li {
            background-color: #e2e2e2;
        }
        .admin-carousel .layui-carousel-ind li.layui-this {
            background-color: #999;
        }
        /** 广告位轮播图 */
        .admin-news .layui-carousel-ind {
            height: 45px;
        }
        .admin-news a {
            display: block;
            line-height: 70px;
            text-align: center;
        }
        /** 最新动态时间线 */
        .layui-timeline-dynamic .layui-timeline-item {
            padding-bottom: 0;
        }
        .layui-timeline-dynamic .layui-timeline-item:before {
            top: 16px;
        }
        .layui-timeline-dynamic .layui-timeline-axis {
            width: 9px;
            height: 9px;
            left: 1px;
            top: 7px;
            background-color: #cbd0db;
        }
        .layui-timeline-dynamic .layui-timeline-axis.active {
            background-color: #0c64eb;
            box-shadow: 0 0 0 2px rgba(12, 100, 235, .3);
        }
        .dynamic-card-body {
            box-sizing: border-box;
            overflow: hidden;
        }
        .dynamic-card-body:hover {
            overflow-y: auto;
            padding-right: 9px;
        }
        /** 优先级徽章 */
        .layui-badge-priority {
            padding: 2px;
            border-radius: 20%;
            width: 30px;
            height: 30px;
            line-height: 18px;
            border-width: 2px;
            font-weight: 600;
        .home-page .top-section {
            height: 100%;
        }
    </style>
</head>
<body>
<!-- 正文开始 -->
<!--<div class="layui-fluid ew-console-wrapper">-->
<!--    &lt;!&ndash; 卡片 &ndash;&gt;-->
<!--    <div class="layui-row layui-col-space15">-->
<!--        <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">-->
<!--            <div class="layui-card">-->
<!--                <div class="layui-card-header">-->
<!--                    报文量<span class="layui-badge layui-badge-green pull-right">日</span>-->
<!--                </div>-->
<!--                <div class="layui-card-body">-->
<!--                    <p class="lay-big-font" id="logQtyDay">0</p>-->
<!--                    <p>总报文量<span class="pull-right"><span id="logQty">0</span></span></p>-->
<!--                </div>-->
<!--            </div>-->
<!--        </div>-->
<!--        <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">-->
<!--            <div class="layui-card">-->
<!--                <div class="layui-card-header">-->
<!--                    终端数量<span class="layui-badge layui-badge-blue pull-right">总</span>-->
<!--                </div>-->
<!--                <div class="layui-card-body">-->
<!--                    <p class="lay-big-font"><span style="line-height: 1;" id="sensorQty">0</span></p>-->
<!--                    <p>在线设备<span class="pull-right"><span id="sensorOnlineQty"></span> </span></p>-->
<!--                </div>-->
<!--            </div>-->
<!--        </div>-->
<!--        <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">-->
<!--            <div class="layui-card">-->
<!--                <div class="layui-card-header">-->
<!--                    指令下发量<span class="layui-badge layui-badge-red pull-right">月</span>-->
<!--                </div>-->
<!--                <div class="layui-card-body">-->
<!--                    <p class="lay-big-font"><span id="commandQtyMonth">0</span></p>-->
<!--                    <p>总下发量<span class="pull-right"><span id="commandQty">0</span></span></p>-->
<!--                </div>-->
<!--            </div>-->
<!--        </div>-->
<!--        <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">-->
<!--            <div class="layui-card">-->
<!--                <div class="layui-card-header">-->
<!--                    系统用户-->
<!--                    <span class="icon-text pull-right" lay-tips="系统运行中......" lay-direction="4" lay-offset="5px,5px">-->
<!--                        <i class="layui-icon layui-icon-loading-1 layui-anim layui-anim-rotate layui-anim-loop"></i>-->
<!--                    </span>-->
<!--                </div>-->
<!--                <div class="layui-card-body">-->
<!--                    <p class="lay-big-font"><span id="usersQty">0</span> <span style="font-size: 24px;line-height: 1;">位</span></p>-->
<!--                    <p>操作次数<span class="pull-right"><span id="optQty">0</span> 次</span></p>-->
<!--                </div>-->
<!--            </div>-->
<!--        </div>-->
<!--    </div>-->
<!--    &lt;!&ndash; 快捷方式 &ndash;&gt;-->
<!--    <div class="layui-row layui-col-space15">-->
<!--        <div class="layui-col-sm6" style="padding-bottom: 0;">-->
<!--            <div class="layui-row layui-col-space15">-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <a class="console-app-group" ew-href="sensor/sensor.html?resourceId=30529" lay-text="斑马线终端">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-align-center" style="color: #ff9c6e;"></i>-->
<!--                        <div class="console-app-name">斑马线</div>-->
<div id="root">
    <div data-reactroot="" class="home-page">
        <section class="top-section">
            <div class="vertical-middle">
                <div class="product-name">
                    <h2>
                        中扬立库 - 巡检运维
                    </h2>
                </div>
                <p class="product-desc">
                    浙江中扬立库技术有限公司隶属于浙江中扬储存设备有限公司,是中国立体仓库系统大型厂家之一。是一家致力于物流仓储系统整体解决方案的集团化高新技术企业。公司年产值超5亿人民币,是中国两大电商物流核心供应商。自2008年成立至今已承接大小立体仓库系统上万座。公司依托着高素质年轻化的运营团队一直保持着年均增速30%的高速发展,谱写着行业发展传奇。
                </p>
                <div class="button-area">
                    <!--                    <a class="button button-primary" target="_self" href="https://kkfileview.keking.cn/zh-cn/docs/home.html">-->
                    <!--                        立即开始-->
<!--                    </a>-->
<!--                </div>-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="sensor2/sensor2.html?resourceId=30553" lay-text="井盖终端">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-circle" style="color: #95de64;"></i>-->
<!--                        <div class="console-app-name">井盖</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="sensor3/sensor3.html?resourceId=30556" lay-text="护栏终端">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-table" style="color: #5cdbd3;font-size: 30px;"></i>-->
<!--                        <div class="console-app-name">护栏</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="sensor4/sensor4.html?resourceId=30559" lay-text="消防终端">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-fire" style="color: #b37feb;font-size: 30px;"></i>-->
<!--                        <div class="console-app-name">消防</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--            </div>-->
<!--        </div>-->
<!--        <div class="layui-col-sm6" style="padding-bottom: 0;">-->
<!--            <div class="layui-row layui-col-space15">-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="sensor5/sensor5.html?resourceId=30562" lay-text="气体检测终端">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-transfer" style="color: #ffd666;font-size: 34px;"></i>-->
<!--                        <div class="console-app-name">气体</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="alarmVal/alarmVal.html?resourceId=30644" lay-text="报警阈值">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-notice"-->
<!--                           style="color: #ff85c0;font-size: 28px;"></i>-->
<!--                        <div class="console-app-name">报警</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="user/user.html?resourceId=4" lay-text="系统用户">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-group" style="font-size: 26px;padding-top: 3px;margin-right: 6px;"></i>-->
<!--                        <div class="console-app-name">用户</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-col-xs6 layui-col-sm3">-->
<!--                    <div class="console-app-group" ew-href="detail.html?resourceId=8" lay-text="基本资料">-->
<!--                        <i class="console-app-icon layui-icon layui-icon-slider" style="color: #ffc069;"></i>-->
<!--                        <div class="console-app-name">设置</div>-->
<!--                    </div>-->
<!--                </div>-->
<!--            </div>-->
<!--        </div>-->
<!--    </div>-->
<!--    &lt;!&ndash; 主体 &ndash;&gt;-->
<!--    <div class="layui-row layui-col-space15">-->
<!--        &lt;!&ndash; 地图 &ndash;&gt;-->
<!--        <div class="layui-col-md8 layui-col-sm6">-->
<!--            <div class="layui-card">-->
<!--&lt;!&ndash;                <div class="layui-card-body" style="position: relative">&ndash;&gt;-->
<!--&lt;!&ndash;                    &lt;!&ndash; 导航 &ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;                    <div class="dropdown-menu dropdown-hover" style="position: absolute;top: 22px;left: 30px;z-index: 999">&ndash;&gt;-->
<!--&lt;!&ndash;                        <button id="map-selector-btn" class="layui-btn icon-btn layui-btn-primary">&ndash;&gt;-->
<!--&lt;!&ndash;                            &nbsp;地图监控 <i class="layui-icon layui-icon-drop"></i></button>&ndash;&gt;-->
<!--&lt;!&ndash;                        <ul class="dropdown-menu-nav">&ndash;&gt;-->
<!--&lt;!&ndash;                            <div class="dropdown-anchor"></div>&ndash;&gt;-->
<!--&lt;!&ndash;                            <li ew-href="sensor/loca.html?resourceId=30601"><a><i class="layui-icon layui-icon-align-center"></i>斑马线地图</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;                            <li ew-href="sensor/loca.html?resourceId=30603"><a><i class="layui-icon layui-icon-circle"></i>井盖地图</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;                            <li ew-href="sensor/loca.html?resourceId=30605"><a><i class="layui-icon layui-icon-table"></i>护栏地图</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;                            <li ew-href="sensor/loca.html?resourceId=30607"><a><i class="layui-icon layui-icon-fire"></i>消防地图</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;                            <li ew-href="sensor/loca.html?resourceId=30609"><a><i class="layui-icon layui-icon-transfer"></i>气体地图</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;                        </ul>&ndash;&gt;-->
<!--&lt;!&ndash;                    </div>&ndash;&gt;-->
<!--&lt;!&ndash;                    &lt;!&ndash; 重置地图 &ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;                    <button id="map-reset" class="layui-btn layui-btn-primary" style="position: absolute;top: 22px;right: 30px;z-index: 999;">&ndash;&gt;-->
<!--&lt;!&ndash;                        <i class="layui-icon layui-icon-refresh-1" style="font-weight: bolder"></i>&ndash;&gt;-->
<!--&lt;!&ndash;                    </button>&ndash;&gt;-->
<!--&lt;!&ndash;                    &lt;!&ndash; 地图 &ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;                    <div id="map" style="width: 100%;height: 600px;"></div>&ndash;&gt;-->
<!--&lt;!&ndash;                </div>&ndash;&gt;-->
<!--            </div>-->
<!--        </div>-->
<!--        &lt;!&ndash; 介绍 &ndash;&gt;-->
<!--        <div class="layui-col-md4 layui-col-sm6">-->
<!--            <div class="layui-card">-->
<!--                <div class="layui-card-header">版本信息</div>-->
<!--                <div class="layui-card-body">-->
<!--                    <table class="layui-table layui-text">-->
<!--                        <colgroup>-->
<!--                            <col width="90">-->
<!--                            <col>-->
<!--                        </colgroup>-->
<!--                        <tbody>-->
<!--                        <tr>-->
<!--                            <td>系统简称</td>-->
<!--                            <td>中扬立库运维</td>-->
<!--                        </tr>-->
<!--                        <tr>-->
<!--                            <td>版本号</td>-->
<!--                            <td>Version 1.0.0</td>-->
<!--                        </tr>-->
<!--                        <tr>-->
<!--                            <td>优点特色</td>-->
<!--                            <td>易上手 / 操作效率高 / 数据及时 / 简约</td>-->
<!--                        </tr>-->
<!--&lt;!&ndash;                        <tr>&ndash;&gt;-->
<!--&lt;!&ndash;                            <td>制作方</td>&ndash;&gt;-->
<!--&lt;!&ndash;                            <td><a href="http://www.zoneyung.com" target="_blank">浙江中扬立库技术有限公司</a></td>&ndash;&gt;-->
<!--&lt;!&ndash;                        </tr>&ndash;&gt;-->
<!--                        </tbody>-->
<!--                    </table>-->
<!--                </div>-->
<!--            </div>-->
<!--            <div class="layui-card">-->
<!--                <div class="layui-card-header">友情链接</div>-->
<!--                <div class="layui-card-body">-->
<!--                    <div class="layui-carousel admin-carousel admin-news" id="workplaceNewsCarousel">-->
<!--                        <div carousel-item>-->
<!--                            <div>-->
<!--                                <a id="toDataV" target="_blank"-->
<!--                                   style="cursor: pointer; color:#fff;background-color: #009fde;background-image: linear-gradient(to right,#009fde,#00beff);">-->
<!--                                    高德地图 - 坐标拾取系统</a>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
<!--            </div>-->
<!--            <div class="layui-card">-->
<!--&lt;!&ndash;                <div class="layui-card-header">&ndash;&gt;-->
<!--&lt;!&ndash;                    设备报警&ndash;&gt;-->
<!--&lt;!&ndash;                    <button ew-href="alarm/alarm.html?resourceId=30612" lay-text="报警记录" class="layui-btn layui-btn-primary layui-btn-xs" style="float: right; margin: 11px 5px 0 0">&ndash;&gt;-->
<!--&lt;!&ndash;                    报警记录</button>&ndash;&gt;-->
<!--&lt;!&ndash;                </div>&ndash;&gt;-->
<!--&lt;!&ndash;                <div class="layui-card-body" id="warnList">&ndash;&gt;-->
<!--&lt;!&ndash;                </div>&ndash;&gt;-->
<!--            </div>-->
<!--        </div>-->
<!--    </div>-->
<!--</div>-->
<!-- js部分 -->
<script src="https://webapi.amap.com/maps?v=2.0&key=24c671d7d8365d7eaff888498538452f&plugin=AMap.Scale,AMap.ToolBar"></script>
<script src="https://webapi.amap.com/loca?v=2.0.0&key=24c671d7d8365d7eaff888498538452f"></script>
                    <a class="button button-normal" ew-href="issue/issue.html?resourceId=40581" lay-text="巡检记录">
                        巡检记录
                    </a>
                </div>
            </div>
            <div class="animation animation1">
            </div>
            <div class="animation animation2">
            </div>
            <div class="animation animation3">
            </div>
            <div class="animation animation4">
            </div>
            <div class="animation animation5">
            </div>
        </section>
    </div>
</div>
</body>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/echarts/echarts-gl.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../../static/js/common.js"></script>
<script>
    // 图表
    // var chartDom = document.getElementById('charts');
    // var myChart = echarts.init(chartDom);
    // var option;
    // function getCharts() {
    //     $.ajax({
    //         url: baseUrl + "/views/home/charts.json",
    //         headers: {'token': localStorage.getItem('token')},
    //         method: 'GET',
    //         success: function (data) {
    //             var symbolSize = 3;
    //             option = {
    //                 title: {
    //                     left: 'center',
    //                     text: 'Large Area Chart'
    //                 },
    //                 grid3D: {},
    //                 xAxis3D: {
    //                     type: 'category'
    //                 },
    //                 yAxis3D: {},
    //                 zAxis3D: {},
    //                 dataset: {
    //                     dimensions: [
    //                         'Income',
    //                         'Life Expectancy',
    //                         'Population',
    //                         'Country',
    //                         { name: 'Year', type: 'ordinal' }
    //                     ],
    //                     source: data
    //                 },
    //                 series: [
    //                     {
    //                         type: 'scatter3D',
    //                         symbolSize: symbolSize,
    //                         encode: {
    //                             x: 'Country',
    //                             y: 'Life Expectancy',
    //                             z: 'Income',
    //                             tooltip: [0, 1, 2, 3, 4]
    //                         }
    //                     }
    //                 ]
    //             };
    //             myChart.setOption(option);
    //         }
    //     });
    // }
    // getCharts();
    // option && myChart.setOption(option);
    // 地图 -----------------------------------------------------------------
    // var map = new AMap.Map('map', {
    //     zoom: 4.85,
    //     pitch: 40,
    //     viewMode: '3D',
    //     center: [105.202202,32.699006],
    //     // mapStyle: 'amap://styles/8108947b4fec714c52ef08aa183a2237',
    //     // mapStyle: 'amap://styles/4fd4357cc9f7c46f0c227c9763f67a2d',
    //     mapStyle: 'amap://styles/7f20373ddc5b2456e7095fce1dab4aba',
    //     // mapStyle: 'amap://styles/dd57f58da78602dc3871efc29b2ba43d',
    // });
    //
    // var loca = new Loca.Container({
    //     map,
    // });
    //
    // var geo;
    // var iconLayer = new Loca.IconLayer({
    //     zIndex: 10,
    //     opacity: 1,
    // });
    // function getMapData() {
    //     $.ajax({
    //         url: baseUrl + "/sensor/map/auth",
    //         headers: {'token': localStorage.getItem('token')},
    //         method: 'GET',
    //         success: function (res) {
    //             if (res.code === 200) {
    //                 geo = new Loca.GeoJSONSource({
    //                     data: res.data,
    //                 });
    //                 iconLayer.setSource(geo);
    //                 iconLayer.setStyle({
    //                     unit: 'px',
    //                     icon: (index, feature) => {
    //                         let data = feature.properties.rawData;
    //                         return trafficIcons[data.type % Object.keys(trafficIcons).length];
    //                     },
    //                     iconSize: [20,20],
    //                     rotation: 0,
    //                 })
    //                 loca.add(iconLayer);
    //             } else if (res.code === 403) {
    //                 top.location.href = baseUrl + "/";
    //             } else {
    //                 layer.msg(res.msg, {icon: 2})
    //             }
    //         }
    //     })
    // }
    // getMapData();
    //
    //
    // // 拾取
    // map.on('click', (e) => {
    //     const feat = iconLayer.queryFeature(e.pixel.toArray());
    //     if (feat) {
    //         map.setZoomAndCenter(19, new AMap.LngLat(feat.properties.rawData.lng, feat.properties.rawData.lat));
    //         iconLayer.setStyle({
    //             unit: 'px',
    //             icon: (index, feature) => {
    //                 let data = feature.properties.rawData;
    //                 return trafficIcons[data.type % Object.keys(trafficIcons).length];
    //             },
    //             iconSize: (i, feature) => {
    //                 if (feature === feat) {
    //                     return [40, 40];
    //                 }
    //                 return [20, 20];
    //             },
    //         });
    //         top.sensorByMap = feat.properties.rawData.sensorId;
    //         layer.open({
    //             type: 2
    //             ,id: 'LAY_adminPopupR'
    //             ,area: '700px'
    //             // ,url: 'sensor_detl.html'
    //             ,anim: -1
    //             ,title: false
    //             ,closeBtn: false
    //             ,offset: 'r'
    //             ,shade: 0.1
    //             ,shadeClose: true
    //             ,window: 'top'
    //             ,skin: 'layui-anim layui-anim-rl layui-layer-adminRight0'
    //             ,content: '../sensor_detl.html'
    //         });
    //     }
    // });
    //
    // // --------------------------------------
    //
    // // https://www.highcharts.com.cn/demo/highcharts/3d-area-multiple
    // // https://echarts.apache.org/examples/zh/editor.html?c=scatter3D-dataset&gl=1&version=5.2.1
    // layui.config({
    //     base: baseUrl + "/static/layui/lay/modules/"
    // }).extend({
    //     dropdown: 'dropdown/dropdown'
    // }).use(['layer', 'carousel', 'element', 'admin', 'dropdown'], function () {
    //     var element = layui.element;
    //     var $ = layui.jquery;
    //     var layer = layui.layer;
    //     var carousel = layui.carousel;
    //     var device = layui.device();
    //     var admin = layui.admin;
    //
    //     // 数据中心
    //     $('#toDataV').click(function () {
    //         window.open("https://lbs.amap.com/tools/picker");
    //     })
    //
    //     getHeaderData();
    //     getBodyData();
    //
    //     setInterval(function () {
    //         getHeaderData();
    //         getBodyData();
    //     }, 3000)
    //
    //     // 渲染轮播
    //     carousel.render({
    //         elem: '#workplaceNewsCarousel',
    //         width: '100%',
    //         height: '70px',
    //         arrow: 'none',
    //         autoplay: true,
    //         trigger: device.ios || device.android ? 'click' : 'hover',
    //         anim: 'fade'
    //     });
    //
    //     // 头部
    //     function getHeaderData() {
    //         $.ajax({
    //             url: baseUrl + "/console/header/auth",
    //             headers: {'token': localStorage.getItem('token')},
    //             method: 'GET',
    //             success: function (res) {
    //                 if (res.code === 200) {
    //                     var result = res.data;
    //                     $('#logQtyDay').text(result.logQtyDay);
    //                     $('#logQty').text(result.logQty);
    //
    //                     $('#sensorQty').text(result.sensorQty);
    //                     $('#sensorOnlineQty').text(result.sensorOnlineQty);
    //
    //                     $('#commandQty').text(result.commandQty);
    //                     $('#commandQtyMonth').text(result.commandQtyMonth);
    //
    //                     $('#usersQty').text(result.usersQty);
    //                     $('#deptQty').text(result.deptQty);
    //                     $('#optQty').text(result.optQty);
    //                 } else if (res.code === 403) {
    //                     top.location.href = baseUrl + "/";
    //                 } else {
    //                     layer.msg(res.msg, {icon: 2})
    //                 }
    //             }
    //         })
    //     }
    //
    //     // 主体
    //     function getBodyData() {
    //         $.ajax({
    //             url: baseUrl + "/console/body/auth",
    //             headers: {'token': localStorage.getItem('token')},
    //             method: 'GET',
    //             success: function (res) {
    //                 if (res.code === 200) {
    //                     // 安全库存
    //                     var tpl = $('#safeQuaTpl').html();
    //                     var template = Handlebars.compile(tpl);
    //                     var html = template(res.data);
    //                     $('#warnList').html(html);
    //                 } else if (res.code === 403) {
    //                     top.location.href = baseUrl + "/";
    //                 } else {
    //                     layer.msg(res.msg, {icon: 2})
    //                 }
    //             }
    //         })
    //     }
    //
    // });
    //
    // // 地图重置
    // document.getElementById("map-reset").addEventListener("click", function () {
    //     map.setZoomAndCenter(4.85, new AMap.LngLat(105.202202, 32.699006));
    //     map.setRotation(0);
    //     map.setPitch(40);
    //     iconLayer.setStyle({
    //         unit: 'px',
    //         icon: (index, feature) => {
    //             let data = feature.properties.rawData;
    //             return trafficIcons[data.type % Object.keys(trafficIcons).length];
    //         },
    //         iconSize: [20,20],
    //         rotation: 0,
    //     })
    // })
    layui.config({
        base: baseUrl + "/static/layui/lay/modules/"
    }).extend({
        dropdown: 'dropdown/dropdown'
    }).use(['layer', 'carousel', 'element', 'admin', 'dropdown'], function () {
        var element = layui.element;
        var $ = layui.jquery;
        var layer = layui.layer;
        var carousel = layui.carousel;
        var device = layui.device();
        var admin = layui.admin;
    });
</script>
<script type="text/template" id="safeQuaTpl">
    {{#each warnList}}
        <div class="console-user-group">
            <div class="console-user-group-head">{{no}}</div>
            <div class="console-user-group-name">{{sensorType}}</div>
            <div class="console-user-group-desc">{{UUID}}</div>
            <span class="layui-badge layui-badge-red" style="letter-spacing: 1px">报警:{{msg}}</span>
        </div>
    {{/each}}
</script>
</body>
</html>
src/main/webapp/views/index.html
@@ -146,7 +146,7 @@
        // 默认加载主页
        index.loadHome({
            menuPath: baseUrl+'/views/issue/issue.html',
            menuPath: baseUrl+'/views/home/console.html',
            menuName: '<i class="layui-icon layui-icon-home"></i>'
        });