index.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <div class="app-wrapper">
  3. <Header v-if="meta.header != 'hide'" />
  4. <Search v-if="meta.header != 'hide'" />
  5. <Nav v-if="meta.nav" />
  6. <Breadcrumb v-if="meta.breadcrumb" />
  7. <div class="pages-bos" :class="meta.workbench ? 'pages-bos1' : 'pages-bos2'">
  8. <Workbench v-if="meta.workbench" />
  9. <router-view> </router-view>
  10. </div>
  11. <Foot />
  12. </div>
  13. </template>
  14. <script setup lang="ts">
  15. import { Header, Search, Nav, Breadcrumb, Foot, Workbench } from './components';
  16. const route = useRoute();
  17. const meta = ref<any>({});
  18. meta.value = route.meta;
  19. watch(route, () => {
  20. meta.value = route.meta;
  21. });
  22. </script>
  23. <style lang="scss" scoped>
  24. @use '@/assets/styles/mixin.scss';
  25. @use '@/assets/styles/variables.module.scss' as *;
  26. .app-wrapper {
  27. min-height: 100%;
  28. width: 100%;
  29. background: #f4f4f4;
  30. .pages-bos {
  31. display: flex;
  32. &.pages-bos1 {
  33. width: 1200px;
  34. margin: 0 auto;
  35. }
  36. &.pages-bos2 {
  37. width: 100%;
  38. }
  39. .page-container{
  40. flex: 1;
  41. background-color: #ffffff;
  42. padding: 15px;
  43. margin-bottom: 20px;
  44. }
  45. }
  46. }
  47. </style>