index.vue 1.3 KB

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