fix: 🐛 修复混合布局下侧边栏配色为白色时组件 huamburger 无法显示问题
This commit is contained in:
@@ -1,20 +1,38 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="hamburger-wrapper" @click="toggleClick">
|
<div class="hamburger-wrapper" @click="toggleClick">
|
||||||
<div :class="['i-svg:collapse', { hamburger: true, 'is-active': isActive }]" />
|
<div :class="['i-svg:collapse', { hamburger: true, 'is-active': isActive }, hamburgerClass]" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { useSettingsStore } from "@/store";
|
||||||
|
import { ThemeEnum, SidebarColorEnum } from "@/enums/ThemeEnum";
|
||||||
|
import { LayoutEnum } from "@/enums/LayoutEnum";
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
isActive: {
|
isActive: { type: Boolean, required: true },
|
||||||
required: true,
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const emit = defineEmits(["toggleClick"]);
|
const emit = defineEmits(["toggleClick"]);
|
||||||
|
|
||||||
|
const settingsStore = useSettingsStore();
|
||||||
|
const layout = computed(() => settingsStore.layout);
|
||||||
|
|
||||||
|
const hamburgerClass = computed(() => {
|
||||||
|
// 如果暗黑主题
|
||||||
|
if (settingsStore.theme === ThemeEnum.DARK) {
|
||||||
|
return "hamburger--white";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果是混合布局 && 侧边栏配色方案是经典蓝
|
||||||
|
if (
|
||||||
|
layout.value === LayoutEnum.MIX &&
|
||||||
|
settingsStore.sidebarColorScheme === SidebarColorEnum.CLASSIC_BLUE
|
||||||
|
) {
|
||||||
|
return "hamburger--white";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
function toggleClick() {
|
function toggleClick() {
|
||||||
emit("toggleClick");
|
emit("toggleClick");
|
||||||
}
|
}
|
||||||
@@ -26,20 +44,20 @@ function toggleClick() {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
.hamburger {
|
.hamburger {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
cursor: pointer;
|
|
||||||
transform: scaleX(-1);
|
transform: scaleX(-1);
|
||||||
}
|
transition: transform 0.3s ease;
|
||||||
|
|
||||||
.hamburger.is-active {
|
&--white {
|
||||||
transform: scaleX(1);
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
.layout-mix {
|
&.is-active {
|
||||||
.hamburger-wrapper {
|
transform: scaleX(1);
|
||||||
color: #fff;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user