1、调整登录页及首页样式(暂未使用响应式布局,背景图片需压缩,页面加载慢)
2、新增大模型对话页面
3、新增菜单管理使用自定义icon功能
4、调整全局项目名称和LOGO(除浏览器页签logo,暂无黑底logo的底图)
已添加3个文件
已修改18个文件
1243 ■■■■■ 文件已修改
public/index.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/layouts/TabLayout.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/layouts/UserLayout.vue 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/CustomIcons.vue 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/SideMenu.vue 269 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/index.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/page/GlobalFooter.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/page/GlobalHeader.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/page/GlobalLayout.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tools/Logo.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tools/UserMenu.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/defaultSettings.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/util.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ai/ElectronicManual.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/Analysis.vue 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/icon/Icons.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/Login.vue 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/LoginAccount.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/LoginPhone.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/UserManagement.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html
@@ -5,7 +5,7 @@
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <title>JeecgBoot ä¼ä¸šçº§ä½Žä»£ç å¹³å°</title>
  <title>中科维一</title>
  <link rel="icon" href="<%= BASE_URL %>logo.png">
  <script src="<%= BASE_URL %>cdn/babel-polyfill/polyfill_7_2_5.js"></script>
  <style>
@@ -15,6 +15,8 @@
      height: 100%;
      margin: 0px;
      padding: 0px;
      font-family: ali_main;
      letter-spacing: 1px;
    }
    .chromeframe {
      margin: 0.2em 0;
@@ -249,7 +251,7 @@
    <div id="loader"></div>
    <div class="loader-section section-left"></div>
    <div class="loader-section section-right"></div>
    <div class="load_title">正在加载 JeecgBoot ä½Žä»£ç å¹³å°,请耐心等待
    <div class="load_title">正在加载,请耐心等待
    </div>
  </div>
src/components/layouts/TabLayout.vue
@@ -18,7 +18,7 @@
        <span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span>
      </a-tab-pane>
    </a-tabs>
    <div style="margin: 12px 12px 0;">
    <div>
      <!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 ä¸çŸ¥é“为什么加上后 é¡µé¢è·¯ç”±åˆ‡æ¢çš„æ—¶å€™å³1及菜单切到2及菜单的时候 ä¸¤ä¸ªèœå•页面会同时出现300-500秒左右 -->
      <keep-alive v-if="multipage">
        <router-view v-if="reloadFlag"/>
@@ -183,7 +183,7 @@
       * @param title è¦ä¿®æ”¹çš„æ–°æ ‡é¢˜
       */
      changeTitle(title) {
        let projectTitle = "Jeecg-Boot ä¼ä¸šçº§ä½Žä»£ç å¹³å°"
        let projectTitle = "中科维一"
        // é¦–页特殊处理
        if (this.$route.path === indexKey) {
          document.title = projectTitle
src/components/layouts/UserLayout.vue
@@ -1,40 +1,17 @@
<template>
  <div id="userLayout" :class="['user-layout-wrapper', device]">
    <div class="container">
      <div class="top">
        <div class="header">
          <a href="/">
            <img src="~@/assets/logo.svg" class="logo" alt="logo">
            <span class="title">Jeecg Boot</span>
          </a>
        </div>
        <div class="desc">
          Jeecg Boot æ˜¯ä¸­å›½æœ€å…·å½±å“åŠ›çš„ ä¼ä¸šçº§ ä½Žä»£ç å¹³å°
        </div>
      </div>
      <route-view></route-view>
      <div class="footer">
        <div class="links">
          <a href="http://doc.jeecg.com" target="_blank">帮助</a>
          <a href="https://github.com/zhangdaiscott/jeecg-boot" target="_blank">隐私</a>
          <a href="https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE" target="_blank">条款</a>
        </div>
        <div class="copyright">
          Copyright &copy; 2019 <a href="http://www.jeecg.com" target="_blank">JEECG开源社区</a> å‡ºå“
        </div>
      </div>
    </div>
  </div>
</template>
<script>
  import RouteView from "@/components/layouts/RouteView"
  import RouteView from '@/components/layouts/RouteView'
  import { mixinDevice } from '@/utils/mixin.js'
  export default {
    name: "UserLayout",
    name: 'UserLayout',
    components: { RouteView },
    mixins: [mixinDevice],
    data () {
@@ -45,7 +22,7 @@
    },
    beforeDestroy () {
      document.body.classList.remove('userLayout')
    },
    }
  }
</script>
@@ -55,9 +32,14 @@
    &.mobile {
      .container {
        background: #f0f2f5 url(~@/assets/page/login/background.svg) no-repeat center;
        background-size: cover;
        padding: 110px 0 144px;
        .main {
          max-width: 368px;
          width: 98%;
          margin: 0 auto;
        }
      }
    }
@@ -65,85 +47,16 @@
    .container {
      width: 100%;
      min-height: 100%;
      background: #f0f2f5 url(~@/assets/background.svg) no-repeat 50%;
      background-size: 100%;
      padding: 110px 0 144px;
      background: #f0f2f5 url(~@/assets/page/login/background.svg) no-repeat center;
      background-size: cover;
      padding-top: 200px;
      position: relative;
      a {
        text-decoration: none;
      }
      .top {
        text-align: center;
        .header {
          height: 44px;
          line-height: 44px;
          .badge {
            position: absolute;
            display: inline-block;
            line-height: 1;
            vertical-align: middle;
            margin-left: -12px;
            margin-top: -10px;
            opacity: 0.8;
          }
          .logo {
            height: 44px;
            vertical-align: top;
            margin-right: 16px;
            border-style: none;
          }
          .title {
            font-size: 33px;
            color: rgba(0, 0, 0, .85);
            font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
            font-weight: 600;
            position: relative;
            top: 2px;
          }
        }
        .desc {
          font-size: 14px;
          color: rgba(0, 0, 0, 0.45);
          margin-top: 12px;
          margin-bottom: 40px;
        }
      }
      .main {
        min-width: 260px;
        width: 368px;
        margin: 0 auto;
      }
        width: 450px;
        margin-left: 10%;
      .footer {
        position: absolute;
        width: 100%;
        bottom: 0;
        padding: 0 16px;
        margin: 48px 0 24px;
        text-align: center;
        .links {
          margin-bottom: 8px;
          font-size: 14px;
          a {
            color: rgba(0, 0, 0, 0.45);
            transition: all 0.3s;
            &:not(:last-child) {
              margin-right: 40px;
            }
          }
        }
        .copyright {
          color: rgba(0, 0, 0, 0.45);
          font-size: 14px;
        }
      }
    }
  }
src/components/menu/CustomIcons.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
<template>
  <i class="anticon">
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0"
         v-if="type==='custom-icon1'" @click="choseIcon">
      <path fill="#ffffff"
            d="M 187.5 187.5 C 239.296875 187.5 281.25 145.429688 281.25 93.75 C 281.25 41.953125 239.296875 0 187.5 0 C 135.703125 0 93.75 41.953125 93.75 93.75 C 93.75 145.429688 135.703125 187.5 187.5 187.5 Z M 187.5 234.375 C 125.039062 234.375 0 265.664062 0 328.125 L 0 375 L 375 375 L 375 328.125 C 375 265.664062 249.960938 234.375 187.5 234.375 Z M 187.5 234.375 "
            fill-opacity="1" fill-rule="nonzero"/>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0"
         v-if="type==='custom-icon2'" @click="choseIcon">
      <defs>
        <clipPath id="f2d557b873">
          <path d="M 44.53125 0 L 330.28125 0 L 330.28125 375 L 44.53125 375 Z M 44.53125 0 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#f2d557b873)">
        <path fill="#ffffff"
              d="M 187.5 0 C 127.429688 0 80.355469 47.070312 80.355469 107.144531 L 80.355469 125 C 60.714844 125 44.644531 141.070312 44.644531 160.714844 L 44.644531 339.285156 C 44.644531 358.929688 60.714844 375 80.355469 375 L 294.644531 375 C 314.285156 375 330.355469 358.929688 330.355469 339.285156 L 330.355469 160.714844 C 330.355469 141.070312 314.285156 125 294.644531 125 L 294.644531 107.144531 C 294.644531 47.070312 247.570312 0 187.5 0 Z M 187.5 35.714844 C 227.554688 35.714844 258.929688 67.089844 258.929688 107.144531 L 258.929688 125 L 116.070312 125 L 116.070312 107.144531 C 116.070312 67.089844 147.445312 35.714844 187.5 35.714844 Z M 80.355469 160.714844 L 294.644531 160.714844 L 294.644531 339.285156 L 80.355469 339.285156 Z M 116.070312 232.144531 C 115.488281 232.144531 114.902344 232.171875 114.320312 232.230469 C 113.738281 232.285156 113.160156 232.371094 112.585938 232.484375 C 112.015625 232.601562 111.449219 232.742188 110.886719 232.910156 C 110.328125 233.082031 109.777344 233.277344 109.238281 233.503906 C 108.699219 233.726562 108.167969 233.976562 107.652344 234.25 C 107.136719 234.527344 106.636719 234.828125 106.152344 235.152344 C 105.664062 235.476562 105.195312 235.824219 104.742188 236.195312 C 104.289062 236.566406 103.859375 236.960938 103.445312 237.375 C 103.03125 237.785156 102.640625 238.21875 102.269531 238.671875 C 101.898438 239.125 101.546875 239.59375 101.222656 240.078125 C 100.898438 240.566406 100.597656 241.066406 100.324219 241.582031 C 100.046875 242.097656 99.796875 242.625 99.574219 243.167969 C 99.351562 243.707031 99.152344 244.257812 98.984375 244.816406 C 98.8125 245.375 98.671875 245.941406 98.558594 246.515625 C 98.441406 247.089844 98.359375 247.667969 98.300781 248.25 C 98.242188 248.832031 98.214844 249.414062 98.214844 250 C 98.214844 250.585938 98.242188 251.167969 98.300781 251.75 C 98.359375 252.332031 98.441406 252.910156 98.558594 253.484375 C 98.671875 254.058594 98.8125 254.625 98.984375 255.183594 C 99.152344 255.742188 99.351562 256.292969 99.574219 256.832031 C 99.796875 257.375 100.046875 257.902344 100.324219 258.417969 C 100.597656 258.933594 100.898438 259.433594 101.222656 259.921875 C 101.546875 260.40625 101.898438 260.875 102.269531 261.328125 C 102.640625 261.78125 103.03125 262.214844 103.445312 262.625 C 103.859375 263.039062 104.289062 263.433594 104.742188 263.804688 C 105.195312 264.175781 105.664062 264.523438 106.152344 264.847656 C 106.636719 265.171875 107.136719 265.472656 107.652344 265.75 C 108.167969 266.023438 108.699219 266.273438 109.238281 266.496094 C 109.777344 266.722656 110.328125 266.917969 110.886719 267.089844 C 111.449219 267.257812 112.015625 267.398438 112.585938 267.515625 C 113.160156 267.628906 113.738281 267.714844 114.320312 267.769531 C 114.902344 267.828125 115.488281 267.855469 116.070312 267.855469 C 116.65625 267.855469 117.238281 267.828125 117.820312 267.769531 C 118.402344 267.714844 118.980469 267.628906 119.554688 267.515625 C 120.128906 267.398438 120.695312 267.257812 121.253906 267.089844 C 121.816406 266.917969 122.363281 266.722656 122.90625 266.496094 C 123.445312 266.273438 123.972656 266.023438 124.488281 265.75 C 125.003906 265.472656 125.507812 265.171875 125.992188 264.847656 C 126.480469 264.523438 126.949219 264.175781 127.398438 263.804688 C 127.851562 263.433594 128.285156 263.039062 128.699219 262.625 C 129.113281 262.214844 129.503906 261.78125 129.875 261.328125 C 130.246094 260.875 130.59375 260.40625 130.917969 259.921875 C 131.242188 259.433594 131.542969 258.933594 131.820312 258.417969 C 132.097656 257.902344 132.34375 257.375 132.570312 256.832031 C 132.792969 256.292969 132.988281 255.742188 133.160156 255.183594 C 133.328125 254.625 133.472656 254.058594 133.585938 253.484375 C 133.699219 252.910156 133.785156 252.332031 133.84375 251.75 C 133.898438 251.167969 133.929688 250.585938 133.929688 250 C 133.929688 249.414062 133.898438 248.832031 133.84375 248.25 C 133.785156 247.667969 133.699219 247.089844 133.585938 246.515625 C 133.472656 245.941406 133.328125 245.375 133.160156 244.816406 C 132.988281 244.257812 132.792969 243.707031 132.570312 243.167969 C 132.34375 242.625 132.097656 242.097656 131.820312 241.582031 C 131.542969 241.066406 131.242188 240.566406 130.917969 240.078125 C 130.59375 239.59375 130.246094 239.125 129.875 238.671875 C 129.503906 238.21875 129.113281 237.785156 128.699219 237.375 C 128.285156 236.960938 127.851562 236.566406 127.398438 236.195312 C 126.949219 235.824219 126.480469 235.476562 125.992188 235.152344 C 125.507812 234.828125 125.003906 234.527344 124.488281 234.25 C 123.972656 233.976562 123.445312 233.726562 122.90625 233.503906 C 122.363281 233.277344 121.816406 233.082031 121.253906 232.910156 C 120.695312 232.742188 120.128906 232.601562 119.554688 232.484375 C 118.980469 232.371094 118.402344 232.285156 117.820312 232.230469 C 117.238281 232.171875 116.65625 232.144531 116.070312 232.144531 Z M 187.5 232.144531 C 186.914062 232.144531 186.332031 232.171875 185.75 232.230469 C 185.167969 232.285156 184.589844 232.371094 184.015625 232.484375 C 183.441406 232.601562 182.875 232.742188 182.316406 232.910156 C 181.757812 233.082031 181.207031 233.277344 180.667969 233.503906 C 180.125 233.726562 179.597656 233.976562 179.082031 234.25 C 178.566406 234.527344 178.066406 234.828125 177.578125 235.152344 C 177.09375 235.476562 176.625 235.824219 176.171875 236.195312 C 175.71875 236.566406 175.285156 236.960938 174.875 237.375 C 174.460938 237.785156 174.066406 238.21875 173.695312 238.671875 C 173.324219 239.125 172.976562 239.59375 172.652344 240.078125 C 172.328125 240.566406 172.027344 241.066406 171.75 241.582031 C 171.476562 242.097656 171.226562 242.625 171.003906 243.167969 C 170.777344 243.707031 170.582031 244.257812 170.410156 244.816406 C 170.242188 245.375 170.101562 245.941406 169.984375 246.515625 C 169.871094 247.089844 169.785156 247.667969 169.730469 248.25 C 169.671875 248.832031 169.644531 249.414062 169.644531 250 C 169.644531 250.585938 169.671875 251.167969 169.730469 251.75 C 169.785156 252.332031 169.871094 252.910156 169.984375 253.484375 C 170.101562 254.058594 170.242188 254.625 170.410156 255.183594 C 170.582031 255.742188 170.777344 256.292969 171.003906 256.832031 C 171.226562 257.375 171.476562 257.902344 171.75 258.417969 C 172.027344 258.933594 172.328125 259.433594 172.652344 259.921875 C 172.976562 260.40625 173.324219 260.875 173.695312 261.328125 C 174.066406 261.78125 174.460938 262.214844 174.875 262.625 C 175.285156 263.039062 175.71875 263.433594 176.171875 263.804688 C 176.625 264.175781 177.09375 264.523438 177.578125 264.847656 C 178.066406 265.171875 178.566406 265.472656 179.082031 265.75 C 179.597656 266.023438 180.125 266.273438 180.667969 266.496094 C 181.207031 266.722656 181.757812 266.917969 182.316406 267.089844 C 182.875 267.257812 183.441406 267.398438 184.015625 267.515625 C 184.589844 267.628906 185.167969 267.714844 185.75 267.769531 C 186.332031 267.828125 186.914062 267.855469 187.5 267.855469 C 188.085938 267.855469 188.667969 267.828125 189.25 267.769531 C 189.832031 267.714844 190.410156 267.628906 190.984375 267.515625 C 191.558594 267.398438 192.125 267.257812 192.683594 267.089844 C 193.242188 266.917969 193.792969 266.722656 194.332031 266.496094 C 194.875 266.273438 195.402344 266.023438 195.917969 265.75 C 196.433594 265.472656 196.933594 265.171875 197.421875 264.847656 C 197.90625 264.523438 198.375 264.175781 198.828125 263.804688 C 199.28125 263.433594 199.714844 263.039062 200.125 262.625 C 200.539062 262.214844 200.933594 261.78125 201.304688 261.328125 C 201.675781 260.875 202.023438 260.40625 202.347656 259.921875 C 202.671875 259.433594 202.972656 258.933594 203.25 258.417969 C 203.523438 257.902344 203.773438 257.375 203.996094 256.832031 C 204.222656 256.292969 204.417969 255.742188 204.589844 255.183594 C 204.757812 254.625 204.898438 254.058594 205.015625 253.484375 C 205.128906 252.910156 205.214844 252.332031 205.269531 251.75 C 205.328125 251.167969 205.355469 250.585938 205.355469 250 C 205.355469 249.414062 205.328125 248.832031 205.269531 248.25 C 205.214844 247.667969 205.128906 247.089844 205.015625 246.515625 C 204.898438 245.941406 204.757812 245.375 204.589844 244.816406 C 204.417969 244.257812 204.222656 243.707031 203.996094 243.167969 C 203.773438 242.625 203.523438 242.097656 203.25 241.582031 C 202.972656 241.066406 202.671875 240.566406 202.347656 240.078125 C 202.023438 239.59375 201.675781 239.125 201.304688 238.671875 C 200.933594 238.21875 200.539062 237.785156 200.125 237.375 C 199.714844 236.960938 199.28125 236.566406 198.828125 236.195312 C 198.375 235.824219 197.90625 235.476562 197.421875 235.152344 C 196.933594 234.828125 196.433594 234.527344 195.917969 234.25 C 195.402344 233.976562 194.875 233.726562 194.332031 233.503906 C 193.792969 233.277344 193.242188 233.082031 192.683594 232.910156 C 192.125 232.742188 191.558594 232.601562 190.984375 232.484375 C 190.410156 232.371094 189.832031 232.285156 189.25 232.230469 C 188.667969 232.171875 188.085938 232.144531 187.5 232.144531 Z M 258.929688 232.144531 C 258.34375 232.144531 257.761719 232.171875 257.179688 232.230469 C 256.597656 232.285156 256.019531 232.371094 255.445312 232.484375 C 254.871094 232.601562 254.304688 232.742188 253.746094 232.910156 C 253.183594 233.082031 252.636719 233.277344 252.09375 233.503906 C 251.554688 233.726562 251.027344 233.976562 250.511719 234.25 C 249.996094 234.527344 249.492188 234.828125 249.007812 235.152344 C 248.519531 235.476562 248.050781 235.824219 247.601562 236.195312 C 247.148438 236.566406 246.714844 236.960938 246.300781 237.375 C 245.886719 237.785156 245.496094 238.21875 245.125 238.671875 C 244.753906 239.125 244.40625 239.59375 244.082031 240.078125 C 243.757812 240.566406 243.457031 241.066406 243.179688 241.582031 C 242.90625 242.097656 242.65625 242.625 242.429688 243.167969 C 242.207031 243.707031 242.011719 244.257812 241.839844 244.816406 C 241.671875 245.375 241.527344 245.941406 241.414062 246.515625 C 241.300781 247.089844 241.214844 247.667969 241.15625 248.25 C 241.101562 248.832031 241.070312 249.414062 241.070312 250 C 241.070312 250.585938 241.101562 251.167969 241.15625 251.75 C 241.214844 252.332031 241.300781 252.910156 241.414062 253.484375 C 241.527344 254.058594 241.671875 254.625 241.839844 255.183594 C 242.011719 255.742188 242.207031 256.292969 242.429688 256.832031 C 242.65625 257.375 242.902344 257.902344 243.179688 258.417969 C 243.457031 258.933594 243.757812 259.433594 244.082031 259.921875 C 244.40625 260.40625 244.753906 260.875 245.125 261.328125 C 245.496094 261.78125 245.886719 262.214844 246.300781 262.625 C 246.714844 263.039062 247.148438 263.433594 247.601562 263.804688 C 248.050781 264.175781 248.519531 264.523438 249.007812 264.847656 C 249.492188 265.171875 249.996094 265.472656 250.511719 265.75 C 251.027344 266.023438 251.554688 266.273438 252.09375 266.496094 C 252.636719 266.722656 253.183594 266.917969 253.746094 267.089844 C 254.304688 267.257812 254.871094 267.398438 255.445312 267.515625 C 256.019531 267.628906 256.597656 267.714844 257.179688 267.769531 C 257.761719 267.828125 258.34375 267.855469 258.929688 267.855469 C 259.511719 267.855469 260.097656 267.828125 260.679688 267.769531 C 261.261719 267.714844 261.839844 267.628906 262.414062 267.515625 C 262.984375 267.398438 263.550781 267.257812 264.113281 267.089844 C 264.671875 266.917969 265.222656 266.722656 265.761719 266.496094 C 266.300781 266.273438 266.832031 266.023438 267.347656 265.75 C 267.863281 265.472656 268.363281 265.171875 268.847656 264.847656 C 269.335938 264.523438 269.804688 264.175781 270.257812 263.804688 C 270.710938 263.433594 271.140625 263.039062 271.554688 262.625 C 271.96875 262.214844 272.359375 261.78125 272.730469 261.328125 C 273.101562 260.875 273.453125 260.40625 273.777344 259.921875 C 274.101562 259.433594 274.402344 258.933594 274.675781 258.417969 C 274.953125 257.902344 275.203125 257.375 275.425781 256.832031 C 275.648438 256.292969 275.847656 255.742188 276.015625 255.183594 C 276.1875 254.625 276.328125 254.058594 276.441406 253.484375 C 276.554688 252.910156 276.640625 252.332031 276.699219 251.75 C 276.757812 251.167969 276.785156 250.585938 276.785156 250 C 276.785156 249.414062 276.757812 248.832031 276.699219 248.25 C 276.640625 247.667969 276.554688 247.089844 276.441406 246.515625 C 276.328125 245.941406 276.1875 245.375 276.015625 244.816406 C 275.847656 244.257812 275.648438 243.707031 275.425781 243.167969 C 275.203125 242.625 274.953125 242.097656 274.675781 241.582031 C 274.402344 241.066406 274.101562 240.566406 273.777344 240.078125 C 273.453125 239.59375 273.101562 239.125 272.730469 238.671875 C 272.359375 238.21875 271.96875 237.785156 271.554688 237.375 C 271.140625 236.960938 270.710938 236.566406 270.257812 236.195312 C 269.804688 235.824219 269.335938 235.476562 268.847656 235.152344 C 268.363281 234.828125 267.863281 234.527344 267.347656 234.25 C 266.832031 233.976562 266.300781 233.726562 265.761719 233.503906 C 265.222656 233.277344 264.671875 233.082031 264.113281 232.910156 C 263.550781 232.742188 262.984375 232.601562 262.414062 232.484375 C 261.839844 232.371094 261.261719 232.285156 260.679688 232.230469 C 260.097656 232.171875 259.511719 232.144531 258.929688 232.144531 Z M 258.929688 232.144531 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0"
         v-if="type==='custom-icon3'" @click="choseIcon">
      <defs>
        <clipPath id="83de416df2">
          <path d="M 34 0 L 340.734375 0 L 340.734375 375 L 34 375 Z M 34 0 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#83de416df2)">
        <path fill="#ffffff"
              d="M 187.5 0 L 34.089844 68.183594 L 34.089844 170.453125 C 34.089844 303.921875 143.847656 366.238281 187.5 375 C 231.152344 366.238281 340.910156 303.921875 340.910156 170.453125 L 340.910156 68.183594 Z M 187.5 37.320312 L 306.816406 90.355469 L 306.816406 170.453125 C 306.816406 275.011719 225.253906 328.203125 187.5 339.84375 C 149.746094 328.203125 68.183594 275.011719 68.183594 170.453125 L 68.183594 90.355469 Z M 269.199219 115.824219 L 170.453125 214.53125 L 123.214844 167.292969 L 99.109375 191.394531 L 170.453125 262.738281 L 293.269531 139.890625 Z M 269.199219 115.824219 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0"
         v-if="type==='custom-icon4'" @click="choseIcon">
      <defs>
        <clipPath id="ffa62df907">
          <path d="M 0 32.386719 L 272 32.386719 L 272 281 L 0 281 Z M 0 32.386719 " clip-rule="nonzero"/>
        </clipPath>
        <clipPath id="75e61c7216">
          <path d="M 146 136 L 375 136 L 375 342.886719 L 146 342.886719 Z M 146 136 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#ffa62df907)">
        <path fill="#ffffff"
              d="M 139.839844 217.464844 C 143.351562 195.828125 155.046875 176.53125 170.835938 161.910156 C 197.734375 136.765625 235.742188 126.242188 272 128.582031 C 265.566406 95.832031 242.175781 67.765625 212.9375 51.976562 C 174.34375 29.753906 125.808594 26.832031 83.703125 41.449219 C 56.21875 51.390625 31.074219 69.519531 15.871094 94.664062 C 1.835938 117.46875 -3.425781 145.539062 3.589844 171.269531 C 10.609375 199.921875 30.488281 223.898438 54.464844 240.269531 C 49.789062 253.71875 45.695312 266.585938 41.015625 280.035156 L 86.628906 255.476562 C 104.753906 261.324219 124.636719 264.246094 143.933594 263.660156 C 138.671875 249.042969 137.503906 233.253906 139.839844 217.464844 Z M 177.265625 89.402344 C 189.546875 84.722656 204.164062 95.25 202.996094 108.113281 C 202.996094 123.316406 183.113281 132.671875 172.003906 122.148438 C 160.308594 113.960938 163.816406 93.496094 177.265625 89.402344 Z M 108.847656 112.207031 C 105.925781 125.070312 88.96875 131.503906 78.441406 122.734375 C 66.746094 114.546875 69.667969 93.496094 83.703125 89.402344 C 97.152344 84.136719 112.941406 98.171875 108.847656 112.207031 Z M 108.847656 112.207031 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
      <g clip-path="url(#75e61c7216)">
        <path fill="#ffffff"
              d="M 367.902344 199.335938 C 358.542969 177.699219 340.417969 160.742188 319.949219 150.214844 C 283.109375 131.503906 237.496094 131.503906 201.242188 150.800781 C 175.511719 163.667969 154.460938 187.058594 148.613281 215.710938 C 143.351562 236.761719 148.027344 258.984375 159.140625 277.695312 C 174.925781 304.59375 204.75 322.136719 235.742188 327.984375 C 258.550781 332.664062 281.355469 329.738281 303.574219 323.308594 C 316.441406 328.570312 328.136719 336.757812 341 342.605469 C 337.492188 331.496094 333.984375 320.96875 330.476562 309.859375 C 344.511719 299.917969 357.375 287.050781 365.5625 271.261719 C 377.257812 249.628906 377.839844 222.144531 367.902344 199.335938 Z M 239.835938 207.523438 C 236.914062 217.464844 221.707031 220.972656 214.691406 212.785156 C 207.089844 205.769531 210.011719 190.566406 219.953125 187.640625 C 231.648438 182.964844 245.097656 195.828125 239.835938 207.523438 Z M 314.6875 208.695312 C 310.59375 218.050781 297.144531 219.804688 290.125 212.785156 C 286.617188 209.863281 286.03125 205.183594 284.863281 201.675781 C 286.617188 194.660156 291.296875 187.058594 299.484375 187.058594 C 310.59375 185.304688 320.535156 198.753906 314.6875 208.695312 Z M 314.6875 208.695312 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon5'" @click="choseIcon">
      <defs>
        <clipPath id="a64c2b2aca">
          <path d="M 0 39.886719 L 375 39.886719 L 375 335.386719 L 0 335.386719 Z M 0 39.886719 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#a64c2b2aca)">
        <path fill="#ffffff"
              d="M 277.496094 183.542969 C 263 180.71875 269.964844 173 269.964844 173 C 269.964844 173 284.273438 149.839844 267.140625 132.894531 C 246.054688 111.996094 194.464844 135.53125 194.464844 135.53125 C 174.886719 141.554688 179.96875 132.707031 182.792969 117.832031 C 182.792969 100.324219 176.769531 70.574219 124.425781 88.085938 C 72.085938 105.785156 27.277344 167.539062 27.277344 167.539062 C -3.789062 208.960938 0.351562 240.589844 0.351562 240.589844 C 8.070312 310.816406 83.570312 330.023438 142.3125 334.539062 C 204.070312 339.246094 287.476562 313.453125 312.703125 260.546875 C 338.121094 207.453125 292.183594 186.554688 277.496094 183.542969 Z M 147.019531 314.769531 C 85.640625 317.59375 35.9375 287.28125 35.9375 246.992188 C 35.9375 206.511719 85.640625 174.128906 147.019531 171.304688 C 208.398438 168.480469 258.105469 193.519531 258.105469 233.8125 C 258.105469 274.101562 208.398438 312.136719 147.019531 314.769531 Z M 134.78125 197.851562 C 73.027344 205.003906 80.183594 262.054688 80.183594 262.054688 C 80.183594 262.054688 79.617188 280.128906 96.75 289.355469 C 132.898438 308.746094 169.988281 297.074219 188.816406 272.972656 C 207.457031 249.0625 196.539062 190.886719 134.78125 197.851562 Z M 119.15625 278.058594 C 107.671875 279.375 98.257812 272.785156 98.257812 263.371094 C 98.257812 253.957031 106.539062 243.980469 118.027344 242.847656 C 131.207031 241.53125 139.867188 249.0625 139.867188 258.664062 C 140.054688 267.890625 130.640625 276.738281 119.15625 278.058594 Z M 155.492188 247.367188 C 151.539062 250.191406 146.832031 249.816406 144.761719 246.425781 C 142.691406 243.039062 143.441406 237.578125 147.398438 234.941406 C 151.914062 231.550781 156.621094 232.492188 158.882812 235.882812 C 160.765625 239.273438 159.257812 244.355469 155.492188 247.367188 Z M 307.621094 158.878906 C 312.703125 158.878906 316.847656 155.300781 317.597656 150.59375 C 317.597656 150.21875 317.789062 149.839844 317.789062 149.464844 C 325.320312 82.625 262.246094 94.109375 262.246094 94.109375 C 256.597656 94.109375 252.265625 98.628906 252.265625 104.089844 C 252.265625 109.550781 256.785156 114.066406 262.246094 114.066406 C 307.433594 104.277344 297.640625 148.898438 297.640625 148.898438 C 297.453125 154.546875 301.972656 158.878906 307.621094 158.878906 Z M 300.277344 42.335938 C 278.4375 37.25 256.03125 41.582031 249.820312 42.898438 C 249.253906 42.898438 248.878906 43.464844 248.5 43.464844 C 248.3125 43.464844 248.125 43.652344 248.125 43.652344 C 241.914062 45.347656 237.394531 50.996094 237.394531 57.773438 C 237.394531 65.679688 243.984375 72.269531 252.078125 72.269531 C 252.078125 72.269531 259.988281 71.140625 265.445312 69.070312 C 270.71875 67 315.90625 67.5625 338.308594 104.652344 C 350.546875 131.765625 343.769531 149.839844 342.828125 152.851562 C 342.828125 152.851562 340.003906 160.007812 340.003906 166.785156 C 340.003906 174.882812 346.59375 179.777344 354.691406 179.777344 C 361.46875 179.777344 367.117188 178.835938 368.8125 167.539062 C 392.910156 88.460938 339.25 51.183594 300.277344 42.335938 Z M 300.277344 42.335938 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon6'" @click="choseIcon">
      <defs>
        <clipPath id="3732b74d0c">
          <path d="M 22.585938 0 L 352.585938 0 L 352.585938 375 L 22.585938 375 Z M 22.585938 0 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#3732b74d0c)">
        <path fill="#ffffff"
              d="M 51.585938 26.464844 C 45.558594 32.328125 40.738281 37.753906 36.902344 42.628906 C 25.726562 56.765625 20.792969 74.847656 23.257812 92.765625 C 27.53125 124.105469 43.53125 185.199219 101.996094 258.128906 C 160.460938 331.054688 216.621094 359.933594 246.320312 370.890625 C 263.25 377.136719 281.988281 376.261719 298.207031 368.425781 C 303.796875 365.738281 310.097656 362.179688 317.167969 357.574219 C 335.246094 343.933594 345.273438 332.863281 350.425781 326.179688 C 353.273438 322.453125 352.890625 317.140625 349.492188 313.90625 L 267.960938 236.539062 C 263.523438 232.320312 256.457031 232.757812 252.511719 237.472656 L 219.199219 277.6875 C 215.636719 281.960938 209.664062 283.386719 204.621094 281.03125 C 169.609375 264.8125 111.257812 198.347656 101.886719 152.980469 C 100.789062 147.554688 103.367188 142.023438 108.351562 139.5 L 154.871094 115.722656 C 160.351562 112.925781 162.269531 106.078125 159.144531 100.871094 L 101.230469 4.4375 C 98.816406 0.382812 93.722656 -1.152344 89.449219 0.875 C 81.832031 4.4375 68.847656 11.835938 51.585938 26.464844 Z M 51.585938 26.464844 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon7'" @click="choseIcon">
      <defs>
        <clipPath id="fd9e4914ee">
          <path d="M 18.75 0 L 356.25 0 L 356.25 372.75 L 18.75 372.75 Z M 18.75 0 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#fd9e4914ee)">
        <path fill="#ffffff"
              d="M 106.371094 235.90625 C 100.535156 232.632812 97.054688 226.683594 97.054688 220.019531 L 97.054688 152.152344 C 97.054688 151.359375 97.242188 150.609375 97.355469 149.835938 L 32.027344 117.179688 C 29.128906 115.730469 25.929688 115.863281 23.160156 117.578125 C 20.394531 119.289062 18.851562 122.074219 18.851562 125.3125 L 18.851562 275.207031 C 18.851562 284.765625 24.007812 293.59375 32.347656 298.28125 L 163.265625 371.851562 C 165.207031 372.925781 167.410156 372.925781 169.308594 371.796875 C 171.230469 370.6875 172.320312 368.785156 172.320312 366.5625 L 172.320312 280.605469 C 172.320312 275.882812 169.761719 271.515625 165.640625 269.21875 Z M 242.675781 135.511719 L 185.683594 103.140625 C 183.632812 101.972656 181.335938 101.972656 179.285156 103.140625 L 122.292969 135.511719 C 121.671875 135.871094 121.332031 136.492188 121.351562 137.207031 C 121.390625 137.921875 121.765625 138.523438 122.40625 138.84375 L 180.226562 167.753906 C 181.695312 168.488281 183.273438 168.488281 184.742188 167.753906 L 242.5625 138.84375 C 243.203125 138.523438 243.578125 137.921875 243.617188 137.207031 C 243.632812 136.492188 243.296875 135.871094 242.675781 135.511719 Z M 247.042969 150.628906 L 191.574219 178.371094 C 189.824219 179.234375 188.789062 180.910156 188.789062 182.867188 L 188.789062 254.183594 C 188.789062 255.105469 189.242188 255.894531 190.03125 256.367188 C 190.820312 256.816406 191.746094 256.835938 192.535156 256.382812 L 249.300781 224.480469 C 251.332031 223.332031 252.519531 221.339844 252.519531 218.984375 L 252.519531 154.015625 C 252.519531 152.660156 251.859375 151.511719 250.730469 150.796875 C 249.582031 150.082031 248.246094 150.023438 247.042969 150.628906 Z M 173.394531 178.371094 L 117.925781 150.628906 C 116.722656 150.023438 115.386719 150.082031 114.257812 150.796875 C 113.109375 151.511719 112.449219 152.660156 112.449219 154.015625 L 112.449219 218.984375 C 112.449219 221.339844 113.636719 223.332031 115.667969 224.480469 L 172.433594 256.382812 C 173.222656 256.835938 174.144531 256.816406 174.9375 256.367188 C 175.726562 255.894531 176.179688 255.105469 176.179688 254.183594 L 176.179688 182.867188 C 176.179688 180.910156 175.144531 179.234375 173.394531 178.371094 Z M 172.753906 88.894531 C 178.4375 85.65625 185.230469 85.65625 190.933594 88.894531 L 250.464844 122.714844 C 252.441406 123.84375 253.984375 125.445312 255.152344 127.289062 L 332.1875 88.78125 C 333.714844 88.007812 334.636719 86.578125 334.691406 84.867188 C 334.75 83.152344 333.9375 81.628906 332.453125 80.78125 L 195.1875 2.785156 C 190.277344 0 184.722656 0 179.8125 2.785156 L 42.527344 80.78125 C 41.042969 81.628906 40.234375 83.152344 40.289062 84.867188 C 40.34375 86.578125 41.269531 88.007812 42.8125 88.78125 L 112.222656 123.488281 C 112.582031 123.222656 112.882812 122.902344 113.257812 122.695312 Z M 351.820312 117.578125 C 349.070312 115.863281 345.871094 115.730469 342.972656 117.179688 L 269.796875 153.75 C 267.859375 154.730469 266.617188 156.726562 266.617188 158.910156 L 266.617188 219.71875 C 266.617188 226.496094 262.964844 232.746094 257.074219 236.058594 L 211.5625 261.617188 C 206.066406 264.703125 202.679688 270.519531 202.679688 276.824219 L 202.679688 366.5625 C 202.679688 368.785156 203.769531 370.6875 205.671875 371.796875 C 207.589844 372.925781 209.773438 372.925781 211.714844 371.851562 L 348.148438 295.175781 C 353.082031 292.40625 356.148438 287.195312 356.148438 281.53125 L 356.148438 125.3125 C 356.148438 122.074219 354.585938 119.289062 351.820312 117.578125 Z M 351.820312 117.578125 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon8'" @click="choseIcon">
      <defs>
        <clipPath id="d88d2e0d49">
          <path d="M 50.625 0 L 324.375 0 L 324.375 375 L 50.625 375 Z M 50.625 0 " clip-rule="nonzero"/>
        </clipPath>
      </defs>
      <g clip-path="url(#d88d2e0d49)">
        <path fill="#ffffff"
              d="M 323.960938 67.027344 C 323.988281 67.304688 324.003906 67.589844 324.003906 67.875 L 324.003906 366.515625 C 324.003906 371.199219 320.203125 375 315.519531 375 L 59.296875 375 C 54.609375 375 50.8125 371.199219 50.8125 366.515625 L 50.8125 8.484375 C 50.8125 3.800781 54.609375 0 59.296875 0 L 256.128906 0 C 256.414062 0 256.695312 0.015625 256.976562 0.0429688 C 257.183594 0.0625 257.382812 0.0976562 257.585938 0.132812 C 257.65625 0.144531 257.730469 0.148438 257.800781 0.164062 C 258.042969 0.214844 258.28125 0.277344 258.515625 0.347656 C 258.542969 0.351562 258.574219 0.359375 258.601562 0.367188 C 258.839844 0.441406 259.074219 0.523438 259.304688 0.617188 C 259.328125 0.628906 259.355469 0.636719 259.382812 0.648438 C 259.597656 0.738281 259.808594 0.839844 260.015625 0.945312 C 260.054688 0.964844 260.09375 0.984375 260.132812 1.003906 C 260.320312 1.101562 260.496094 1.214844 260.675781 1.328125 C 260.730469 1.363281 260.792969 1.394531 260.847656 1.433594 C 261.007812 1.539062 261.15625 1.65625 261.304688 1.773438 C 261.375 1.824219 261.449219 1.875 261.515625 1.929688 C 261.671875 2.058594 261.816406 2.195312 261.960938 2.335938 C 262.015625 2.382812 262.074219 2.429688 262.128906 2.484375 L 321.515625 61.875 C 321.570312 61.925781 321.617188 61.984375 321.667969 62.039062 C 321.804688 62.1875 321.945312 62.332031 322.074219 62.488281 C 322.128906 62.554688 322.175781 62.628906 322.230469 62.695312 C 322.34375 62.847656 322.460938 62.996094 322.570312 63.15625 C 322.605469 63.210938 322.636719 63.273438 322.675781 63.328125 C 322.789062 63.507812 322.898438 63.683594 322.996094 63.867188 C 323.019531 63.910156 323.035156 63.949219 323.054688 63.988281 C 323.164062 64.195312 323.265625 64.40625 323.355469 64.621094 C 323.367188 64.648438 323.371094 64.675781 323.382812 64.699219 C 323.476562 64.929688 323.5625 65.160156 323.632812 65.402344 C 323.644531 65.429688 323.648438 65.457031 323.65625 65.488281 C 323.726562 65.722656 323.789062 65.960938 323.835938 66.203125 C 323.851562 66.273438 323.855469 66.347656 323.871094 66.417969 C 323.902344 66.617188 323.941406 66.820312 323.960938 67.027344 Z M 264.613281 28.96875 L 264.613281 59.386719 L 295.035156 59.386719 Z M 67.78125 358.03125 L 307.035156 358.03125 L 307.035156 76.355469 L 256.128906 76.355469 C 251.445312 76.355469 247.644531 72.558594 247.644531 67.875 L 247.644531 16.96875 L 67.78125 16.96875 Z M 115.6875 288.75 C 110.328125 288.75 106.503906 284.921875 106.503906 279.566406 C 106.503906 274.210938 110.328125 270 115.6875 270 L 171.554688 270 C 176.910156 270 180.738281 274.210938 180.738281 279.566406 C 180.738281 284.921875 176.910156 288.75 171.554688 288.75 Z M 115.6875 326.25 C 110.328125 326.25 106.503906 322.421875 106.503906 317.066406 C 106.503906 311.710938 110.328125 307.5 115.6875 307.5 L 171.554688 307.5 C 176.910156 307.5 180.738281 311.710938 180.738281 317.066406 C 180.738281 322.421875 176.910156 326.25 171.554688 326.25 Z M 115.6875 213.75 C 110.328125 213.75 106.503906 209.921875 106.503906 204.566406 C 106.503906 199.210938 110.328125 195 115.6875 195 L 257.804688 195 C 263.160156 195 266.988281 199.210938 266.988281 204.566406 C 266.988281 209.921875 263.160156 213.75 257.804688 213.75 Z M 115.6875 251.25 C 110.328125 251.25 106.503906 247.421875 106.503906 242.066406 C 106.503906 236.710938 110.328125 232.5 115.6875 232.5 L 257.804688 232.5 C 263.160156 232.5 266.988281 236.710938 266.988281 242.066406 C 266.988281 247.421875 263.160156 251.25 257.804688 251.25 Z M 201.9375 288.75 C 196.578125 288.75 192.753906 284.921875 192.753906 279.566406 C 192.753906 274.210938 196.578125 270 201.9375 270 L 257.804688 270 C 263.160156 270 266.988281 274.210938 266.988281 279.566406 C 266.988281 284.921875 263.160156 288.75 257.804688 288.75 Z M 201.9375 326.25 C 196.578125 326.25 192.753906 322.421875 192.753906 317.066406 C 192.753906 311.710938 196.578125 307.5 201.9375 307.5 L 257.804688 307.5 C 263.160156 307.5 266.988281 311.710938 266.988281 317.066406 C 266.988281 322.421875 263.160156 326.25 257.804688 326.25 Z M 210.46875 161.769531 L 214.949219 161.769531 C 217.003906 161.769531 219.175781 163.257812 219.796875 165.097656 L 222.324219 172.59375 C 222.945312 174.433594 221.5625 175.925781 219.234375 175.925781 L 145.964844 175.925781 C 143.636719 175.925781 142.253906 174.433594 142.875 172.59375 L 145.402344 165.097656 C 146.023438 163.257812 148.195312 161.769531 150.253906 161.769531 L 152.53125 161.769531 C 152.09375 160.8125 151.847656 159.753906 151.847656 158.636719 L 151.847656 129.214844 C 151.847656 112.839844 165.125 99.5625 181.5 99.5625 C 197.875 99.5625 211.152344 112.839844 211.152344 129.214844 L 211.152344 158.636719 C 211.152344 159.753906 210.90625 160.8125 210.46875 161.769531 Z M 197.917969 130.585938 C 197.917969 130.585938 197.917969 130.589844 197.917969 130.59375 C 197.917969 132.324219 199.320312 133.730469 201.050781 133.730469 C 202.796875 133.730469 204.214844 132.3125 204.214844 130.570312 C 204.21875 129.414062 204.214844 128.796875 204.207031 128.710938 C 203.210938 116.640625 193.195312 107.121094 180.832031 106.902344 C 180.777344 106.898438 180.269531 106.898438 179.308594 106.898438 C 177.566406 106.898438 176.152344 108.308594 176.152344 110.050781 C 176.152344 111.796875 177.566406 113.210938 179.308594 113.210938 C 180.242188 113.210938 180.730469 113.210938 180.78125 113.214844 C 189.730469 113.40625 197.035156 120.226562 197.90625 128.929688 C 197.917969 129.046875 197.921875 129.597656 197.917969 130.585938 Z M 181.5 71.25 C 184.351562 71.25 186.664062 73.5625 186.664062 76.414062 L 186.664062 90.570312 C 186.664062 93.425781 184.351562 95.738281 181.5 95.738281 C 178.648438 95.738281 176.335938 93.425781 176.335938 90.570312 L 176.335938 76.414062 C 176.335938 73.5625 178.648438 71.25 181.5 71.25 Z M 218.886719 83.007812 C 221.277344 84.5625 221.957031 87.761719 220.40625 90.15625 L 212.695312 102.027344 C 211.140625 104.417969 207.941406 105.097656 205.550781 103.546875 C 203.15625 101.992188 202.476562 98.792969 204.03125 96.402344 L 211.742188 84.527344 C 213.292969 82.136719 216.492188 81.457031 218.886719 83.007812 Z M 240.453125 112.296875 C 241.65625 114.882812 240.539062 117.957031 237.953125 119.164062 L 225.125 125.144531 C 222.539062 126.351562 219.464844 125.230469 218.261719 122.648438 C 217.054688 120.0625 218.171875 116.988281 220.757812 115.78125 L 233.589844 109.800781 C 236.171875 108.59375 239.246094 109.714844 240.453125 112.296875 Z M 122.546875 112.296875 C 123.753906 109.714844 126.828125 108.59375 129.410156 109.800781 L 142.242188 115.78125 C 144.828125 116.988281 145.945312 120.0625 144.738281 122.648438 C 143.535156 125.230469 140.460938 126.351562 137.875 125.144531 L 125.046875 119.164062 C 122.460938 117.957031 121.34375 114.882812 122.546875 112.296875 Z M 144.113281 83.007812 C 146.507812 81.457031 149.707031 82.136719 151.257812 84.527344 L 158.96875 96.402344 C 160.523438 98.792969 159.84375 101.992188 157.449219 103.546875 C 155.058594 105.097656 151.859375 104.417969 150.304688 102.027344 L 142.59375 90.15625 C 141.042969 87.761719 141.722656 84.5625 144.113281 83.007812 Z M 144.113281 83.007812 "
              fill-opacity="1" fill-rule="nonzero"/>
      </g>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon9'" @click="choseIcon">
      <path fill="#ffffff"
            d="M 44.664062 246.628906 C 42.355469 245.332031 40.128906 244.003906 37.988281 242.644531 C 13.742188 227.292969 -0.0078125 207.953125 -0.0078125 187.472656 C -0.0078125 166.996094 13.742188 147.65625 37.988281 132.300781 C 40.128906 130.945312 42.355469 129.617188 44.664062 128.320312 C 43.949219 125.773438 43.3125 123.257812 42.757812 120.78125 C 36.46875 92.78125 40.421875 69.386719 54.90625 54.90625 C 69.386719 40.421875 92.78125 36.46875 120.78125 42.757812 C 123.257812 43.3125 125.773438 43.949219 128.320312 44.664062 C 129.617188 42.355469 130.945312 40.128906 132.300781 37.988281 C 147.65625 13.742188 166.996094 -0.0078125 187.472656 -0.0078125 C 207.953125 -0.0078125 227.292969 13.742188 242.644531 37.988281 C 244.003906 40.128906 245.332031 42.355469 246.628906 44.664062 C 249.175781 43.949219 251.6875 43.3125 254.164062 42.757812 C 282.167969 36.46875 305.5625 40.425781 320.042969 54.90625 C 334.523438 69.386719 338.476562 92.78125 332.191406 120.78125 C 331.632812 123.257812 331 125.773438 330.285156 128.320312 C 332.589844 129.617188 334.816406 130.945312 336.960938 132.300781 C 361.207031 147.65625 374.953125 166.996094 374.953125 187.472656 C 374.953125 207.953125 361.207031 227.292969 336.960938 242.644531 C 334.816406 244.003906 332.589844 245.332031 330.285156 246.628906 C 331 249.175781 331.632812 251.6875 332.191406 254.164062 C 338.476562 282.167969 334.523438 305.5625 320.042969 320.042969 C 305.5625 334.523438 282.167969 338.476562 254.164062 332.191406 C 251.6875 331.632812 249.175781 331 246.628906 330.285156 C 245.332031 332.589844 244.003906 334.816406 242.644531 336.960938 C 227.292969 361.207031 207.953125 374.953125 187.472656 374.953125 C 166.996094 374.953125 147.65625 361.207031 132.300781 336.960938 C 130.945312 334.816406 129.617188 332.589844 128.320312 330.285156 C 125.773438 331 123.257812 331.632812 120.78125 332.191406 C 92.78125 338.476562 69.386719 334.523438 54.90625 320.042969 C 40.421875 305.5625 36.46875 282.167969 42.757812 254.164062 C 43.3125 251.6875 43.949219 249.175781 44.664062 246.628906 Z M 48.835938 141.191406 C 47.550781 141.945312 46.296875 142.710938 45.070312 143.488281 C 25.417969 155.933594 13.234375 170.875 13.234375 187.472656 C 13.234375 204.074219 25.417969 219.015625 45.070312 231.460938 C 46.296875 232.234375 47.550781 233 48.835938 233.753906 C 54.234375 218.992188 62.007812 203.351562 71.9375 187.472656 C 62.007812 171.597656 54.234375 155.957031 48.835938 141.191406 Z M 122.167969 56.714844 C 120.726562 56.339844 119.296875 55.996094 117.882812 55.679688 C 95.183594 50.582031 76.007812 52.53125 64.269531 64.269531 C 52.53125 76.007812 50.582031 95.183594 55.679688 117.882812 C 55.996094 119.296875 56.339844 120.726562 56.714844 122.167969 C 70.972656 115.546875 87.527344 109.984375 105.777344 105.777344 C 109.984375 87.527344 115.546875 70.972656 122.167969 56.714844 Z M 233.753906 48.835938 C 233 47.550781 232.234375 46.296875 231.460938 45.070312 C 219.015625 25.417969 204.074219 13.234375 187.472656 13.234375 C 170.875 13.234375 155.933594 25.417969 143.488281 45.070312 C 142.710938 46.296875 141.945312 47.550781 141.191406 48.835938 C 155.957031 54.234375 171.597656 62.007812 187.472656 71.9375 C 203.351562 62.007812 218.992188 54.234375 233.753906 48.835938 Z M 318.234375 122.167969 C 318.605469 120.726562 318.953125 119.296875 319.269531 117.882812 C 324.367188 95.183594 322.417969 76.007812 310.679688 64.269531 C 298.941406 52.53125 279.761719 50.582031 257.066406 55.679688 C 255.652344 55.996094 254.222656 56.339844 252.78125 56.714844 C 259.402344 70.972656 264.964844 87.527344 269.171875 105.777344 C 287.421875 109.984375 303.976562 115.546875 318.234375 122.167969 Z M 326.113281 233.753906 C 327.398438 233 328.652344 232.234375 329.878906 231.460938 C 349.53125 219.015625 361.714844 204.074219 361.714844 187.472656 C 361.714844 170.875 349.53125 155.933594 329.878906 143.488281 C 328.652344 142.710938 327.398438 141.945312 326.113281 141.191406 C 320.710938 155.957031 312.941406 171.597656 303.011719 187.472656 C 312.941406 203.351562 320.710938 218.992188 326.113281 233.753906 Z M 252.78125 318.234375 C 254.222656 318.605469 255.652344 318.953125 257.066406 319.269531 C 279.761719 324.367188 298.941406 322.417969 310.679688 310.679688 C 322.417969 298.941406 324.367188 279.761719 319.269531 257.066406 C 318.953125 255.652344 318.605469 254.222656 318.234375 252.78125 C 303.976562 259.402344 287.417969 264.964844 269.171875 269.171875 C 264.964844 287.417969 259.402344 303.976562 252.78125 318.234375 Z M 141.191406 326.113281 C 141.945312 327.398438 142.710938 328.652344 143.488281 329.878906 C 155.933594 349.53125 170.875 361.714844 187.472656 361.714844 C 204.074219 361.714844 219.015625 349.53125 231.460938 329.878906 C 232.234375 328.652344 233 327.398438 233.753906 326.113281 C 218.992188 320.710938 203.351562 312.941406 187.472656 303.011719 C 171.597656 312.941406 155.957031 320.710938 141.191406 326.113281 Z M 56.714844 252.78125 C 56.339844 254.222656 55.996094 255.652344 55.679688 257.066406 C 50.582031 279.761719 52.53125 298.941406 64.269531 310.679688 C 76.007812 322.417969 95.183594 324.367188 117.882812 319.269531 C 119.296875 318.953125 120.726562 318.605469 122.167969 318.234375 C 115.546875 303.976562 109.984375 287.417969 105.777344 269.171875 C 87.527344 264.964844 70.972656 259.402344 56.714844 252.78125 Z M 102.828125 120.058594 C 87.167969 124.015625 72.949219 129.039062 60.632812 134.933594 C 65.175781 147.8125 71.675781 161.421875 79.949219 175.289062 C 85.621094 167.070312 91.847656 158.832031 98.605469 150.664062 C 99.605469 140.109375 101.023438 129.882812 102.828125 120.058594 Z M 79.949219 199.660156 C 71.675781 213.527344 65.175781 227.132812 60.632812 240.011719 C 72.949219 245.90625 87.167969 250.933594 102.828125 254.886719 C 101.023438 245.066406 99.605469 234.835938 98.605469 224.285156 C 91.847656 216.117188 85.621094 207.878906 79.949219 199.660156 Z M 175.289062 79.949219 C 161.421875 71.675781 147.8125 65.175781 134.933594 60.632812 C 129.039062 72.949219 124.015625 87.167969 120.058594 102.828125 C 129.882812 101.023438 140.109375 99.605469 150.664062 98.605469 C 158.832031 91.847656 167.070312 85.621094 175.289062 79.949219 Z M 254.886719 102.828125 C 250.933594 87.167969 245.90625 72.949219 240.011719 60.632812 C 227.132812 65.175781 213.527344 71.675781 199.660156 79.949219 C 207.878906 85.621094 216.117188 91.847656 224.285156 98.605469 C 234.835938 99.605469 245.066406 101.023438 254.886719 102.828125 Z M 294.996094 175.289062 C 303.273438 161.421875 309.773438 147.8125 314.3125 134.933594 C 301.996094 129.039062 287.78125 124.015625 272.121094 120.058594 C 273.921875 129.882812 275.34375 140.109375 276.34375 150.664062 C 283.097656 158.832031 289.328125 167.070312 294.996094 175.289062 Z M 272.121094 254.886719 C 287.78125 250.933594 301.996094 245.90625 314.3125 240.011719 C 309.773438 227.132812 303.273438 213.527344 294.996094 199.660156 C 289.328125 207.878906 283.097656 216.117188 276.34375 224.285156 C 275.34375 234.835938 273.921875 245.066406 272.121094 254.886719 Z M 199.660156 294.996094 C 213.527344 303.273438 227.132812 309.773438 240.011719 314.3125 C 245.90625 301.996094 250.933594 287.78125 254.886719 272.121094 C 245.066406 273.921875 234.835938 275.34375 224.285156 276.34375 C 216.117188 283.097656 207.878906 289.328125 199.660156 294.996094 Z M 120.058594 272.121094 C 124.015625 287.78125 129.039062 301.996094 134.933594 314.3125 C 147.8125 309.773438 161.421875 303.273438 175.289062 294.996094 C 167.070312 289.328125 158.832031 283.097656 150.664062 276.34375 C 140.109375 275.34375 129.882812 273.921875 120.058594 272.121094 Z M 97.109375 173.996094 C 93.78125 178.492188 90.621094 182.988281 87.640625 187.472656 C 90.621094 191.957031 93.78125 196.457031 97.109375 200.953125 C 96.960938 196.5 96.882812 192.007812 96.882812 187.472656 C 96.882812 182.941406 96.960938 178.449219 97.109375 173.996094 Z M 116.878906 116.878906 C 115.816406 122.160156 114.871094 127.574219 114.046875 133.105469 C 117.085938 129.851562 120.210938 126.621094 123.417969 123.417969 C 126.621094 120.210938 129.851562 117.085938 133.105469 114.046875 C 127.574219 114.871094 122.160156 115.816406 116.878906 116.878906 Z M 114.046875 241.839844 C 114.871094 247.375 115.816406 252.789062 116.878906 258.066406 C 122.160156 259.132812 127.574219 260.078125 133.105469 260.902344 C 129.851562 257.859375 126.621094 254.738281 123.417969 251.53125 C 120.210938 248.328125 117.085938 245.09375 114.046875 241.839844 Z M 187.472656 87.640625 C 182.988281 90.621094 178.492188 93.78125 173.996094 97.109375 C 178.449219 96.957031 182.941406 96.882812 187.472656 96.882812 C 192.007812 96.882812 196.5 96.957031 200.953125 97.109375 C 196.457031 93.78125 191.957031 90.621094 187.472656 87.640625 Z M 258.066406 116.878906 C 252.789062 115.816406 247.375 114.871094 241.839844 114.046875 C 245.09375 117.085938 248.328125 120.210938 251.53125 123.417969 C 254.738281 126.621094 257.859375 129.851562 260.902344 133.105469 C 260.078125 127.574219 259.132812 122.160156 258.066406 116.878906 Z M 287.308594 187.472656 C 284.328125 182.988281 281.167969 178.492188 277.839844 173.996094 C 277.988281 178.449219 278.066406 182.941406 278.066406 187.472656 C 278.066406 192.007812 277.988281 196.5 277.839844 200.953125 C 281.167969 196.457031 284.328125 191.957031 287.308594 187.472656 Z M 258.066406 258.066406 C 259.132812 252.789062 260.078125 247.375 260.902344 241.839844 C 257.859375 245.09375 254.738281 248.328125 251.53125 251.53125 C 248.328125 254.738281 245.09375 257.859375 241.839844 260.902344 C 247.375 260.078125 252.789062 259.132812 258.066406 258.066406 Z M 187.472656 287.308594 C 191.957031 284.328125 196.457031 281.167969 200.953125 277.839844 C 196.5 277.988281 192.007812 278.066406 187.472656 278.066406 C 182.941406 278.066406 178.449219 277.988281 173.996094 277.839844 C 178.492188 281.167969 182.988281 284.328125 187.472656 287.308594 Z M 158.925781 200.800781 L 149.03125 225.066406 L 137.070312 220.191406 L 165.882812 149.511719 L 177.847656 149.511719 L 206.660156 220.191406 L 194.699219 225.066406 L 184.804688 200.800781 Z M 179.539062 187.878906 L 171.863281 169.058594 L 164.191406 187.878906 Z M 213.3125 148.460938 L 226.230469 148.460938 L 226.230469 223.773438 L 213.3125 223.773438 Z M 213.3125 148.460938 "
            fill-opacity="1" fill-rule="evenodd"/>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon10'" @click="choseIcon">
      <path fill="#ffffff"
            d="M 81.523438 0 C 59.101562 0 40.761719 18.34375 40.761719 40.761719 C 40.761719 63.179688 59.101562 81.523438 81.523438 81.523438 C 103.941406 81.523438 122.28125 63.179688 122.28125 40.761719 C 122.28125 18.34375 103.941406 0 81.523438 0 Z M 220.109375 0 L 220.109375 16.304688 L 138.585938 16.304688 L 138.585938 32.609375 L 358.695312 32.609375 L 358.695312 244.566406 L 146.738281 244.566406 L 146.738281 260.871094 L 216.03125 260.871094 L 171.195312 350.542969 L 187.5 350.542969 L 228.261719 269.023438 L 269.023438 350.542969 L 285.324219 350.542969 L 240.488281 260.871094 L 366.847656 260.871094 C 371.335938 260.871094 375 257.207031 375 252.71875 L 375 24.457031 C 375 19.964844 371.335938 16.304688 366.847656 16.304688 L 236.414062 16.304688 L 236.414062 0 Z M 81.523438 16.304688 C 95.121094 16.304688 105.976562 27.164062 105.976562 40.761719 C 105.976562 54.359375 95.121094 65.21875 81.523438 65.21875 C 67.925781 65.21875 57.066406 54.359375 57.066406 40.761719 C 57.066406 27.164062 67.925781 16.304688 81.523438 16.304688 Z M 44.835938 89.675781 C 20.15625 89.675781 0 109.832031 0 134.511719 L 0 234.882812 C -0.03125 235.234375 -0.03125 235.554688 0 235.902344 L 0 236.414062 C -0.03125 237.175781 0.0625 237.972656 0.253906 238.707031 C 1.464844 251.03125 11.847656 260.871094 24.457031 260.871094 C 27.324219 260.871094 30.03125 260.265625 32.609375 259.339844 L 32.609375 346.46875 C 32.609375 362.136719 45.472656 375 61.140625 375 C 69.101562 375 76.332031 371.65625 81.523438 366.339844 C 86.710938 371.65625 93.941406 375 101.902344 375 C 117.570312 375 130.433594 362.136719 130.433594 346.46875 L 130.433594 138.585938 L 220.109375 138.585938 C 233.515625 138.585938 244.566406 127.535156 244.566406 114.128906 C 244.566406 100.882812 233.800781 89.960938 220.617188 89.675781 C 220.457031 89.675781 220.269531 89.675781 220.109375 89.675781 L 105.976562 89.675781 C 102.824219 89.640625 99.960938 91.425781 98.589844 94.257812 L 81.523438 128.398438 L 64.453125 94.257812 C 63.082031 91.425781 60.21875 89.640625 57.066406 89.675781 Z M 44.835938 105.976562 L 51.96875 105.976562 L 74.132812 150.304688 C 75.472656 153.171875 78.371094 155.019531 81.523438 155.019531 C 84.675781 155.019531 87.570312 153.171875 88.910156 150.304688 L 111.074219 105.976562 L 220.109375 105.976562 C 220.363281 105.976562 220.617188 105.976562 220.871094 105.976562 C 225.109375 106.359375 228.261719 109.800781 228.261719 114.128906 C 228.261719 118.746094 224.726562 122.28125 220.109375 122.28125 L 122.28125 122.28125 C 117.792969 122.28125 114.128906 125.945312 114.128906 130.433594 L 114.128906 346.46875 C 114.128906 353.3125 108.75 358.695312 101.902344 358.695312 C 95.46875 358.695312 90.277344 353.984375 89.675781 347.742188 L 89.675781 345.703125 C 89.675781 345.449219 89.675781 345.195312 89.675781 344.9375 L 89.675781 260.871094 C 89.769531 258.511719 88.8125 256.253906 87.125 254.660156 C 85.40625 253.035156 83.082031 252.238281 80.757812 252.460938 C 80.40625 252.527344 80.058594 252.621094 79.738281 252.71875 C 75.949219 253.578125 73.273438 256.984375 73.371094 260.871094 L 73.371094 344.9375 C 73.335938 345.289062 73.335938 345.609375 73.371094 345.957031 L 73.371094 347.742188 C 72.765625 353.984375 67.574219 358.695312 61.140625 358.695312 C 54.292969 358.695312 48.914062 353.3125 48.914062 346.46875 L 48.914062 154.890625 C 48.976562 152.375 47.863281 149.988281 45.917969 148.394531 C 44.007812 146.804688 41.429688 146.199219 38.976562 146.738281 C 35.1875 147.597656 32.511719 151.007812 32.609375 154.890625 L 32.609375 235.140625 C 32.609375 235.394531 32.609375 235.648438 32.609375 235.902344 L 32.609375 236.414062 C 32.609375 241.03125 29.074219 244.566406 24.457031 244.566406 C 20.03125 244.566406 16.558594 241.285156 16.304688 236.921875 C 16.304688 236.761719 16.304688 236.570312 16.304688 236.414062 C 16.367188 235.902344 16.367188 235.394531 16.304688 234.882812 L 16.304688 134.511719 C 16.304688 118.652344 28.976562 105.976562 44.835938 105.976562 Z M 44.835938 105.976562 "
            fill-opacity="1" fill-rule="nonzero"/>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon11'" @click="choseIcon">
      <path fill="#ffffff"
            d="M 187.5 75 C 185.660156 75 183.820312 75.046875 181.980469 75.136719 C 180.140625 75.226562 178.304688 75.359375 176.472656 75.542969 C 174.640625 75.722656 172.8125 75.949219 170.992188 76.21875 C 169.171875 76.488281 167.359375 76.800781 165.550781 77.160156 C 163.746094 77.519531 161.949219 77.925781 160.164062 78.371094 C 158.378906 78.820312 156.605469 79.308594 154.84375 79.84375 C 153.082031 80.378906 151.332031 80.957031 149.601562 81.578125 C 147.867188 82.195312 146.148438 82.859375 144.449219 83.5625 C 142.746094 84.269531 141.0625 85.015625 139.398438 85.800781 C 137.734375 86.589844 136.089844 87.414062 134.46875 88.285156 C 132.84375 89.152344 131.242188 90.058594 129.664062 91.003906 C 128.085938 91.953125 126.527344 92.9375 125 93.960938 C 123.46875 94.984375 121.960938 96.042969 120.484375 97.140625 C 119.003906 98.234375 117.554688 99.367188 116.128906 100.535156 C 114.707031 101.703125 113.3125 102.90625 111.949219 104.144531 C 110.585938 105.378906 109.253906 106.648438 107.949219 107.949219 C 106.648438 109.253906 105.378906 110.585938 104.144531 111.949219 C 102.90625 113.3125 101.703125 114.707031 100.535156 116.128906 C 99.367188 117.554688 98.234375 119.003906 97.140625 120.484375 C 96.042969 121.960938 94.984375 123.46875 93.960938 125 C 92.9375 126.527344 91.953125 128.085938 91.003906 129.664062 C 90.058594 131.242188 89.152344 132.84375 88.285156 134.46875 C 87.414062 136.089844 86.589844 137.734375 85.800781 139.398438 C 85.015625 141.0625 84.269531 142.746094 83.5625 144.449219 C 82.859375 146.148438 82.195312 147.867188 81.578125 149.601562 C 80.957031 151.332031 80.378906 153.082031 79.84375 154.84375 C 79.308594 156.605469 78.820312 158.378906 78.371094 160.164062 C 77.925781 161.949219 77.519531 163.746094 77.160156 165.550781 C 76.800781 167.359375 76.488281 169.171875 76.21875 170.992188 C 75.949219 172.8125 75.722656 174.640625 75.542969 176.472656 C 75.359375 178.304688 75.226562 180.140625 75.136719 181.980469 C 75.046875 183.820312 75 185.660156 75 187.5 C 75 189.339844 75.046875 191.179688 75.136719 193.019531 C 75.226562 194.859375 75.359375 196.695312 75.542969 198.527344 C 75.722656 200.359375 75.949219 202.1875 76.21875 204.007812 C 76.488281 205.828125 76.800781 207.640625 77.160156 209.449219 C 77.519531 211.253906 77.925781 213.050781 78.371094 214.835938 C 78.820312 216.621094 79.308594 218.394531 79.84375 220.15625 C 80.378906 221.917969 80.957031 223.667969 81.578125 225.398438 C 82.195312 227.132812 82.859375 228.851562 83.5625 230.550781 C 84.269531 232.253906 85.015625 233.933594 85.800781 235.601562 C 86.589844 237.265625 87.414062 238.910156 88.285156 240.53125 C 89.152344 242.15625 90.058594 243.757812 91.003906 245.335938 C 91.953125 246.914062 92.9375 248.472656 93.960938 250 C 94.984375 251.53125 96.042969 253.039062 97.140625 254.515625 C 98.234375 255.996094 99.367188 257.445312 100.535156 258.871094 C 101.703125 260.292969 102.90625 261.6875 104.144531 263.050781 C 105.378906 264.414062 106.648438 265.746094 107.949219 267.050781 C 109.253906 268.351562 110.585938 269.621094 111.949219 270.855469 C 113.3125 272.09375 114.707031 273.296875 116.128906 274.464844 C 117.554688 275.632812 119.003906 276.765625 120.484375 277.859375 C 121.960938 278.957031 123.46875 280.015625 125 281.039062 C 126.527344 282.0625 128.085938 283.046875 129.664062 283.996094 C 131.242188 284.941406 132.84375 285.847656 134.46875 286.714844 C 136.089844 287.585938 137.734375 288.410156 139.398438 289.199219 C 141.0625 289.984375 142.746094 290.730469 144.449219 291.4375 C 146.148438 292.140625 147.867188 292.804688 149.601562 293.421875 C 151.332031 294.042969 153.082031 294.621094 154.84375 295.15625 C 156.605469 295.691406 158.378906 296.179688 160.164062 296.628906 C 161.949219 297.074219 163.746094 297.480469 165.550781 297.839844 C 167.359375 298.199219 169.171875 298.511719 170.992188 298.78125 C 172.8125 299.050781 174.640625 299.277344 176.472656 299.457031 C 178.304688 299.640625 180.140625 299.773438 181.980469 299.863281 C 183.820312 299.953125 185.660156 300 187.5 300 C 189.339844 300 191.179688 299.953125 193.019531 299.863281 C 194.859375 299.773438 196.695312 299.640625 198.527344 299.457031 C 200.359375 299.277344 202.1875 299.050781 204.007812 298.78125 C 205.828125 298.511719 207.640625 298.199219 209.449219 297.839844 C 211.253906 297.480469 213.050781 297.074219 214.835938 296.628906 C 216.621094 296.179688 218.394531 295.691406 220.15625 295.15625 C 221.917969 294.621094 223.667969 294.042969 225.398438 293.421875 C 227.132812 292.804688 228.851562 292.140625 230.550781 291.4375 C 232.253906 290.730469 233.933594 289.984375 235.601562 289.199219 C 237.265625 288.410156 238.910156 287.585938 240.53125 286.714844 C 242.15625 285.847656 243.757812 284.941406 245.335938 283.996094 C 246.914062 283.046875 248.472656 282.0625 250 281.039062 C 251.53125 280.015625 253.039062 278.957031 254.515625 277.859375 C 255.996094 276.765625 257.445312 275.632812 258.871094 274.464844 C 260.292969 273.296875 261.6875 272.09375 263.050781 270.855469 C 264.414062 269.621094 265.746094 268.351562 267.050781 267.050781 C 268.351562 265.746094 269.621094 264.414062 270.855469 263.050781 C 272.09375 261.6875 273.296875 260.292969 274.464844 258.871094 C 275.632812 257.445312 276.765625 255.996094 277.859375 254.515625 C 278.957031 253.039062 280.015625 251.53125 281.039062 250 C 282.0625 248.472656 283.046875 246.914062 283.996094 245.335938 C 284.941406 243.757812 285.847656 242.15625 286.714844 240.53125 C 287.585938 238.910156 288.410156 237.265625 289.199219 235.601562 C 289.984375 233.933594 290.730469 232.253906 291.4375 230.550781 C 292.140625 228.851562 292.804688 227.132812 293.421875 225.398438 C 294.042969 223.667969 294.621094 221.917969 295.15625 220.15625 C 295.691406 218.394531 296.179688 216.621094 296.628906 214.835938 C 297.074219 213.050781 297.480469 211.253906 297.839844 209.449219 C 298.199219 207.640625 298.511719 205.828125 298.78125 204.007812 C 299.050781 202.1875 299.277344 200.359375 299.457031 198.527344 C 299.640625 196.695312 299.773438 194.859375 299.863281 193.019531 C 299.953125 191.179688 300 189.339844 300 187.5 C 300 185.660156 299.953125 183.820312 299.863281 181.980469 C 299.773438 180.140625 299.640625 178.304688 299.457031 176.472656 C 299.277344 174.640625 299.050781 172.8125 298.78125 170.992188 C 298.511719 169.171875 298.199219 167.359375 297.839844 165.550781 C 297.480469 163.746094 297.074219 161.949219 296.628906 160.164062 C 296.179688 158.378906 295.691406 156.605469 295.15625 154.84375 C 294.621094 153.082031 294.042969 151.332031 293.421875 149.601562 C 292.804688 147.867188 292.140625 146.148438 291.4375 144.449219 C 290.730469 142.746094 289.984375 141.0625 289.199219 139.398438 C 288.410156 137.734375 287.585938 136.089844 286.714844 134.46875 C 285.847656 132.84375 284.941406 131.242188 283.996094 129.664062 C 283.046875 128.085938 282.0625 126.527344 281.039062 125 C 280.015625 123.46875 278.957031 121.960938 277.859375 120.484375 C 276.765625 119.003906 275.632812 117.554688 274.464844 116.128906 C 273.296875 114.707031 272.09375 113.3125 270.855469 111.949219 C 269.621094 110.585938 268.351562 109.253906 267.050781 107.949219 C 265.746094 106.648438 264.414062 105.378906 263.050781 104.144531 C 261.6875 102.90625 260.292969 101.703125 258.871094 100.535156 C 257.445312 99.367188 255.996094 98.234375 254.515625 97.140625 C 253.039062 96.042969 251.53125 94.984375 250 93.960938 C 248.472656 92.9375 246.914062 91.953125 245.335938 91.003906 C 243.757812 90.058594 242.15625 89.152344 240.53125 88.285156 C 238.910156 87.414062 237.265625 86.589844 235.601562 85.800781 C 233.933594 85.015625 232.253906 84.269531 230.550781 83.5625 C 228.851562 82.859375 227.132812 82.195312 225.398438 81.578125 C 223.667969 80.957031 221.917969 80.378906 220.15625 79.84375 C 218.394531 79.308594 216.621094 78.820312 214.835938 78.371094 C 213.050781 77.925781 211.253906 77.519531 209.449219 77.160156 C 207.640625 76.800781 205.828125 76.488281 204.007812 76.21875 C 202.1875 75.949219 200.359375 75.722656 198.527344 75.542969 C 196.695312 75.359375 194.859375 75.226562 193.019531 75.136719 C 191.179688 75.046875 189.339844 75 187.5 75 Z M 243.75 181.25 C 243.421875 164.65625 241.109375 148.34375 236.8125 132.3125 C 244.878906 128.414062 252.359375 123.601562 259.25 117.875 C 263.386719 122.109375 267.117188 126.675781 270.445312 131.574219 C 273.769531 136.472656 276.636719 141.625 279.046875 147.035156 C 281.457031 152.441406 283.375 158.019531 284.792969 163.765625 C 286.214844 169.515625 287.117188 175.34375 287.5 181.25 Z M 217.6875 92.1875 C 229.53125 95.894531 240.304688 101.625 250 109.375 C 244.757812 113.648438 239.113281 117.292969 233.0625 120.3125 C 229.480469 110.09375 224.355469 100.71875 217.6875 92.1875 Z M 221.4375 125.1875 C 215.992188 127.140625 210.421875 128.613281 204.722656 129.605469 C 199.027344 130.597656 193.285156 131.09375 187.5 131.09375 C 181.714844 131.09375 175.972656 130.597656 170.277344 129.605469 C 164.578125 128.613281 159.007812 127.140625 153.5625 125.1875 C 162.125 101.5 175 87.5 187.5 87.5 C 200 87.5 212.875 101.5 221.4375 125 Z M 142.1875 120.3125 C 136.046875 117.3125 130.320312 113.664062 125 109.375 C 134.621094 101.652344 145.308594 95.925781 157.0625 92.1875 C 150.59375 100.761719 145.636719 110.136719 142.1875 120.3125 Z M 157.3125 282.8125 C 145.46875 279.105469 134.695312 273.375 125 265.625 C 130.242188 261.351562 135.886719 257.707031 141.9375 254.6875 C 145.539062 264.894531 150.664062 274.269531 157.3125 282.8125 Z M 153.5625 250 C 159.007812 248.046875 164.578125 246.574219 170.277344 245.582031 C 175.972656 244.589844 181.714844 244.09375 187.5 244.09375 C 193.285156 244.09375 199.027344 244.589844 204.722656 245.582031 C 210.421875 246.574219 215.992188 248.046875 221.4375 250 C 212.875 273.5 200 287.5 187.5 287.5 C 175 287.5 162.125 273.5 153.5625 250 Z M 232.8125 254.875 C 238.941406 257.816406 244.671875 261.402344 250 265.625 C 240.378906 273.347656 229.691406 279.074219 217.9375 282.8125 C 224.429688 274.246094 229.386719 264.871094 232.8125 254.6875 Z M 225 237.875 C 218.945312 235.75 212.753906 234.148438 206.429688 233.070312 C 200.101562 231.992188 193.730469 231.453125 187.3125 231.453125 C 180.894531 231.453125 174.523438 231.992188 168.195312 233.070312 C 161.871094 234.148438 155.679688 235.75 149.625 237.875 C 145.96875 223.390625 144.011719 208.683594 143.75 193.75 L 231.25 193.75 C 230.835938 208.695312 228.75 223.402344 225 237.875 Z M 143.75 181.25 C 144.140625 166.300781 146.222656 151.59375 150 137.125 C 156.039062 139.316406 162.226562 140.96875 168.554688 142.082031 C 174.882812 143.195312 181.261719 143.75 187.6875 143.75 C 194.113281 143.75 200.492188 143.195312 206.820312 142.082031 C 213.148438 140.96875 219.335938 139.316406 225.375 137.125 C 229.027344 151.609375 230.984375 166.316406 231.25 181.25 Z M 115.875 117.875 C 122.765625 123.601562 130.246094 128.414062 138.3125 132.3125 C 133.976562 148.339844 131.621094 164.652344 131.25 181.25 L 87.5 181.25 C 87.894531 175.339844 88.804688 169.507812 90.234375 163.757812 C 91.664062 158.007812 93.589844 152.429688 96.011719 147.019531 C 98.429688 141.613281 101.308594 136.460938 104.648438 131.566406 C 107.984375 126.667969 111.726562 122.105469 115.875 117.875 Z M 87.8125 193.75 L 131.5625 193.75 C 131.890625 210.34375 134.203125 226.65625 138.5 242.6875 C 130.433594 246.585938 122.953125 251.398438 116.0625 257.125 C 111.925781 252.890625 108.195312 248.324219 104.867188 243.425781 C 101.542969 238.527344 98.675781 233.375 96.265625 227.964844 C 93.855469 222.558594 91.9375 216.980469 90.519531 211.234375 C 89.097656 205.484375 88.195312 199.65625 87.8125 193.75 Z M 259.125 257.125 C 252.234375 251.398438 244.753906 246.585938 236.6875 242.6875 C 241.023438 226.660156 243.378906 210.347656 243.75 193.75 L 287.5 193.75 C 287.105469 199.660156 286.195312 205.492188 284.765625 211.242188 C 283.335938 216.992188 281.410156 222.570312 278.988281 227.980469 C 276.570312 233.386719 273.691406 238.539062 270.351562 243.433594 C 267.015625 248.332031 263.273438 252.894531 259.125 257.125 Z M 259.125 257.125 "
            fill-opacity="1" fill-rule="nonzero"/>
      <path fill="#ffffff"
            d="M 350 81.25 L 318.75 81.25 C 315.476562 77.179688 312.023438 73.273438 308.382812 69.527344 C 304.742188 65.78125 300.9375 62.214844 296.964844 58.824219 C 292.988281 55.4375 288.867188 52.242188 284.59375 49.238281 C 280.320312 46.238281 275.914062 43.441406 271.378906 40.855469 C 266.84375 38.265625 262.195312 35.894531 257.4375 33.746094 C 252.679688 31.59375 247.828125 29.667969 242.890625 27.972656 C 237.953125 26.273438 232.945312 24.8125 227.867188 23.585938 C 222.792969 22.359375 217.667969 21.371094 212.5 20.625 L 212.5 6.25 C 212.5 5.839844 212.460938 5.433594 212.378906 5.03125 C 212.300781 4.628906 212.179688 4.238281 212.023438 3.859375 C 211.867188 3.480469 211.675781 3.117188 211.445312 2.777344 C 211.21875 2.4375 210.960938 2.121094 210.667969 1.832031 C 210.378906 1.539062 210.0625 1.28125 209.722656 1.054688 C 209.382812 0.824219 209.019531 0.632812 208.640625 0.476562 C 208.261719 0.320312 207.871094 0.199219 207.46875 0.121094 C 207.066406 0.0390625 206.660156 0 206.25 0 L 168.75 0 C 168.339844 0 167.933594 0.0390625 167.53125 0.121094 C 167.128906 0.199219 166.738281 0.320312 166.359375 0.476562 C 165.980469 0.632812 165.617188 0.824219 165.277344 1.054688 C 164.9375 1.28125 164.621094 1.539062 164.332031 1.832031 C 164.039062 2.121094 163.78125 2.4375 163.554688 2.777344 C 163.324219 3.117188 163.132812 3.480469 162.976562 3.859375 C 162.820312 4.238281 162.699219 4.628906 162.621094 5.03125 C 162.539062 5.433594 162.5 5.839844 162.5 6.25 L 162.5 20.625 C 157.34375 21.378906 152.234375 22.375 147.175781 23.609375 C 142.113281 24.84375 137.117188 26.3125 132.195312 28.011719 C 127.269531 29.714844 122.433594 31.640625 117.691406 33.796875 C 112.945312 35.949219 108.3125 38.320312 103.792969 40.910156 C 99.269531 43.496094 94.878906 46.289062 90.617188 49.289062 C 86.355469 52.289062 82.246094 55.480469 78.285156 58.863281 C 74.324219 62.246094 70.527344 65.808594 66.898438 69.546875 C 63.269531 73.289062 59.824219 77.1875 56.5625 81.25 L 25 81.25 C 24.589844 81.25 24.183594 81.289062 23.78125 81.371094 C 23.378906 81.449219 22.988281 81.570312 22.609375 81.726562 C 22.230469 81.882812 21.867188 82.074219 21.527344 82.304688 C 21.1875 82.53125 20.871094 82.789062 20.582031 83.082031 C 20.289062 83.371094 20.03125 83.6875 19.804688 84.027344 C 19.574219 84.367188 19.382812 84.730469 19.226562 85.109375 C 19.070312 85.488281 18.949219 85.878906 18.871094 86.28125 C 18.789062 86.683594 18.75 87.089844 18.75 87.5 L 18.75 125 C 18.75 125.410156 18.789062 125.816406 18.871094 126.21875 C 18.949219 126.621094 19.070312 127.011719 19.226562 127.390625 C 19.382812 127.769531 19.574219 128.132812 19.804688 128.472656 C 20.03125 128.8125 20.289062 129.128906 20.582031 129.417969 C 20.871094 129.710938 21.1875 129.96875 21.527344 130.195312 C 21.867188 130.425781 22.230469 130.617188 22.609375 130.773438 C 22.988281 130.929688 23.378906 131.050781 23.78125 131.128906 C 24.183594 131.210938 24.589844 131.25 25 131.25 L 28.375 131.25 C 26.785156 135.757812 25.390625 140.328125 24.1875 144.957031 C 22.984375 149.582031 21.980469 154.253906 21.175781 158.964844 C 20.367188 163.679688 19.761719 168.417969 19.359375 173.183594 C 18.953125 177.945312 18.75 182.71875 18.75 187.5 C 18.75 192.28125 18.953125 197.054688 19.359375 201.816406 C 19.761719 206.582031 20.367188 211.320312 21.175781 216.035156 C 21.980469 220.746094 22.984375 225.417969 24.1875 230.042969 C 25.390625 234.671875 26.785156 239.242188 28.375 243.75 L 25 243.75 C 24.589844 243.75 24.183594 243.789062 23.78125 243.871094 C 23.378906 243.949219 22.988281 244.070312 22.609375 244.226562 C 22.230469 244.382812 21.867188 244.574219 21.527344 244.804688 C 21.1875 245.03125 20.871094 245.289062 20.582031 245.582031 C 20.289062 245.871094 20.03125 246.1875 19.804688 246.527344 C 19.574219 246.867188 19.382812 247.230469 19.226562 247.609375 C 19.070312 247.988281 18.949219 248.378906 18.871094 248.78125 C 18.789062 249.183594 18.75 249.589844 18.75 250 L 18.75 287.5 C 18.75 287.910156 18.789062 288.316406 18.871094 288.71875 C 18.949219 289.121094 19.070312 289.511719 19.226562 289.890625 C 19.382812 290.269531 19.574219 290.632812 19.804688 290.972656 C 20.03125 291.3125 20.289062 291.628906 20.582031 291.917969 C 20.871094 292.210938 21.1875 292.46875 21.527344 292.695312 C 21.867188 292.925781 22.230469 293.117188 22.609375 293.273438 C 22.988281 293.429688 23.378906 293.550781 23.78125 293.628906 C 24.183594 293.710938 24.589844 293.75 25 293.75 L 56.5625 293.75 C 59.835938 297.820312 63.289062 301.726562 66.929688 305.472656 C 70.570312 309.21875 74.375 312.785156 78.347656 316.175781 C 82.324219 319.5625 86.445312 322.757812 90.71875 325.761719 C 94.992188 328.761719 99.398438 331.558594 103.933594 334.144531 C 108.46875 336.734375 113.117188 339.105469 117.875 341.253906 C 122.632812 343.40625 127.484375 345.332031 132.421875 347.027344 C 137.359375 348.726562 142.367188 350.1875 147.445312 351.414062 C 152.519531 352.640625 157.644531 353.628906 162.8125 354.375 L 162.8125 368.75 C 162.8125 369.160156 162.851562 369.566406 162.933594 369.96875 C 163.011719 370.371094 163.132812 370.761719 163.289062 371.140625 C 163.445312 371.519531 163.636719 371.882812 163.867188 372.222656 C 164.09375 372.5625 164.351562 372.878906 164.644531 373.167969 C 164.933594 373.460938 165.25 373.71875 165.589844 373.945312 C 165.929688 374.175781 166.292969 374.367188 166.671875 374.523438 C 167.050781 374.679688 167.441406 374.800781 167.84375 374.878906 C 168.246094 374.960938 168.652344 375 169.0625 375 L 206.5625 375 C 206.972656 375 207.378906 374.960938 207.78125 374.878906 C 208.183594 374.800781 208.574219 374.679688 208.953125 374.523438 C 209.332031 374.367188 209.695312 374.175781 210.035156 373.945312 C 210.375 373.71875 210.691406 373.460938 210.980469 373.167969 C 211.273438 372.878906 211.53125 372.5625 211.757812 372.222656 C 211.988281 371.882812 212.179688 371.519531 212.335938 371.140625 C 212.492188 370.761719 212.613281 370.371094 212.691406 369.96875 C 212.773438 369.566406 212.8125 369.160156 212.8125 368.75 L 212.8125 354.375 C 217.96875 353.621094 223.078125 352.625 228.136719 351.390625 C 233.199219 350.15625 238.195312 348.6875 243.117188 346.988281 C 248.042969 345.285156 252.878906 343.359375 257.621094 341.203125 C 262.367188 339.050781 267 336.679688 271.519531 334.09375 C 276.042969 331.503906 280.433594 328.710938 284.695312 325.710938 C 288.957031 322.710938 293.066406 319.519531 297.027344 316.136719 C 300.988281 312.753906 304.785156 309.191406 308.414062 305.453125 C 312.042969 301.710938 315.488281 297.8125 318.75 293.75 L 350 293.75 C 350.410156 293.75 350.816406 293.710938 351.21875 293.628906 C 351.621094 293.550781 352.011719 293.429688 352.390625 293.273438 C 352.769531 293.117188 353.132812 292.925781 353.472656 292.695312 C 353.8125 292.46875 354.128906 292.210938 354.417969 291.917969 C 354.710938 291.628906 354.96875 291.3125 355.195312 290.972656 C 355.425781 290.632812 355.617188 290.269531 355.773438 289.890625 C 355.929688 289.511719 356.050781 289.121094 356.128906 288.71875 C 356.210938 288.316406 356.25 287.910156 356.25 287.5 L 356.25 250 C 356.25 249.589844 356.210938 249.183594 356.128906 248.78125 C 356.050781 248.378906 355.929688 247.988281 355.773438 247.609375 C 355.617188 247.230469 355.425781 246.867188 355.195312 246.527344 C 354.96875 246.1875 354.710938 245.871094 354.417969 245.582031 C 354.128906 245.289062 353.8125 245.03125 353.472656 244.804688 C 353.132812 244.574219 352.769531 244.382812 352.390625 244.226562 C 352.011719 244.070312 351.621094 243.949219 351.21875 243.871094 C 350.816406 243.789062 350.410156 243.75 350 243.75 L 346.625 243.75 C 348.214844 239.242188 349.609375 234.671875 350.8125 230.042969 C 352.015625 225.417969 353.019531 220.746094 353.824219 216.035156 C 354.632812 211.320312 355.238281 206.582031 355.640625 201.816406 C 356.046875 197.054688 356.25 192.28125 356.25 187.5 C 356.25 182.71875 356.046875 177.945312 355.640625 173.183594 C 355.238281 168.417969 354.632812 163.679688 353.824219 158.964844 C 353.019531 154.253906 352.015625 149.582031 350.8125 144.957031 C 349.609375 140.328125 348.214844 135.757812 346.625 131.25 L 350 131.25 C 350.410156 131.25 350.816406 131.210938 351.21875 131.128906 C 351.621094 131.050781 352.011719 130.929688 352.390625 130.773438 C 352.769531 130.617188 353.132812 130.425781 353.472656 130.195312 C 353.8125 129.96875 354.128906 129.710938 354.417969 129.417969 C 354.710938 129.128906 354.96875 128.8125 355.195312 128.472656 C 355.425781 128.132812 355.617188 127.769531 355.773438 127.390625 C 355.929688 127.011719 356.050781 126.621094 356.128906 126.21875 C 356.210938 125.816406 356.25 125.410156 356.25 125 L 356.25 87.5 C 356.25 87.089844 356.210938 86.683594 356.128906 86.28125 C 356.050781 85.878906 355.929688 85.488281 355.773438 85.109375 C 355.617188 84.730469 355.425781 84.367188 355.195312 84.027344 C 354.96875 83.6875 354.710938 83.371094 354.417969 83.082031 C 354.128906 82.789062 353.8125 82.53125 353.472656 82.304688 C 353.132812 82.074219 352.769531 81.882812 352.390625 81.726562 C 352.011719 81.570312 351.621094 81.449219 351.21875 81.371094 C 350.816406 81.289062 350.410156 81.25 350 81.25 Z M 318.75 93.75 L 343.75 93.75 L 343.75 118.75 L 318.75 118.75 Z M 175 12.5 L 200 12.5 L 200 37.5 L 175 37.5 Z M 31.25 93.75 L 56.25 93.75 L 56.25 118.75 L 31.25 118.75 Z M 31.25 256.25 L 56.25 256.25 L 56.25 281.25 L 31.25 281.25 Z M 200 362.5 L 175 362.5 L 175 337.5 L 200 337.5 Z M 343.75 281.25 L 318.75 281.25 L 318.75 256.25 L 343.75 256.25 Z M 343.75 187.5 C 343.753906 197.117188 342.875 206.65625 341.109375 216.113281 C 339.34375 225.566406 336.726562 234.78125 333.25 243.75 L 312.5 243.75 C 312.089844 243.75 311.683594 243.789062 311.28125 243.871094 C 310.878906 243.949219 310.488281 244.070312 310.109375 244.226562 C 309.730469 244.382812 309.367188 244.574219 309.027344 244.804688 C 308.6875 245.03125 308.371094 245.289062 308.082031 245.582031 C 307.789062 245.871094 307.53125 246.1875 307.304688 246.527344 C 307.074219 246.867188 306.882812 247.230469 306.726562 247.609375 C 306.570312 247.988281 306.449219 248.378906 306.371094 248.78125 C 306.289062 249.183594 306.25 249.589844 306.25 250 L 306.25 287.5 C 306.214844 287.875 306.214844 288.25 306.25 288.625 C 303.296875 292.136719 300.191406 295.507812 296.9375 298.746094 C 293.679688 301.980469 290.289062 305.0625 286.761719 307.996094 C 283.230469 310.929688 279.578125 313.699219 275.804688 316.308594 C 272.027344 318.917969 268.144531 321.351562 264.148438 323.613281 C 260.15625 325.878906 256.074219 327.957031 251.894531 329.855469 C 247.71875 331.753906 243.464844 333.464844 239.132812 334.984375 C 234.804688 336.503906 230.414062 337.832031 225.96875 338.960938 C 221.519531 340.089844 217.03125 341.019531 212.5 341.75 L 212.5 331.25 C 212.5 330.839844 212.460938 330.433594 212.378906 330.03125 C 212.300781 329.628906 212.179688 329.238281 212.023438 328.859375 C 211.867188 328.480469 211.675781 328.117188 211.445312 327.777344 C 211.21875 327.4375 210.960938 327.121094 210.667969 326.832031 C 210.378906 326.539062 210.0625 326.28125 209.722656 326.054688 C 209.382812 325.824219 209.019531 325.632812 208.640625 325.476562 C 208.261719 325.320312 207.871094 325.199219 207.46875 325.121094 C 207.066406 325.039062 206.660156 325 206.25 325 L 168.75 325 C 168.339844 325 167.933594 325.039062 167.53125 325.121094 C 167.128906 325.199219 166.738281 325.320312 166.359375 325.476562 C 165.980469 325.632812 165.617188 325.824219 165.277344 326.054688 C 164.9375 326.28125 164.621094 326.539062 164.332031 326.832031 C 164.039062 327.121094 163.78125 327.4375 163.554688 327.777344 C 163.324219 328.117188 163.132812 328.480469 162.976562 328.859375 C 162.820312 329.238281 162.699219 329.628906 162.621094 330.03125 C 162.539062 330.433594 162.5 330.839844 162.5 331.25 L 162.5 341.75 C 157.96875 341.019531 153.480469 340.089844 149.03125 338.960938 C 144.585938 337.832031 140.195312 336.503906 135.867188 334.984375 C 131.535156 333.464844 127.28125 331.753906 123.105469 329.855469 C 118.925781 327.957031 114.84375 325.878906 110.847656 323.613281 C 106.855469 321.351562 102.972656 318.917969 99.195312 316.308594 C 95.421875 313.699219 91.769531 310.929688 88.238281 307.996094 C 84.710938 305.0625 81.320312 301.980469 78.0625 298.746094 C 74.808594 295.507812 71.703125 292.136719 68.75 288.625 C 68.785156 288.25 68.785156 287.875 68.75 287.5 L 68.75 250 C 68.75 249.589844 68.710938 249.183594 68.628906 248.78125 C 68.550781 248.378906 68.429688 247.988281 68.273438 247.609375 C 68.117188 247.230469 67.925781 246.867188 67.695312 246.527344 C 67.46875 246.1875 67.210938 245.871094 66.917969 245.582031 C 66.628906 245.289062 66.3125 245.03125 65.972656 244.804688 C 65.632812 244.574219 65.269531 244.382812 64.890625 244.226562 C 64.511719 244.070312 64.121094 243.949219 63.71875 243.871094 C 63.316406 243.789062 62.910156 243.75 62.5 243.75 L 41.75 243.75 C 40.019531 239.273438 38.496094 234.726562 37.1875 230.113281 C 35.875 225.496094 34.777344 220.828125 33.898438 216.109375 C 33.019531 211.394531 32.355469 206.644531 31.914062 201.867188 C 31.472656 197.085938 31.25 192.300781 31.25 187.5 C 31.25 182.699219 31.472656 177.914062 31.914062 173.132812 C 32.355469 168.355469 33.019531 163.605469 33.898438 158.890625 C 34.777344 154.171875 35.875 149.503906 37.1875 144.886719 C 38.496094 140.273438 40.019531 135.726562 41.75 131.25 L 62.5 131.25 C 62.910156 131.25 63.316406 131.210938 63.71875 131.128906 C 64.121094 131.050781 64.511719 130.929688 64.890625 130.773438 C 65.269531 130.617188 65.632812 130.425781 65.972656 130.195312 C 66.3125 129.96875 66.628906 129.710938 66.917969 129.417969 C 67.210938 129.128906 67.46875 128.8125 67.695312 128.472656 C 67.925781 128.132812 68.117188 127.769531 68.273438 127.390625 C 68.429688 127.011719 68.550781 126.621094 68.628906 126.21875 C 68.710938 125.816406 68.75 125.410156 68.75 125 L 68.75 87.5 C 68.785156 87.125 68.785156 86.75 68.75 86.375 C 71.703125 82.863281 74.808594 79.492188 78.0625 76.253906 C 81.320312 73.019531 84.710938 69.9375 88.238281 67.003906 C 91.769531 64.070312 95.421875 61.300781 99.195312 58.691406 C 102.972656 56.082031 106.855469 53.648438 110.847656 51.386719 C 114.84375 49.121094 118.925781 47.042969 123.105469 45.144531 C 127.28125 43.246094 131.535156 41.535156 135.867188 40.015625 C 140.195312 38.496094 144.585938 37.167969 149.03125 36.039062 C 153.480469 34.910156 157.96875 33.980469 162.5 33.25 L 162.5 43.75 C 162.5 44.160156 162.539062 44.566406 162.621094 44.96875 C 162.699219 45.371094 162.820312 45.761719 162.976562 46.140625 C 163.132812 46.519531 163.324219 46.882812 163.554688 47.222656 C 163.78125 47.5625 164.039062 47.878906 164.332031 48.167969 C 164.621094 48.460938 164.9375 48.71875 165.277344 48.945312 C 165.617188 49.175781 165.980469 49.367188 166.359375 49.523438 C 166.738281 49.679688 167.128906 49.800781 167.53125 49.878906 C 167.933594 49.960938 168.339844 50 168.75 50 L 206.25 50 C 206.660156 50 207.066406 49.960938 207.46875 49.878906 C 207.871094 49.800781 208.261719 49.679688 208.640625 49.523438 C 209.019531 49.367188 209.382812 49.175781 209.722656 48.945312 C 210.0625 48.71875 210.378906 48.460938 210.667969 48.167969 C 210.960938 47.878906 211.21875 47.5625 211.445312 47.222656 C 211.675781 46.882812 211.867188 46.519531 212.023438 46.140625 C 212.179688 45.761719 212.300781 45.371094 212.378906 44.96875 C 212.460938 44.566406 212.5 44.160156 212.5 43.75 L 212.5 33.25 C 217.03125 33.980469 221.519531 34.910156 225.96875 36.039062 C 230.414062 37.167969 234.804688 38.496094 239.132812 40.015625 C 243.464844 41.535156 247.71875 43.246094 251.894531 45.144531 C 256.074219 47.042969 260.15625 49.121094 264.148438 51.386719 C 268.144531 53.648438 272.027344 56.082031 275.804688 58.691406 C 279.578125 61.300781 283.230469 64.070312 286.761719 67.003906 C 290.289062 69.9375 293.679688 73.019531 296.9375 76.253906 C 300.191406 79.492188 303.296875 82.863281 306.25 86.375 C 306.214844 86.75 306.214844 87.125 306.25 87.5 L 306.25 125 C 306.25 125.410156 306.289062 125.816406 306.371094 126.21875 C 306.449219 126.621094 306.570312 127.011719 306.726562 127.390625 C 306.882812 127.769531 307.074219 128.132812 307.304688 128.472656 C 307.53125 128.8125 307.789062 129.128906 308.082031 129.417969 C 308.371094 129.710938 308.6875 129.96875 309.027344 130.195312 C 309.367188 130.425781 309.730469 130.617188 310.109375 130.773438 C 310.488281 130.929688 310.878906 131.050781 311.28125 131.128906 C 311.683594 131.210938 312.089844 131.25 312.5 131.25 L 333.25 131.25 C 336.726562 140.21875 339.34375 149.433594 341.109375 158.886719 C 342.875 168.34375 343.753906 177.882812 343.75 187.5 Z M 343.75 187.5 "
            fill-opacity="1" fill-rule="nonzero"/>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" zoomAndPan="magnify"
         viewBox="0 0 375 374.999991" height="1em" preserveAspectRatio="xMidYMid meet" version="1.0" v-if="type==='custom-icon12'" @click="choseIcon">
      <path fill="#ffffff"
            d="M 316.40625 375 L 234.375 375 C 227.90625 375 222.65625 369.761719 222.65625 363.28125 C 222.65625 343.898438 206.882812 328.125 187.5 328.125 C 168.117188 328.125 152.34375 343.898438 152.34375 363.28125 C 152.34375 369.761719 147.09375 375 140.625 375 L 11.71875 375 C 5.25 375 0 369.761719 0 363.28125 L 0 234.375 C 0 227.894531 5.25 222.65625 11.71875 222.65625 C 31.101562 222.65625 46.875 206.882812 46.875 187.5 C 46.875 168.117188 31.101562 152.34375 11.71875 152.34375 C 5.25 152.34375 0 147.105469 0 140.625 L 0 58.59375 C 0 52.113281 5.25 46.875 11.71875 46.875 L 130.089844 46.875 C 135.527344 20.167969 159.199219 0 187.5 0 C 215.800781 0 239.472656 20.167969 244.910156 46.875 L 316.40625 46.875 C 322.875 46.875 328.125 52.113281 328.125 58.59375 L 328.125 130.089844 C 354.832031 135.539062 375 159.199219 375 187.5 C 375 215.800781 354.832031 239.472656 328.125 244.910156 L 328.125 363.28125 C 328.125 369.761719 322.875 375 316.40625 375 Z M 244.910156 351.5625 L 304.6875 351.5625 L 304.6875 234.375 C 304.6875 227.894531 309.9375 222.65625 316.40625 222.65625 C 335.789062 222.65625 351.5625 206.882812 351.5625 187.5 C 351.5625 168.117188 335.789062 152.34375 316.40625 152.34375 C 309.9375 152.34375 304.6875 147.105469 304.6875 140.625 L 304.6875 70.3125 L 234.375 70.3125 C 227.90625 70.3125 222.65625 65.074219 222.65625 58.59375 C 222.65625 39.210938 206.882812 23.4375 187.5 23.4375 C 168.117188 23.4375 152.34375 39.210938 152.34375 58.59375 C 152.34375 65.074219 147.09375 70.3125 140.625 70.3125 L 23.4375 70.3125 L 23.4375 130.089844 C 50.144531 135.527344 70.3125 159.199219 70.3125 187.5 C 70.3125 215.800781 50.144531 239.472656 23.4375 244.910156 L 23.4375 351.5625 L 130.089844 351.5625 C 135.527344 324.855469 159.210938 304.6875 187.5 304.6875 C 215.789062 304.6875 239.472656 324.855469 244.910156 351.5625 Z M 244.910156 351.5625 "
            fill-opacity="1" fill-rule="nonzero"/>
    </svg>
  </i>
</template>
<script>
  export default {
    name: 'CustomIcons',
    components: {},
    props: {
      type: {
        type: String
      }
    },
    mounted() {
    },
    data() {
      return {}
    },
    methods: {
      choseIcon() {
        console.log(this.$refs[this.type])
        this.$emit('click')
      }
    }
  }
</script>
<style scoped>
</style>
src/components/menu/SideMenu.vue
@@ -1,12 +1,14 @@
<template>
  <a-layout-sider
    :class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
    width="200px"
    :collapsedWidth="collapsedWidth"
    :collapsible="collapsible"
    v-model="collapsed"
    :trigger="null">
    <div id="menu-container">
      <logo/>
      <div class="nav-split-line"></div>
      <s-menu
        :collapsed="collapsed"
        :menu="menus"
@@ -16,21 +18,48 @@
        :mode="mode"
        :style="smenuStyle">
      </s-menu>
      <div class="nav-split-line"></div>
      <div class="avatar">
        <a-avatar :src="getAvatar()" @click="$router.push('/user/UserManagement')"/>
    </div>
  </a-layout-sider>
    </div>
    <a-tooltip placement="right" :mouseLeaveDelay="0">
      <template slot="title">
        {{collapsedWidth!==0?'收起':'展开'}}
      </template>
      <div id="response-line-container" ref="responseLineContainerRef" @click="handleMenuFoldOrNot">
        <template v-if="collapsedWidth!==0">
          <div id="response-line-0"></div>
          <div id="response-line-1"></div>
        </template>
        <template v-else>
          <div id="response-line-3"></div>
          <div id="response-line-4"></div>
        </template>
      </div>
    </a-tooltip>
  </a-layout-sider>
</template>
<script>
  import ALayoutSider from 'ant-design-vue/es/layout/Sider'
  import Logo from '../tools/Logo'
  import SMenu from './index'
  import { mixin, mixinDevice } from '@/utils/mixin.js'
  import { mapGetters } from 'vuex'
  import { getFileAccessHttpUrl } from '@/api/manage'
  export default {
    name: 'SideMenu',
    components: { ALayoutSider, Logo, SMenu },
    components: {  Logo, SMenu },
    mixins: [mixin, mixinDevice],
    data() {
      return {
        normalCollapsedWidth: 100,
        collapsedWidth: 100
      }
    },
    props: {
      mode: {
        type: String,
@@ -69,23 +98,51 @@
      }
    },
    methods: {
      ...mapGetters(['nickname', 'avatar', 'userInfo']),
      onSelect(obj) {
        this.$emit('menuSelect', obj)
      },
      onUpdateMenuTitle(obj) {
        this.$emit('updateMenuTitle', obj)
      },
      getAvatar() {
        return getFileAccessHttpUrl(this.avatar())
      },
      handleMenuFoldOrNot() {
        if (this.collapsedWidth !== 0) {
          this.collapsedWidth = 0
          this.$refs.responseLineContainerRef.style.opacity = 1
          document.querySelector('.sider').onmouseenter = () => false
          document.querySelector('.sider').onmouseleave = () => false
        } else {
          this.collapsedWidth = this.normalCollapsedWidth
          this.$refs.responseLineContainerRef.style.opacity = 0
          // è®¾ç½®é€æ˜Žåº¦åŽhover鼠标行为失效
          document.querySelector('.sider').onmouseenter = () => this.$refs.responseLineContainerRef.style.opacity = 1
          document.querySelector('.sider').onmouseleave = () => this.$refs.responseLineContainerRef.style.opacity = 0
        }
      }
    }
  }
</script>
<style lang="less" scoped>
  /* update_begin author:sunjianlei date:20190509 for: ä¿®æ”¹ä¾§è¾¹å¯¼èˆªæ æ»šåŠ¨æ¡çš„æ ·å¼ */
  .sider {
    @scrollBarSize: 10px;
    ul.ant-menu {
    #menu-container {
      background-color: rgba(255, 255, 255, .34);
      position: absolute;
      top: 50%;
      right: 0;
      transform: translateY(-50%);
      border-radius: 12px;
      /*box-shadow: 2px 2px 7.7px 0 rgba(146, 159, 202, 0.19), 0 0 1px 1px rgba(255, 255, 255, 0.45) inset;*/
      padding: 10px;;
      /deep/ .ant-menu {
        background-color: transparent;
        width: 60px;
      /* å®šä¹‰æ»šåŠ¨æ¡é«˜å®½åŠèƒŒæ™¯ é«˜å®½åˆ†åˆ«å¯¹åº”横竖滚动条的尺寸*/
      &::-webkit-scrollbar {
        width: @scrollBarSize;
@@ -129,62 +186,166 @@
      }
    }
    /** æš—色系滚动条样式 */
    &.dark ul.ant-menu {
      &::-webkit-scrollbar-thumb {
        background-color: #666666;
      /deep/ .ant-menu-inline-collapsed > .ant-menu-item {
        padding: 0 !important;
        border-radius: 12px;
        a {
          text-align: center;
          border-radius: 12px;
        }
        .anticon {
          font-size: 25px;
        }
        /*导航栏叶子菜单按钮被选中后样式*/
        &.ant-menu-item-selected {
          background-color: transparent;
          a {
            color: rgba(0, 0, 0, 0.65)
          }
        }
        /*导航栏按钮被激活后样式*/
        &.ant-menu-item-active {
          background-color: #E7EBF6;
          a {
            color: rgba(0, 0, 0, 0.65)
          }
        }
      }
      /*导航栏非叶子菜单按钮被选中后样式*/
      /deep/ .ant-menu-vertical .ant-menu-submenu-selected {
        color: rgba(0, 0, 0, 0.65)
      }
      /*导航栏非叶子菜单按钮被激活后样式*/
      /deep/ .ant-menu-vertical .ant-menu-submenu-active {
        .ant-menu-submenu-title {
          background-color: #E7EBF6;
          color: rgba(0, 0, 0, 0.65);
        }
      }
      /deep/ .ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
        padding: 0 !important;
        text-align: center;
        border-radius: 12px;
        .anticon {
          font-size: 25px;
        }
      }
      .nav-split-line {
        width: 50px;
        height: 1px;
        background-color: #E5E5E5;
        border-radius: 12px;
        cursor: pointer;
        margin: 15px auto
      }
      .avatar {
        text-align: center;
        /deep/ .ant-avatar {
          cursor: pointer;
        }
      }
    }
    #response-line-container {
      width: 12px;
      height: 26px;
      position: absolute;
      right: -20px;
      top: 50%;
      transform: translateY(-50%);
      cursor: pointer;
      transition: all .2s ease;
      opacity: 0;
      #response-line-0, #response-line-1 {
        width: 4px;
        height: 13px;
        background-color: #c6c6c6;
        left: 4px;
        position: absolute;
        transition: all .2s ease;
      }
      #response-line-3 {
        width: 4px;
        background-color: #c6c6c6;
        transform-origin: 50% 0%;
        transform: rotate(-17deg) translateY(1px);
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        border-bottom-right-radius: 10px;
        height: 16px;
        left: 4px;
        top: 0;
        position: absolute;
      }
      #response-line-4 {
        width: 4px;
        background-color: #c6c6c6;
        transform-origin: 50% 100%;
        transform: rotate(17deg) translateY(-1px);
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        border-top-right-radius: 10px;
        height: 16px;
        left: 4px;
        bottom: 0;
        position: absolute;
      }
      #response-line-0 {
        top: 0;
        transform-origin: 50% 0;
      }
      #response-line-1 {
        bottom: 0;
        transform-origin: 50% 100%;
      }
        &:hover {
          background-color: #808080;
        #response-line-0 {
          background-color: #fff;
          transform-origin: 50% 0%;
          transform: rotate(17deg) translateY(1px);
          border-top-left-radius: 4px;
          border-top-right-radius: 4px;
          border-bottom-left-radius: 10px;
          height: 16px;
        }
        &:active {
          background-color: #999999;
        #response-line-1 {
          background-color: #fff;
          transform-origin: 50% 100%;
          transform: rotate(-17deg) translateY(-1px);
          border-bottom-left-radius: 4px;
          border-bottom-right-radius: 4px;
          border-top-left-radius: 10px;
          height: 16px;
        }
        #response-line-3, #response-line-4 {
          background-color: #fff;
      }
    }
    }
    &:hover {
      #response-line-container {
        opacity: 1;
      }
    }
  }
  /* update_end author:sunjianlei date:20190509 for: ä¿®æ”¹ä¾§è¾¹å¯¼èˆªæ æ»šåŠ¨æ¡çš„æ ·å¼ */
