diff --git a/resources/js/plugins/router.js b/resources/js/plugins/router.js index 558e999..1a4d933 100644 --- a/resources/js/plugins/router.js +++ b/resources/js/plugins/router.js @@ -1,6 +1,5 @@ -import { createRouter, createWebHistory } from "vue-router"; +import {createRouter, createWebHistory} from "vue-router"; // import app from "../config/app"; -import { Tooltip, Toast } from "bootstrap"; const routes = [ { @@ -8,12 +7,72 @@ const routes = [ name: "index", component: () => import("../views/Index.vue"), meta: { - auth: true, title: "欢迎", }, }, + { + path: "/tunnels", + name: "tunnels", + component: () => import("../views/Tunnels/Index.vue"), + meta: { + title: "隧道", + }, + }, + { + path: "/tunnels/create", + name: "tunnels.create", + component: () => import("../views/Tunnels/Create.vue"), + meta: { + title: "创建隧道", + }, + }, + { + path: "/servers", + name: "servers", + component: () => import("../views/Servers/Index.vue"), + meta: { + title: "服务器列表", + }, + }, + { + path: "/servers/create", + name: "servers.create", + component: () => import("../views/Servers/Create.vue"), + meta: { + admin: true, + title: "创建服务器", + }, + }, + { + path: "/servers/:id/edit", + name: "servers.edit", + component: () => import("../views/Servers/Edit.vue"), + meta: { + admin: true, + title: "创建服务器", + }, + }, ]; + +// 验证用户是否是管理员(从 window 中获取) +const isAdmin = () => { + return window.Base.User.is_admin; +}; + +// before each route +routes.forEach((route) => { + route.beforeEnter = (to, from, next) => { + // 如果是管理员页面,且用户不是管理员,则跳转到首页 + if (route.meta.admin && !isAdmin()) { + next({name: "index"}); + } else { + next(); + } + }; +}); + + const router = createRouter({ history: createWebHistory(), routes,