refactor: 压平数据模型 — 版本为执行主线,需求降为语义标签
核心改动: - TestCase 主归属 versionId,requirementId 改为可选语义标签 - Bug 新增 versionId(直接挂版本)+ requirementId(可选追溯) - 新增 calcVersionExecutionStatus() 版本执行态推导函数 规则:DevTask全部提测→已提测,TestCase全部通过+Bug全关→可发布 - 概览页展示推导出的执行态标签 - BugTab 改为直接 versionId 查询(不再走 testCase→req 链路) - 统计卡片"参与人员"替换为"未关闭Bug" 心智模型: 版本(执行线)→ DevTask/TestCase/Bug 需求(语义线)→ 解释为什么做,不驱动流程 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -26,15 +26,10 @@ export function BugTab({ versionId, requirementIds }: Props) {
|
||||
useEffect(() => { fetchBugs(); }, [fetchBugs]);
|
||||
useEffect(() => { fetchTestCases(); }, [fetchTestCases]);
|
||||
|
||||
// 该版本的所有 Bug(通过测试用例 → 需求 关联)
|
||||
const versionCases = useMemo(
|
||||
() => testCases.filter((c) => requirementIds.includes(c.requirementId)),
|
||||
[testCases, requirementIds],
|
||||
);
|
||||
const versionCaseIds = useMemo(() => new Set(versionCases.map((c) => c.id)), [versionCases]);
|
||||
// 该版本的所有 Bug(直接通过 versionId 查询)
|
||||
const versionBugs = useMemo(
|
||||
() => bugs.filter((b) => versionCaseIds.has(b.testCaseId)),
|
||||
[bugs, versionCaseIds],
|
||||
() => bugs.filter((b) => b.versionId === versionId),
|
||||
[bugs, versionId],
|
||||
);
|
||||
|
||||
// 统计
|
||||
|
||||
Reference in New Issue
Block a user