</style>
<!-- update_begin author:sunjianlei date:20190530 for: é€‰ä¸­é¦–页的时候不显示背景颜色 -->
<style lang="less">
  // é€‰ä¸­é¦–页的时候不显示背景颜色,只应用于左侧菜单
  .sider .ant-menu.ant-menu-root {
    & > .ant-menu-item:first-child {
      background-color: transparent;
      & > a, & > a:hover {
        color: rgba(0, 0, 0, 0.65);
      }
      &.ant-menu-item-selected {
        & > a, & > a:hover {
          color: @primary-color;
        }
      }
    }
    &.ant-menu-dark > .ant-menu-item:first-child {
      & > a, & > a:hover {
        color: rgba(255, 255, 255, 0.65);
      }
      &.ant-menu-item-selected {
        & > a, & > a:hover {
          color: rgba(255, 255, 255, 1);
        }
      }
    }
  }
</style>
<!-- update_end author:sunjianlei date:20190530 for: é€‰ä¸­é¦–页的时候不显示背景颜色 -->
<style scoped>
  #menu-container {
    position: absolute;
    top: calc(50% - 251.02px / 2);
  }
</style>
src/components/menu/index.js
@@ -1,5 +1,6 @@
import Menu from 'ant-design-vue/es/menu'
import Icon from 'ant-design-vue/es/icon'
import CustomIcons from './CustomIcons.vue'
const { Item, SubMenu } = Menu
@@ -182,6 +183,11 @@
      }
      const props = {}
      typeof (icon) === 'object' ? props.component = icon : props.type = icon
      if(icon.split('-')[0]==='custom'){
        return (
          <CustomIcons {... { props }}/>
      )
      }
      return (
        <Icon {... { props } }/>
      )
