import { menuDataToRouter } from '@/router/utils/menuToRouter' import { AppRouteRecord } from '@/types/router' import { useUserStore } from '@/store/modules/user' import { UserService } from '@/api/usersApi' interface MenuResponse { menuList: AppRouteRecord[] } // 菜单接口 export const menuService = { async getMenuList(delay = 300): Promise { try { const userStore = useUserStore() // 验证用户登录状态 if (!userStore.isLogin) { throw new Error('用户未登录') } const { menu } = await UserService.getMenuList() const menuData = menu // const userStore = useUserStore() // 模拟接口返回的菜单数据 // 验证菜单数据 if (!menuData || !Array.isArray(menuData) || menuData.length === 0) { ElMessage.error('暂无系统菜单权限') return { menuList: [] } } console.log('menuData', menuData) // 处理菜单数据 const menuList = menuData.map((route: any) => menuDataToRouter(route)) // 验证处理后的菜单列表 if (!menuList || menuList.length === 0) { ElMessage.error('菜单数据处理失败') return { menuList: [] } } // 模拟接口延迟 await new Promise((resolve) => setTimeout(resolve, delay)) return { menuList } } catch (error) { console.error('获取菜单失败:', error) throw error instanceof Error ? error : new Error('获取菜单失败') } } }