ma-classic-slider.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <a-layout-sider
  3. class="layout-classic-sider h-full flex flex-col hidden lg:block"
  4. :style="`width: ${
  5. appStore.menuCollapse ? '48px' : appStore.menuWidth + 'px'
  6. };`"
  7. >
  8. <div class="flex justify-center logo">
  9. <a-avatar class="mt-1" :size="40"
  10. ><img :src="`${$url}logo.png`" class="bg-white"
  11. /></a-avatar>
  12. <span class="ml-2 text-xl mt-2.5" v-if="!appStore.menuCollapse">{{
  13. $title
  14. }}</span>
  15. </div>
  16. <ma-menu
  17. ref="MaMenuRef"
  18. height="calc(100% - 51px)"
  19. :class="`${appStore.menuCollapse ? 'ml-1.5' : ''};`"
  20. />
  21. </a-layout-sider>
  22. </template>
  23. <script setup>
  24. import { ref, onMounted } from "vue";
  25. import { useAppStore, useUserStore } from "@/store";
  26. import MaMenu from "../ma-menu.vue";
  27. const MaMenuRef = ref(null);
  28. const userStore = useUserStore();
  29. const appStore = useAppStore();
  30. onMounted(() => {
  31. setTimeout((_) => {
  32. MaMenuRef.value.menus = userStore.routers;
  33. }, 50);
  34. });
  35. </script>
  36. <style>
  37. .logo {
  38. height: 51px;
  39. border-bottom: 1px solid var(--color-border-1);
  40. }
  41. </style>