Files
MrleeAdmin/app/router.options.ts
T
Mr.April d84d972e73 feat: 适配5.x后端,重构前端架构
主要变更:
1. 重构API目录结构,采用模块化设计,适配5.x后端接口规范
2. 优化布局组件,提升用户界面体验
3. 增强国际化支持,完善多语言配置
4. 新增权限控制功能,支持前端路由权限管理
5. 优化认证流程,支持JWT认证机制
6. 新增中间件和插件,提升系统扩展性
7. 优化状态管理,采用更清晰的模块化设计
8. 新增搜索框、广告等组件,丰富页面功能
9. 更改包管理工具从npm到pnpm,提升依赖管理效率
10. 完善配置系统,支持多环境配置

适配5.x后端特性:
- 采用新的API接口规范
- 支持JWT认证机制
- 适配后端权限控制体系
- 支持后端国际化接口
- 优化数据交互方式
2026-04-07 11:01:11 +08:00

43 lines
1.2 KiB
TypeScript

import type { RouterConfig } from '@nuxt/schema'
import routes from '~/pages/routes'
// 定义 pluginRoutes 的类型
interface PluginRouteModule {
default: any[]
}
type PluginRoutes = Record<string, PluginRouteModule>
// import.meta.glob 自动加载模块路由
const pluginRoutes: PluginRoutes = import.meta.glob('~/apps/**/pages/routes.ts', {
eager: true
})
// 创建可修改的路由数组副本
const finalRoutes = [...routes]
// 安全地处理 pluginRoutes
if (pluginRoutes && Object.keys(pluginRoutes).length > 0) {
for (const key in pluginRoutes) {
const addonModule = pluginRoutes[key]
// 安全检查:确保模块存在且有 default 属性
if (addonModule?.default && Array.isArray(addonModule.default)) {
const addon = key.split('/')[2]
// 先加载插件路由后加载app路由
const processedRoutes = addonModule.default.map((item: any) => {
item.meta = item.meta ? Object.assign(item.meta, { addon }) : { addon }
return item
})
finalRoutes.unshift(...processedRoutes)
}
}
}
// https://router.vuejs.org/api/interfaces/routeroptions.html
export default <RouterConfig>{
routes: (_routes) => finalRoutes,
strict: false
}