<template>
|
<div class="layoutBox">
|
<Header class="header"></Header>
|
<div class="layoutContentBox" id="layout">
|
<RouterView />
|
<Footer class="footer"></Footer>
|
</div>
|
<login ref="loginRef"></login>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import Header from './components/headerPage.vue'
|
import Footer from './components/footerPage.vue'
|
import login from './components/login.vue'
|
import { provide, ref, watch } from 'vue'
|
import { useRouter } from 'vue-router'
|
const router = useRouter()
|
|
watch(
|
() => router.currentRoute.value.path,
|
(toPath) => {
|
const layout = document.getElementById('layout')
|
if (layout) layout.scrollTo(0, 0)
|
},
|
{ immediate: true, deep: true },
|
)
|
const logIn = () => {
|
loginRef.value.logIn()
|
}
|
const loginRef = ref()
|
provide('logIn', logIn)
|
</script>
|
|
<style lang="less" scoped>
|
.layoutBox {
|
width: 100%;
|
height: 100vh;
|
display: flex;
|
flex-direction: column;
|
background-color: #fff;
|
|
.layoutContentBox {
|
flex: 1;
|
height: auto;
|
}
|
|
.header {
|
flex-shrink: 0;
|
width: 100%;
|
}
|
}
|
|
@media screen and (min-width: 1200px) {
|
.layoutContentBox {
|
flex: 1;
|
overflow: auto;
|
}
|
}
|
</style>
|