feat: 添加第二布局页面,更新路由配置以支持新布局
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 1m14s
/ playwright (push) Successful in 2m45s
/ depcheck (push) Successful in 1m14s

This commit is contained in:
严浩
2024-12-26 18:51:16 +08:00
parent f3e6dbcc0e
commit 8d048038ee
6 changed files with 30 additions and 7 deletions

View File

@ -1,14 +1,12 @@
<script setup lang="ts">
import { getRoutes } from '@/plugins/router';
import type { MenuItem } from 'primevue/menuitem';
import type { PanelMenuProps } from 'primevue/panelmenu';
import { createGetRoutes } from 'virtual:meta-layouts';
import type { RouteRecordRaw } from 'vue-router/auto';
import { routes } from 'vue-router/auto-routes';
const router = useRouter();
const getRoutes = createGetRoutes(router);
// 递归处理路由生成菜单项
const _generateMenuItems = (routes: RouteRecordRaw[]): PanelMenuProps['model'] => {
return [];

View File

@ -0,0 +1,11 @@
<template>
<div>src/pages/use-second-layout-1/index.page.vue</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
<route lang="yaml">
meta:
layout: second
</route>

View File

@ -0,0 +1,11 @@
<template>
<div>src/pages/use-second-layout-2.page.vue</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
<route lang="yaml">
meta:
layout: second
</route>

View File

@ -1,6 +1,6 @@
import { DataLoaderPlugin } from 'unplugin-vue-router/data-loaders';
import { createGetRoutes, setupLayouts } from 'virtual:meta-layouts';
// import { setupLayouts, createGetRoutes } from 'virtual:generated-layouts';
// import { createGetRoutes, setupLayouts } from 'virtual:generated-layouts';
import { createRouter, createWebHistory } from 'vue-router/auto';
import { handleHotUpdate, routes } from 'vue-router/auto-routes';
@ -16,13 +16,14 @@ const router = createRouter({
}
},
});
const getRoutes = createGetRoutes(router);
if (import.meta.hot) handleHotUpdate(router);
if ($__DEV__) Object.assign(window, { router });
router.onError((error) => {
console.debug('🚨 [router error]: ', error);
});
export { router };
export { getRoutes, router };
export function install({ app }: { app: import('vue').App<Element> }) {
app
// Register the plugin before the router

2
typed-router.d.ts vendored
View File

@ -33,6 +33,8 @@ declare module 'vue-router/auto-routes' {
'Primevue': RouteRecordInfo<'Primevue', '/primevue', Record<never, never>, Record<never, never>>,
'SomePage': RouteRecordInfo<'SomePage', '/some-page', Record<never, never>, Record<never, never>>,
'TsEnumUtil': RouteRecordInfo<'TsEnumUtil', '/ts-enum-util', Record<never, never>, Record<never, never>>,
'UseSecondLayout1': RouteRecordInfo<'UseSecondLayout1', '/use-second-layout-1', Record<never, never>, Record<never, never>>,
'UseSecondLayout2': RouteRecordInfo<'UseSecondLayout2', '/use-second-layout-2', Record<never, never>, Record<never, never>>,
'VueMacrosDefineRender': RouteRecordInfo<'VueMacrosDefineRender', '/vue-macros/DefineRender', Record<never, never>, Record<never, never>>,
'VueMacrosReactivityTransform': RouteRecordInfo<'VueMacrosReactivityTransform', '/vue-macros/ReactivityTransform', Record<never, never>, Record<never, never>>,
'VueMacrosReusableTemplate': RouteRecordInfo<'VueMacrosReusableTemplate', '/vue-macros/ReusableTemplate', Record<never, never>, Record<never, never>>,

View File

@ -54,7 +54,7 @@ export function Plugins() {
// https://github.com/dishait/vite-plugin-vue-meta-layouts
MetaLayouts({
/* skipTopLevelRouteLayout: true */
// skipTopLevelRouteLayout: true,
defaultLayout: 'sakai-vue/AppLayout',
}),