Dashboard.vue 1.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <script setup>
  2. import { provide, ref } from 'vue'
  3. import '@coreui/coreui/dist/css/coreui.min.css'
  4. import 'bootstrap/dist/css/bootstrap.min.css'
  5. import AppHeader from '@/components/AppHeader.vue'
  6. import AppSidebar from '@/components/AppSidebar.vue'
  7. import AppFooter from '@/components/AppFooter.vue'
  8. const sidebarVisible = ref(true)
  9. const sidebarUnfoldable = ref(false)
  10. const toggleSidebar = () => (sidebarVisible.value = !sidebarVisible.value)
  11. const toggleUnfoldable = () => (sidebarUnfoldable.value = !sidebarUnfoldable.value)
  12. provide('sidebar', {
  13. sidebarVisible,
  14. toggleSidebar,
  15. sidebarUnfoldable,
  16. toggleUnfoldable,
  17. })
  18. </script>
  19. <template>
  20. <div>
  21. <AppSidebar />
  22. <div class="wrapper">
  23. <AppHeader />
  24. <CContainer lg>
  25. <slot />
  26. </CContainer>
  27. <AppFooter />
  28. </div>
  29. </div>
  30. </template>
  31. <style lang="scss">
  32. @import '@coreui/coreui/scss/coreui';
  33. .wrapper {
  34. width: 100%;
  35. @include ltr-rtl('padding-left', var(--cui-sidebar-occupy-start, 0));
  36. will-change: auto;
  37. @include transition(padding 0.15s);
  38. }
  39. </style>