From 554ab520d17f9a3edf38a27214f09c17b71b6337 Mon Sep 17 00:00:00 2001 From: Script Generator Date: Thu, 2 Jul 2026 19:50:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E9=9C=80=E6=B1=82=E6=B1=A0):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=88=97=E8=A1=A8=E6=8D=A2=E8=A1=8C=E5=92=8C=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=A7=A3=E7=BB=91=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/app/requirements/page.tsx | 61 ++++++++++++++---- apps/web/app/versions/[id]/page.tsx | 13 +++- apps/web/app/versions/page.tsx | 3 +- apps/web/lib/requirement-table-layout.test.ts | 22 +++++++ apps/web/lib/requirement-table-layout.ts | 20 ++++++ apps/web/lib/requirement-version-link.test.ts | 63 +++++++++++++++++++ apps/web/lib/requirement-version-link.ts | 29 +++++++++ 7 files changed, 194 insertions(+), 17 deletions(-) create mode 100644 apps/web/lib/requirement-table-layout.test.ts create mode 100644 apps/web/lib/requirement-table-layout.ts create mode 100644 apps/web/lib/requirement-version-link.test.ts create mode 100644 apps/web/lib/requirement-version-link.ts diff --git a/apps/web/app/requirements/page.tsx b/apps/web/app/requirements/page.tsx index aad5a95..ef369aa 100644 --- a/apps/web/app/requirements/page.tsx +++ b/apps/web/app/requirements/page.tsx @@ -13,6 +13,13 @@ import type { Requirement, RequirementStatus, SourceType } from '@/lib/requireme import { deriveReqDevStatus, canEditRequirement, canCloseRequirement, REQ_DEV_STATUS_LABEL, REQ_DEV_STATUS_COLOR } from '@/lib/linkage-engine'; import { buildRequirementScopeTree, filterRequirementScopeTreeByKeyword, filterRequirementsByScope, type RequirementProductScopeNode, type RequirementScopeSelection } from '@/lib/requirement-scope'; import { sortRequirementsByCreatedAt, type RequirementDateSort } from '@/lib/requirement-sort'; +import { + REQUIREMENT_TABLE_BADGE_CLASS, + REQUIREMENT_TABLE_NOWRAP_CELL_CLASS, + REQUIREMENT_TABLE_SMALL_BADGE_CLASS, + getRequirementTableTextClass, +} from '@/lib/requirement-table-layout'; +import { getRequirementVersionSelectionPatch } from '@/lib/requirement-version-link'; import { Pagination, usePagination } from '@/components/Pagination'; import { RequirementModal } from '@/components/requirement/RequirementModal'; import { RequirementDetail } from '@/components/requirement/RequirementDetail'; @@ -488,29 +495,50 @@ function RequirementsPageContent() { {/* 需求来源 */} - {SOURCE_TYPE_LABEL[req.sourceType]}: {req.sourceTarget} + {(() => { + const sourceText = `${SOURCE_TYPE_LABEL[req.sourceType]}: ${req.sourceTarget}`; + return ( + + {sourceText} + + ); + })()} {/* 所属项目 */} - {allProjects.find((p) => p.id === req.projectId)?.name ?? '-'} + {(() => { + const projectName = allProjects.find((p) => p.id === req.projectId)?.name ?? '-'; + return ( + + {projectName} + + ); + })()} {/* 需求类型 */} - {types.find((t) => t.id === req.typeId)?.name ?? '-'} + {(() => { + const typeName = types.find((t) => t.id === req.typeId)?.name ?? '-'; + return ( + + {typeName} + + ); + })()} {/* 状态 */} - - + + {REQ_STATUS_LABEL[req.status]} {/* 优先级 */} - - + + {req.priority} @@ -521,11 +549,11 @@ function RequirementsPageContent() { {/* 开发状态 */} - + {(() => { const devStatus = deriveReqDevStatus(req.id, devTasks); return ( - + {REQ_DEV_STATUS_LABEL[devStatus]} ); @@ -534,17 +562,19 @@ function RequirementsPageContent() { {/* 录入人员 */} - {req.creator} + + {req.creator} + {/* 录入日期 */} - + {new Date(req.createdAt).toISOString().slice(0, 10)} {/* 操作 */} e.stopPropagation()}> -
+
{/* 编辑:待评审/已采纳/已规划,且开发中不可编辑 */} {(['pending_review', 'adopted', 'planned'] as const).includes(req.status as any) && canEditRequirement(req.id, devTasks) && (