import Vue from 'vue' import VueRouter from 'vue-router' import Layout from '@/layout' import SiteRouter from './SiteRouter' import ChargeRouter from './ChargeRouter' import UserRouter from './UserRouter' import ProviderRouter from './ProviderRouter' import Transactions from './Transactions' import ChargingProfile from './ChargingProfile' import OCPPRouter from './OCPPRouter' import driver from './driver' import fleetCompanyRoute from './fleetCompany' import CreditLimit from './CreditLimit' import FinancialRouter from './FinancialRouter' import PosRouter from './PosRouter' import RfidRouter from './RfidRouter' Vue.use(VueRouter) const constantRoutes = [ { path: '/', redirect: '/dashboard' }, { path: '/redirect', component: Layout, hidden: true, children: [ { path: '/redirect/:path*', component: () => import('@/views/redirect/index'), } ] }, { path: '/login', component: () => import('@/views/login/index'), meta: { title: 'Login' }, hidden: true }, { path: '/administrator', component: Layout, meta: { title: 'Administrator', subTitle: 'Settings', icon: 'administrator', activeIcon: 'administrator-active', affix: true }, children: [ { path: '/administrator', component: () => import('@/views/Administrator'), name: 'administrator', meta: { title: 'Administrator', subTitle: 'Settings', icon: 'administrator', breadcrumb: false, } } ], }, { path: '/dashboard', component: Layout, meta: { title: 'Dashboard', icon: 'dashboard', activeIcon: 'dashboard-active', affix: true }, children: [ { path: '/dashboard', component: () => import('@/views/dashboard/Dashboard'), name: 'dashboard', meta: { title: 'Dashboard', icon: 'dashboard', breadcrumb: false } }, { path: '/maps', component: () => import('@/views/dashboard/Maps'), name: 'maps', meta: { title: 'Maps', icon: 'dashboard', }, hidden: true } ], }, SiteRouter, ChargeRouter, Transactions, { path: '/error-table', component: Layout, meta: { title: 'Error Table', icon: 'error-table', activeIcon: 'error-table-active', affix: true }, children: [ { path: '/error-table', component: () => import('@/views/transaction/error_table'), name: 'error-table', meta: { title: 'Error Table', icon: 'error-table', breadcrumb: false } } ] }, ChargingProfile, FinancialRouter, UserRouter, //driver, { path: '/feedback-management', component: Layout, meta: { title: 'Feedback Management', icon: 'feedback-management', activeIcon: 'feedback-management-active', affix: true }, children: [ { path: '/feedback-management', component: () => import('@/views/feedback/FeedbackManagement'), name: 'feedback-management', meta: { title: 'Feedback Management', breadcrumb: false } }, { path: '/feedback-management/view/:id', component: () => import('@/views/feedback/Detail'), name: 'feedback-view', meta: { title: 'View Feedback', activeMenu: '/feedback-management' } } ], }, OCPPRouter, { path: '/reports', component: Layout, children: [ { path: '/reports/index', component: () => import('@/views/Reports'), name: 'reports', meta: { title: 'Reports', icon: 'reports', activeIcon: 'reports-active', } } ], }, { path: '/notification', component: Layout, meta: { title: 'Notification Management', icon: 'notification', activeIcon: 'notification-active', affix: true }, children: [ { path: '/notification', component: () => import('@/views/notification/index'), name: 'notification', meta: { title: 'Notification Management', icon: 'notification', activeIcon: 'notification-active', breadcrumb: false } }, { path: '/notification/add', component: () => import('@/views/notification/add'), name: 'notification-add', meta: { title: 'Add Notification', activeMenu: '/notification', icon: 'notification', activeIcon: 'notification-active' } }, { path: '/notification/:id', component: () => import('@/views/notification/add'), name: 'notification-add', meta: { title: 'View Notification', activeMenu: '/notification' } } ], }, ProviderRouter, fleetCompanyRoute, CreditLimit, PosRouter, RfidRouter /*OCPI*/ ] const asyncRoutes = [] export { constantRoutes, asyncRoutes, } const createRouter = () => new VueRouter({ // mode: 'history', // require service support scrollBehavior: () => ({ y: 0 }), routes: constantRoutes }) const router = createRouter() // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 export function resetRouter() { const newRouter = createRouter() router.matcher = newRouter.matcher // reset router } export default router