menu.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <el-menu
  3. :default-active="$route.path"
  4. class="el-menu-box"
  5. text-color="#222"
  6. background-color="#FFFFFF"
  7. active-text-color="#F4453E"
  8. :unique-opened="true"
  9. >
  10. <menu-item :routes-data="routesData"></menu-item>
  11. </el-menu>
  12. </template>
  13. <script>
  14. import menuItem from './menuList'
  15. export default {
  16. name: 'index',
  17. components: {
  18. menuItem
  19. },
  20. computed: {
  21. routesData () {
  22. return this.$store.state.permission.addRoutes
  23. }
  24. },
  25. data () {
  26. return {
  27. activeMenu: '',
  28. isCollapse: false
  29. }
  30. },
  31. mounted () {
  32. console.log(this.$router)
  33. this.setActiveMenu(this.routesData)
  34. },
  35. methods: {
  36. // 设置选中菜单
  37. setActiveMenu (data) {
  38. let item = ''
  39. for (let i = 0; i < data.length; i++) {
  40. item = data[i]
  41. if (item.path === sessionStorage.getItem('currentPage')) {
  42. this.activeMenu = String(item.id)
  43. return
  44. } else {
  45. if (item.children) {
  46. this.setActiveMenu(item.children, i)
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }
  53. </script>
  54. <style lang="less" scoped>
  55. .el-menu-box{
  56. height: 100%;
  57. }
  58. .el-menu{
  59. border-color: #C5C5C5;
  60. }
  61. </style>