Files
issue-hub-ai/docs/design/implementation-blueprint.md
2026-07-07 07:27:13 +08:00

262 lines
8.1 KiB
Markdown

# Issue Hub AI 一比一复刻实现蓝图
本文档承接 `docs/design/images2/` 下的高保真设计图清单,用于约束后续前端复刻和功能实现的代码结构。
初始代码现状:
- `src/App.tsx` 同时承载启动、状态、数据操作、页面、组件、工具函数,后续必须拆分。
- `src/styles.css` 为单一全局样式文件,后续需要按设计系统、布局、页面拆分。
- 现有业务能力以个人问题中枢为主,中心调度、部门队列、升级、知识复盘等功能需要扩展数据模型。
当前实现状态:
- 应用入口已拆到 `src/app/App.tsx``src/app/appState.ts``src/app/appWorkflows.ts``src/app/routes.ts`
- 领域逻辑已进入 `src/domain/`,本地仓储、同步、设置和密钥边界进入 `src/data/`
- 调度端和客户端页面已进入 `src/features/dispatcher/``src/features/client/`,页面专属组件与 CSS 按业务面拆分。
- 共享样式已收口到 `src/shared/styles/`,原未引用的 `src/styles.css` 已删除,避免保留单一大样式文件误导后续维护。
## 1. 复刻目标
先完成设计图定稿,再按设计图一比一复刻以下页面:
### 调度中心
- 中心调度台。
- 问题池。
- 部门队列。
- 提醒升级。
- 知识复盘。
- 规则配置。
- 管理看板。
### 客户端
- 客户端首页 / 我的待办。
- 提交问题。
- 处理人问题详情。
- 提交人进度追踪。
- 移动端提交 / 补充。
## 2. 建议目录结构
```text
src/
app/
App.tsx
AppShell.tsx
routes.ts
useAppBootstrap.ts
domain/
issues/
issueTypes.ts
issueStatus.ts
issueSelectors.ts
issueActions.ts
dispatch/
dispatchTypes.ts
dispatchRules.ts
dispatchSelectors.ts
departments/
departmentTypes.ts
workload.ts
ai/
aiTypes.ts
aiTriage.ts
aiRecommendations.ts
notifications/
escalationTypes.ts
escalationRules.ts
data/
repository.ts
seedData.ts
sync/
syncClient.ts
syncTypes.ts
features/
dispatcher/
CenterDashboardPage.tsx
IssuePoolPage.tsx
DepartmentQueuePage.tsx
EscalationCenterPage.tsx
KnowledgeReviewPage.tsx
RuleConfigPage.tsx
AnalyticsBoardPage.tsx
components/
DepartmentWorkloadPanel.tsx
center/
DispatchQueueTable.tsx
AiDispatchInspector.tsx
centerDashboard.css
escalation/
escalationCenter.css
knowledge/
KnowledgeMetricsStrip.tsx
KnowledgeReviewTable.tsx
KnowledgeSummaryPanel.tsx
knowledgeReview.css
rules/
RuleBuilder.tsx
RuleTypeNav.tsx
AiStrategyPanel.tsx
RuleAuditPreview.tsx
ruleConfig.css
analytics/
AnalyticsMetricCard.tsx
AnalyticsTrendChart.tsx
StatusDistributionDonut.tsx
RankingPanel.tsx
EfficiencyPanel.tsx
SlaRiskTable.tsx
AnalyticsSidePanel.tsx
analyticsBoard.css
client/
ClientWorkbenchPage.tsx
SubmitIssuePage.tsx
HandlerIssueDetailPage.tsx
SubmitterTrackingPage.tsx
MobileSubmitPreview.tsx
components/
workbench/
submit/
SubmitIssueForm.tsx
SubmitAiPrecheckPanel.tsx
SubmitRichTextEditor.tsx
ImpactScopePicker.tsx
SeverityPicker.tsx
AttachmentDropzone.tsx
submitIssue.css
handler/
tracking/
mobile/
settings/
SettingsPage.tsx
shared/
components/
Button.tsx
IconButton.tsx
Badge.tsx
MetricTile.tsx
DataTable.tsx
Timeline.tsx
SegmentedControl.tsx
EmptyState.tsx
layout/
Sidebar.tsx
TopBar.tsx
SplitPane.tsx
InspectorPanel.tsx
hooks/
useDisclosure.ts
usePersistedState.ts
styles/
tokens.css
base.css
layout.css
components.css
```
## 3. 状态与数据分层
### 3.1 领域数据
需要从现有 `Issue` 扩展为中心调度模型:
- `Issue`:问题主数据。
- `IssueTimelineEvent`:状态、派单、评论、提醒、验收时间线。
- `Assignment`:派单和转派记录。
- `Department`:部门与负责人。
- `User`:用户、角色、技能标签、部门归属。
- `AiTriageResult`:AI 摘要、分类、优先级、派单建议、置信度。
- `EscalationEvent`:提醒、催办、升级记录。
- `KnowledgeItem`:沉淀后的知识条目。
- `DispatchRule`:分类、SLA、派单、自动执行规则。
### 3.2 UI 状态
页面级 UI 状态放在页面组件内:
- 当前选中问题。
- 当前筛选条件。
- 当前 tab。
- 弹窗或抽屉开关。
- 临时表单草稿。
跨页面状态通过轻量应用状态提供:
- 当前角色视角:中心调度员、部门负责人、处理人、提交人。
- 当前登录用户。
- 通知数量。
- 同步状态。
## 4. 页面功能矩阵
| 页面 | 必备功能 | 主要组件 |
| --- | --- | --- |
| 中心调度台 | 查看待派发、采纳 AI、退回补充、批量派发 | `DispatchQueueTable`, `AiDispatchInspector`, `MetricTile` |
| 问题池 | 全局筛选、批量处理、合并相似问题 | `DataTable`, `IssueFilterBar`, `AiInsightPanel` |
| 部门队列 | 查看部门负载、分派处理人、跨部门转派 | `DepartmentWorkloadPanel`, `DispatchQueueTable` |
| 提醒升级 | 查看超时、催办、升级负责人 | `Timeline`, `MetricTile`, `escalationCenter.css` |
| 知识复盘 | 查看已关闭问题、生成知识条目 | `KnowledgeReviewTable`, `KnowledgeSummaryPanel`, `KnowledgeMetricsStrip` |
| 规则配置 | 配置 SLA、派单、提醒、AI 自动执行 | `RuleBuilder`, `RuleTypeNav`, `AiStrategyPanel`, `RuleAuditPreview` |
| 管理看板 | 查看指标、趋势、部门效率 | `AnalyticsMetricCard`, `AnalyticsTrendChart`, `StatusDistributionDonut`, `AnalyticsSidePanel` |
| 客户端首页 | 我的待办、待补充、协作请求 | `WorkbenchMetrics`, `WorkbenchIssueTable`, `WorkbenchDetailPanel` |
| 提交问题 | 表单提交、AI 预检查、附件上传 | `SubmitIssueForm`, `SubmitAiPrecheckPanel` |
| 处理人详情 | 接单、协作、转派、完成处理 | `HandlerIssueSummaryAside`, `HandlerTimelineWorkspace`, `HandlerActionAside` |
| 提交人追踪 | 查看进度、补充、催办、验收 | `SubmittedIssueList`, `SubmitterProgressMain`, `SubmitterIssueAside` |
| 移动端提交 | 移动表单、补充信息、附件 | `MobileSubmitPhone`, `MobileSupplementPhone`, `MobileFeatureRail` |
## 5. 交互状态要求
每个核心操作至少要有以下状态:
- 默认。
- hover。
- focus。
- disabled。
- loading。
- 成功反馈。
- 失败反馈。
关键业务操作必须写入时间线:
- AI 分析完成。
- 中心派发。
- 部门分派。
- 接单。
- 转派。
- 请求协作。
- 催办。
- 升级。
- 完成处理。
- 验收通过或返工。
## 6. 样式拆分原则
- `tokens.css`:颜色、间距、圆角、阴影、字体尺度。
- `base.css`:全局 reset、正文、滚动条、输入基础样式。
- `layout.css`:应用外壳、侧边栏、主工作区、右侧检查器。
- `components.css`:按钮、徽标、表格、时间线、指标块等通用组件。
- 页面特殊样式只放在对应 feature 的局部 CSS 或模块文件中。
## 7. MVP 功能落地顺序
1. 先搭建新的 `AppShell`、路由、设计 token 和共享组件。
2. 复刻中心调度台,打通问题选择、AI 推荐、采纳派发、退回补充。
3. 复刻客户端首页和处理人详情,打通接单、转派、请求协作、完成处理。
4. 复刻提交问题和提交人追踪,打通提交、补充、验收。
5. 复刻部门队列和提醒升级,打通部门分派和 SLA 升级。
6. 复刻知识复盘、规则配置和管理看板。
7. 把 mock 数据替换为仓储层可持久化数据。
8. 增加 focused tests:状态流转、派单规则、SLA 提醒、AI 建议采纳。
## 8. 验证目标
每个阶段至少运行:
```pwsh
npm test
npm run build
```
界面复刻阶段需要额外保存截图,用于和 images2 设计图进行人工对比。