0d84b07f68
CI / docker (push) Successful in 1m58s
Go + Vue 管理台:Agent 隧道、域名反代、IP 安全、访客验证与监控大盘。 Gitea Actions CI 多架构镜像;纯 Go SQLite、无 CGO Docker 构建。 Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
import MainLayout from '@/layouts/MainLayout.vue'
|
|
import Login from '@/views/Login.vue'
|
|
import Dashboard from '@/views/Dashboard.vue'
|
|
import Clients from '@/views/Clients.vue'
|
|
import Tunnels from '@/views/Tunnels.vue'
|
|
import Hosts from '@/views/Hosts.vue'
|
|
import IPRules from '@/views/IPRules.vue'
|
|
import RequestIPs from '@/views/RequestIPs.vue'
|
|
import Users from '@/views/Users.vue'
|
|
import Settings from '@/views/Settings.vue'
|
|
|
|
const routes = [
|
|
{ path: '/login', component: Login },
|
|
{
|
|
path: '/',
|
|
component: MainLayout,
|
|
redirect: '/dashboard',
|
|
children: [
|
|
{ path: 'dashboard', component: Dashboard },
|
|
{ path: 'clients', component: Clients },
|
|
{ path: 'tunnels', component: Tunnels },
|
|
{ path: 'hosts', component: Hosts },
|
|
{ path: 'security/ip-rules', component: IPRules },
|
|
{ path: 'security/request-ips', component: RequestIPs },
|
|
{ path: 'users', component: Users },
|
|
{ path: 'settings', component: Settings },
|
|
],
|
|
},
|
|
]
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes,
|
|
})
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
const token = localStorage.getItem('token')
|
|
if (to.path !== '/login' && !token) {
|
|
next('/login')
|
|
} else if (to.path === '/login' && token) {
|
|
next('/dashboard')
|
|
} else {
|
|
next()
|
|
}
|
|
})
|
|
|
|
export default router
|