1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sangtian152-vue-ts-admin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
permission.ts 1.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
sangtian152 Отправлено 4 лет назад c68ae4b
import router from '@/router'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { Message } from 'element-ui'
import { Route } from 'vue-router'
import i18n from '@/lang'
import setting from './settings'
import { RoutesModule } from '@/store/modules/routes'
import { UserModule } from '@/store/modules/user'
NProgress.configure({ showSpinner: false });
const whiteList = ['/login'];
const getPageTitle = (key: string) => {
const hasKey = i18n.te(`router.${key}`)
if(hasKey) {
const pageTitle = i18n.t(`router.${key}`)
return `${pageTitle}-${setting.title}`
}
return `${setting.title}`
}
router.beforeEach(async (to: Route, from: Route, next: any)=>{
NProgress.start();
if (UserModule.token) {
if (to.path === '/login') {
// If is login, redirect to the home page
next({ path: '/' })
NProgress.done()
} else {
if (UserModule.roles.length === 0) {
try {
await UserModule.GetUserInfo()
const roles = UserModule.roles
// Generate accessible routes map based on role
RoutesModule.GenerateRoutes(roles);
// Dynamically add accessible routes
router.addRoutes(RoutesModule.dynamicRoutes);
console.log(to)
next({ ...to, replace: true })
} catch(err) {
UserModule.ResetToken();
Message.error(err || "error")
next(`/login?redirect=${to.path}`);
NProgress.done()
}
} else {
console.log("next")
next()
}
}
} else {
// Has no token
if (whiteList.indexOf(to.path) !== -1) {
// In the free login whitelist, go directly
next()
} else {
// Other pages that do not have permission to access are redirected to the login page.
next(`/login?redirect=${to.path}`)
NProgress.done()
}
}
})
router.afterEach((to: Route) => {
NProgress.done();
document.title = getPageTitle(to.meta.title);
})

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/sangtian152-vue-ts-admin.git
git@gitlife.ru:oschina-mirror/sangtian152-vue-ts-admin.git
oschina-mirror
sangtian152-vue-ts-admin
sangtian152-vue-ts-admin
master