| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <template>
- <div class="logo">
- <transition enter-active-class="animate__animated animate__fadeInLeft">
- <router-link :key="+collapse" class="wh-full flex-center" to="/">
- <img :src="logo" class="w40px h40px" />
- <span v-if="!collapse" class="title">
- {{ defaultSettings.title }}
- </span>
- </router-link>
- </transition>
- </div>
- </template>
- <script lang="ts" setup>
- import { defaultSettings } from "@/settings";
- import logo from "@/assets/logo.svg";
- defineProps({
- collapse: {
- type: Boolean,
- required: true,
- },
- });
- </script>
- <style lang="scss" scoped>
- .logo {
- width: 100%;
- height: $navbar-height;
- background-color: $sidebar-logo-background;
- .title {
- flex-shrink: 0;
- margin-left: 10px;
- font-size: 14px;
- font-weight: bold;
- color: $sidebar-logo-text-color;
- }
- }
- </style>
- <style lang="scss">
- // 顶部布局和混合布局的特殊处理
- .layout-top,
- .layout-mix {
- .logo {
- background-color: transparent !important;
- .title {
- color: var(--menu-text);
- }
- }
- }
- // 宽屏时:openSidebar 状态下显示完整Logo+文字
- .openSidebar {
- &.layout-top .layout__header-left .logo,
- &.layout-mix .layout__header-logo .logo {
- width: $sidebar-width; // 210px,显示logo+文字
- }
- }
- // 窄屏时:hideSidebar 状态下只显示Logo图标
- .hideSidebar {
- &.layout-top .layout__header-left .logo,
- &.layout-mix .layout__header-logo .logo {
- width: $sidebar-width-collapsed; // 54px,只显示logo
- }
- // 隐藏文字,只显示图标
- .logo .title {
- display: none;
- }
- }
- </style>
|