262 lines
8.1 KiB
Markdown
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 设计图进行人工对比。
|