fix: 修复前端导航和页面跳转问题

- 添加统一的导航菜单到所有页面
- 修复页面路由映射和高亮状态
- 创建 navigation.js 统一管理页面跳转
- 添加 test_navigation.py 路由测试工具
- 支持仪表板、预警管理、智能对话、HTTP对话页面间无缝切换

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jeason
2025-12-07 10:12:17 +08:00
parent 96e1cc4e70
commit 20c5ce355a
12 changed files with 685 additions and 184 deletions

View File

@@ -179,6 +179,50 @@
</style>
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container-fluid">
<a class="navbar-brand" href="/dashboard">
<i class="fas fa-shield-alt me-2"></i>
TSP助手预警管理
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="/dashboard">
<i class="fas fa-tachometer-alt me-1"></i>仪表板
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/alerts">
<i class="fas fa-bell me-1"></i>预警管理
</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="/chat">
<i class="fas fa-comments me-1"></i>智能对话
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/chat-http">
<i class="fas fa-comment-dots me-1"></i>对话(HTTP)
</a>
</li>
</ul>
<div class="navbar-nav ms-auto">
<span class="navbar-text">
<i class="fas fa-circle text-success"></i> WebSocket连接
</span>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="row">
<!-- 侧边栏 -->
@@ -327,6 +371,7 @@
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="{{ url_for('static', filename='js/navigation.js') }}"></script>
<script src="{{ url_for('static', filename='js/chat.js') }}"></script>
</body>
</html>

View File

@@ -179,6 +179,50 @@
</style>
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container-fluid">
<a class="navbar-brand" href="/dashboard">
<i class="fas fa-shield-alt me-2"></i>
TSP助手预警管理
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="/dashboard">
<i class="fas fa-tachometer-alt me-1"></i>仪表板
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/alerts">
<i class="fas fa-bell me-1"></i>预警管理
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/chat">
<i class="fas fa-comments me-1"></i>智能对话
</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="/chat-http">
<i class="fas fa-comment-dots me-1"></i>对话(HTTP)
</a>
</li>
</ul>
<div class="navbar-nav ms-auto">
<span class="navbar-text">
<i class="fas fa-circle text-info"></i> HTTP轮询
</span>
</div>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="row">
<!-- 侧边栏 -->
@@ -327,6 +371,7 @@
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="{{ url_for('static', filename='js/navigation.js') }}"></script>
<script src="{{ url_for('static', filename='js/chat_http.js') }}"></script>
</body>
</html>

View File

@@ -387,11 +387,11 @@
控制面板
</h5>
<nav class="nav flex-column">
<a class="nav-link active" href="#dashboard" data-tab="dashboard" data-i18n="sidebar-dashboard">
<a class="nav-link active" href="/dashboard" data-i18n="sidebar-dashboard">
<i class="fas fa-home"></i>
仪表板
</a>
<a class="nav-link" href="#chat" data-tab="chat" data-i18n="sidebar-conversations">
<a class="nav-link" href="/chat" data-i18n="sidebar-conversations">
<i class="fas fa-comments"></i>
智能对话
</a>
@@ -399,7 +399,7 @@
<i class="fas fa-brain"></i>
Agent管理
</a>
<a class="nav-link" href="#alerts" data-tab="alerts" data-i18n="sidebar-alerts">
<a class="nav-link" href="/alerts" data-i18n="sidebar-alerts">
<i class="fas fa-exclamation-triangle"></i>
预警管理
</a>
@@ -415,9 +415,9 @@
<i class="fas fa-sync"></i>
飞书同步
</a>
<a class="nav-link" href="#conversation-history" data-tab="conversation-history" data-i18n="sidebar-conversation-history">
<i class="fas fa-history"></i>
对话历史
<a class="nav-link" href="/chat-http" data-i18n="sidebar-conversation-history">
<i class="fas fa-comment-dots"></i>
HTTP对话
</a>
<a class="nav-link" href="#token-monitor" data-tab="token-monitor" data-i18n="sidebar-token-monitor">
<i class="fas fa-coins"></i>
@@ -2472,6 +2472,7 @@
<!-- 脚本 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.9.1/dist/chart.min.js"></script>
<script src="{{ url_for('static', filename='js/navigation.js') }}"></script>
<script src="{{ url_for('static', filename='js/dashboard.js') }}?v=1.0.9"></script>
</body>
</html>

View File

@@ -12,14 +12,43 @@
<!-- 导航栏 -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container-fluid">
<a class="navbar-brand" href="#">
<a class="navbar-brand" href="/dashboard">
<i class="fas fa-shield-alt me-2"></i>
TSP助手预警管理
</a>
<div class="navbar-nav ms-auto">
<span class="navbar-text" id="monitor-status">
<i class="fas fa-circle text-warning"></i> 监控状态检查中...
</span>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="/dashboard">
<i class="fas fa-tachometer-alt me-1"></i>仪表板
</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="/alerts">
<i class="fas fa-bell me-1"></i>预警管理
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/chat">
<i class="fas fa-comments me-1"></i>智能对话
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/chat-http">
<i class="fas fa-comment-dots me-1"></i>对话(HTTP)
</a>
</li>
</ul>
<div class="navbar-nav ms-auto">
<span class="navbar-text" id="monitor-status">
<i class="fas fa-circle text-warning"></i> 监控状态检查中...
</span>
</div>
</div>
</div>
</nav>
@@ -650,6 +679,7 @@
<!-- 脚本 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="{{ url_for('static', filename='js/navigation.js') }}"></script>
<script src="{{ url_for('static', filename='js/app.js') }}"></script>
</body>
</html>