leftnav.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /**
  2. * 左边菜单
  3. */
  4. <template>
  5. <el-menu default-active="2" :collapse="collapsed" collapse-transition router :default-active="$route.path" unique-opened class="el-menu-vertical-demo" background-color="#334157" text-color="#fff" active-text-color="#ffd04b">
  6. <div class="logobox">
  7. <img class="logoimg" src="../assets/img/logo.png" alt="">
  8. </div>
  9. <el-submenu v-for="menu in allmenu" :key="menu.menuid" :index="menu.menuname">
  10. <template slot="title">
  11. <i class="el-icon-setting"></i>
  12. <span>{{menu.menuname}}</span>
  13. </template>
  14. <el-menu-item-group>
  15. <el-menu-item v-for="chmenu in menu.menus" :index="'/'+chmenu.url" :key="chmenu.menuid">
  16. <i class="iconfont" :class="chmenu.icon"></i>
  17. <span>{{chmenu.menuname}}</span>
  18. </el-menu-item>
  19. </el-menu-item-group>
  20. </el-submenu>
  21. </el-menu>
  22. </template>
  23. <script>
  24. import { menu } from '../api/userMG'
  25. export default {
  26. name: 'leftnav',
  27. data() {
  28. return {
  29. collapsed: false,
  30. allmenu: []
  31. }
  32. },
  33. // 创建完毕状态(里面是操作)
  34. created() {
  35. // 获取图形验证码
  36. menu(localStorage.getItem('logintoken'))
  37. .then(res => {
  38. if (res.success) {
  39. this.allmenu = res.data
  40. } else {
  41. this.$message.error(res.msg)
  42. return false
  43. }
  44. })
  45. .catch(err => {
  46. this.$message.error('菜单加载失败,请稍后再试!')
  47. })
  48. // 监听
  49. this.$root.Bus.$on('toggle', value => {
  50. this.collapsed = !value
  51. })
  52. }
  53. }
  54. </script>
  55. <style>
  56. .el-menu-vertical-demo:not(.el-menu--collapse) {
  57. width: 240px;
  58. min-height: 400px;
  59. }
  60. .el-menu-vertical-demo:not(.el-menu--collapse) {
  61. border: none;
  62. text-align: left;
  63. }
  64. .el-menu-item-group__title {
  65. padding: 0px;
  66. }
  67. .el-menu-bg {
  68. background-color: #1f2d3d !important;
  69. }
  70. .el-menu {
  71. border: none;
  72. }
  73. .logobox {
  74. height: 40px;
  75. line-height: 40px;
  76. color: #9d9d9d;
  77. font-size: 20px;
  78. text-align: center;
  79. padding: 20px 0px;
  80. }
  81. .logoimg {
  82. height: 40px;
  83. }
  84. </style>