Blame view

src/views/NavBar.vue 2.04 KB
e7ab2c09a   alexYang   权限部分
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>