Files
admin-govern/src/layouts/admin/components/logo.vue

80 lines
2.2 KiB
Vue
Raw Normal View History

2023-12-21 16:42:39 +08:00
<template>
<div class="layout-logo">
2024-12-17 20:57:07 +08:00
<img v-if="!config.layout.menuCollapse" class="logo-img" :src="getTheme.logoUrl" />
<!-- <div-->
<!-- v-if="!config.layout.menuCollapse"-->
<!-- :style="{ color: config.getColorVal('menuActiveColor') }"-->
<!-- class="website-name"-->
<!-- >-->
<!-- 灿能-->
<!-- </div>-->
2023-12-21 16:42:39 +08:00
<Icon
v-if="config.layout.layoutMode != 'Streamline'"
@click="onMenuCollapse"
2023-12-27 15:06:57 +08:00
:name="config.layout.menuCollapse ? 'el-icon-Expand' : 'el-icon-Fold'"
2023-12-21 16:42:39 +08:00
:class="config.layout.menuCollapse ? 'unfold' : ''"
:color="config.getColorVal('menuActiveColor')"
2024-12-17 20:57:07 +08:00
style="margin: 15px;"
2023-12-21 16:42:39 +08:00
size="18"
class="fold"
/>
</div>
</template>
<script setup lang="ts">
import { useConfig } from '@/stores/config'
import { closeShade } from '@/utils/pageShade'
import { Session } from '@/utils/storage'
import { setNavTabsWidth } from '@/utils/layout'
const config = useConfig()
2024-12-17 20:57:07 +08:00
const getTheme = JSON.parse(window.localStorage.getItem('getTheme') as string)
2023-12-21 16:42:39 +08:00
const onMenuCollapse = function () {
if (config.layout.shrink && !config.layout.menuCollapse) {
closeShade()
}
config.setLayout('menuCollapse', !config.layout.menuCollapse)
// 等待侧边栏动画结束后重新计算导航栏宽度
setTimeout(() => {
setNavTabsWidth()
}, 350)
}
</script>
<style scoped lang="scss">
.layout-logo {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
2024-12-17 20:57:07 +08:00
padding: 5px 10px;
2023-12-21 16:42:39 +08:00
background: v-bind(
'config.layout.layoutMode != "Streamline" ? config.getColorVal("menuTopBarBackground"):"transparent"'
);
}
.logo-img {
2024-12-17 20:57:07 +08:00
height: 50px;
2023-12-27 15:06:57 +08:00
object-fit: cover;
2024-12-17 20:57:07 +08:00
margin: auto;
2023-12-21 16:42:39 +08:00
}
.website-name {
display: block;
width: 180px;
padding-left: 4px;
font-size: var(--el-font-size-extra-large);
font-weight: 600;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fold {
margin-left: auto;
}
.unfold {
margin: 0 auto;
}
</style>