src/components/page/GlobalFooter.vue
@@ -1,28 +1,26 @@
<template>
  <div class="footer">
    <div class="copyright">
      Copyright
      <a-icon type="copyright"/>
      2019 <span>JEECG开源社区 å‡ºå“</span>
      <span>内容由 AI å¤§æ¨¡åž‹ç”Ÿæˆï¼Œè¯·ä»”细甄别</span>
    </div>
  </div>
</template>
<script>
  export default {
    name: "LayoutFooter"
    name: 'LayoutFooter'
  }
</script>
<style lang="less" scoped>
  .footer {
    padding: 0 16px;
    margin: 6px 0 6px;
    margin: 0.3vw 0 0.3vw;
    text-align: center;
    background-color: transparent!important;
    .copyright {
      color: rgba(0, 0, 0, .45);
      font-size: 14px;
      color: #fff;
      font-size: 0.73vw;
    }
  }
</style>
src/components/page/GlobalHeader.vue
@@ -5,7 +5,7 @@
    :class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]"
    :style="{ padding: '0' }">
    <div v-if="mode === 'sidemenu'" class="header" :class="theme">
    <div class="header" :class="theme">
      <a-icon
        v-if="device==='mobile'"
        class="trigger"
@@ -17,28 +17,6 @@
        :type="collapsed ? 'menu-unfold' : 'menu-fold'"
        @click="toggle"/>
      <user-menu :theme="theme"/>
    </div>
    <!-- é¡¶éƒ¨å¯¼èˆªæ æ¨¡å¼ -->
    <div v-else :class="['top-nav-header-index', theme]">
      <div class="header-index-wide">
        <div class="header-index-left" :style="topMenuStyle.headerIndexLeft">
          <logo class="top-nav-header" :show-title="device !== 'mobile'" :style="topMenuStyle.topNavHeader"/>
          <div v-if="device !== 'mobile'" :style="topMenuStyle.topSmenuStyle">
            <s-menu
              mode="horizontal"
              :menu="menus"
              :theme="theme"
              @updateMenuTitle="handleUpdateMenuTitle"
            ></s-menu>
          </div>
          <a-icon
            v-else
            class="trigger"
            :type="collapsed ? 'menu-fold' : 'menu-unfold'"
            @click="toggle"></a-icon>
        </div>
        <user-menu class="header-index-right" :theme="theme" :style="topMenuStyle.headerIndexRight"/>
      </div>
    </div>
  </a-layout-header>
