|
@@ -1,7 +1,9 @@
|
|
|
<script setup>
|
|
|
import { useMenuStore } from '@/stores/menu'
|
|
|
import { useUserStore } from '@/stores/user'
|
|
|
-import logo from '@/assets/logo.png'
|
|
|
+import config from '@/config/defaultSetting'
|
|
|
+
|
|
|
+const iconSize = ref('22')
|
|
|
|
|
|
// 菜单收缩展开切换
|
|
|
const menuStore = useMenuStore()
|
|
@@ -14,27 +16,44 @@ const handleToggle = () => {
|
|
|
// 全屏切换
|
|
|
const { toggle: toggleScreen, isFullscreen } = useFullscreen()
|
|
|
|
|
|
+// 用户信息
|
|
|
const userStore = useUserStore()
|
|
|
const user = userStore.user
|
|
|
+
|
|
|
+const logout = () => {
|
|
|
+ ElMessageBox.confirm('您确定要退出登录吗', '提示', {
|
|
|
+ type: 'info',
|
|
|
+ closeOnClickModal: false,
|
|
|
+ confirmButtonText: '确定'
|
|
|
+ }).then(() => {
|
|
|
+ userStore.logout()
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 主题设置
|
|
|
+const visible = ref(false)
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<header class="layout-header">
|
|
|
<div class="logo flex items-center justify-center" :class="{ collapse: value }">
|
|
|
- <img :src="logo" />
|
|
|
- <div class="ml-2" :class="{ hidden: value }">方是科技管理系统</div>
|
|
|
+ <img :src="config.logo" class="h-36px" />
|
|
|
+ <div class="ml-2" :class="{ hidden: value }">{{ config.title }}</div>
|
|
|
</div>
|
|
|
<div class="flex flex-grow items-center justify-between px-4">
|
|
|
<el-space :size="20">
|
|
|
<el-button link @click="handleToggle">
|
|
|
- <icon-menu-unfold-one size="22" :strokeWidth="2" v-if="!value" />
|
|
|
- <icon-menu-fold-one size="22" :strokeWidth="2" v-else />
|
|
|
+ <icon-menu-unfold-one :size="iconSize" :strokeWidth="2" v-if="!value" />
|
|
|
+ <icon-menu-fold-one :size="iconSize" :strokeWidth="2" v-else />
|
|
|
</el-button>
|
|
|
</el-space>
|
|
|
<div class="flex items-center">
|
|
|
- <el-button link @click="toggleScreen" class="mr-4">
|
|
|
- <icon-off-screen size="22" v-if="isFullscreen" />
|
|
|
- <icon-full-screen size="22" v-else />
|
|
|
+ <el-button link @click="toggleScreen" class="mr-2">
|
|
|
+ <icon-off-screen :size="iconSize" v-if="isFullscreen" />
|
|
|
+ <icon-full-screen :size="iconSize" v-else />
|
|
|
+ </el-button>
|
|
|
+ <el-button link class="mr-4" @click="visible = true">
|
|
|
+ <icon-setting-two :size="iconSize" />
|
|
|
</el-button>
|
|
|
<el-avatar class="mr-10px" :src="user.photo"></el-avatar>
|
|
|
<el-dropdown>
|
|
@@ -50,7 +69,7 @@ const user = userStore.user
|
|
|
<el-icon><icon-setting-two></icon-setting-two></el-icon>
|
|
|
<div>个人设置</div>
|
|
|
</el-dropdown-item>
|
|
|
- <el-dropdown-item @click="userStore.logout">
|
|
|
+ <el-dropdown-item @click="logout">
|
|
|
<el-icon><icon-logout></icon-logout></el-icon>
|
|
|
<div>退出登录</div>
|
|
|
</el-dropdown-item>
|
|
@@ -59,6 +78,8 @@ const user = userStore.user
|
|
|
</el-dropdown>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <GlobalSetting v-model="visible"></GlobalSetting>
|
|
|
</header>
|
|
|
</template>
|
|
|
|
|
@@ -72,10 +93,6 @@ const user = userStore.user
|
|
|
|
|
|
.logo {
|
|
|
width: var(--menu-width);
|
|
|
-
|
|
|
- img {
|
|
|
- height: 36px;
|
|
|
- }
|
|
|
}
|
|
|
.collapse {
|
|
|
width: calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2);
|