JinZHouXiYiJi_DaPin2/docs/Content/Content.vue

48 lines
1.4 KiB
Vue
Raw Permalink Normal View History

2023-12-05 13:23:01 +08:00
<template>
<n-layout-sider
class="right"
:width="180"
:native-scrollbar="false"
bordered
collapse-mode="width"
>
<SiderContent :menus="componentMenus" />
</n-layout-sider>
<n-layout-content class="content">
<n-scrollbar x-scrollable>
<RenderMD>
<ConfigProvider>
<RouterView />
</ConfigProvider>
</RenderMD>
</n-scrollbar>
</n-layout-content>
</template>
<script lang="ts" setup name="DocContent">
import { NLayoutContent, NLayoutSider, NScrollbar } from 'naive-ui'
import { computed } from 'vue'
import { useRoute } from 'vue-router'
import ConfigProvider from '@/components/provider/ConfigProvider.vue'
import docsRouters from '@/router/modules/docs'
import type { AppRouteRecordRaw } from '@/router/types'
import SiderContent from '../modules/components/SiderContent'
import type { MenuItem } from '../modules/components/SiderContent/type'
import RenderMD from '../RenderMD.vue'
import { getMenus } from './menus'
const route = useRoute()
const componentMenus = computed<Array<MenuItem>>(() => {
const matcheds = route.matched
const name = matcheds[1].name
const routers = docsRouters[0].children.filter((el) => el.name === name)
if (routers.length > 0 && routers[0].children && routers[0].children.length > 0) {
return getMenus(routers[0].children as Array<AppRouteRecordRaw>)
} else {
return []
}
})
</script>