@@ -55,15 +33,10 @@
    components: {
      UserMenu,
      SMenu,
      Logo,
      Logo
    },
    mixins: [mixin],
    props: {
      mode: {
        type: String,
        // sidemenu, topmenu
        default: 'sidemenu'
      },
      menus: {
        type: Array,
        required: true
@@ -94,7 +67,7 @@
          headerIndexRight: {},
          topSmenuStyle: {}
        },
        chatStatus: '',
        chatStatus: ''
      }
    },
    watch: {
@@ -159,7 +132,7 @@
      // update-begin-author:sunjianlei date:20210508 for: ä¿®å¤åŠ¨æ€åŠŸèƒ½æµ‹è¯•èœå•ã€å¸¦å‚æ•°èœå•æ ‡é¢˜é”™è¯¯ã€å±•å¼€é”™è¯¯çš„é—®é¢˜
      handleUpdateMenuTitle(value) {
        this.$emit('updateMenuTitle', value)
      },
      }
      // update-end-author:sunjianlei date:20210508 for: ä¿®å¤åŠ¨æ€åŠŸèƒ½æµ‹è¯•èœå•ã€å¸¦å‚æ•°èœå•æ ‡é¢˜é”™è¯¯ã€å±•å¼€é”™è¯¯çš„é—®é¢˜
    }
