848f804169
- FastAPI 后端 + Vue 3 前端 - Docker Compose 一键部署 - Casdoor OAuth 认证集成 - LogHive 集中式日志 - 设备批量 CSV 导入/导出 - WebSocket 实时状态推送 - 企业微信告警通知 - fping 高性能并发 Ping 检测 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
64 lines
1.4 KiB
JavaScript
64 lines
1.4 KiB
JavaScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
|
|
const routes = [
|
|
{
|
|
path: '/login',
|
|
name: 'Login',
|
|
component: () => import('@/views/Login.vue'),
|
|
},
|
|
{
|
|
path: '/',
|
|
component: () => import('@/views/Layout.vue'),
|
|
redirect: '/dashboard',
|
|
children: [
|
|
{
|
|
path: 'dashboard',
|
|
name: 'Dashboard',
|
|
component: () => import('@/views/Dashboard.vue'),
|
|
meta: { title: '仪表盘' },
|
|
},
|
|
{
|
|
path: 'devices',
|
|
name: 'Devices',
|
|
component: () => import('@/views/Devices.vue'),
|
|
meta: { title: '设备列表' },
|
|
},
|
|
{
|
|
path: 'alerts',
|
|
name: 'Alerts',
|
|
component: () => import('@/views/Alerts.vue'),
|
|
meta: { title: '告警记录' },
|
|
},
|
|
{
|
|
path: 'stats',
|
|
name: 'Stats',
|
|
component: () => import('@/views/Stats.vue'),
|
|
meta: { title: '统计分析' },
|
|
},
|
|
{
|
|
path: 'settings',
|
|
name: 'Settings',
|
|
component: () => import('@/views/Settings.vue'),
|
|
meta: { title: '系统设置', adminOnly: true },
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes,
|
|
})
|
|
|
|
// 路由守卫:检查登录
|
|
router.beforeEach((to, from, next) => {
|
|
const token = localStorage.getItem('token')
|
|
if (to.name !== 'Login' && !token) {
|
|
next({ name: 'Login' })
|
|
} else {
|
|
next()
|
|
}
|
|
})
|
|
|
|
export default router
|