ece.suwa3d.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

79 lines
1.9 KiB

// 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