src/components/page/GlobalLayout.vue
@@ -1,60 +1,46 @@
<template>
  <a-layout class="layout" :class="[device]">
  <a-layout class="layout" :class="[device]"
            :style="{backgroundImage:$route.meta.title==='首页'?`url(${require('../../assets/page/index/background.svg')}) !important`:`url(${require('../../assets/page/login/background.svg')})!important`}">
    <template v-if="layoutMode === 'sidemenu'">
      <a-drawer
        v-if="device === 'mobile'"
        :wrapClassName="'drawer-sider ' + navTheme"
        placement="left"
        @close="() => this.collapsed = false"
        :closable="false"
        :visible="collapsed"
        width="200px"
      >
        <side-menu
          mode="inline"
          v-if="device === 'mobile'"
          :menus="menus"
          @menuSelect="menuSelect"
          @updateMenuTitle="handleUpdateMenuTitle"
          :theme="navTheme"
          :collapsed="false"
          :collapsible="true"></side-menu>
      </a-drawer>
    <!--<a-drawer-->
    <!--v-if="device === 'mobile'"-->
    <!--:wrapClassName="'drawer-sider ' + navTheme"-->
    <!--placement="left"-->
    <!--@close="() => this.collapsed = false"-->
    <!--:closable="false"-->
    <!--:visible="collapsed"-->
    <!--width="200px"-->
    <!--&gt;-->
    <!--<side-menu-->
    <!--mode="inline"-->
    <!--v-if="device === 'mobile'"-->
    <!--:menus="menus"-->
    <!--@menuSelect="menuSelect"-->
    <!--@updateMenuTitle="handleUpdateMenuTitle"-->
    <!--:theme="navTheme"-->
    <!--:collapsed="false"-->
    <!--:collapsible="true"></side-menu>-->
    <!--</a-drawer>-->
      <side-menu
        v-show="device === 'desktop'"
        mode="inline"
        :menus="menus"
        @menuSelect="myMenuSelect"
        @updateMenuTitle="handleUpdateMenuTitle"
        :theme="navTheme"
        :collapsed="collapsed"
      :collapsed="true"
        :collapsible="true"></side-menu>
    </template>
    <a-layout
      :class="[layoutMode, `content-width-${contentWidth}`]"
      :style="{ paddingLeft: fixSiderbar && isDesktop() ? `${sidebarOpened ? 200 : 80}px` : '0' }">
      <!-- layout header -->
      <global-header
        :mode="layoutMode"
        :menus="menus"
        :theme="navTheme"
        :collapsed="collapsed"
        :device="device"
        @toggle="toggle"
        @updateMenuTitle="handleUpdateMenuTitle"
      />
      :class="[layoutMode, `content-width-${contentWidth}`]">
      <!-- layout content -->
      <a-layout-content :style="{ height: '100%', paddingTop: fixedHeader ? '59px' : '0' }">
      <a-layout-content :style="{ height: '100%' }">
        <slot></slot>
      </a-layout-content>
      <!-- layout footer -->
      <a-layout-footer style="padding: 0px">
      <a-layout-footer style="padding: 0px;background-color: transparent">
        <global-footer/>
      </a-layout-footer>
    </a-layout>
