import Vue from 'vue'
import Router from 'vue-router'
import home from '../view/home'
import store from '../store';
/*
publicRoutes 默认公共路由,不需要权限的路由
roleRoutes 根据权限添加的路由,添加规则如下
1、没有meta标签的代表所有权限都可以访问
有meta标签的,根据role数组,例如下面
meta: {
role: ['a', 'b']
},
代表只有a,b两个权限的人可以访问
*/
Vue.use(Router)
// 公共路由
let publicRoutes = [{
path: '/login',
name: 'login',
component: () => import('@/view/login')
},
//这个是首页
{
path: '/',
name: '',
component: home,
redirect: '/map/index',
}
,
// 这个是矿井选择
{
path: '/select',
name: 'select',
component: home,
icon: '类目 品类 分类 类别',
children: [{
path: '/map/index',
alias: '/map',
name: 'select1',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/select/select.vue'),
}
},
{
path: '/First/page1',
alias: '/First',
name: 'Firstpage1',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/First/page1.vue'),
},
meta: {
role: ['a']
},
},
{
path: '/First/page2',
name: 'Firstpage2',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/First/page2.vue'),
},
meta: {
role: ['a']
},
},
{
path: '/First/page3',
name: 'Firstpage3',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/First/page3.vue'),
},
meta: {
role: ['a']
},
}
]
},
// 这个是First 这个是公共路由
// {
// path: '/First',
// name: 'First',
// component: home,
// icon: '类目 品类 分类 类别',
// children: [{
// path: '/First/page1',
// alias: '/First',
// name: 'Firstpage1',
// icon: '类目 品类 分类 类别',
// components: {
// default: () => import('@/view/First/page1.vue'),
// }
// },
// {
// path: '/First/page2',
// name: 'Firstpage2',
// icon: '类目 品类 分类 类别',
// components: {
// default: () => import('@/view/First/page2.vue'),
// },
// }, {
// path: '/First/page3',
// name: 'Firstpage3',
// icon: '类目 品类 分类 类别',
// components: {
// default: () => import('@/view/First/page3.vue'),
// },
// }]
// }
]
//根据权限添加的路由
let roleRoutes = [
//把First设置为私有路由
//
{
path: '/First',
name: 'First',
component: home,
icon: '类目 品类 分类 类别',
meta: {
role: ['d', 'd']
},
children: [{
path: '/First/page1',
alias: '/First',
name: 'Firstpage1',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/First/page1.vue'),
},
meta: {
role: ['a']
},
},
{
path: '/First/page2',
name: 'Firstpage2',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/First/page2.vue'),
},
meta: {
role: ['a']
},
},
{
path: '/First/page3',
name: 'Firstpage3',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/First/page3.vue'),
},
meta: {
role: ['a']
},
}
]
},
// {
// path: '/Second',
// name: 'Second',
// component: home,
// icon: '类目 品类 分类 类别 (1)',
// //这里修改了显示了只有三个了 哈哈哈
// meta: {
// role: ['a']
// },
// children: [{
// path: '/Second/page1',
// alias: '/Second',
// name: 'Secondpage1',
// icon: '类目 品类 分类 类别',
// components: {
// default: () => import('@/view/Second/page1.vue'),
// },
// }, {
// path: '/Second/page2',
// name: 'Secondpage2',
// icon: '类目 品类 分类 类别',
// components: {
// default: () => import('@/view/Second/page2.vue'),
// },
// meta: {
// role: ['b']
// },
// }, {
// path: '/Second/page3',
// name: 'Secondpage3',
// icon: '类目 品类 分类 类别',
// components: {
// default: () => import('@/view/Second/page3.vue'),
// },
// meta: {
// role: ['b']
// },
// }]
// },
// 这是第三个默认a,c能进
{
path: '/Third',
name: 'Third',
component: home,
icon: '类目 品类 分类 类别 (2)',
meta: {
role: ['a', 'c']
},
children: [{
path: '/Third/page1',
alias: '/Third',
name: 'Thirdpage1',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Third/page1.vue'),
},
meta: {
role: ['a']
},
}, {
path: '/Third/page2',
name: 'Thirdpage2',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Third/page2.vue'),
},
meta: {
role: ['c']
},
}, {
path: '/Third/page3',
name: 'Thirdpage3',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Third/page3.vue'),
},
meta: {
role: ['c']
},
}]
},
{
path: '/Fourth',
name: 'Fourth',
component: home,
icon: '类目 品类 分类 类别 (1)',
meta: {
role: ['b']
},
children: [{
path: '/Fourth/page1',
alias: '/Fourth',
name: 'Fourthpage1',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Fourth/page1.vue'),
},
}, {
path: '/Fourth/page2',
name: 'Fourthpage2',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Fourth/page2.vue'),
},
}, {
path: '/Fourth/page3',
name: 'Fourthpage3',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Fourth/page3.vue'),
},
}]
},
{
path: '/Fifth',
name: 'Fifth',
component: home,
icon: '类目 品类 分类 类别 (1)',
meta: {
role: ['c']
},
children: [{
path: '/Fifth/page1',
alias: '/Fifth',
name: 'Fifthpage1',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Fifth/page1.vue'),
},
}, {
path: '/Fifth/page2',
name: 'Fifthpage2',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Fifth/page2.vue'),
},
}, {
path: '/Fifth/page3',
name: 'Fifthpage3',
icon: '类目 品类 分类 类别',
components: {
default: () => import('@/view/Fifth/page3.vue'),
},
}]
}, {
path: '*',
component: () => import('@/view/404')
}]
let router = new Router({
routes: publicRoutes,
})
router.beforeEach((to, from, next) => {
let token = store.getters.token,
role = store.getters.role;
if (!token && to.name !== 'login') {
next({
path: 'login'
})
} else {
next()
}
})
export default router
export {
publicRoutes,
roleRoutes
}