From 485aef90f3240c06747d1e7bf6a0edfe4c2dbe0c Mon Sep 17 00:00:00 2001 From: odc.xiaohui <xiaohui@Q1> Date: 星期一, 13 二月 2023 16:31:10 +0800 Subject: [PATCH] 2023/2/13 肖辉 侧边栏处理 --- src/views/layout/components/Menu/index.vue | 99 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 75 insertions(+), 24 deletions(-) diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index a482eee..aa2c626 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -5,16 +5,19 @@ <h2 class="siderbar-title" @click="toHome()">閬傛槍鎵ф硶骞冲彴</h2> <el-scrollbar> <!-- 璺敱 --> - <el-menu router class="el-menu-vertical" :default-active="$route.path"> + <el-menu router + class="el-menu-vertical" + :default-active="$route.path.name" + @select="handleSelect"> <el-submenu - :index="menu.url ? menu.url : menu.id.toString()" + :index="String(menu.id)" v-for="menu in menuList" :key="menu.id" class="firstMenu" > <template slot="title"> <span slot="prefix" class="icon-padding fisrtSpan"> - <svg-icon :icon-class="menu.icon"></svg-icon> + <svg-icon class="icon-title" :icon-class="menu.icon"></svg-icon> </span> <span class="fisrtSpan">{{ menu.title }}</span> </template> @@ -23,10 +26,9 @@ <el-submenu :key="secondMenu.id" v-if="secondMenu.menuVoArrayList.length > 0" - :index=" - secondMenu.url ? secondMenu.url : secondMenu.id.toString() - " + :index="secondMenu.url ? secondMenu.url : secondMenu.id.toString()" class="secondMenu" + :class="secondMenu.menuVoArrayList.length > 0?'is-Active':'none-Active'" > <template slot="title"> <span class="secondSpan">{{ secondMenu.title }}</span> @@ -39,16 +41,13 @@ >{{ thirdMenu.title }}</el-menu-item > </el-submenu> - <el-menu-item v-else :index="`${secondMenu.id}`" :route="{ name: secondMenu.url }" - >{{ secondMenu.title }}</el-menu-item - > + >{{ secondMenu.title }}</el-menu-item> </template> </template> - <el-menu-item v-else :key="menu.id" @@ -71,16 +70,27 @@ data() { return { menuList: [], + isActive:'' }; }, created() { this.loadMenu(); }, + watch: { + $route(){ + this.handleSelect(this.$route.fullPath) + console.log(this.$route) + } + }, methods: { + handleSelect(path){ + this.isActive = path + }, loadMenu() { const userName = sessionStorage.getItem('name'); users.getMenu({ name: userName }) .then(res => { + console.log(res) this.menuList = res.menus; sessionStorage.setItem('user', JSON.stringify(res)); }) @@ -96,10 +106,14 @@ <style lang="scss" scpoed> .icon-padding { padding-right: 10px; + .icon-title{ + width: 36px; + height: 36px; + } } .el-aside { - background: #07162e; + background: #313350; color: #e9eef3; text-align: center; box-sizing: border-box; @@ -116,6 +130,7 @@ top: 0; left: 0; z-index: 999; + cursor: pointer; } .el-scrollbar { @@ -124,50 +139,86 @@ box-sizing: border-box; .el-menu { - background: linear-gradient(#07162e, #0f2b56); + background: linear-gradient(#313350, #0f2b56); border: 0; - + font-size: 16px; + .is-opened{ + .fisrtSpan{ + color: #22d3eb; + } + } .firstMenu { - background: #07162e; + background: #313350; text-align: left; - + //border-bottom:1px solid #ccc ; &:hover > .el-submenu__title { background-color: #092c4a; } - &:hover .fisrtSpan { color: #22d3eb; - } + } span, span { color: #e9eef3; + font-size: 16px; } - + .el-menu{ + .is-active { + background-color: #409EFF; + color: #fff; + } + .is-Active{ + background-color: #092c4a; + color: #fff; + } + } .el-menu-item { color: #e9eef3; - background-color: #07162e; + background-color: #313350; + font-size: 16px; + border-bottom: 1px solid #ccc; } - .el-menu-item:hover { - background-color: #092c4a; + background-color: #409EFF; color: #22d3eb; } + .is-opened{ + .secondSpan{ + color: #22d3eb; + } + } + .secondMenu{ + //border-bottom:1px solid #ccc ; - .is-active { - background-color: #07162e; - color: #22d3eb; + .is-active { + background-color: #409EFF; + color: #22d3eb; + } } } .secondMenu { + &:hover > .el-submenu__title { background-color: #092c4a; } + .secondSpan{ + } &:hover .secondSpan { color: #22d3eb; } + .is-opened{ + + .el-submenu__title{ + background-color: #fff; + } + } + .is-active { + background-color: #409EFF; + color: #fff; + } } .thirdMenu { -- Gitblit v1.8.0