feat(web): register pm routes and nav entry

This commit is contained in:
2026-05-01 10:53:02 +08:00
parent 0bb23c8d08
commit ba39fac142
2 changed files with 69 additions and 4 deletions
+33 -4
View File
@@ -1,9 +1,38 @@
<template>
<header class="border-b border-gray-200 dark:border-gray-700 px-4 py-2 flex items-center gap-4">
<h1 class="text-lg font-semibold flex-1">Agent Coding Workflow</h1>
<h1 class="text-lg font-semibold">
Agent Coding Workflow
</h1>
<nav
v-if="auth.isAuthenticated"
class="flex items-center gap-3 flex-1"
>
<RouterLink
:to="{ name: 'home' }"
class="text-sm hover:underline"
>
首页
</RouterLink>
<RouterLink
:to="{ name: 'project-list' }"
class="text-sm hover:underline"
>
项目
</RouterLink>
</nav>
<span
v-else
class="flex-1"
/>
<NotificationBell v-if="auth.isAuthenticated" />
<NDropdown v-if="auth.user" :options="menu" @select="onSelect">
<NButton text>{{ auth.user.display_name }}</NButton>
<NDropdown
v-if="auth.user"
:options="menu"
@select="onSelect"
>
<NButton text>
{{ auth.user.display_name }}
</NButton>
</NDropdown>
</header>
</template>
@@ -11,7 +40,7 @@
<script setup lang="ts">
import { computed } from 'vue'
import { NButton, NDropdown } from 'naive-ui'
import { useRouter } from 'vue-router'
import { RouterLink, useRouter } from 'vue-router'
import { useAuthStore } from '@/stores/auth'
import { authApi } from '@/api/auth'
import NotificationBell from './NotificationBell.vue'
+36
View File
@@ -14,6 +14,42 @@ const routes: RouteRecordRaw[] = [
component: () => import('@/views/HomeView.vue'),
meta: { requiresAuth: true },
},
{
path: '/projects',
name: 'project-list',
component: () => import('@/views/projects/ProjectListView.vue'),
meta: { requiresAuth: true },
},
{
path: '/p/:slug',
name: 'project-home',
component: () => import('@/views/projects/ProjectHomeView.vue'),
meta: { requiresAuth: true },
},
{
path: '/p/:slug/requirements',
name: 'requirement-list',
component: () => import('@/views/projects/RequirementListView.vue'),
meta: { requiresAuth: true },
},
{
path: '/p/:slug/requirements/:number',
name: 'requirement-detail',
component: () => import('@/views/projects/RequirementDetailView.vue'),
meta: { requiresAuth: true },
},
{
path: '/p/:slug/issues',
name: 'issue-list',
component: () => import('@/views/projects/IssueListView.vue'),
meta: { requiresAuth: true },
},
{
path: '/p/:slug/issues/:number',
name: 'issue-detail',
component: () => import('@/views/projects/IssueDetailView.vue'),
meta: { requiresAuth: true },
},
]
const router = createRouter({