Files
wecom_it_smart_desk/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.2.md
T
Simon 44e77dcb0e chore(docs): docs/ 目录全面重新编号 + 重组
**重构前**(旧编号 02-11):
- docs/02-产品需求/      → 00 产品规划/PRD
- docs/03-技术架构/      → 01-05 子目录散落
- docs/04-原型设计/      → 01-02 产品设计(HTML 原型)
- docs/05-原型设计/      → screens/
- docs/06-测试素材/      → 02-E2E / 03-功能 / 04-版本测试
- docs/07-项目管理/      → 任务说明书/日报/计划
- docs/08-安全审计/      → 审计报告
- docs/09-堡垒运维/      → toolbox / deploy
- docs/10-项目管理/      → 任务说明书(重复)
- docs/11-历史归档/      → deploy-nas-archived

**重构后**(新编号 00-07,语义化):
- docs/00-产品开发流程与文档管理规范.md
- docs/00-版本迭代总览.md
- docs/01-产品文档/      (PRD/原型/认证/会话/AI 服务/坐席/集成)
- docs/02-技术文档/      (技术方案/架构图/重构记录/前端改造/实现配置)
- docs/03-测试文档/      (E2E/功能用例/版本报告/缺陷单)
- docs/04-运维文档/      (部署运维/运维指南)
- docs/05-运营文档/      (品牌推广/用户手册)
- docs/06-安全审计/      (审计报告)
- docs/07-项目管理/      (任务说明书/日报/计划/看板)

**净收益**:
- 目录编号与产品文档管理规范对齐(按文档阶段 01-07 编号)
- 消除 02-产品需求 与 10-项目管理 的编号重叠
- 子目录按文档类型分组(如 01-产品文档/00-产品规划、01-产品文档/01-认证与登录)
- 把运维/安全/项目管理从 0X 散落改为 04/06/07

合计 494 文件 + 78495 行 / - 14076 行
2026-08-03 18:46:55 +08:00

9.0 KiB
Raw Blame History

任务说明书 - 员工结束会话 v1.2(按钮 6 态 + 引导语 + 顶部按钮 AI 场景互斥)

版本: v1.0 | 日期: 2026-07-30 关联需求: REQ-会话-001 v1.2 状态: 待开始


📋 基本信息

项目 内容
任务名称 员工结束会话 v1.2 改造
任务ID REQ-会话-001-v1.2
优先级 🟠P1
类型 功能开发
状态 待开始
负责人 宋献
创建日期 2026-07-30
计划完成日期 2026-08-04M1+M7 共 0.5+0.5 = 1 天评审/上线工时)
关联任务 任务说明书 #128(v1.0 结束会话功能调整,2026-07-27 已完成)

📥 输入项来源

产品需求

来源文档 相关章节 说明
docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md §3.2 §3.5 §3.7 §3.8 v1.2 设计哲学 + 6 态按钮 + 4 种引导语 + 顶部按钮 AI 场景互斥规则

技术方案

来源文档 相关章节 说明
docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.md §3.3 §3.4 §3.7 §3.8 store 新字段 + InputBar/ChatPanel 改动 + 24h 边界 + 双入口防抖

原型设计

来源文档 页面 说明
docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html §② §③ §④ 6 态按钮 + 4 种引导语 + 顶部按钮可见性 mockup

需了解的现有代码(v1.2 实施时必读)

