index.vue 1.24 KB
<template>
  <el-aside class="slide-wrapper">
    <el-menu :default-active="activeMenu" :background-color="variables.menuBg" :text-color="variables.menuText" :unique-opened="false" :active-text-color="variables.menuActiveText"
             :collapse-transition="false" mode="vertical">
      <sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" />
    </el-menu>
  </el-aside>
</template>
<script>
// import { mapGetters } from 'vuex';
import SidebarItem from './SidebarItem'
import variables from '@/assets/css/variable.scss'
import {asyncRoutes} from '@/router/index'
export default {
  name: 'SideBar',
  components: {
    SidebarItem
  },
  data() {
    return {
        permission_routes: asyncRoutes
    }
  },
  computed: {
    // ...mapGetters(['permission_routes']),
    activeMenu() {
      const route = this.$route
      const { meta, path } = route
      // if set path, the sidebar will highlight the path you set
      if (meta.activeMenu) {
        return meta.activeMenu
      }
      return path
    },
    variables() {
      return variables
    },
  }
}
</script>
<style lang="scss" scoped>
@import "~@/assets/css/variable";
.slide-wrapper {
  height: 100%;
}
.el-menu {
  height: 100%;
}
</style>