Commit a6c3f7470789ebe502136753e8edd81c3e267da9
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 | ... | ... |