From afbfa1a094fb6d65ce5fb047a02fe3528f242d0f Mon Sep 17 00:00:00 2001
From: longyvfengyun <496960745@qq.com>
Date: 星期五, 16 六月 2023 10:57:39 +0800
Subject: [PATCH] 平台logo提交

---
 src/views/mainLayout/components/SlideMenu.vue |  106 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 72 insertions(+), 34 deletions(-)

diff --git a/src/views/mainLayout/components/SlideMenu.vue b/src/views/mainLayout/components/SlideMenu.vue
index f10a3f8..e468f9d 100644
--- a/src/views/mainLayout/components/SlideMenu.vue
+++ b/src/views/mainLayout/components/SlideMenu.vue
@@ -1,12 +1,14 @@
 <script setup>
-import {computed, ref} from "vue";
+import {computed, ref, watchEffect} from "vue";
 import usePageMenuStore from "@/store/usePageMenuStore";
+import FlexLayout from "@/components/FlexLayout.vue";
 const pageMenuStore = usePageMenuStore();
 
 const isCollapse = computed(()=>{
 	return pageMenuStore.isCollapse;
 });
 
+const isOpen = ref(!isCollapse.value);
 const menuActive = ref("/");
 const menuData = ref([]);
 menuData.value = [
@@ -37,45 +39,63 @@
 	},
 ];
 
-const handleOpen = ()=>{};
-const handleClose = ()=>{};
+const handleOpen = ()=>{
+	isOpen.value = true;
+};
+
+watchEffect(()=>{
+	if(isCollapse.value) {
+		isOpen.value = false;
+	}
+});
 </script>
 
 <template>
-	<div class="menu-wrapper">
-		<el-menu
-			:router="true"
-			text-color="#4ba1fa"
-			active-text-color="#00fefe"
-			background-color="#021a64"
-			:default-active="menuActive"
-			:unique-opened="true"
-			class="el-menu-vertical"
-			:collapse="isCollapse"
-			@open="handleOpen"
-			@close="handleClose">
-			<template v-for="menu in menuData" :key="menu.path">
-				<el-sub-menu :index="menu.path" v-if="menu.children">
-					<template #title>
+	<flex-layout no-bg>
+		<template #header>
+			<div class="sys-logo">
+				<div class="logo-img">
+					<img src="@/assets/images/logo.png" alt="" />
+				</div>
+				<div class="sys-name" v-if="isOpen">
+					鐜鐩戞帶绯荤粺
+				</div>
+			</div>
+		</template>
+		<div class="menu-wrapper">
+			<el-menu
+				:router="true"
+				text-color="#4ba1fa"
+				active-text-color="#00fefe"
+				background-color="#021a64"
+				:default-active="menuActive"
+				:unique-opened="true"
+				class="el-menu-vertical"
+				:collapse="isCollapse"
+				@open="handleOpen">
+				<template v-for="menu in menuData" :key="menu.path">
+					<el-sub-menu :index="menu.path" v-if="menu.children">
+						<template #title>
+							<el-icon>
+								<component :is="menu.icon"></component>
+							</el-icon>
+							<span>{{menu.title}}</span>
+						</template>
+						<el-menu-item
+							v-for="children in menu.children"
+							:key="children.path"
+							:index="children.path">{{children.title}}</el-menu-item>
+					</el-sub-menu>
+					<el-menu-item :index="menu.path" v-else>
 						<el-icon>
 							<component :is="menu.icon"></component>
 						</el-icon>
-						<span>{{menu.title}}</span>
-					</template>
-					<el-menu-item
-						v-for="children in menu.children"
-						:key="children.path"
-						:index="children.path">{{children.title}}</el-menu-item>
-				</el-sub-menu>
-				<el-menu-item :index="menu.path" v-else>
-					<el-icon>
-						<component :is="menu.icon"></component>
-					</el-icon>
-					<template #title>{{menu.title}}</template>
-				</el-menu-item>
-			</template>
-		</el-menu>
-	</div>
+						<template #title>{{menu.title}}</template>
+					</el-menu-item>
+				</template>
+			</el-menu>
+		</div>
+	</flex-layout>
 </template>
 
 <style lang="less" scoped>
@@ -98,4 +118,22 @@
 	width: 200px;
 	min-height: 400px;
 }
+.sys-logo {
+	padding: 6px 0 6px 16px;
+	.logo-img {
+		display: inline-block;
+		height: 28px;
+		vertical-align: bottom;
+		img {
+			width: auto;
+			height: 100%;
+		}
+	}
+	.sys-name {
+		display: inline-block;
+		margin-left: 6px;
+		font-weight: bold;
+		color: @font-color-primary;
+	}
+}
 </style>

--
Gitblit v1.9.1