Commit a6c3f7470789ebe502136753e8edd81c3e267da9

Authored by yibo
1 parent 9755a048

fix(web): 顶部导航改为 SPA 内跳转,不再打开新标签页

System Agents/Task Logs/Quota/Dream 及公司上下文的 Overview/Team/Workspace/
SOP/任务看板/Files/Messages 共 11 处导航链接原是 <a target="_blank">,改成
router-link 保持在当前页跳转。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013aQrCrnXcYEz5GdQ6fnPZm
Showing 1 changed file with 22 additions and 22 deletions
web/src/components/AppNav.vue
... ... @@ -5,21 +5,21 @@
5 5 <span class="nav-title">LemonBoss</span>
6 6 </div>
7 7 <div class="nav-links">
8   - <a href="/agent/master" target="_blank" class="nav-link" :class="{ active: $route.path.startsWith('/agent') }">
  8 + <router-link to="/agent/master" class="nav-link" :class="{ active: $route.path.startsWith('/agent') }">
9 9 <span>🤖</span> System Agents
10   - </a>
  10 + </router-link>
11 11  
12   - <a href="/tasks" target="_blank" class="nav-link" :class="{ active: $route.path.startsWith('/tasks') }">
  12 + <router-link to="/tasks" class="nav-link" :class="{ active: $route.path.startsWith('/tasks') }">
13 13 <span>📜</span> Task Logs
14   - </a>
  14 + </router-link>
15 15  
16   - <a href="/quota" target="_blank" class="nav-link" :class="{ active: $route.path === '/quota' }">
  16 + <router-link to="/quota" class="nav-link" :class="{ active: $route.path === '/quota' }">
17 17 <span>📊</span> Quota
18   - </a>
  18 + </router-link>
19 19  
20   - <a href="/dream" target="_blank" class="nav-link" :class="{ active: $route.path === '/dream' }">
  20 + <router-link to="/dream" class="nav-link" :class="{ active: $route.path === '/dream' }">
21 21 <span>🌙</span> Dream
22   - </a>
  22 + </router-link>
23 23  
24 24 <div class="nav-divider"></div>
25 25  
... ... @@ -49,27 +49,27 @@
49 49  
50 50 <!-- Contextual Company Navigation -->
51 51 <template v-if="currentCompany">
52   - <a :href="`/${currentCompany.id}/overview`" target="_blank" class="nav-link" :class="{ active: $route.params.tab === 'overview' }">
  52 + <router-link :to="`/${currentCompany.id}/overview`" class="nav-link" :class="{ active: $route.params.tab === 'overview' }">
53 53 📊 Overview
54   - </a>
55   - <a :href="`/${currentCompany.id}/agents`" target="_blank" class="nav-link" :class="{ active: $route.params.tab === 'agents' }">
  54 + </router-link>
  55 + <router-link :to="`/${currentCompany.id}/agents`" class="nav-link" :class="{ active: $route.params.tab === 'agents' }">
56 56 👥 Team
57   - </a>
58   - <a :href="`/${currentCompany.id}/workspace`" target="_blank" class="nav-link" :class="{ active: $route.params.tab === 'workspace' }">
  57 + </router-link>
  58 + <router-link :to="`/${currentCompany.id}/workspace`" class="nav-link" :class="{ active: $route.params.tab === 'workspace' }">
59 59 💼 Workspace
60   - </a>
61   - <a :href="`/${currentCompany.id}/pipelines`" target="_blank" class="nav-link" :class="{ active: $route.params.tab === 'pipelines' || $route.params.tab === 'sop' }">
  60 + </router-link>
  61 + <router-link :to="`/${currentCompany.id}/pipelines`" class="nav-link" :class="{ active: $route.params.tab === 'pipelines' || $route.params.tab === 'sop' }">
62 62 ⚙️ SOP
63   - </a>
64   - <a :href="`/${currentCompany.id}/task-board`" target="_blank" class="nav-link" :class="{ active: $route.path.endsWith('/task-board') }">
  63 + </router-link>
  64 + <router-link :to="`/${currentCompany.id}/task-board`" class="nav-link" :class="{ active: $route.path.endsWith('/task-board') }">
65 65 🗂️ 任务看板
66   - </a>
67   - <a :href="`/${currentCompany.id}/files`" target="_blank" class="nav-link" :class="{ active: $route.params.tab === 'files' }">
  66 + </router-link>
  67 + <router-link :to="`/${currentCompany.id}/files`" class="nav-link" :class="{ active: $route.params.tab === 'files' }">
68 68 📁 Files
69   - </a>
70   - <a :href="`/${currentCompany.id}/messages`" target="_blank" class="nav-link" :class="{ active: $route.params.tab === 'messages' }">
  69 + </router-link>
  70 + <router-link :to="`/${currentCompany.id}/messages`" class="nav-link" :class="{ active: $route.params.tab === 'messages' }">
71 71 💬 Messages
72   - </a>
  72 + </router-link>
73 73 </template>
74 74 </div>
75 75  
... ...