配置路由结构
This commit is contained in:
@@ -1,23 +1,63 @@
|
|||||||
import { createRouter, createWebHistory } from 'vue-router';
|
import { createRouter, createWebHistory } from 'vue-router';
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
|
|
||||||
const whiteList = ["/login"];
|
const whiteList = ["/login"];
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: "/",
|
||||||
name: 'Index',
|
name: "Index",
|
||||||
component: () => import('@/views/index.vue')
|
component: () => import("@/views/index.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/login',
|
path: "/login",
|
||||||
name: 'Login',
|
name: "Login",
|
||||||
component: () => import('@/views/login.vue')
|
component: () => import("@/views/login.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/pwoManage',
|
path: "/pwoManage",
|
||||||
name: 'PwoManage',
|
name: "PwoManage",
|
||||||
component: () => import('@/views/pwoManage/index.vue')
|
component: () => import("@/views/pwoManage/layout.vue"),
|
||||||
}
|
redirect: { name: "PwoManageIndex" },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
name: "PwoManageIndex",
|
||||||
|
component: () => import("@/views/pwoManage/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "infeed",
|
||||||
|
name: "Infeed",
|
||||||
|
component: () => import("@/views/pwoManage/infeed/layout.vue"),
|
||||||
|
redirect: { name: "PrimaryMaterial" },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "primaryMaterial",
|
||||||
|
name: "PrimaryMaterial",
|
||||||
|
component: () =>
|
||||||
|
import("@/views/pwoManage/infeed/primaryMaterial/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "rawMaterial",
|
||||||
|
name: "RawMaterial",
|
||||||
|
component: () =>
|
||||||
|
import("@/views/pwoManage/infeed/rawMaterial/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "fixture",
|
||||||
|
name: "Fixture",
|
||||||
|
component: () =>
|
||||||
|
import("@/views/pwoManage/infeed/fixture/index.vue"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "outfeed",
|
||||||
|
name: "Outfeed",
|
||||||
|
component: () => import("@/views/pwoManage/outfeed/index.vue"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
@@ -26,18 +66,17 @@ const router = createRouter({
|
|||||||
});
|
});
|
||||||
|
|
||||||
router.beforeEach(async (to, from, next) => {
|
router.beforeEach(async (to, from, next) => {
|
||||||
const token = localStorage.getItem("token");
|
const token = getToken();
|
||||||
|
// 已登录,访问 login → 跳首页
|
||||||
|
if (token && to.path === "/login") {
|
||||||
|
return next("/");
|
||||||
|
}
|
||||||
|
|
||||||
// 白名单放行
|
// 白名单放行
|
||||||
if (whiteList.includes(to.path)) {
|
if (whiteList.includes(to.path)) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 已登录,访问 login → 跳首页
|
|
||||||
if (token && to.path === "/login") {
|
|
||||||
return next("/");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 未登录,访问受保护路由
|
// 未登录,访问受保护路由
|
||||||
if (!token) {
|
if (!token) {
|
||||||
return next({
|
return next({
|
||||||
@@ -50,4 +89,4 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
Reference in New Issue
Block a user