82 lines
1.4 KiB
JavaScript
82 lines
1.4 KiB
JavaScript
import store from '@/store';
|
|
|
|
const checkUserinfo = code => {
|
|
const userinfo = store.state.account.userinfo;
|
|
if (userinfo) {
|
|
return `/error/${code}`;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
const Layout = () => import('@/layout/index.vue');
|
|
const Error = () => import('@/views/error/index.vue');
|
|
|
|
export default [
|
|
{
|
|
path: '/error',
|
|
component: Layout,
|
|
children: [
|
|
{
|
|
path: '403',
|
|
name: 'error-forbidden',
|
|
component: Error,
|
|
meta: { title: '403' },
|
|
props: {
|
|
error: '403',
|
|
},
|
|
},
|
|
{
|
|
path: '500',
|
|
name: 'error-server-error',
|
|
component: Error,
|
|
meta: { title: '500' },
|
|
props: {
|
|
error: '500',
|
|
},
|
|
},
|
|
{
|
|
path: '404',
|
|
name: 'error-not-found',
|
|
component: Error,
|
|
meta: { title: '404' },
|
|
props: {
|
|
error: '404',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/403',
|
|
name: 'forbidden',
|
|
component: Error,
|
|
props: {
|
|
error: '403',
|
|
},
|
|
beforeEnter() {
|
|
return checkUserinfo('403');
|
|
},
|
|
},
|
|
{
|
|
path: '/500',
|
|
name: 'server-error',
|
|
component: Error,
|
|
props: {
|
|
error: '500',
|
|
},
|
|
beforeEnter() {
|
|
return checkUserinfo('500');
|
|
},
|
|
},
|
|
{
|
|
path: '/:pathMatch(.*)',
|
|
name: 'not-found',
|
|
component: Error,
|
|
props: {
|
|
error: '404',
|
|
},
|
|
beforeEnter() {
|
|
return checkUserinfo('404');
|
|
},
|
|
},
|
|
];
|