import { createRouter } from '@/plugin/uni-mini-router' // 导入pages.json import pagesJson from '../pages.json' // 引入uni-parse-pages import pagesJsonToRoutes from 'uni-parse-pages' // 生成路由表 const routes = pagesJsonToRoutes(pagesJson) setRouteName(routes) const router = createRouter({ routes: [...routes], // 路由表信息 }) export const whiteList = ['/pages/login/login', '/pages/login/loginOauth2'] export const loginPage = '/pages/login/login' interface CacheRoute { path: string query: Record } export const beforEach = (to, from, next) => { try { const userInfo = uni.getStorageSync('USER_INFO') if (userInfo) { next() } else { next({ path: loginPage }) } } catch (err) { console.error('获取用户信息失败:', err) next({ path: loginPage }) } } // 全局前置守卫 router.beforeEach(beforEach) // 路由的最后一级为路由名字不可重复 function setRouteName(routes) { routes.forEach((item) => { if (item.path) { const name = item.path.split('/').pop() item.name = name } }) } export default router