Files
wecom_it_smart_desk/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001.md
T

164 lines
5.5 KiB
Markdown
Raw Normal View History

# 任务说明书 - 员工结束会话功能
> **版本**: v1.0 | **日期**: 2026-07-24 | **任务ID**: #REQ-会话-001
---
## 📋 基本信息
| 项目 | 内容 |
|------|------|
| **任务名称** | 员工结束会话功能 |
| **任务ID** | #REQ-会话-001 |
| **优先级** | 🟠P1 |
| **类型** | 功能开发 |
| **状态** | 开发完成,待测试 |
| **负责人** | 宋献 |
| **创建日期** | 2026-07-24 |
| **计划完成日期** | 2026-07-24 |
| **测试人员** | 宋献 |
| **测试依据** | PRD、技术方案、原型图、验收标准 |
---
## 📥 输入项来源
### 产品需求(PRD
| 来源文档 | 相关章节 | 说明 |
|----------|----------|------|
| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md` | §1.1-1.2 | 需求背景、目标 |
| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md` | §3.1 | 按钮状态机设计 |
| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md` | §3.2-3.3 | 结束流程、评价组件 |
| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md` | §五 | 验收指标 |
### 技术方案
| 来源文档 | 相关章节 | 说明 |
|----------|----------|------|
| `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md` | §3.1-3.3 | 状态机设计、组件改动 |
| `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md` | §3.4 | 弹窗设计 |
| `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md` | §六 | 风险与依赖 |
### 原型设计
| 来源文档 | 页面 | 说明 |
|----------|------|------|
| `01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.archive.html` | 全部 | 按钮状态切换、评价弹窗 |
### 需了解的现有代码(历史现状)
| 模块/文件 | 说明 | 需了解的内容 |
|-----------|------|-------------|
| `frontend-h5/src/components/chat/InputBar.vue` | 输入栏组件 | 现有按钮状态定义、样式、事件触发方式 |
| `frontend-h5/src/components/chat/CallAgentModal.vue` | 呼叫坐席弹窗 | 复用现有逻辑 |
| `frontend-h5/src/components/chat/ResolveFeedback.vue` | 满意度评价组件 | 复用评价逻辑、事件emit方式 |
| `frontend-h5/src/views/ChatPanel.vue` | 会话主面板 | 状态管理、事件处理 |
---
## 📤 输出成果要求
### 交付物清单
| # | 交付物 | 类型 | 说明 |
|---|--------|------|------|
| 1 | InputBar.vue | 代码 | 新增 waiting/connected 状态及样式 |
| 2 | ChatPanel.vue | 代码 | 新增事件处理(取消排队、结束会话) |
| 3 | 会话状态管理 | 代码 | 状态流转逻辑 |
### 代码要求
- 遵循项目代码规范
- 新增状态需与现有状态(hidden/disabled/active)兼容
- 样式复用现有按钮样式体系
### 文档要求
- 无需新增文档
---
## 🔧 验证方式
### 功能验证
| 验证项 | 验证方法 | 预期结果 |
|--------|----------|-----------|
| 人工咨询按钮 | 手动点击 | 显示"人工咨询",点击触发呼叫 |
| 排队等待按钮 | 模拟排队状态 | 显示"排队等待",点击弹出确认框 |
| 结束咨询按钮 | 模拟坐席接入 | 显示"结束咨询",点击弹出评价 |
| 评价提交 | 提交评价 | 评价成功提交,窗口自动关闭 |
| 新会话 | 重新进入 | 显示全新会话(无历史消息) |
### 安全验证
| 验证项 | 验证方法 | 预期结果 |
|--------|----------|-----------|
| 权限控制 | 未登录状态 | 无法结束会话 |
### 性能验证
| 验证项 | 验证方法 | 预期结果 |
|--------|----------|-----------|
| 响应时间 | 提交评价API | < 200ms |
---
## ✅ 完成标准
### 验收条件
- [ ] 代码合入主干分支
- [ ] 功能测试通过(按钮状态切换正确)
- [ ] 评价提交流程正常
- [ ] 窗口关闭功能正常
### 产出确认
- [x] InputBar.vue 代码已完成
- [x] ChatPanel.vue 代码已完成
- [x] stores/conversation.ts 方法已添加
- [x] api/conversation.ts API 已添加
- [ ] 本地构建验证通过
- [ ] 功能测试通过
---
## 📊 工作分解
### 子任务
| 子任务 | 负责人 | 预估工时 | 状态 |
|--------|--------|----------|------|
| InputBar.vue 状态扩展 | [待定] | 2h | 待开始 |
| ChatPanel.vue 事件对接 | [待定] | 1h | 待开始 |
| 窗口关闭逻辑 | [待定] | 1h | 待开始 |
| 样式调整 | [待定] | 0.5h | 待开始 |
| 联调测试 | [待定] | 1.5h | 待开始 |
**预估总工时:6h**
---
## 📞 依赖与阻塞
### 前置依赖
| 依赖任务 | 依赖说明 | 状态 |
|----------|----------|------|
| 后端API可用 | `/h5/conversations/current/close` | 待确认 |
| 评价组件可用 | ResolveFeedback.vue | 已确认 |
### 阻塞因素
| 阻塞项 | 影响范围 | 解决方案 |
|--------|----------|---------|
| WebSocket推送 | 排队状态、坐席接入状态同步 | 增加轮询兜底 |
---
## 📈 变更记录
| 日期 | 变更内容 | 变更人 | 说明 |
|------|----------|--------|------|
| 2026-07-24 | 创建任务 | 宋献 | 初始版本 |
| 2026-07-24 | 完成代码开发 | 宋献 | 实现四态按钮(disabled/active/waiting/serving |
---
## 📎 附件
- PRD`01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md`
- 技术方案:`02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md`
- 原型图:`01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.archive.html`