import { createRouter, createWebHistory } from 'vue-router' import { useParentPathStore } from '@/stores/modules/parentPath' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'Home', redirect: '/booking', component: () => import('../views/Layout'), children: [ { path: '/dashboard', name: 'Dashboard', component: () => import('../views/Dashboard') }, { path: '/booking', name: 'Booking', component: () => import('../views/Booking') }, { path: '/booking/detail', name: 'Booking Detail', component: () => import('../views/Booking/src/components/BookingDetail'), meta: { parentPath: '/booking' } }, { path: '/tracking', name: 'Tracking', component: () => import('../views/Tracking') }, { path: '/tracking/detail', name: 'Tracking Detail', component: () => import('../views/Tracking/src/components/TrackingDetail') }, { path: '/public-tracking', name: 'Public Tracking', component: () => import('../views/Tracking/src/components/PublicTracking') }, { path: '/public-tracking/detail', name: 'Public Tracking Detail', component: () => import( '../views/Tracking/src/components/PublicTracking/src/components/PublicTrackingDetail.vue' ) }, { path: '/login', name: 'Login', component: () => import('../views/Login') }, { path: '/Operationlog', name: 'Operationlog', component: () => import('../views/OperationLog') } ] } ] }) // * 路由拦截 beforeEach router.beforeEach(async (to, from, next) => { const parentPathStore = useParentPathStore() if (to.path.includes('/detail')) { parentPathStore.setParentPath(from) } else { parentPathStore.clearParentPath() } next() }) export default router