// https://router.vuejs.org/zh/ import { createRouter, createWebHashHistory } from 'vue-router' import NProgress from 'nprogress' import 'nprogress/nprogress.css' // 导入路由组件 import * as badgeRouter from './badge' import badge from '@/views/badge/index.vue' import {useStore} from '@/stores' import { config } from '@/config/config' import { localStorage } from '@/utils/local-storage' NProgress.configure({ showSpinner: true, parent: '#app' }) // 定义路由,每个路由都需要映射到一个组件 const routes = [ { path: '/', name: 'badge', component: badge, meta: { needGuard: true, title: '首页', }, }, ] badgeRouter.mergeRoutes(routes) // 创建路由实例并传递 `routes` 配置 const router = createRouter({ history: createWebHashHistory(process.env.VUE_APP_PUBLIC_PATH), routes, }) router.beforeEach((_to, _from, next) => { // const tokenStore = useTokenStore() const store = useStore() const code = _to.query.code if (code) { localStorage.set('code', code as string); } const trialCode = _to.query.trialCode if (trialCode) { localStorage.set('trialCode', trialCode as string); } console.log('code===>', code); if (code || trialCode) { let url = store.redirectUrl() if (_to.path !== '/badge') { if (url) { store.setRedirect('') next(url) return } } else { if (url) { store.setRedirect('') } } } // TODO: 根据API获取用信息 window.document.title = `${config.brand.$t} - ${(_to.meta.title as string || '相册').$t}` // store.updateTitle(_to.meta.title.$t); // 导航栏标题变化 NProgress.start() // start progress bar const needGuard = _to.meta.needGuard if (needGuard) { next() } else { next() } }) router.afterEach(() => { NProgress.done() // finish progress bar }) // 导出路由实例,并在 `main.ts` 挂载 export default router