| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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
|