@@ -82,7 +68,7 @@
    components: {
      SideMenu,
      GlobalHeader,
      GlobalFooter,
      GlobalFooter
      // update-start---- author:os_chengtgen -- date:20190830 --  for:issues/463 -编译主题颜色已生效,但还一直转圈,显示主题 æ­£åœ¨ç¼–译 ------
      // // SettingDrawer
      // æ³¨é‡Šè¿™ä¸ªå› ä¸ºåœ¨ä¸ªäººè®¾ç½®æ¨¡å—已经加载了SettingDrawer页面
@@ -116,7 +102,7 @@
      this.menus = this.permissionMenuList
      //--update-begin----author:liusq---date:20210223------for:关于测边菜单遮挡内容问题详细说明 #2255
      this.collapsed=!this.sidebarOpened;
      this.collapsed = !this.sidebarOpened
      //--update-begin----author:liusq---date:20210223------for:关于测边菜单遮挡内容问题详细说明 #2255
      // æ ¹æ®åŽå°é…ç½®èœå•,重新排序加载路由信息
@@ -142,7 +128,7 @@
      myMenuSelect(value){
        //此处触发动态路由被点击事件
        this.findMenuBykey(this.menus,value.key)
        this.$emit("dynamicRouterShow",value.key,this.activeMenu.meta.title)
        this.$emit('dynamicRouterShow', value.key, this.activeMenu.meta.title)
      },
      findMenuBykey(menus,key){
        for(let i of menus){
@@ -160,7 +146,7 @@
        this.findMenuBykey(this.menus, value.path)
        this.activeMenu.meta.title = value.meta.title
        this.$emit('dynamicRouterShow', value.path, this.activeMenu.meta.title)
      },
      }
      // update-end-author:sunjianlei date:20210409 for: ä¿®å¤åŠ¨æ€åŠŸèƒ½æµ‹è¯•èœå•ã€å¸¦å‚æ•°èœå•æ ‡é¢˜é”™è¯¯ã€å±•å¼€é”™è¯¯çš„é—®é¢˜
    }
