import Vue from 'vue'; import Router from 'vue-router'; import { AuthGuard } from '@/utils'; import qs from 'qs'; import { globalRoutes, indexRoutes} from '@/router' import { AppService } from '@/studio-core/service/app-service/AppService'; Vue.use(Router); const appService = new AppService(); const router = new Router({ routes: [ { path: '/pim/:pim?', beforeEnter: async (to: any, from: any, next: any) => { const routerParamsName = 'pim'; const params: any = {}; if (to.params && to.params[routerParamsName]) { params[routerParamsName] = to.params[routerParamsName]; } const url: string = '/appdata'; await AuthGuard.getInstance().authGuard(url, params, router); appService.navHistory.indexMeta = { caption: 'app.views.pim.title', info:'', viewType: 'APPINDEX', parameters: [ { pathName: 'pim', parameterName: 'pim' }, ], requireAuth: true, }; next(); }, meta: { caption: 'app.views.pim.title', info:'', viewType: 'APPINDEX', parameters: [ { pathName: 'pim', parameterName: 'pim' }, ], requireAuth: true, }, component: () => import('@pages/ungroup/pim/pim.vue'), children: [ { path: 'hremployees/:hremployee?/editview/:editview?', meta: { caption: 'entities.hremployee.views.editview.title', info:'', parameters: [ { pathName: 'pim', parameterName: 'pim' }, { pathName: 'hremployees', parameterName: 'hremployee' }, { pathName: 'editview', parameterName: 'editview' }, ], requireAuth: true, }, component: () => import('@pages/human-resource/hremployee-edit-view/hremployee-edit-view.vue'), }, { path: 'hremployees/:hremployee?/gridview/:gridview?', meta: { caption: 'entities.hremployee.views.gridview.title', info:'', parameters: [ { pathName: 'pim', parameterName: 'pim' }, { pathName: 'hremployees', parameterName: 'hremployee' }, { pathName: 'gridview', parameterName: 'gridview' }, ], requireAuth: true, }, component: () => import('@pages/human-resource/hremployee-grid-view/hremployee-grid-view.vue'), }, ...indexRoutes, ], }, ...globalRoutes, { path: '/login/:login?', name: 'login', meta: { caption: '登录', viewType: 'login', requireAuth: false, ignoreAddPage: true, }, beforeEnter: (to: any, from: any, next: any) => { appService.navHistory.reset(); next(); }, component: () => import('@components/login/login'), }, { path: '/404', component: () => import('@components/404/404.vue') }, { path: '/500', component: () => import('@components/500/500.vue') }, { path: '*', redirect: 'pim' } ] }); router.beforeEach((to: any, from: any, next: any) => { if (to.meta && !to.meta.ignoreAddPage) { appService.navHistory.add(to); } next(); }); export default router;