# 任务说明书 - 员工结束会话功能 > **版本**: 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`