@@ -182,6 +168,8 @@
  .layout {
    min-height: 100vh !important;
    overflow-x: hidden;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    &.mobile {
@@ -278,6 +266,8 @@
    }
    .sidemenu {
      background-color: transparent;
      .ant-header-fixedHeader {
        position: fixed;
        top: 0;
@@ -555,16 +545,11 @@
    position: relative;
    z-index: 10;
    &.ant-fixed-sidemenu {
      position: fixed;
      height: 100%;
    }
    .logo {
      height: 64px;
      position: relative;
      line-height: 64px;
      padding-left: 24px;
      text-align: center;
      -webkit-transition: all .3s;
      transition: all .3s;
      background: #002140;
@@ -589,8 +574,8 @@
    }
    &.light {
      background-color: #fff;
      box-shadow: 2px 116px 8px 0 rgba(29, 35, 41, 0.05);
      background-color: transparent;
      box-shadow: none;
      .logo {
        background: #fff;
@@ -677,3 +662,4 @@
    }
  }
</style>
src/components/tools/Logo.vue
@@ -4,15 +4,7 @@
      <span>回到首页</span>
    </template>
    <div class="logo">
      <router-link :to="routerLinkTo">
        <!-- update-begin- author:sunjianlei --- date:20190814 --- for: logo颜色根据主题颜色变化 -->
        <img v-if="navTheme === 'dark'" src="~@/assets/logo-white.png" alt="logo">
        <img v-else src="~@/assets/logo.svg" alt="logo">
        <!-- update-begin- author:sunjianlei --- date:20190814 --- for: logo颜色根据主题颜色变化 -->
        <h1 v-if="showTitle">{{ title }}</h1>
      </router-link>
      <img src="~@/assets/icons/logo.png" alt="logo" @click="$router.push('/dashboard/Analysis')">
    </div>
  </a-tooltip>
</template>
@@ -37,14 +29,14 @@
      // ç‚¹å‡»Logo跳转地址
      routerLinkTo: {
        type: Object,
        default: () => ({name: 'dashboard'}),
      },
        default: () => ({ name: 'dashboard' })
      }
    }
  }
</script>
<style lang="less" scoped>
  /*缩小首页布 å±€é¡¶éƒ¨çš„高度*/
  @height: 59px;
  @height: 50px;
  .sider {
    box-shadow: none !important;
@@ -52,18 +44,15 @@
      height: @height !important;
      line-height: @height !important;
      box-shadow: none !important;
      transition: background 300ms;
      cursor: pointer;
      a {
        color: white;
        &:hover {
          color: rgba(255, 255, 255, 0.8);
        }
      img {
        height: @height !important;
      }
    }
    &.light .logo {
      background-color: @primary-color;
      background-color: transparent;
    }
  }
</style>
src/components/tools/UserMenu.vue
@@ -22,10 +22,10 @@
            <span>账户设置</span>
          </router-link>
        </a-menu-item>
        <!--<a-menu-item key="3"  @click="systemSetting">-->
           <!--<a-icon type="tool"/>-->
           <!--<span>系统设置</span>-->
        <!--</a-menu-item>-->
        <a-menu-item key="3"  @click="systemSetting">
           <a-icon type="tool"/>
           <span>系统设置</span>
        </a-menu-item>
        <a-menu-item key="2" @click="updatePassword">
          <a-icon type="setting"/>
          <span>密码修改</span>
