Blame view
src/views/NavBar.vue
2.04 KB
e7ab2c09a
![]() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
<template> <div class="menu-bar-container"> <!-- logo --> <div class="logo" :style="{'background':themeColor}" @click="$router.push('/')" :class="collapse?'menu-bar-collapse-width':'menu-bar-width'"> <img v-if="collapse" src="@/assets/shaoyao.png"/> <div>{{collapse?'':appName}}</div> </div> <!-- 导航菜单 --> <el-menu ref="navmenu" default-active="1" :class="collapse?'menu-bar-collapse-width':'menu-bar-width'" :collapse="collapse" :collapse-transition="false" :unique-opened="true " @open="handleopen" @close="handleclose" @select="handleselect"> <!-- 导航菜单树组件,动态加载菜单 --> <menu-tree v-for="item in navTree" :key="item.id" :menu="item"></menu-tree> </el-menu> </div> </template> <script> import { mapState } from 'vuex' import MenuTree from "@/components/MenuTree" export default { components:{ MenuTree }, computed: { ...mapState({ appName: state=>state.app.appName, themeColor: state=>state.app.themeColor, collapse: state=>state.app.collapse, navTree: state=>state.menu.navTree }) }, methods: { handleopen() { console.log('handleopen') }, handleclose() { console.log('handleclose') }, handleselect(a, b) { console.log('handleselect') } } } </script> <style scoped lang="scss"> .menu-bar-container { position: fixed; top: 0px; left: 0; bottom: 0; z-index: 1020; .el-menu { position:absolute; top: 60px; bottom: 0px; text-align: left; // background-color: #2968a30c; } .logo { position:absolute; top: 0px; height: 60px; line-height: 60px; background: #545c64; cursor:pointer; img { width: 40px; height: 40px; border-radius: 0px; margin: 10px 10px 10px 10px; float: left; } div { font-size: 25px; color: white; text-align: left; padding-left: 20px; } } .menu-bar-width { width: 200px; } .menu-bar-collapse-width { width: 65px; } } </style> |