模块/文件 说明 需了解的内容
src/frontend-h5/src/components/chat/InputBar.vue:194-243 人工坐席按钮 5 态逻辑 v1.2 改造为 6 态(移除 hidden / 恢复 end / 新增 reopen+ 4 种引导语
src/frontend-h5/src/components/chat/ChatPanel.vue:21-28 标题栏坐席状态徽章 沿用,v1.2 不变
src/frontend-h5/src/components/chat/ChatPanel.vue:59-65 顶部退出按钮 v1.2 加 v-show="store.showHeaderExitBtn" + tooltip 文案
src/frontend-h5/src/stores/conversation.ts:1800-1814 "会话已关闭"消息文本 沿用为视觉样式参照
src/frontend-h5/src/api/closing.ts:119 reopenConversation API v1.2 直接复用
src/frontend-h5/src/composables/useH5WebSocket.ts:460 queue_position_update WS 事件 沿用为排队胶囊数据源

历史背景

  • 2026-07-12InputBar.vue 重构,按钮改为垂直堆叠
  • 2026-07-25BUG-用户-001 修复 — 坐席离线时按钮禁用
  • 2026-07-27BUG-用户-002 修复 — InputBar 移除 "结束咨询" 按钮态,统一由标题栏 chat-panel__exit-btn 触发(v1.0 PRD 与代码不一致起点)
  • 2026-07-30BUG-用户-003 修复 — ChatPanel.vue:403 handleExitWithEvaluation 三件套(防抖 + 同步 store + try/finally 重置),v1.2 必须沿用

📤 输出成果要求

交付物清单

# 交付物 类型 说明
1 stores/conversation.ts 新增 3 字段 代码 showHeaderExitBtn + canReopen + reopenCurrentConversation action
2 InputBar.vue 6 态扩展 代码 移除 hidden / 恢复 end / 新增 reopen + 4 种引导语渲染
3 ChatPanel.vue 顶部按钮 v-show 代码 绑定 store.showHeaderExitBtn + tooltip/弹窗文案修订
4 InputBar.vue 新增样式 代码 .call-agent-btn--end(红色填充)+ .call-agent-btn--reopen(蓝色填充)
5 单元测试 测试 状态机 9 场景 + showHeaderExitBtn 9 场景 + canReopen 边界

代码要求

  • 遵循项目代码规范(参考现有 InputBar.vue / ChatPanel.vue 注释风格)
  • 所有新增代码通过 ESLint 检查
  • 单元测试覆盖率 ≥ 80%(参考 PRD §五 验收指标 AC1-AC11
  • 重点:沿用 BUG-用户-003 修复样本,end 态按钮的 async handler 必须三件套(防抖 + 同步 store + try/finally 重置)
  • catch 兜底优先显示后端真实 message

文档要求

  • 本任务说明书状态在每个阶段完成后更新(待开始 → 进行中 → 已完成)
  • 实施完成后追加到 00-文档规范化整改记录.md(整改 #7

🔧 验证方式

功能验证

验证项 验证方法 预期结果
6 态按钮正确切换 手动遍历 9 种场景(无会话/AI<3轮/AI≥3轮/紧急/离线/排队/服务中/24h内关闭/>24h关闭) 每种场景显示对应按钮态和引导语
顶部按钮仅 AI 场景显示 切换 waiting/serving 状态 顶部按钮自动隐藏,操作按钮 end 态接管
重新打开按钮 会话关闭后立即点击 触发 reopen API,按钮态切回 active
24h 边界 修改 resolved_at 时间戳或后端 mock 24h 内显示 reopen>24h 显示 disabled + "已过期"引导语
双入口互斥 服务中状态点击顶部按钮(应隐藏) 无响应,提示无此元素
引导语与按钮态同步 快速切换场景 引导语文本与按钮态 100% 同步,无错位

安全验证

验证项 验证方法 预期结果
reopen 24h 绕过 前端改时间戳 后端 reopen API 拒绝,返回错误码
end 态并发点击 服务中状态快速双击"结束咨询" 仅触发一次 closeisExiting 防抖)
WS 断连场景 关闭 WS 连接 按钮态回退合理(不卡死)

性能验证

验证项 验证方法 预期结果
状态切换响应 切换 waiting → serving < 100ms
引导语渲染 切到 disabled 态 < 50ms 渲染完成

完成标准

验收条件

  • M1PRD v1.2 评审通过
  • M2:store 新字段实现 + 单元测试通过
  • M3InputBar 6 态扩展 + 引导语 + end/reopen 样式实现
  • M4ChatPanel 顶部按钮 v-show + 文案修订
  • M5:重新打开按钮 + 24h 边界逻辑
  • M6:联调测试 + 视觉回归通过
  • M7:上线后监控无异常(按钮点击转化率与历史持平,无 1001 错误)

产出确认

  • 代码已提交并通过 Code Review
  • 单元测试新增/修复完成(覆盖 9 场景)
  • 集成测试通过
  • 部署验证通过
  • 文档更新已完成(本任务说明书 + 整改记录 #7)

📊 工作分解(7 阶段实施计划)

来源:PRD v1.2 §七 里程碑,技术方案 v1.2 §八 实施计划

阶段 任务 预估工时 状态
M1 PRD v1.2 评审 0.5 天 待开始
M2 store 新增 showHeaderExitBtn + canReopen + reopenCurrentConversation + 单元测试 1h 待开始
M3 InputBar 改造:hidden → disabled + 6 态扩展 + 4 种引导语 + end/reopen 样式 1 天 待开始
M4 ChatPanel 改造:顶部按钮 v-show 绑定 showHeaderExitBtn + 文案修订 + end-conversation 处理 0.5 天 待开始
M5 重新打开按钮 + 24h 边界逻辑 0.5 天 待开始
M6 联调测试 + 视觉回归 1 天 待开始
M7 上线 0.5 天 待开始
合计 4.5 天

📞 依赖与阻塞

前置依赖

依赖任务 依赖说明 状态
任务说明书 #128 v1.0 结束会话功能调整(已完成 2026-07-27) 已完成
任务说明书-集成-002 IA 重构(不冲突,但需协调 H5 端资源) 🟡 进行中
后端 reopen API 确认 conv.resolved_at 字段返回 待确认
后端 close reason 区分 顶部退出 vs 操作按钮 end 是否需要不同 reason 待确认

阻塞因素

阻塞项 影响范围 解决方案
无明显阻塞 - -

📈 变更记录

日期 变更内容 变更人 说明
2026-07-30 创建任务说明书 v1.0 Duckula (AI) 覆盖 PRD v1.2 + 技术方案 v1.2 的 7 阶段实施计划;按 product-doc-standard 规范要求补建任务说明书

📎 附件