src/defaultSettings.js
@@ -22,7 +22,7 @@
  fixSiderbar: false, // sticky siderbar
  autoHideHeader: false, //  auto hide header
  colorWeak: false,
  multipage: true, //默认多页签模式
  multipage: false, //默认多页签模式
  // vue-ls options
  storageOptions: {
    namespace: 'pro__', // key prefix
src/main.js
@@ -1,16 +1,12 @@
/** init domain config */
import './config'
import './assets/fonts/font.css'
import Vue from 'vue'
import App from './App.vue'
import Storage from 'vue-ls'
import router from './router'
import store from './store/'
import { VueAxios } from "@/utils/request"
require('@jeecg/antd-online-mini')
require('@jeecg/antd-online-mini/dist/OnlineForm.css')
import Antd, { version } from 'ant-design-vue'
console.log('ant-design-vue version:', version)
src/utils/util.js
@@ -2,7 +2,6 @@
import * as api from '@/api/api'
import { isURL } from '@/utils/validate'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import onlineCommons from '@jeecg/antd-online-mini'
export function timeFix() {
  const time = new Date()
@@ -118,27 +117,7 @@
    }
    let componentPath
    if(item.component=="modules/online/cgform/OnlCgformHeadList"){
      componentPath = onlineCommons.OnlCgformHeadList
    }else if(item.component=="modules/online/cgform/OnlCgformCopyList"){
      componentPath = onlineCommons.OnlCgformCopyList
    }else if(item.component=="modules/online/cgform/auto/OnlCgformAutoList"){
      componentPath = onlineCommons.OnlCgformAutoList
    }else if(item.component=="modules/online/cgform/auto/OnlCgformTreeList"){
      componentPath = onlineCommons.OnlCgformTreeList
    }else if(item.component=="modules/online/cgform/auto/erp/OnlCgformErpList"){
      componentPath = onlineCommons.OnlCgformErpList
    }else if(item.component=="modules/online/cgform/auto/tab/OnlCgformTabList"){
      componentPath = onlineCommons.OnlCgformTabList
    }else if(item.component=="modules/online/cgform/auto/innerTable/OnlCgformInnerTableList"){
      componentPath = onlineCommons.OnlCgformInnerTableList
    }else if(item.component=="modules/online/cgreport/OnlCgreportHeadList"){
      componentPath = onlineCommons.OnlCgreportHeadList
    }else if(item.component=="modules/online/cgreport/auto/OnlCgreportAutoList"){
      componentPath = onlineCommons.OnlCgreportAutoList
    }else{
      componentPath = resolve => require(['@/' + component+'.vue'], resolve)
    }
    let menu =  {
      path: item.path,
src/views/ai/ElectronicManual.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
<template>
  <div>
    ç”µå­è¯´æ˜Žä¹¦
    <a-card>
      {{answer}}
    </a-card>
    <a-input-search placeholder="input search text" enter-button @search="onSearch"/>
  </div>
</template>
<script>
  import { getDataAfterSearchByApi } from '@/api/AI'
  export default {
    name: 'ElectronicManual',
    components: {},
    data() {
      return {
        answer:''
      }
    },
    methods: {
      onSearch() {
        const param = {
          'id': '683a65fd-8feb-4446-ad32-714c4785f667',
          'messages': [
            {
              'role': 'user',
              'content': '给我讲个故事?'
            }
          ],
          'stream': false,
          'max_tokens': 500
        }
        getDataAfterSearchByApi()
          .then(res => {
            console.log('res', res)
            this.answer = res.result
          })
      }
    }
  }
</script>
<style scoped>
</style>
src/views/dashboard/Analysis.vue
@@ -1,46 +1,93 @@
<template>
  <div>
    <a-card>
      {{answer}}
    </a-card>
    <a-input-search placeholder="input search text" enter-button @search="onSearch"/>
  <div class="page-container">
    <div class="page-container-top">
      <div v-for="(item,index) in gifList" :key="index" class="single-gif-container">
        <img :src="item.gifUrl">
        <div>{{item.gifContent}}</div>
      </div>
    </div>
    <div class="container-split-line"></div>
    <div class="page-container-bottom">
      <img src="@/assets/page/index/eng-label.png">
    </div>
  </div>
</template>
<script>
  import { getDataAfterSearchByApi } from '@/api/AI'
  export default {
    name: 'Analysis',
    components: {},
    data() {
      return {
        answer: ''
        gifList: [
          {
            gifUrl: require('@/assets/page/index/gif1.gif'),
            gifContent: '机床在现代工业生产中扮演着至关重要的角色。它们是制造业的核心设备,为金属、塑料、木材等材料的加工提供了坚实的基础。无论是汽车、飞机、家用电器还是建筑材料,几乎所有的制成品都需要经过机床的加工和制造。可以说,现代社会的方方面面都离不开机床的贡献。'
          },
          {
            gifUrl: require('@/assets/page/index/gif2.gif'),
            gifContent: '由于机床设备的复杂性和长期运行,维护和保养工作显得尤为重要。定期的保养和维修可以确保机床的高效稳定运行,延长使用寿命,避免昂贵的设备故障和生产线停工。同时,及时解决机床故障也是维护生产效率的关键所在。'
          },
          {
            gifUrl: require('@/assets/page/index/gif3.gif'),
            gifContent: '传统的机床维修模式存在一些痛点,例如依赖有限的维修人员经验、查阅笨重的维修手册、难以覆盖所有故障情况等。而利用自然语言大模型结合电子说明书的方式,可以为机床维修带来全新的解决方案和优势。'
          }
        ]
      }
    },
    created() {
    },
    methods: {
      onSearch() {
        const param = {
          'id': '683a65fd-8feb-4446-ad32-714c4785f667',
          'messages': [
            {
              'role': 'user',
              'content': '给我讲个故事?'
            }
          ],
          'stream': false,
          'max_tokens': 500
        }
        getDataAfterSearchByApi()
          .then(res => {
            console.log('res', res)
            this.answer = res.result
          })
      }
    }
    methods: {}
  }
</script>
<style lang="less" scoped>
  .page-container {
    color: #fff;
    display: flex;
    flex-direction: column;
    .page-container-top {
      display: flex;
      justify-content: space-between;
      padding: 100px 250px 0;
      .single-gif-container {
        width: 400px;
        display: flex;
        flex-direction: column;
        align-items: center;
        font-size: 20px;
        text-align: justify;
        text-align-last: left;
        img {
          width: 100%;
          margin-bottom: 20px;
        }
      }
    }
    .container-split-line {
      height: 1px;
      background: #fff;
      width: 80%;
      align-self: flex-end;
      -webkit-justify-content: flex-end;
      margin-top: 50px;
    }
    .page-container-bottom {
      display: flex;
      justify-content: flex-end;
      -webkit-justify-content: flex-end;
      padding: 0 300px;
      img {
        height: 280px;
      }
    }
  }
</style>
src/views/system/modules/icon/Icons.vue
@@ -54,6 +54,13 @@
          </li>
        </ul>
      </a-tab-pane>
      <a-tab-pane tab="自定义图标" key="7">
        <ul>
          <li v-for="icon in icons.customIcons" :key="icon">
            <CustomIcons :type="icon" @click="chooseIcon(icon)"></CustomIcons>
          </li>
        </ul>
      </a-tab-pane>
    </a-tabs>
  </a-modal>
</template>
@@ -64,8 +71,12 @@
const dataIcons = ['area-chart', 'pie-chart', 'bar-chart', 'dot-chart', 'line-chart', 'radar-chart', 'heat-map', 'fall', 'rise', 'stock', 'box-plot', 'fund', 'sliders']
const webIcons = ['lock', 'unlock', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'ellipsis', 'file', 'file-text', 'file-unknown', 'file-pdf', 'file-word', 'file-excel', 'file-jpg', 'file-ppt', 'file-markdown', 'file-add', 'folder', 'folder-open', 'folder-add', 'hdd', 'frown', 'meh', 'smile', 'inbox', 'laptop', 'appstore', 'link', 'mail', 'mobile', 'notification', 'paper-clip', 'picture', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'home', 'loading', 'loading-3-quarters', 'cloud-upload', 'star', 'heart', 'environment', 'eye', 'camera', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customer-service', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'calculator', 'pushpin', 'bulb', 'select', 'switcher', 'rocket', 'bell', 'disconnect', 'database', 'compass', 'barcode', 'hourglass', 'key', 'flag', 'layout', 'printer', 'sound', 'usb', 'skin', 'tool', 'sync', 'wifi', 'car', 'schedule', 'user-add', 'user-delete', 'usergroup-add', 'usergroup-delete', 'man', 'woman', 'shop', 'gift', 'idcard', 'medicine-box', 'red-envelope', 'coffee', 'copyright', 'trademark', 'safety', 'wallet', 'bank', 'trophy', 'contacts', 'global', 'shake', 'api', 'fork', 'dashboard', 'table', 'profile', 'alert', 'audit', 'branches', 'build', 'border', 'crown', 'experiment', 'fire', 'money-collect', 'property-safety', 'read', 'reconciliation', 'rest', 'security-scan', 'insurance', 'interation', 'safety-certificate', 'project', 'thunderbolt', 'block', 'cluster', 'deployment-unit', 'dollar', 'euro', 'pound', 'file-done', 'file-exclamation', 'file-protect', 'file-search', 'file-sync', 'gateway', 'gold', 'robot', 'shopping']
const logoIcons = ['android', 'apple', 'windows', 'ie', 'chrome', 'github', 'aliwangwang', 'dingding', 'weibo-square', 'weibo-circle', 'taobao-circle', 'html5', 'weibo', 'twitter', 'wechat', 'youtube', 'alipay-circle', 'taobao', 'skype', 'qq', 'medium-workmark', 'gitlab', 'medium', 'linkedin', 'google-plus', 'dropbox', 'facebook', 'codepen', 'amazon', 'google', 'codepen-circle', 'alipay', 'ant-design', 'aliyun', 'zhihu', 'slack', 'slack-square', 'behance', 'behance-square', 'dribbble', 'dribbble-square', 'instagram', 'yuque', 'alibaba', 'yahoo']
const customIcons=['custom-icon1','custom-icon2','custom-icon3','custom-icon4','custom-icon5','custom-icon6','custom-icon7','custom-icon8','custom-icon9','custom-icon10','custom-icon11','custom-icon12','custom-icon13','custom-icon14']
import CustomIcons from '../../../../components/menu/CustomIcons'
export default {
  name: 'Icons',
  components: { CustomIcons },
  props: {
    iconChooseVisible: {
      default: false
@@ -79,7 +90,8 @@
        editIcons,
        dataIcons,
        webIcons,
        logoIcons
        logoIcons,
        customIcons
      },
      choosedIcon: '',
      activeIndex: ''
src/views/user/Login.vue
@@ -1,18 +1,27 @@
<template>
  <div class="main">
    <a-form-model class="user-layout-login" @keyup.enter.native="handleSubmit">
      <a-tabs :activeKey="customActiveKey" :tabBarStyle="{ textAlign: 'center', borderBottom: 'unset' }"  @change="handleTabClick">
      <div class="logo">
        <a href="/">
          <img src="~@/assets/logo.png" alt="logo">
        </a>
      </div>
      <a-tabs :activeKey="customActiveKey" :tabBarStyle="{ textAlign: 'center', borderBottom: 'unset' }"
              @change="handleTabClick">
        <a-tab-pane key="tab1" tab="账号密码登录">
          <login-account ref="alogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-account>
          <login-account ref="alogin" @validateFail="validateFail" @success="loginSuccess"
                         @fail="requestFailed"></login-account>
        </a-tab-pane>
        <a-tab-pane key="tab2" tab="手机号登录">
          <login-phone ref="plogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-phone>
          <login-phone ref="plogin" @validateFail="validateFail" @success="loginSuccess"
                       @fail="requestFailed"></login-phone>
        </a-tab-pane>
      </a-tabs>
      <a-form-model-item>
        <a-checkbox @change="handleRememberMeChange" default-checked>自动登录</a-checkbox>
      <a-form-model-item style="margin-bottom: 5px">
        <!--<a-checkbox @change="handleRememberMeChange" default-checked>自动登录</a-checkbox>-->
        <router-link :to="{ name: 'alteration'}" class="forge-password" style="float: right;">
          å¿˜è®°å¯†ç 
        </router-link>
@@ -21,16 +30,17 @@
        </router-link>
      </a-form-model-item>
      <a-form-item style="margin-top:24px">
        <a-button size="large"  type="primary"  htmlType="submit"  class="login-button"  :loading="loginBtn"  @click.stop.prevent="handleSubmit" :disabled="loginBtn">确定
      <a-form-model-item>
        <a-button size="large" htmlType="submit" class="login-button" :loading="loginBtn"
                  @click.stop.prevent="handleSubmit" :disabled="loginBtn">登&nbsp;&nbsp;&nbsp;&nbsp;录
        </a-button>
      </a-form-item>
      </a-form-model-item>
    </a-form-model>
    <two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess" @cancel="stepCaptchaCancel"></two-step-captcha>
    <login-select-tenant ref="loginSelect" @success="loginSelectOk"></login-select-tenant>
    <third-login ref="thirdLogin"></third-login>
    <two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess"
                      @cancel="stepCaptchaCancel"></two-step-captcha>
    <!--<third-login ref="thirdLogin"></third-login>-->
  </div>
</template>
@@ -38,17 +48,14 @@
import Vue from 'vue'
import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
import ThirdLogin from './third/ThirdLogin'
import LoginSelectTenant from './LoginSelectTenant'
import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
import { getEncryptedString } from '@/utils/encryption/aesEncrypt'
import { timeFix } from '@/utils/util'
import LoginAccount from './LoginAccount'
import LoginPhone from './LoginPhone'
export default {
    components: {
      LoginSelectTenant,
      TwoStepCaptcha,
      ThirdLogin,
      LoginAccount,
@@ -62,14 +69,14 @@
        requiredTwoStepCaptcha: false,
        stepCaptchaVisible: false,
        encryptedString:{
          key:"",
          iv:"",
        },
          key: '',
          iv: ''
        }
      }
    },
    created() {
      Vue.ls.remove(ACCESS_TOKEN)
      this.getRouterData();
      this.getRouterData()
      this.rememberMe = true
    },
    methods:{
@@ -91,7 +98,7 @@
      //登录
      handleSubmit () {
        this.loginBtn = true;
        this.loginBtn = true
        if (this.customActiveKey === 'tab1') {
          // ä½¿ç”¨è´¦æˆ·å¯†ç ç™»å½•
          this.$refs.alogin.handleLogin(this.rememberMe)
@@ -102,7 +109,7 @@
      },
      // æ ¡éªŒå¤±è´¥
      validateFail(){
        this.loginBtn = false;
        this.loginBtn = false
      },
      // ç™»å½•后台成功
      requestSuccess(loginResult){
@@ -110,30 +117,27 @@
      },
      //登录后台失败
      requestFailed (err) {
        let description = ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试"
        let description = ((err.response || {}).data || {}).message || err.message || '请求出现错误,请稍后再试'
        this.$notification[ 'error' ]({
          message: '登录失败',
          description: description,
          duration: 4,
        });
          duration: 4
        })
        //账户密码登录错误后更新验证码
        if(this.customActiveKey === 'tab1' && description.indexOf('密码错误')>0){
          this.$refs.alogin.handleChangeCheckCode()
        }
        this.loginBtn = false;
      },
      loginSelectOk(){
        this.loginSuccess()
        this.loginBtn = false
      },
      //登录成功
      loginSuccess () {
        this.$router.push({ path: "/dashboard/analysis" }).catch(()=>{
        this.$router.push({ path: '/dashboard/analysis' }).catch(() => {
          console.log('登录跳转首页出错,这个错误从哪里来的')
        })
        this.$notification.success({
          message: '欢迎',
          description: `${timeFix()},欢迎回来`,
        });
          description: `${timeFix()},欢迎回来`
        })
      },
      stepCaptchaSuccess () {
@@ -147,13 +151,13 @@
      },
      //获取密码加密规则
      getEncrypte(){
        var encryptedString = Vue.ls.get(ENCRYPTED_STRING);
        var encryptedString = Vue.ls.get(ENCRYPTED_STRING)
        if(encryptedString == null){
          getEncryptedString().then((data) => {
            this.encryptedString = data
          });
          })
        }else{
          this.encryptedString = encryptedString;
          this.encryptedString = encryptedString
        }
      }
@@ -163,52 +167,86 @@
</script>
<style lang="less" scoped>
  .user-layout-login {
    label {
      font-size: 14px;
    .logo {
      text-align: center;
      a {
        text-decoration: none;
        img {
          height: 80px;
    }
  .getCaptcha {
      display: block;
      width: 100%;
      height: 40px;
      }
    }
  .forge-password {
      font-size: 14px;
      color: #fff;
    }
    button.login-button {
      padding: 0 15px;
      font-size: 16px;
      height: 40px;
      font-size: 24.7px;
      color: #fff;
      height: 55px;
      width: 100%;
      border-radius: 43px;
      background-color: #80B9D7;
      border: none;
      font-weight: bold;
    }
  .user-login-other {
      text-align: left;
      margin-top: 24px;
      line-height: 22px;
    .item-icon {
        font-size: 24px;
        color: rgba(0,0,0,.2);
        margin-left: 16px;
        vertical-align: middle;
        cursor: pointer;
        transition: color .3s;
      &:hover {
          color: #1890ff;
        }
      }
    .register {
        float: right;
      }
    }
  }
</style>
<style>
  .valid-error .ant-select-selection__placeholder{
    color: #f5222d;
<style scoped lang="less">
  /deep/ .ant-tabs-bar {
    margin: 30px 0 40px;
  }
  /deep/ .ant-tabs-nav .ant-tabs-tab {
    color: #fff;
    font-size: 19px;
    font-weight: bold;
  }
  /deep/ .ant-tabs-ink-bar {
    background-color: #fff;
    height: 3px;
  }
  /deep/ .login-input {
    border-radius: 43px;
    background-color: rgba(255, 255, 255, .3);
    padding-left: 20px;
    display: flex;
    align-items: center
  }
  /deep/ .ant-input {
    border: none;
    height: 55px;
    background-color: transparent !important;
    color: #fff;
    font-size: 17.9px;
    letter-spacing: 1px;
    /*获取焦点*/
    &:focus {
      border: none;
      box-shadow: none;
    }
    /*自动填充*/
    &:-webkit-autofill{
      -webkit-text-fill-color: #fff !important;
      color: #fff;
      transition: background-color 5000s ease-in-out 0s;
    }
    /*提示栏*/
    &::placeholder {
      color: #fff; /* è®¾ç½®å ä½ç¬¦æ–‡æœ¬çš„颜色 */
      font-size: 16px; /* è®¾ç½®å ä½ç¬¦æ–‡æœ¬çš„字体大小 */
    }
  }
</style>
src/views/user/LoginAccount.vue
@@ -1,32 +1,35 @@
<template>
    <div>
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item required prop="username">
          <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin">
            <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/>
          </a-input>
      <div class="login-input">
        <img src="../../assets/icons/account.png" height="25" style="margin-right: 10px">
        <a-input v-model="model.username" size="large" placeholder="用户名" ref="inputRef" @focus="inputFocus"/>
      </div>
        </a-form-model-item>
        <a-form-model-item required prop="password">
          <a-input v-model="model.password" size="large" type="password" autocomplete="false" placeholder="请输入密码 / 123456">
            <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
          </a-input>
      <div class="login-input">
        <img src="../../assets/icons/password.png" height="25" style="margin-right: 10px">
        <a-input v-model="model.password" size="large" type="password" autocomplete="false"
                 placeholder="密码"/>
      </div>
        </a-form-model-item>
        <a-row :gutter="0">
    <a-row :gutter="0" style="height: 40px">
          <a-col :span="16">
            <a-form-model-item required prop="inputCode">
              <a-input v-model="model.inputCode" size="large" type="text" placeholder="请输入验证码">
                <a-icon slot="prefix" type="smile" :style="{ color: 'rgba(0,0,0,.25)' }"/>
              </a-input>
          <div class="login-input">
            <img src="../../assets/icons/inputCode.png" height="25" style="margin-right: 10px">
            <a-input v-model="model.inputCode" size="large" type="text" placeholder="请输入验证码"/>
          </div>
            </a-form-model-item>
          </a-col>
          <a-col :span="8" style="text-align: right">
            <img v-if="requestCodeSuccess" style="margin-top: 2px;" :src="randCodeImage" @click="handleChangeCheckCode"/>
      <a-col :span="8" style="height: 55px;display: flex;justify-content: right;align-items: center;padding-left: 15px">
        <img v-if="requestCodeSuccess" style="height: 45px;width:100%;border-radius: 15px;" :src="randCodeImage"
             @click="handleChangeCheckCode"/>
            <img v-else style="margin-top: 2px;" src="../../assets/checkcode.png" @click="handleChangeCheckCode"/>
          </a-col>
        </a-row>
      </a-form-model>
    </div>
</template>
<script>
@@ -63,13 +66,13 @@
      }
    },
    created() {
      this.handleChangeCheckCode();
      this.handleChangeCheckCode()
    },
    methods:{
      ...mapActions(['Login']),
      /**刷新验证码*/
      handleChangeCheckCode(){
        this.currdatetime = new Date().getTime();
        this.currdatetime = new Date().getTime()
        this.model.inputCode = ''
        getAction(`/sys/randomImage/${this.currdatetime}`).then(res=>{
          if(res.success){
@@ -85,7 +88,7 @@
      },
      // åˆ¤æ–­ç™»å½•类型
      handleUsernameOrEmail (rule, value, callback) {
        const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
        const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/
        if (regex.test(value)) {
          this.loginType = 0
        } else {
@@ -104,12 +107,12 @@
          let p = new Promise((resolve, reject) => {
            this.$refs['form'].validateField(item, (err)=>{
              if(!err){
                resolve();
                resolve()
              }else{
                reject(err);
                reject(err)
              }
            })
          });
          })
          promiseArray.push(p)
        }
        Promise.all(promiseArray).then(()=>{
@@ -130,25 +133,29 @@
              password: this.model.password,
              captcha: this.model.inputCode,
              checkKey: this.currdatetime,
              remember_me: rememberMe,
              remember_me: rememberMe
            }
            console.log("登录参数", loginParams)
            console.log('登录参数', loginParams)
            this.Login(loginParams).then((res) => {
              this.$emit('success', res.result)
            }).catch((err) => {
              //update-begin-author: taoyan date:20220425 for: ç™»å½•页面,当输入验证码错误时,验证码图片要刷新一下,而不是保持旧的验证码图片不变 #41
              if(err && err.code===412){
                this.handleChangeCheckCode();
                this.handleChangeCheckCode()
              }
              //update-end-author: taoyan date:20220425 for: ç™»å½•页面,当输入验证码错误时,验证码图片要刷新一下,而不是保持旧的验证码图片不变 #41
              this.$emit('fail', err)
            });
            })
          }else{
            this.$emit('validateFail')
          }
        })
      }
      },
      inputFocus() {
        console.log('触发focus', this.$refs.inputRef.$el.style)
        this.$refs.inputRef.$el.style = 'background-color:#f00'
      }
    }
@@ -157,4 +164,5 @@
<style scoped>
</style>
src/views/user/LoginPhone.vue
@@ -2,19 +2,21 @@
  <div>
    <a-form-model ref="form" :model="model" :rules="validatorRules">
      <a-form-model-item required prop="mobile">
        <a-input v-model="model.mobile" size="large" type="text" placeholder="请输入手机号">
          <a-icon slot="prefix" type="mobile" :style="{ color: 'rgba(0,0,0,.25)' }"/>
        </a-input>
        <div class="login-input">
          <img src="../../assets/icons/phone.png" height="25" style="margin-right: 10px">
          <a-input v-model="model.mobile" size="large" type="text" placeholder="请输入手机号"/>
        </div>
      </a-form-model-item>
      <a-row :gutter="16">
        <a-col class="gutter-row" :span="16">
        <a-col :span="16">
          <a-form-model-item required prop="captcha">
            <a-input v-model="model.captcha" size="large" type="text" placeholder="请输入验证码">
              <a-icon slot="prefix" type="mail" :style="{ color: 'rgba(0,0,0,.25)' }"/>
            </a-input>
            <div class="login-input">
              <img src="../../assets/icons/inputCode.png" height="25" style="margin-right: 10px">
              <a-input v-model="model.captcha" size="large" type="text" placeholder="请输入验证码"/>
            </div>
          </a-form-model-item>
        </a-col>
        <a-col class="gutter-row" :span="8">
        <a-col style="height: 55px;display: flex;justify-content: right;align-items: center;padding-left: 15px">
          <a-button
            class="getCaptcha"
            tabindex="-1"
@@ -167,6 +169,10 @@
.getCaptcha{
  display: block;
  width: 100%;
  height: 40px;
  height: 45px;
  border-radius: 15px;
  font-size: 17.9px;
  color: #000;
  border: none;
}
</style>
src/views/user/UserManagement.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
<template>
  <div>
    <a-button @click="handleLogout">退出登录</a-button>
  </div>
</template>
<script>
  import { mapActions } from 'vuex'
  export default {
    name: 'UserManagement',
    components: {},
    data() {
      return {}
    },
    methods: {
      ...mapActions(['Logout']),
      handleLogout() {
        const that = this
        this.$confirm({
          title: '提示',
          content: '真的要注销登录吗 ?',
          onOk() {
            return that.Logout({}).then(() => {
              that.$router.push({ path: '/user/login' });
              // window.location.reload()
            }).catch(err => {
              that.$message.error({
                title: '错误',
                description: err.message
              })
            })
          },
          onCancel() {
          }
        })
      }
    }
  }
</script>
<style scoped>
</style>