fix: Logo区域自适应优化,支持折叠/展开状态

- 文字溢出处理(ellipsis)
- 折叠时只显示图标居中
- 传递collapsed状态给Logo组件
- 减小字体和间距适配150px侧边栏
This commit is contained in:
root
2026-02-16 09:07:36 +01:00
parent 511ea31a7c
commit f676f64b18
2 changed files with 32 additions and 14 deletions

View File

@@ -5,7 +5,7 @@
:collapsible="collapsible"
v-model="collapsed"
:trigger="null">
<logo />
<logo :collapsed="collapsed" />
<s-menu
:collapsed="collapsed"
:menu="menus"

View File

@@ -1,8 +1,8 @@
<template>
<div class="logo">
<div class="logo" :class="{ 'logo-collapsed': collapsed }">
<div class="logo-content">
<div class="logo-icon">🏔️</div>
<h1 v-if="showTitle" class="logo-title">{{ title }}</h1>
<h1 v-if="showTitle && !collapsed" class="logo-title">{{ title }}</h1>
</div>
</div>
</template>
@@ -23,12 +23,16 @@
type: Boolean,
default: true,
required: false
},
collapsed: {
type: Boolean,
default: false,
required: false
}
}
}
</script>
<style lang="less" scoped>
/*缩小首页布 局顶部的高度*/
@height: 49px;
.logo {
@@ -36,34 +40,48 @@
height: @height !important;
line-height: @height !important;
box-shadow: none !important;
transition: background 300ms;
transition: all 300ms ease;
background: linear-gradient(135deg, #001a3a 0%, #003d82 100%);
padding: 0 16px;
padding: 0 12px;
overflow: hidden;
white-space: nowrap;
.logo-content {
display: flex;
align-items: center;
justify-content: flex-start;
height: 100%;
overflow: hidden;
.logo-icon {
font-size: 24px;
margin-right: 8px;
font-size: 22px;
flex-shrink: 0;
display: flex;
align-items: center;
filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
justify-content: center;
min-width: 22px;
}
.logo-title {
font-size: 18px;
font-size: 14px;
color: #ffffff;
margin: 0;
margin: 0 0 0 8px;
font-weight: 600;
text-shadow: 0 1px 2px rgba(0,0,0,0.3);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
opacity: 1;
transition: opacity 300ms ease;
}
}
&:hover {
background: linear-gradient(135deg, #003d82 0%, #001a3a 100%);
// 折叠状态:只显示图标居中
&.logo-collapsed {
padding: 0;
.logo-content {
justify-content: center;
}
}
a {