zhangwencui
2026-06-17 acd6bbae394c997523b5051d019e584db1845c4c
src/layout/components/Sidebar/Logo.vue
@@ -1,7 +1,7 @@
<template>
  <div class="sidebar-logo-container" :class="{ collapse }">
    <transition name="sidebarLogoFade">
      <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
      <router-link style="display: flex;" v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
        <img :src="faviconUrl" class="sidebar-logo sidebar-favicon" alt="站点图标" />
      </router-link>
      <router-link v-else key="expand" class="sidebar-logo-link" :style="expandLogoLinkStyle" to="/">
@@ -90,108 +90,55 @@
.sidebar-logo-container {
  position: relative;
  width: 100% !important;
  height: 78px !important;
  line-height: 78px;
  height: 64px !important;
  line-height: 64px;
  background: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-align: left;
  overflow: hidden;
  box-shadow: none;
  backdrop-filter: none;
  transition: all 0.3s ease;
  .sidebar-logo-link {
    position: relative;
    isolation: isolate;
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    &::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: var(--logo-bg-image);
      background-size: cover;
      background-position: center;
      opacity: 0.26;
      filter: blur(8px) saturate(0.9);
      transform: scale(1.06);
      pointer-events: none;
      z-index: 0;
    }
    &::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(16, 49, 89, 0.18), rgba(16, 49, 89, 0.08));
      pointer-events: none;
      z-index: 0;
    }
    justify-content: flex-start; // 默认展开时靠左
    padding: 0 16px;
  }
  .sidebar-logo {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    padding: 6px 10px;
   height:100%;
   width:100%;
    width: auto;
    max-width: 100%;
    vertical-align: middle;
    object-fit: contain;
    object-position: center;
    filter: none;
    display: block;
    position: relative;
    z-index: 1;
  }
  .sidebar-title {
    display: inline-block;
    margin: 0;
    color: var(--text-primary);
    color: #fff;
    font-weight: 600;
    line-height: 1.2;
    font-size: 14px;
    font-family: "Segoe UI", "PingFang SC", sans-serif;
    line-height: 64px;
    font-size: 16px;
    vertical-align: middle;
    position: relative;
    z-index: 1;
    margin-left: 12px;
    white-space: nowrap;
  }
  &.collapse {
    .sidebar-logo-link {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      &::before,
      &::after {
        display: none;
      }
      justify-content: center; // 折叠时绝对居中
    }
    .sidebar-logo {
      width: calc(100% - 8px);
      height: calc(100% - 8px);
      max-width: none;
      max-height: none;
      padding: 4px;
      margin: 0 auto;
      filter: none;
      object-fit: contain;
      object-position: center;
    }
    .sidebar-favicon {
      width: calc(100% - 8px);
      height: calc(100% - 8px);
      max-width: none;
      max-height: none;
      width: 32px;
      height: 32px;
      margin: 0;
    }
  }
}