You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
7.8 KiB
1 lines
7.8 KiB
{"ast":null,"code":"import { createRouter, createWebHistory } from 'vue-router';\nimport store from '@/store';\nimport Layout from '@/components/layout/index.vue';\nimport { ElMessage } from 'element-plus';\nconst routes = [{\n path: '/login',\n name: 'Login',\n component: () => import('@/views/login/index.vue'),\n meta: {\n requiresAuth: false\n }\n}, {\n path: '/',\n component: Layout,\n meta: {\n requiresAuth: true\n },\n children: [{\n path: '',\n redirect: '/orders/my'\n }, {\n path: 'orders/my',\n name: 'MyOrders',\n component: () => import('@/views/order/OrderList.vue'),\n meta: {\n title: '我的订单'\n }\n }, {\n path: 'orders/create',\n name: 'CreateOrder',\n component: () => import('@/views/order/OrderCreate.vue'),\n meta: {\n title: '创建订单',\n roles: ['ROLE_WAREHOUSE_ADMIN'] // 只有仓库管理员可以创建订单\n }\n }, {\n path: 'orders/:id',\n name: 'OrderDetail',\n component: () => import('@/views/order/OrderDetail.vue'),\n meta: {\n title: '订单详情',\n requiresAuth: true // 需要登录才能访问\n }\n }]\n}, {\n path: '/admin',\n component: Layout,\n meta: {\n requiresAuth: true\n },\n children: [{\n path: 'orders',\n name: 'OrderManagement',\n component: () => import('@/views/admin/OrderManagement.vue'),\n meta: {\n title: '全部订单',\n roles: ['ROLE_ADMIN', 'ROLE_LOGISTICS_ADMIN'] // 允许管理员和物流管理员访问\n }\n }, {\n path: 'users',\n name: 'UserManagement',\n component: () => import('@/views/admin/UserManagement.vue'),\n meta: {\n title: '用户管理',\n roles: ['ROLE_ADMIN'] // 只允许管理员访问\n }\n }]\n}];\nconst router = createRouter({\n history: createWebHistory(),\n routes\n});\nrouter.beforeEach((to, from, next) => {\n const token = store.state.token;\n const userRoles = store.state.userInfo.roles || [];\n if (to.meta.requiresAuth !== false && !token) {\n next('/login');\n return;\n }\n if (to.path === '/login' && token) {\n next('/');\n return;\n }\n\n // 检查路由是否需要特定角色\n if (to.meta.roles && !to.meta.roles.some(role => userRoles.includes(role))) {\n ElMessage.error('没有权限访问此页面');\n next('/');\n return;\n }\n next();\n});\nexport default router;","map":{"version":3,"names":["createRouter","createWebHistory","store","Layout","ElMessage","routes","path","name","component","meta","requiresAuth","children","redirect","title","roles","router","history","beforeEach","to","from","next","token","state","userRoles","userInfo","some","role","includes","error"],"sources":["D:/language/VScode/Front-end logistics/src/router/index.js"],"sourcesContent":["import { createRouter, createWebHistory } from 'vue-router'\r\nimport store from '@/store'\r\nimport Layout from '@/components/layout/index.vue'\r\nimport { ElMessage } from 'element-plus'\r\n\r\nconst routes = [\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n component: () => import('@/views/login/index.vue'),\r\n meta: { requiresAuth: false }\r\n },\r\n {\r\n path: '/',\r\n component: Layout,\r\n meta: { requiresAuth: true },\r\n children: [\r\n {\r\n path: '',\r\n redirect: '/orders/my'\r\n },\r\n {\r\n path: 'orders/my',\r\n name: 'MyOrders',\r\n component: () => import('@/views/order/OrderList.vue'),\r\n meta: { title: '我的订单' }\r\n },\r\n {\r\n path: 'orders/create',\r\n name: 'CreateOrder',\r\n component: () => import('@/views/order/OrderCreate.vue'),\r\n meta: { \r\n title: '创建订单',\r\n roles: ['ROLE_WAREHOUSE_ADMIN'] // 只有仓库管理员可以创建订单\r\n }\r\n },\r\n {\r\n path: 'orders/:id',\r\n name: 'OrderDetail',\r\n component: () => import('@/views/order/OrderDetail.vue'),\r\n meta: { \r\n title: '订单详情',\r\n requiresAuth: true // 需要登录才能访问\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/admin',\r\n component: Layout,\r\n meta: { \r\n requiresAuth: true\r\n },\r\n children: [\r\n {\r\n path: 'orders',\r\n name: 'OrderManagement',\r\n component: () => import('@/views/admin/OrderManagement.vue'),\r\n meta: { \r\n title: '全部订单',\r\n roles: ['ROLE_ADMIN', 'ROLE_LOGISTICS_ADMIN'] // 允许管理员和物流管理员访问\r\n }\r\n },\r\n {\r\n path: 'users',\r\n name: 'UserManagement',\r\n component: () => import('@/views/admin/UserManagement.vue'),\r\n meta: { \r\n title: '用户管理',\r\n roles: ['ROLE_ADMIN'] // 只允许管理员访问\r\n }\r\n }\r\n ]\r\n }\r\n]\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const token = store.state.token\r\n const userRoles = store.state.userInfo.roles || []\r\n\r\n if (to.meta.requiresAuth !== false && !token) {\r\n next('/login')\r\n return\r\n }\r\n\r\n if (to.path === '/login' && token) {\r\n next('/')\r\n return\r\n }\r\n\r\n // 检查路由是否需要特定角色\r\n if (to.meta.roles && !to.meta.roles.some(role => userRoles.includes(role))) {\r\n ElMessage.error('没有权限访问此页面')\r\n next('/')\r\n return\r\n }\r\n\r\n next()\r\n})\r\n\r\nexport default router "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|