You've already forked agentic-coding-workflow
style(web): lint --fix sweep + disable no-undef for ts/vue (DOM globals)
This commit is contained in:
@@ -1,13 +1,21 @@
|
||||
<template>
|
||||
<AppShell>
|
||||
<NSpin :show="loading">
|
||||
<div v-if="data" class="space-y-6">
|
||||
<div
|
||||
v-if="data"
|
||||
class="space-y-6"
|
||||
>
|
||||
<!-- Header -->
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex items-center gap-3">
|
||||
<span class="text-gray-400 font-mono text-sm">#{{ data.requirement.number }}</span>
|
||||
<h1 class="text-2xl font-semibold">{{ data.requirement.title }}</h1>
|
||||
<NTag :type="data.requirement.status === 'open' ? 'success' : 'default'" size="small">
|
||||
<h1 class="text-2xl font-semibold">
|
||||
{{ data.requirement.title }}
|
||||
</h1>
|
||||
<NTag
|
||||
:type="data.requirement.status === 'open' ? 'success' : 'default'"
|
||||
size="small"
|
||||
>
|
||||
{{ data.requirement.status === 'open' ? '开放' : '关闭' }}
|
||||
</NTag>
|
||||
</div>
|
||||
@@ -30,13 +38,21 @@
|
||||
>
|
||||
重新开放
|
||||
</NButton>
|
||||
<NButton size="small" @click="router.back()">返回</NButton>
|
||||
<NButton
|
||||
size="small"
|
||||
@click="router.back()"
|
||||
>
|
||||
返回
|
||||
</NButton>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Phase flow bar -->
|
||||
<div class="flex items-center gap-1">
|
||||
<template v-for="(phase, idx) in PHASES" :key="phase">
|
||||
<template
|
||||
v-for="(phase, idx) in PHASES"
|
||||
:key="phase"
|
||||
>
|
||||
<NButton
|
||||
:type="phase === data.requirement.phase ? 'primary' : 'default'"
|
||||
:secondary="phase !== data.requirement.phase"
|
||||
@@ -46,22 +62,39 @@
|
||||
>
|
||||
{{ PHASE_LABELS[phase] }}
|
||||
</NButton>
|
||||
<span v-if="idx < PHASES.length - 1" class="text-gray-300 text-xs">›</span>
|
||||
<span
|
||||
v-if="idx < PHASES.length - 1"
|
||||
class="text-gray-300 text-xs"
|
||||
>›</span>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<!-- Description -->
|
||||
<NCard title="描述">
|
||||
<p v-if="data.requirement.description" class="text-gray-700 whitespace-pre-wrap">
|
||||
<p
|
||||
v-if="data.requirement.description"
|
||||
class="text-gray-700 whitespace-pre-wrap"
|
||||
>
|
||||
{{ data.requirement.description }}
|
||||
</p>
|
||||
<p v-else class="text-gray-400 text-sm">暂无描述</p>
|
||||
<p
|
||||
v-else
|
||||
class="text-gray-400 text-sm"
|
||||
>
|
||||
暂无描述
|
||||
</p>
|
||||
</NCard>
|
||||
|
||||
<!-- Linked Issues -->
|
||||
<NCard title="关联 Issue">
|
||||
<NList v-if="data.issues.length > 0" :show-divider="false">
|
||||
<NListItem v-for="issue in data.issues" :key="issue.id">
|
||||
<NList
|
||||
v-if="data.issues.length > 0"
|
||||
:show-divider="false"
|
||||
>
|
||||
<NListItem
|
||||
v-for="issue in data.issues"
|
||||
:key="issue.id"
|
||||
>
|
||||
<NThing>
|
||||
<template #header>
|
||||
<span class="font-mono text-xs text-gray-400 mr-2">#{{ issue.number }}</span>
|
||||
@@ -78,11 +111,17 @@
|
||||
</NThing>
|
||||
</NListItem>
|
||||
</NList>
|
||||
<NEmpty v-else description="暂无关联 Issue" />
|
||||
<NEmpty
|
||||
v-else
|
||||
description="暂无关联 Issue"
|
||||
/>
|
||||
</NCard>
|
||||
</div>
|
||||
|
||||
<div v-else-if="!loading" class="text-gray-400 text-sm py-8 text-center">
|
||||
<div
|
||||
v-else-if="!loading"
|
||||
class="text-gray-400 text-sm py-8 text-center"
|
||||
>
|
||||
需求不存在或无权访问。
|
||||
</div>
|
||||
</NSpin>
|
||||
|
||||
Reference in New Issue
Block a user