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
8.3 KiB
1 lines
8.3 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: to => {\n const userRoles = store.state.userInfo.roles || [];\n if (userRoles.includes('ROLE_ADMIN') || userRoles.includes('ROLE_LOGISTICS_ADMIN')) {\n return '/admin/orders';\n }\n return '/orders/my';\n }\n }, {\n path: 'orders/my',\n name: 'MyOrders',\n component: () => import('@/views/order/OrderList.vue'),\n meta: {\n title: '我的订单',\n roles: ['ROLE_USER']\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","to","userRoles","state","userInfo","roles","includes","title","router","history","beforeEach","from","next","token","some","role","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: to => {\r\n const userRoles = store.state.userInfo.roles || []\r\n if (userRoles.includes('ROLE_ADMIN') || userRoles.includes('ROLE_LOGISTICS_ADMIN')) {\r\n return '/admin/orders'\r\n }\r\n return '/orders/my'\r\n }\r\n },\r\n {\r\n path: 'orders/my',\r\n name: 'MyOrders',\r\n component: () => import('@/views/order/OrderList.vue'),\r\n meta: { \r\n title: '我的订单',\r\n roles: ['ROLE_USER']\r\n }\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: { requiresAuth: true },\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":"AAAA,SAASA,YAAY,EAAEC,gBAAgB,QAAQ,YAAY;AAC3D,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,MAAM,MAAM,+BAA+B;AAClD,SAASC,SAAS,QAAQ,cAAc;AAExC,MAAMC,MAAM,GAAG,CACb;EACEC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE,OAAO;EACbC,SAAS,EAAEA,CAAA,KAAM,MAAM,CAAC,yBAAyB,CAAC;EAClDC,IAAI,EAAE;IAAEC,YAAY,EAAE;EAAM;AAC9B,CAAC,EACD;EACEJ,IAAI,EAAE,GAAG;EACTE,SAAS,EAAEL,MAAM;EACjBM,IAAI,EAAE;IAAEC,YAAY,EAAE;EAAK,CAAC;EAC5BC,QAAQ,EAAE,CACR;IACEL,IAAI,EAAE,EAAE;IACRM,QAAQ,EAAEC,EAAE,IAAI;MACd,MAAMC,SAAS,GAAGZ,KAAK,CAACa,KAAK,CAACC,QAAQ,CAACC,KAAK,IAAI,EAAE;MAClD,IAAIH,SAAS,CAACI,QAAQ,CAAC,YAAY,CAAC,IAAIJ,SAAS,CAACI,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAClF,OAAO,eAAe;MACxB;MACA,OAAO,YAAY;IACrB;EACF,CAAC,EACD;IACEZ,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAEA,CAAA,KAAM,MAAM,CAAC,6BAA6B,CAAC;IACtDC,IAAI,EAAE;MACJU,KAAK,EAAE,MAAM;MACbF,KAAK,EAAE,CAAC,WAAW;IACrB;EACF,CAAC,EACD;IACEX,IAAI,EAAE,eAAe;IACrBC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAEA,CAAA,KAAM,MAAM,CAAC,+BAA+B,CAAC;IACxDC,IAAI,EAAE;MACJU,KAAK,EAAE,MAAM;MACbF,KAAK,EAAE,CAAC,sBAAsB;IAChC;EACF,CAAC,EACD;IACEX,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAEA,CAAA,KAAM,MAAM,CAAC,+BAA+B,CAAC;IACxDC,IAAI,EAAE;MACJU,KAAK,EAAE,MAAM;MACbT,YAAY,EAAE,IAAI,CAAE;IACtB;EACF,CAAC;AAEL,CAAC,EACD;EACEJ,IAAI,EAAE,QAAQ;EACdE,SAAS,EAAEL,MAAM;EACjBM,IAAI,EAAE;IAAEC,YAAY,EAAE;EAAK,CAAC;EAC5BC,QAAQ,EAAE,CACR;IACEL,IAAI,EAAE,QAAQ;IACdC,IAAI,EAAE,iBAAiB;IACvBC,SAAS,EAAEA,CAAA,KAAM,MAAM,CAAC,mCAAmC,CAAC;IAC5DC,IAAI,EAAE;MACJU,KAAK,EAAE,MAAM;MACbF,KAAK,EAAE,CAAC,YAAY,EAAE,sBAAsB;IAC9C;EACF,CAAC,EACD;IACEX,IAAI,EAAE,OAAO;IACbC,IAAI,EAAE,gBAAgB;IACtBC,SAAS,EAAEA,CAAA,KAAM,MAAM,CAAC,kCAAkC,CAAC;IAC3DC,IAAI,EAAE;MACJU,KAAK,EAAE,MAAM;MACbF,KAAK,EAAE,CAAC,YAAY;IACtB;EACF,CAAC;AAEL,CAAC,CACF;AAED,MAAMG,MAAM,GAAGpB,YAAY,CAAC;EAC1BqB,OAAO,EAAEpB,gBAAgB,CAAC,CAAC;EAC3BI;AACF,CAAC,CAAC;AAEFe,MAAM,CAACE,UAAU,CAAC,CAACT,EAAE,EAAEU,IAAI,EAAEC,IAAI,KAAK;EACpC,MAAMC,KAAK,GAAGvB,KAAK,CAACa,KAAK,CAACU,KAAK;EAC/B,MAAMX,SAAS,GAAGZ,KAAK,CAACa,KAAK,CAACC,QAAQ,CAACC,KAAK,IAAI,EAAE;EAElD,IAAIJ,EAAE,CAACJ,IAAI,CAACC,YAAY,KAAK,KAAK,IAAI,CAACe,KAAK,EAAE;IAC5CD,IAAI,CAAC,QAAQ,CAAC;IACd;EACF;EAEA,IAAIX,EAAE,CAACP,IAAI,KAAK,QAAQ,IAAImB,KAAK,EAAE;IACjCD,IAAI,CAAC,GAAG,CAAC;IACT;EACF;;EAEA;EACA,IAAIX,EAAE,CAACJ,IAAI,CAACQ,KAAK,IAAI,CAACJ,EAAE,CAACJ,IAAI,CAACQ,KAAK,CAACS,IAAI,CAACC,IAAI,IAAIb,SAAS,CAACI,QAAQ,CAACS,IAAI,CAAC,CAAC,EAAE;IAC1EvB,SAAS,CAACwB,KAAK,CAAC,WAAW,CAAC;IAC5BJ,IAAI,CAAC,GAAG,CAAC;IACT;EACF;EAEAA,IAAI,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,eAAeJ,MAAM","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|