import Vue from 'vue' import Router from 'vue-router' import LoginPage from '@/components/LoginPage' import DashboardPage from '@/components/DashboardPage' import dashboardModules from '@/config/dashboard' Vue.use(Router) function setChildren (routes, parent) { routes.forEach(route => { if (route.component && route.component.routes) { route.children = setChildren(route.component.routes(), route.component) } if (route.name && parent && parent.name) route.name = parent.name + '.' + route.name else delete route.name }) return routes } var router = new Router({ routes: [ { path: '/login', name: 'LoginPage', component: LoginPage }, { path: '/dashboard', name: 'Dashboard', component: DashboardPage, children: setChildren(dashboardModules.concat(DashboardPage.routes()), DashboardPage) }, { path: '*', redirect: '/dashboard' } ] }) router.beforeEach((to, from, next) => { var loggedIn = document.cookie.indexOf('jwt_hp') >= 0 if (to.path === '/login') { if (loggedIn) next('/dashboard') else next() } else if (!loggedIn) { next('/login') } else { next() } }) export default router