You've already forked agentic-coding-workflow
feat(web): register pm routes and nav entry
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user