import Vue from 'vue'
|
import VueRouter from 'vue-router'
|
import { getToken } from "../utils/auth";
|
|
Vue.use(VueRouter);
|
|
const routes = [
|
{
|
path: '/',
|
redirect: '/login'
|
},
|
{
|
path: '/login',
|
component: () => import('../views/login')
|
},
|
{
|
path: '/register',
|
component: () => import('../views/register')
|
},
|
{
|
path: '/layout',
|
component: () => import('../layout'),
|
children: [
|
{
|
path: '/user',
|
component: () => import('../views/user')
|
},
|
{
|
path: '',
|
redirect: '/home'
|
},
|
{
|
path: '/home',
|
component: () => import('../views/home')
|
},
|
|
|
|
{
|
path: '/power',
|
component: () => import('../views/power')
|
},
|
{
|
path: '/role',
|
component: () => import('../views/role')
|
},
|
{
|
path: '/device/parameter',
|
component: () => import('../views/device/parameter'),
|
|
},
|
|
{
|
path: '/device/alarm',
|
component: () => import('../views/device/alarm')
|
},
|
{
|
path: '/device/iostate',
|
component: () => import('../views/device/iostate')
|
},
|
|
{
|
path: '/device/control',
|
component: () => import('../views/device/control')
|
},
|
{
|
path: '/Electrical/Parameter',
|
component: () => import('../views/Electrical/Parameter')
|
},
|
{
|
path: '/Electrical/Action',
|
component: () => import('../views/Electrical/Action')
|
},
|
{
|
path: '/Electrical/Sign',
|
component: () => import('../views/Electrical/Sign')
|
},
|
{
|
path: '/Electrical/State',
|
component: () => import('../views/Electrical/State')
|
},
|
{
|
path: '/Electrical/alarm',
|
component: () => import('../views/Electrical/alarm')
|
},
|
{
|
path: '/Electrical/Servomanual',
|
component: () => import('../views/Electrical/Servomanual')
|
},
|
{
|
path: '/Electrical/ServoManualone',
|
component: () => import('../views/Electrical/ServoManualone')
|
},
|
{
|
path: '/Electrical/Parameter1',
|
component: () => import('../views/Electrical/Parameter1')
|
},
|
{
|
path: '/Electrical/Parameter2',
|
component: () => import('../views/Electrical/Parameter2')
|
},
|
{
|
path: '/Electrical/Positioning1',
|
component: () => import('../views/Electrical/Positioning1')
|
},
|
{
|
path: '/Electrical/Positioning2',
|
component: () => import('../views/Electrical/Positioning2')
|
},
|
{
|
path: '/Electrical/ManualonePosition',
|
component: () => import('../views/Electrical/ManualonePosition')
|
},
|
{
|
path: '/Electrical/ManualonePosition2',
|
component: () => import('../views/Electrical/ManualonePosition2')
|
},
|
{
|
path: '/Electrical/AutomaticParameterSetting',
|
component: () => import('../views/Electrical/AutomaticParameterSetting')
|
},
|
{
|
path: '/Electrical/ManualJog',
|
component: () => import('../views/Electrical/ManualJog')
|
}
|
|
|
|
]
|
}
|
];
|
|
|
|
const router = new VueRouter({
|
// base: '/canadames/',
|
routes,
|
meta:{
|
keepAlive:false
|
}
|
});
|
|
// 路由控制守卫,解决需要登录才可以访问的页面
|
router.beforeEach((to, from, next) => {
|
// 如果访问的是登录或注册页面直接放行
|
if (to.path === '/login' || to.path === '/register') return next();
|
|
// 获取token
|
const hasToken = getToken();
|
|
|
const isExist = Vue.prototype.$tagList.some(tag => tag.path === to.fullPath);
|
|
if (!isExist) {
|
Vue.prototype.$tagList.push({
|
path: to.fullPath,
|
data: null
|
});
|
}
|
|
// 没有token则跳转到登录页面
|
if (!hasToken) return next('/login');
|
|
// 有token则根据需要进行跳转
|
if (to.path === '/') {
|
// 如果目标路由是根路径,则跳转到首页
|
return next('/home');
|
}
|
|
// 其他情况放行
|
return next();
|
});
|
|
export default router
|