IndexAside.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <el-aside class="index-aside" width="200px">
  3. <div class="index-aside-inner">
  4. <el-menu default-active="1">
  5. <el-menu-item @click="menuHandler('/')" index="1">
  6. <!-- <i class="el-icon-s-home"></i> -->
  7. 首页
  8. </el-menu-item>
  9. <sub-menu
  10. v-for="menu in menuList"
  11. :key="menu.menuId"
  12. :menu="menu"
  13. :dynamicMenuRoutes="dynamicMenuRoutes"
  14. ></sub-menu>
  15. </el-menu>
  16. </div>
  17. </el-aside>
  18. </template>
  19. <script>
  20. import SubMenu from "@/components/index/IndexAsideSub";
  21. export default {
  22. data() {
  23. return {
  24. menuList: [],
  25. dynamicMenuRoutes: []
  26. };
  27. },
  28. components: {
  29. SubMenu
  30. },
  31. mounted() {
  32. // 获取动态菜单数据并且渲染
  33. this.menuList = JSON.parse(sessionStorage.getItem("menuList") || "[]");
  34. this.dynamicMenuRoutes = JSON.parse(
  35. sessionStorage.getItem("dynamicMenuRoutes") || "[]"
  36. );
  37. },
  38. methods: {
  39. menuHandler(path) {
  40. this.$router.push({ path: path });
  41. }
  42. }
  43. };
  44. </script>
  45. <style lang="scss" scoped>
  46. .index-aside {
  47. margin-top: 80px;
  48. overflow: hidden;
  49. .index-aside-inner {
  50. width: 217px;
  51. height: 100%;
  52. overflow-y: scroll;
  53. }
  54. }
  55. </style>