测试完成后接下来我们就需要处理一下我们在base-layout中写的所有的路由部分,最终我们还是需要在内容区域去嵌套一些东西的,所以接下来我们就需要将内容区域抽成独立的组件,方便我们进行开发。
我们在base-layout中创建一个wrap-content.vue的文件。
<script lang="ts" setup>
</script>
<template>
<router-view />
</template>
<style scoped>
</style>
我们先把路由部分抽取出来。
然后替换到布局页面。
<script lang="ts" setup>
import WrapContent from './wrap-content.vue'
</script>
<template>
<MobileLayout
v-if="isMobile"
v-model:visible="visible"
:logo="layout.logo"
:title="layout.title"
>
<template #headerRight>
<RightContent />
</template>
<WrapContent />
</MobileLayout>
<template v-else>
<MixLayout
v-if="layout.layout === 'mix'"
v-model:collapsed="layout.collapsed"
:logo="layout.logo"
:title="layout.title"
:active="active"
:options="menuOptions"
:show-sider-trigger="layout.showSiderTrigger"
:sider-width="layout.siderWidth"
:sider-collapsed-width="layout.siderCollapsedWidth"
>
<template #headerRight>
<RightContent />
</template>
<WrapContent />
</MixLayout>
<SideLayout
v-if="layout.layout === 'side'"
v-model:collapsed="layout.collapsed"
:logo="layout.logo"
:inverted="layout.layoutStyle === 'inverted'"
:title="layout.title"
:show-sider-trigger="layout.showSiderTrigger"
:sider-width="layout.siderWidth"
:sider-collapsed-width="layout.siderCollapsedWidth"
>
<template #headerRight>
<RightContent />
</template>
<WrapContent />
</SideLayout>
<TopLayout
v-if="layout.layout === 'top'"
:logo="layout.logo"
:title="layout.title"
:inverted="layout.layoutStyle === 'inverted'"
>
<template #headerRight>
<RightContent />
</template>
<WrapContent />
</TopLayout>
</template>
</template>
我们来测试一下我们的功能是否可以正常使用。
可以正常使用的情况下我们就可以把多页签的功能迁移到这里了。
首先删掉我们之前在base-layout中测试的多页签,放到这里进行处理。
<script lang="ts" setup>
import MultiTab from '../multi-tab/index.vue'
</script>
<template>
<MultiTab />
<router-view />
</template>
然后测试是否正常展示