| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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<string, string | number | boolean>
- }
- 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
|