菜单布局等初步完成

This commit is contained in:
2025-10-08 14:11:54 +08:00
parent d9ea2e842b
commit 4bc587ecf5
29 changed files with 4472 additions and 11977 deletions

View File

@@ -8,20 +8,48 @@ import store from "./store";
import { setupRouterGuards, setupTokenRefresh } from "@/utils/permission";
import { setupPermissionDirectives } from "@/directives/permission";
const app = createApp(App);
// 初始化应用
async function initApp() {
const app = createApp(App);
// 使用插件
app.use(ElementPlus);
app.use(store);
app.use(router);
// 使用插件
app.use(ElementPlus);
app.use(store);
// 在路由初始化前,尝试恢复登录状态并生成动态路由
const authState = (store.state as any).auth;
console.log('[应用初始化] 检查登录状态...');
console.log('[应用初始化] Token:', !!authState.token);
console.log('[应用初始化] 菜单数量:', authState.menus?.length || 0);
if (authState.token && authState.menus && authState.menus.length > 0) {
try {
console.log('[应用初始化] 开始生成动态路由...');
await store.dispatch('auth/generateRoutes');
console.log('[应用初始化] 动态路由生成成功');
} catch (error) {
console.error('[应用初始化] 动态路由生成失败:', error);
}
} else {
console.log('[应用初始化] 无需生成动态路由(未登录或无菜单)');
}
app.use(router);
// 设置权限指令
setupPermissionDirectives(app, store);
// 设置权限指令
setupPermissionDirectives(app, store);
// 设置路由守卫
setupRouterGuards(router, store);
// 设置路由守卫
setupRouterGuards(router, store);
// 设置Token自动刷新
setupTokenRefresh(store);
// 设置Token自动刷新
setupTokenRefresh(store);
app.mount("#app");
app.mount("#app");
console.log('[应用初始化] 应用挂载完成');
}
// 启动应用
initApp().catch(error => {
console.error('[应用初始化] 应用启动失败:', error);
});