index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <div class="avue-sidebar">
  3. <logo></logo>
  4. <el-scrollbar style="height:100%">
  5. <el-menu unique-opened
  6. :default-active="nowTagValue"
  7. mode="vertical"
  8. :show-timeout="200"
  9. background-color="#20222a"
  10. text-color="rgba(255,255,255,0.7)"
  11. :collapse="keyCollapse">
  12. <sidebar-item :menu="menu"
  13. :screen="screen"
  14. :props="website.menu.props"
  15. :collapse="keyCollapse"></sidebar-item>
  16. </el-menu>
  17. </el-scrollbar>
  18. </div>
  19. </template>
  20. <script>
  21. import { mapGetters } from 'vuex'
  22. import logo from '../logo';
  23. import sidebarItem from './sidebarItem'
  24. export default {
  25. name: 'sidebar',
  26. components: { sidebarItem, logo },
  27. data () {
  28. return {}
  29. },
  30. created () {
  31. console.log(this.menu);
  32. this.$store.dispatch("GetMenu").then(data => {
  33. if (data.length === 0) return
  34. this.$router.addRoutes(this.$router.$avueRouter.formatRoutes(data, true))
  35. });
  36. },
  37. computed: {
  38. ...mapGetters(['website', 'menu', 'tag', 'keyCollapse', 'screen']),
  39. nowTagValue: function () { return this.$router.$avueRouter.getValue(this.$route) }
  40. },
  41. mounted () { },
  42. methods: {}
  43. }
  44. </script>
  45. <style lang="scss" scoped>
  46. </style>