31 lines
597 B
Vue
31 lines
597 B
Vue
<script setup lang="ts">
|
|
import { useRoute } from 'vue-router'
|
|
import { computed } from 'vue'
|
|
import { AppFooter, AppHeader, FilePreviewDialog } from '@/components'
|
|
|
|
const route = useRoute()
|
|
const showFooter = computed(() => !route.meta.noFooter)
|
|
</script>
|
|
|
|
<template>
|
|
<div class="layout">
|
|
<AppHeader />
|
|
<main class="layout__main">
|
|
<router-view />
|
|
</main>
|
|
<AppFooter v-if="showFooter" />
|
|
<FilePreviewDialog />
|
|
</div>
|
|
</template>
|
|
|
|
<style lang="less" scoped>
|
|
.layout {
|
|
.flex(column, flex-start, stretch);
|
|
min-height: 100vh;
|
|
|
|
&__main {
|
|
flex: 1;
|
|
}
|
|
}
|
|
</style>
|