---
id: FEAT-0020
type: feature
status: closed
stage: done
title: 工程视图 (Engineering View)
created_at: '2026-01-11T13:41:44.393544'
opened_at: '2026-01-11T13:41:44.393544'
updated_at: '2026-01-11T17:39:19.300854'
closed_at: '2026-01-11T17:39:19.300889'
parent: EPIC-0002
solution: implemented
dependencies: []
related: []
domains: []
tags:
- '#EPIC-0002'
- '#FEAT-0020'
uid: a02f83
---

## FEAT-0020: 工程视图 (Engineering View)

## 目标 (Objective)

提供全面的、分层的 Issue 视图，按 Epic 聚类，以促进工程管理和跟踪。此视图作为看板概览的更准确和结构化的替代方案。

## 分析: 工程视图的必要性 (Analysis: Necessity of Engineering View)

虽然看板概览提供了以流程为中心的视图 (Todo -> Doing -> Done)，但它缺乏工程规划和审计所需的结构上下文。

- **准确性 (Accuracy)**: 列表视图提供了反映工作层级分解 (Epic -> Feature -> Task) 的“单一事实来源”表示。它允许工程师同时看到“森林” (Epics) 和“树木” (Tasks)，确保在流程流中不会丢失任何任务。
- **结构 (Structure)**: 通过按 Epic 聚类 Issue，我们可以跟踪大型计划的进度，而不仅仅是单个任务。
- **密度 (Density)**: 表格/树状视图允许以紧凑的形式显示更多元数据（ID, 类型, 状态, 创建日期），适合扫描和审计。

## 验收标准 (Acceptance Criteria)

1.  [x] **树状结构显示 (Tree Structure Display)**:
    - Issue 必须按其父 Epic 聚类。
    - 没有父级的 Issue 应该单独分组或列在根级别。
    - 层级结构应在视觉上清晰区分（例如，缩进）。

2.  [x] **排序逻辑 (Sorting Logic)**:
    - 主要排序: 按 Epic (父级) 分组。
    - 次要排序: 在每个组内，按 Issue 类型排序 (例如, Feat, Fix, Chore)。
    - 第三排序: 在相同类型内，按 Issue ID (数字) 排序。

3.  [x] **视觉指示器 (Visual Indicators)**:
    - 使用基于状态的着色（例如，标签或行强调色）快速识别 Issue 状态。

4.  [x] **交互 (Interaction)**:
    - 点击 Issue 行应打开 Issue 详情模态框（与概览共享）。
    - 支持展开/折叠 Epic 组。

## 技术任务 (Technical Tasks)

- [x] 重构 `IssueList` 或 `EngineeringView` 以将扁平 Issue 列表处理为树状结构.
- [x] 实现基于 `parent` 字段的分组逻辑.
- [x] 实现排序逻辑 (Epic -> Type -> ID).
- [x] 更新 UI 以渲染嵌套/分组行.
- [x] 集成 `IssueDetailModal` 用于行点击交互.

## Review Comments

- [x] Self-Review
