diff --git a/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md b/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md similarity index 100% rename from docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md rename to docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md diff --git a/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.1.md b/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.1.archive.md similarity index 100% rename from docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.1.md rename to docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.1.archive.md diff --git a/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md b/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.archive.md similarity index 100% rename from docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md rename to docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.archive.md diff --git a/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md b/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md index 7d664f4..0975619 100644 --- a/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md +++ b/docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md @@ -281,8 +281,8 @@ end > reopen > waiting > active/urgent > disabled | `前端组件-QueueWaiting.vue` | 右栏排队组件(v1.1 标记弃用) | | `API-h5.py` | 关闭会话 API + reopen API | | `stores/conversation.ts` | 新增 `showHeaderExitBtn` 字段 | -| `原型-REQ-会话-001-结束会话流程-v1.2.html` | v1.2 原型图(重绘) | -| `技术方案-REQ-会话-001-员工结束会话-v1.2.md` | v1.2 技术方案(同步更新) | +| `原型-REQ-会话-001-结束会话流程-v1.3.html` | v1.3 原型图(整合区方案 A) | +| `../../02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md` | v1.3 技术方案(同步更新) | --- diff --git a/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.html b/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.archive.html similarity index 100% rename from docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.html rename to docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.archive.html diff --git a/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.1.html b/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.1.archive.html similarity index 100% rename from docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.1.html rename to docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.1.archive.html diff --git a/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html b/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.archive.html similarity index 100% rename from docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html rename to docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.archive.html diff --git a/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html b/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html index 5b64070..7116fac 100644 --- a/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html +++ b/docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html @@ -972,8 +972,8 @@
- 📌 对应 PRD:PRD-REQ-会话-001-员工结束会话-v1.2.md
- 📌 对应技术方案:技术方案-REQ-会话-001-员工结束会话-v1.2.md + 📌 对应 PRD:PRD-REQ-会话-001-员工结束会话-v1.3.md
+ 📌 对应技术方案:技术方案-REQ-会话-001-员工结束会话-v1.3.md
✅ v1.3 方案 A 5 项细节已拍板(2026-07-31),见章节 9.6
diff --git a/docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md b/docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md similarity index 98% rename from docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md rename to docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md index 601b4ab..5c9bc49 100644 --- a/docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md +++ b/docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md @@ -6,11 +6,11 @@ > **状态**: [已实现] > **作者**: Simon > **关联文档**: -> - 技术方案: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md` +> - 技术方案: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md` > - 任务说明书: `07-项目管理/任务说明书/任务说明书-REQ-用户-005-头像菜单退出.md` > - 测试用例: `03-测试文档/03-功能测试用例/TC-用户-005-头像菜单退出.md` -> - 相关 PRD: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md`(InputBar 结束咨询按钮) -> - 参考原型: `01-产品文档/05-用户端H5/原型-REQ-用户-000-H5用户端-v2.0.html` +> - 相关 PRD: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md`(InputBar 结束咨询按钮) +> - 参考原型: `01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.1.html` > - 前端组件: `frontend-h5/src/components/chat/ChatPanel.vue`(头像区域) > - 后端 API: `backend/app/api/auth.py`(logout)、`backend/app/api/h5.py`(close conversation) @@ -117,7 +117,7 @@ | 组件 | Vant `Dialog`(`van-dialog`) | | 标题 | 结束会话 | | 消息 | 退出后会话记录会清空,当前咨询进度将丢失,确定要结束会话吗? | -| 确认按钮 | 「确定退出」(红色/警告色,��出风险) | +| 确认按钮 | 「确定退出」(红色/警告色,退出风险) | | 取消按钮 | 「取消」(灰色/默认色) | ### 5.3 状态处理 diff --git a/docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.0.html b/docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.1.html similarity index 100% rename from docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.0.html rename to docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.1.html diff --git a/docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.md b/docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md similarity index 100% rename from docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.md rename to docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md diff --git a/docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md b/docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md index 5ae20dc..1a043f5 100644 --- a/docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md +++ b/docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md @@ -2,8 +2,8 @@ > **版本**: v1.3 > **日期**: 2026-07-31 -> **关联PRD**: PRD-REQ-会话-001-员工结束会话-v1.3(§十一 v1.3 整合区增量) -> **关联原型**: 原型-REQ-会话-001-结束会话流程-v1.3.html §⑨ +> **关联PRD**: ../01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md(§十一 v1.3 整合区增量) +> **关联原型**: ../01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html §⑨ > **状态**: 已拍板(方案 A 5 项细节 2026-07-31 落地) --- @@ -656,7 +656,7 @@ v1.3 把 v1.2 中分散在 4 个位置(标题栏 / InputBar / 消息流底部 | 🆕 新建 | `src/stores/integrationZone.ts` | 整合区状态管理(可选,整合状态条三态逻辑) | | 🆕 新建 | `src/utils/shiftHours.ts` | 硬编码 `SHIFT_HOURS = '9:00-18:00'` 常量,v1.4 接 `store.shiftHours` 后端班次 | | ✏️ 修改 | `src/components/InputBar.vue` | 移除操作按钮 + 移除引导语容器,工具栏更简洁(😊📎[输入框][发送]) | -| ✏️ 修改 | `src/components/ChatPanel.vue` | 移除标题��坐席徽章(`.header-mock__status--online/offline` 元素移除)+ 集成 `` 组件 | +| ✏️ 修改 | `src/components/ChatPanel.vue` | 移除标题栏坐席徽章(`.header-mock__status--online/offline` 元素移除)+ 集成 `` 组件 | | ✏️ 修改 | `src/components/QueueCapsule.vue` | 不再独立显示,集成到 IntegrationZone 内部,作为整合区下部"按需胶囊" | ### C. 共享知识(跨文件约定) diff --git a/docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md b/docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md similarity index 99% rename from docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md rename to docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md index 192cb3f..766f9da 100644 --- a/docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md +++ b/docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md @@ -6,8 +6,8 @@ > **状态**: [已实现] > **作者**: Simon > **关联文档**: -> - PRD: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md` -> - 原型: `01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.0.html` +> - PRD: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md` +> - 原型: `01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.1.html` --- diff --git a/docs/03-测试文档/03-功能测试用例/TC-用户-005-头像菜单退出.md b/docs/03-测试文档/03-功能测试用例/TC-用户-005-头像菜单退出.md index de66189..a2d1a6d 100644 --- a/docs/03-测试文档/03-功能测试用例/TC-用户-005-头像菜单退出.md +++ b/docs/03-测试文档/03-功能测试用例/TC-用户-005-头像菜单退出.md @@ -1,8 +1,8 @@ # 测试用例 — 员工端结束会话固定按钮 > **关联需求编号**: REQ-用户-005 -> **关联PRD**: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md` -> **关联技术方案**: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md` +> **关联PRD**: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md` +> **关联技术方案**: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md` > **版本**: v1.1 > **日期**: 2026-07-26 > **作者**: Simon diff --git a/docs/03-测试文档/03-功能测试用例/TC-用户-008-H5结束会话失败回归-v1.0.md b/docs/03-测试文档/03-功能测试用例/TC-用户-008-H5结束会话失败回归-v1.0.md index 2848e10..c24e6e6 100644 --- a/docs/03-测试文档/03-功能测试用例/TC-用户-008-H5结束会话失败回归-v1.0.md +++ b/docs/03-测试文档/03-功能测试用例/TC-用户-008-H5结束会话失败回归-v1.0.md @@ -2,8 +2,8 @@ > **关联需求编号**: REQ-会话-001 > **关联缺陷**: [BUG-用户-003](../../05-缺陷单/BUG-用户-H5结束会话失败-003.md)(已修复 2026-07-30) -> **关联 PRD**: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` -> **关联技术方案**: `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.md` +> **关联 PRD**: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md` +> **关联技术方案**: `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md` > **版本**: v1.0 > **日期**: 2026-07-30 > **作者**: Duckula (AI) diff --git a/docs/03-测试文档/04-版本测试报告/TR-会话-001-结束会话-v1.3.2.md b/docs/03-测试文档/04-版本测试报告/TR-会话-001-结束会话-v1.3.2.md new file mode 100644 index 0000000..e4d8530 --- /dev/null +++ b/docs/03-测试文档/04-版本测试报告/TR-会话-001-结束会话-v1.3.2.md @@ -0,0 +1,141 @@ +# 测试报告 — REQ-会话-001 员工结束会话 v1.3.1 / v1.3.2 端到端 QA + +> **报告版本**: v1.3.2 +> **日期**: 2026-07-27 +> **需求编号**: REQ-会话-001 +> **测试类型**: 单元测试 + 生产构建验证(端到端代码层) +> **关联 PRD**: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md` +> **关联技术方案**: `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md` +> **关联任务说明书**: `07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.3.md` +> **测试结论**: ✅ 通过(单测 75/75 + 生产构建成功);⚠️ 发现 1 项 PRD↔代码分歧待产品拍板 + +--- + +## 一、测试范围 + +| 子版本 | 变更主题 | 验证目标 | +|--------|---------|---------| +| **v1.3.1** | 引导语 BugFix | `computeGuideText` 场景 1(无会话)/ 场景 2(AI<3 轮)返回 `null`,避免与 ChatPanel 顶部"输入问题咨询..."重复引导 | +| **v1.3.2** | InputBar 布局 BugFix | 操作按钮(call-agent-btn)从 InputBar 工具栏移除,整合入 IntegrationZone(状态条+6 态按钮+进度胶囊+引导语) | + +> 关联回归:v1.3 智能推荐 30 分钟抑制白名单(`recommend.test.ts`)一并回归,防止整合区改造波及推荐逻辑。 + +--- + +## 二、测试环境 + +| 项 | 值 | +|----|-----| +| 前端框架 | Vue 3 + TypeScript + Vite | +| 测试框架 | Vitest v4.1.10(node 环境,纯函数测试) | +| 被测代码路径 | `src/frontend-h5/src/components/chat/` | +| 代码基线 | git `feature/message-reliability` @ `f9c25147` | +| 构建产物 | `src/frontend-h5/dist/`(✓ 528 模块,built in 2.53s)| + +--- + +## 三、测试结果汇总 + +| 测试文件 | 用例数 | 结果 | 覆盖子版本 | +|----------|-------|------|-----------| +| `inputBarGuideText.test.ts` | 15 | ✅ 通过 | v1.3.1 | +| `integrationZoneLogic.test.ts` | 44 | ✅ 通过 | v1.3.2 | +| `recommend.test.ts` | 16 | ✅ 通过 | v1.3 回归 | +| **合计** | **75** | **✅ 75 passed (0 failed)** | — | + +``` + RUN v4.1.10 + ✓ src/components/chat/inputBarGuideText.test.ts (15 tests) 5ms + ✓ src/components/chat/integrationZoneLogic.test.ts (44 tests) 8ms + ✓ src/stores/recommend.test.ts (16 tests) 54ms + Test Files 3 passed (3) + Tests 75 passed (75) +``` + +--- + +## 四、关键验证点 + +### 4.1 v1.3.1 — 引导语场景 1/2 返回 null + +源文件:`src/frontend-h5/src/components/chat/inputBarGuideText.ts` → `computeGuideText(ctx)` + +| 场景 | 判定条件 | 期望返回 | 验证 | +|------|---------|---------|------| +| 1 无会话 | `!currentConversation` | `null` | ✅ 避免与 ChatPanel 顶部"输入问题咨询,或点击下方'人工坐席'按钮"重复 | +| 2 AI<3 轮 | `status==='ai_handling' && !canCallAgent` | `null` | ✅ 用户已与 AI 对话,底部"请继续描述"显啰嗦(v1.3.2 优化)| +| 3 坐席离线 | `!agentOnline` | `null` | ✅ 注:v1.3.5 已移除该场景引导语(产品决定不显示离线描述)| +| 4 会话过期 | `status==='resolved' && !canReopen` | `⏰ 上一会话已过期,开始新对话吧` | ✅ 保留 | + +> 设计意图(PRD §3.3):引导语仅 disabled 态显示,且与按钮态计算共享同一 `callAgentState` 调用栈,永不同步错位。 + +### 4.2 v1.3.2 — InputBar 布局 / IntegrationZone 整合 + +源文件:`integrationZoneLogic.ts`(纯逻辑)+ `IntegrationZone.vue`(容器)+ `InputBar.vue`(瘦身) + +| 验证项 | 期望 | 验证 | +|--------|------|------| +| InputBar 工具栏 | 仅 `😊 📎 [输入框] [发送]`,**无操作按钮** | ✅ 操作按钮(call-agent-btn)已迁移至 IntegrationZone | +| IntegrationZone 6 态按钮 | `disabled/active/urgent/waiting/end/reopen` 文案/图标/title 由 `inputBarCallAgentState` 复用 | ✅ 44 用例覆盖全部态 | +| 点击意图映射 | `computeCallAction`:end→endConversation / reopen→reopenConversation / waiting→cancelQueue / active|urgent→callAgent / disabled→none | ✅ | +| 引导语渲染 | `shouldRenderGuideText(text)`:非 null 才渲染;`computeIntegrationGuideClass` 处理 warn 变体 | ✅ | +| 生产构建产物 | `dist/assets/index-Dc6ilDe1.js` 含 `IntegrationZone` / `integration-zone__guide` / `call-agent-btn--reopen` | ✅ grep 命中 | + +--- + +## 五、生产构建验证 + +``` +vite build +✓ 528 modules transformed. +dist/assets/index-Dc6ilDe1.js 370.72 kB │ gzip: 135.16 kB +✓ built in 2.53s +``` + +- **编译**:528 模块全部转换成功,无 TypeScript / 语法错误。 +- **产物**:v1.3.2 `IntegrationZone` 组件已进入主包,确认功能代码真实进入生产 bundle。 +- **备注**:首次构建因 WorkBuddy `safe-delete` 拦截 `dist/assets` 清理失败(已知铁律:assets>50 文件时需先 `mv dist dist_bak`);按铁律改名后二次构建成功。此属工具约束,非代码缺陷。 + +--- + +## 六、发现的缺陷 / 分歧 + +### 🔶 分歧 1:PRD v1.3 ↔ 代码 v1.3.5 状态条(Status Bar)不一致 + +| 视角 | 描述 | +|------|------| +| **PRD v1.3 / 技术方案 v1.3** | §11.4 决策 1「状态条永久显示」、§11.6「前端硬编码 `SHIFT_HOURS='9:00-18:00'`」、`IntegrationZone.vue` 实际仍渲染状态条(import `shiftHours`、`buildStatusBarText`)| +| **代码 v1.3.5 注释** | `integrationZoneLogic.ts:16`「~~复用 utils/shiftHours.ts 状态条文案生成~~(v1.3.5 整体删除)」、`:37`「v1.3.5 状态条已删除」;`inputBarGuideText.ts:63`「用户拍板删除状态条 + 离线描述」| +| **代码内部不一致** | `IntegrationZone.vue` 仍渲染状态条,但 `integrationZoneLogic.ts` 注释称已删除 → 半完成清理 | + +**影响**:产品现状与文档描述偏差;若 v1.3.5 清理为终态,PRD/技术方案 v1.3 的「状态条永久显示」需回退为「v1.3.5 已移除」并补 TR;若状态条保留,则应清理 v1.3.5 注释。 +**处置**:⏸️ 待产品(宋献)拍板后闭环,本次 QA 不擅自改文档。 + +### 🔶 分歧 2(历史遗留,不在本次范围) + +- 其他文档(`04-运维文档/部署运维/00-标准故障排查手册.md`、`任务说明书-REQ-AI-001-打字机效果.md`、`08-历史归档/...`、`BUG-用户-坐席离线未限制呼叫人工-001.md`)仍存 UTF-8 乱码(U+FFFD),非本次 7 文档合并范围,建议后续专项扫描修复。 + +--- + +## 七、部署验证状态 + +| 项 | 状态 | +|----|------| +| 代码提交 | ✅ 已提交 `feature/message-reliability` @ `f9c25147`(含 v1.3.1/v1.3.2 全部改动)| +| 生产构建 | ✅ 本地构建成功(`dist/` 已生成,可发布)| +| **服务端部署** | 🟡 **待执行** — 需走标准发布流程(构建 dist → 上传服务器 `/opt/wecom-it-desk/frontend-h5/dist` → `docker compose up -d nginx`)| + +> 依据项目铁律「宣布修复前必须端到端验证」:本 QA 完成**代码层**端到端(单测 + 构建 + 产物 grep),**服务层**端到端(线上 H5 实测)需在部署后由 agent-browser 或人工在 `https://itsupport.servyou.com.cn/h5/` 验证。 + +--- + +## 八、结论与建议 + +1. ✅ **v1.3.1 / v1.3.2 功能正确性**经 75 条单测 + 生产构建双重验证通过。 +2. ✅ 整合区(IntegrationZone)已正确收纳操作按钮,InputBar 工具栏瘦身符合设计。 +3. ⚠️ **状态条分歧**(分歧 1)为本次唯一遗留项,需产品拍板后补文档/TR,否则 PRD 与线上行为将持续不一致。 +4. 🟡 服务端部署验证建议纳入发布 checklist,部署后补一次线上冒烟。 + +--- + +*报告结束 — Duckula / 2026-07-27* diff --git a/docs/03-测试文档/05-缺陷单/BUG-用户-H5结束会话失败-003.md b/docs/03-测试文档/05-缺陷单/BUG-用户-H5结束会话失败-003.md index 4e1d16f..cc19a6b 100644 --- a/docs/03-测试文档/05-缺陷单/BUG-用户-H5结束会话失败-003.md +++ b/docs/03-测试文档/05-缺陷单/BUG-用户-H5结束会话失败-003.md @@ -125,8 +125,8 @@ ## 6. 关联信息 - **关联需求**: REQ-会话-001(员工结束会话) -- **关联 PRD**: `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md`(已追加变更记录) -- **关联技术方案**: `docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.md`(已追加变更记录) +- **关联 PRD**: `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.archive.md`(已追加变更记录) +- **关联技术方案**: `docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md`(已追加变更记录) - **关联代码文件**: `src/frontend-h5/src/components/chat/ChatPanel.vue:403-468` - **关联后端 API**: `POST /api/h5/conversations/current/close`(`src/backend/app/api/h5.py:1965` + `src/backend/app/services/closing_service.py:329 employee_initiative_close`) - **关联测试用例**: 待创建 TC-会话-002(回归:连续点击防抖 / WS 断线同步 / catch 文案优先后端 message) diff --git a/docs/04-运维文档/部署运维/00-文档规范化整改记录.md b/docs/04-运维文档/部署运维/00-文档规范化整改记录.md index 12b732f..fb2ac66 100644 --- a/docs/04-运维文档/部署运维/00-文档规范化整改记录.md +++ b/docs/04-运维文档/部署运维/00-文档规范化整改记录.md @@ -247,3 +247,24 @@ | 2026-07-28 | v1.3 | 新增整改 #4:移除快速回复规则页面顶部 3 张重复统计卡片,并登记代码事实与回归方式 | Simon / 宋献 | 页面信息冗余 | REQ-通用-002 文档链及管理后台 `/quick-rules` 页面 | | 2026-07-30 | v1.4 | 新增整改 #7:REQ-会话-001 v1.2 三件套位置/任务说明书补齐/历史归档 | Duckula (AI) | 大需求重构跨阶段实施,PRD v1.2 阶段必须三件套对齐 + 任务说明书 + 历史归档 | REQ-会话-001 文档链(PRD v1.2 + 原型 v1.2 + 技术方案 v1.2) | | 2026-07-31 | v1.6 | 新增整改 #8:REQ-会话-001 v1.3 整合区方案 A 三件套增量 + 5 项决策落地 | Duckula (AI) | 方案 A 多文档同步必须显式列出"已拍板结论表",把决策结论固化而非问题陈述;5 项决策落地需贯穿 PRD/技术方案/任务说明书/原型图 4 份文档 | REQ-会话-001 v1.3 文档链(PRD v1.3 §十一 + 技术方案 v1.3 §十 + 任务说明书 v1.3 M8-M14 + 原型图 v1.3 §⑨) | + +--- + +### 整改 #9 · REQ-会话-001 版本合并 + REQ-用户-005 规范化(7 文档合并) + +| 项目 | 值 | +|------|------| +| 日期 | 2026-07-27 | +| 触发人 | 宋献 / Duckula | +| 源需求 / 源文档 | REQ-会话-001(员工结束会话,PRD/原型 v1.0-v1.3 合并);REQ-用户-005(头像菜单退出,v1.0→v1.1 规范化)| +| 整改维度 | A 命名/位置 + B 关联引用 + D 完整度 | +| 问题数 | 11 项(7 文档版本合并 + 4 类引用/编码缺陷)| +| 关键修复 | **【会话-001 版本合并】** 1) 归档 PRD v1.0/v1.1/v1.2 → `.v1.x.archive.md`(canonical 为 v1.3,其 §九 变更记录已覆盖 v1.1→v1.2→v1.3);2) 归档 原型 v1.0/v1.1/v1.2 → `.v1.x.archive.html`(保留 v1.3 + 整合区方案A v1.3 为现行);3) 归档 技术方案 v1.2 → `.v1.2.archive.md`(v1.3 已存在为现行)。
**【用户-005 规范化】** 4) PRD + 原型 文件名 `v1.0`→`v1.1`(铁律2:文件名=内容版本,内容头部本就是 v1.1);5) 技术方案 文件名 `v1.0`→`v1.1`(内容本就是 v1.1)。
**【引用对齐】** 6) PRD-会话-001 v1.3 §六:原型/技术方案引用 v1.2→v1.3 且技术方案补全 `../../02-技术文档/` 路径;7) 技术方案-会话-001 v1.3 头部:PRD/原型裸引用补全相对路径;8) 用户-005 三件套(PRD/技术方案/任务说明书/TC)互引 v1.0→v1.1,相关 PRD 指向会话-001 v1.3,参考原型指向自身 v1.1;9) 任务说明书 #128 关联 PRD/技术方案/原型 v1.0→v1.3(技术方案路径改 `02-技术文档/`);10) 会话-001 三份任务说明书(v1.2/v1.3/通用)中被本次归档波及的 v1.2/v1.0 引用改为 `.archive` 有效历史链接;v1.3 原型 HTML 的"对应 PRD/技术方案"由 v1.2 改为 v1.3。
**【编码缺陷】** 11) 修复 4 处 UTF-8 乱码(U+FFFD):用户-005 PRD「退出风险」、用户-005 任务说明书「菜单退出」「结束咨询按钮」、会话-001 技术方案 v1.3「标题栏坐席徽章」;历史缺陷/TC 文档(BUG-003、TC-用户-008)的 v1.0 裸引用改为 `.archive`。 | +| 归档动作 | PRD-会话-001-v1.0/v1.1/v1.2.md → `.v1.x.archive.md`;原型-会话-001-v1.0/v1.1/v1.2.html → `.v1.x.archive.html`;技术方案-会话-001-v1.2.md → `.v1.2.archive.md`;用户-005 PRD/原型/技术方案 `v1.0`→`v1.1`(现行文件改名,非归档)| +| 引用同步 | 会话-001 v1.3 现行三件套(PRD/技术方案/原型/任务说明书)互相指向 v1.3;用户-005 现行三件套(PRD v1.1/技术方案 v1.1/任务说明书/TC)互相指向 v1.1;被归档版本以 `.archive` 形式在任务说明书中保留历史链接 | +| ASCII 副本同步 | 无需(仅中文路径文档,无 ASCII 副本机制参与)| +| 收益 | 1) 会话-001 现行文档单一真源收敛到 v1.3,历史版本可溯;2) 用户-005 三件套版本对齐(均 v1.1),消除"文件名 v1.0 / 内容 v1.1"错位;3) 跨文档引用全部有效,无悬空链接;4) 消除 4 处编码乱码 | +| 教训 | **① 文件名版本号必须随内容同步 bump**:用户-005 PRD/技术方案内容已升 v1.1 但文件名仍 v1.0,埋雷数月;**② 技术方案应落在 `02-技术文档/`**,裸引用(无路径)会从 PRD 所在目录错误解析;**③ 中文文档的 UTF-8 乱码需专项扫描**:本次 4 处乱码均因早期 Edit 写入异常,合并时须用 U+FFFD 扫描兜底 | +| 遗留待办 | 1) **PRD v1.3 ↔ 代码 v1.3.5 状态条分歧**:PRD/技术方案 v1.3 描述整合区"状态条永久显示",但代码 `integrationZoneLogic.ts` 注释称 v1.3.5 已删除状态条、`inputBarGuideText.ts` 场景3 引导语亦于 v1.3.5 移除;需产品确认是否回退 PRD 或补全 v1.3.5 清理;2) 其他文档(排查手册/AI-001/历史归档/坐席离线缺陷)仍有历史乱码,超出本次范围未处理 | +| 上线状态 | 🟡 文档合并/归档/引用对齐已完成(无代码改动);PRD↔代码状态条分歧待产品拍板后补 TR | + diff --git a/docs/07-项目管理/任务说明书/任务说明书-128-结束会话功能调整.md b/docs/07-项目管理/任务说明书/任务说明书-128-结束会话功能调整.md index f73e489..6f544bf 100644 --- a/docs/07-项目管理/任务说明书/任务说明书-128-结束会话功能调整.md +++ b/docs/07-项目管理/任务说明书/任务说明书-128-结束会话功能调整.md @@ -24,9 +24,9 @@ ### 产品需求 | 来源文档 | 相关章节 | 说明 | |----------|----------|------| -| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` | 全文 | 员工结束会话 PRD | -| `01-产品文档/02-会话管理/技术方案-REQ-会话-001-员工结束会话-v1.0.md` | 全文 | 技术方案 | -| `01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.html` | 全文 | 原型图 | +| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md` | 全文 | 员工结束会话 PRD | +| `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md` | 全文 | 技术方案 | +| `01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html` | 全文 | 原型图 | ### 需求变更(2026-07-27) | 变更内容 | 说明 | @@ -124,6 +124,6 @@ ## 📎 附件 -- PRD: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` -- 技术方案: `01-产品文档/02-会话管理/技术方案-REQ-会话-001-员工结束会话-v1.0.md` -- 原型图: `01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.html` +- PRD: `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md` +- 技术方案: `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md` +- 原型图: `01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html` diff --git a/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.2.md b/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.2.md index f0bf542..4f4823d 100644 --- a/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.2.md +++ b/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.2.md @@ -28,19 +28,19 @@ | 来源文档 | 相关章节 | 说明 | |----------|----------|------| -| `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md` | §3.2 §3.5 §3.7 §3.8 | v1.2 设计哲学 + 6 态按钮 + 4 种引导语 + 顶部按钮 AI 场景互斥规则 | +| `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.archive.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/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md` | §3.3 §3.4 §3.7 §3.8 | store 新字段 + InputBar/ChatPanel 改动 + 24h 边界 + 双入口防抖 | ### 原型设计 | 来源文档 | 页面 | 说明 | |----------|------|------| -| `docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html` | §② §③ §④ | 6 态按钮 + 4 种引导语 + 顶部按钮可见性 mockup | +| `docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.archive.html` | §② §③ §④ | 6 态按钮 + 4 种引导语 + 顶部按钮可见性 mockup | ### 需了解的现有代码(v1.2 实施时必读) @@ -187,9 +187,9 @@ ## 📎 附件 -- **产品需求**:[PRD-REQ-会话-001-员工结束会话-v1.2.md](../../01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md) -- **技术方案**:[技术方案-REQ-会话-001-员工结束会话-v1.2.md](../../02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.md) -- **原型图**:[原型-REQ-会话-001-结束会话流程-v1.2.html](../../01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html) +- **产品需求**:[PRD-REQ-会话-001-员工结束会话-v1.2.archive.md](../../01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.archive.md) +- **技术方案**:[技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md](../../02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md) +- **原型图**:[原型-REQ-会话-001-结束会话流程-v1.2.archive.html](../../01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.archive.html) - **历史任务说明书 #128**:[任务说明书-128-结束会话功能调整.md](任务说明书-128-结束会话功能调整.md) - **历史技术方案(已归档)**:[技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md](../../02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.archive.md) - **关联 BUG**:[BUG-用户-003](../../03-测试文档/05-缺陷单/BUG-用户-H5结束会话失败-003.md)(已修复 2026-07-30,v1.2 必须沿用三件套) \ No newline at end of file diff --git a/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.3.md b/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.3.md index fd3e8d3..f45faa9 100644 --- a/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.3.md +++ b/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001-员工结束会话v1.3.md @@ -32,21 +32,21 @@ | 来源文档 | 相关章节 | 说明 | |----------|----------|------| | `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.3.md` | **§十一 v1.3 整合区增量**(方案 A 已拍板) | 4 维度分散 → 2 段式(整合区+顶部退出)+ 5 决策落地清单 | -| `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md` | §3.2 §3.5 §3.7 §3.8 | v1.2 设计哲学 + 6 态按钮 + 4 种引导语 + 顶部按钮 AI 场景互斥规则(v1.3 沿用) | +| `docs/01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.archive.md` | §3.2 §3.5 §3.7 §3.8 | v1.2 设计哲学 + 6 态按钮 + 4 种引导语 + 顶部按钮 AI 场景互斥规则(v1.3 沿用) | ### 技术方案 | 来源文档 | 相关章节 | 说明 | |----------|----------|------| | `docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.3.md` | **§十 v1.3 整合区实施要点**(A-F 6 子节) | 组件拆分 + 文件清单 + 共享知识 + 数据结构 + 任务列表 + 待明确事项 | -| `docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.md` | §3.3 §3.4 §3.7 §3.8 | store 新字段 + InputBar/ChatPanel 改动 + 24h 边界 + 双入口防抖(v1.3 沿用) | +| `docs/02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md` | §3.3 §3.4 §3.7 §3.8 | store 新字段 + InputBar/ChatPanel 改动 + 24h 边界 + 双入口防抖(v1.3 沿用) | ### 原型设计 | 来源文档 | 页面 | 说明 | |----------|------|------| | `docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.3.html` | **§⑨ 方案 A 整合区设计(v1.3 已拍板)** | 9 场景 mockup + 5 决策落地 + R1-R5 关键交互细节 | -| `docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html` | §② §③ §④ | 6 态按钮 + 4 种引导语 + 顶部按钮可见性 mockup(v1.3 沿用) | +| `docs/01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.archive.html` | §② §③ §④ | 6 态按钮 + 4 种引导语 + 顶部按钮可见性 mockup(v1.3 沿用) | ### 需了解的现有代码(v1.2 实施时必读) @@ -240,9 +240,9 @@ ### v1.2 基线文档(已上线,M1-M7 已完成) -- **产品需求(v1.2)**:[PRD-REQ-会话-001-员工结束会话-v1.2.md](../../01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.md) -- **技术方案(v1.2)**:[技术方案-REQ-会话-001-员工结束会话-v1.2.md](../../02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.md) -- **原型图(v1.2)**:[原型-REQ-会话-001-结束会话流程-v1.2.html](../../01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.html) +- **产品需求(v1.2)**:[PRD-REQ-会话-001-员工结束会话-v1.2.archive.md](../../01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.2.archive.md) +- **技术方案(v1.2)**:[技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md](../../02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.2.archive.md) +- **原型图(v1.2)**:[原型-REQ-会话-001-结束会话流程-v1.2.archive.html](../../01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.2.archive.html) - **任务说明书(v1.2)**:[任务说明书-REQ-会话-001-员工结束会话v1.2.md](任务说明书-REQ-会话-001-员工结束会话v1.2.md) ### 历史归档 diff --git a/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001.md b/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001.md index 67282de..f71dc25 100644 --- a/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001.md +++ b/docs/07-项目管理/任务说明书/任务说明书-REQ-会话-001.md @@ -26,22 +26,22 @@ ### 产品需求(PRD) | 来源文档 | 相关章节 | 说明 | |----------|----------|------| -| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` | §1.1-1.2 | 需求背景、目标 | -| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` | §3.1 | 按钮状态机设计 | -| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` | §3.2-3.3 | 结束流程、评价组件 | -| `01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` | §五 | 验收指标 | +| `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.md` | §3.1-3.3 | 状态机设计、组件改动 | -| `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.md` | §3.4 | 弹窗设计 | -| `02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.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.html` | 全部 | 按钮状态切换、评价弹窗 | +| `01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.archive.html` | 全部 | 按钮状态切换、评价弹窗 | ### 需了解的现有代码(历史现状) | 模块/文件 | 说明 | 需了解的内容 | @@ -158,6 +158,6 @@ ## 📎 附件 -- PRD:`01-产品文档/02-会话管理/PRD-REQ-会话-001-员工结束会话-v1.0.md` -- 技术方案:`02-技术文档/技术方案-REQ-会话-001-员工结束会话-v1.0.md` -- 原型图:`01-产品文档/02-会话管理/原型-REQ-会话-001-结束会话流程-v1.0.html` +- 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` diff --git a/docs/07-项目管理/任务说明书/任务说明书-REQ-用户-005-头像菜单退出.md b/docs/07-项目管理/任务说明书/任务说明书-REQ-用户-005-头像菜单退出.md index f2a2934..4812900 100644 --- a/docs/07-项目管理/任务说明书/任务说明书-REQ-用户-005-头像菜单退出.md +++ b/docs/07-项目管理/任务说明书/任务说明书-REQ-用户-005-头像菜单退出.md @@ -1,8 +1,8 @@ # 任务说明书 — 员工端头像菜单退出 > **关联需求编号**: REQ-用户-005 -> **关联PRD**: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md` -> **关联技术方案**: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md` +> **关联PRD**: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md` +> **关联技术方案**: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md` > **需求类型**: [x] 新增 [ ] 变更 [ ] 废弃 > **日期**: 2026-07-26 > **作者**: Simon @@ -12,14 +12,14 @@ ## 📥 输入项来源 ### 产品需求来源 -- **PRD**: `docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单��出-v1.0.md` -- **原型**: `docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.0.html` +- **PRD**: `docs/01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md` +- **原型**: `docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.1.html` ### 技术方案来源 -- **技术方案**: `docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md` +- **技术方案**: `docs/02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md` ### 原型设计来源 -- `docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.0.html` +- `docs/01-产品文档/05-用户端H5/原型-REQ-用户-005-头像菜单退出-v1.1.html` - 参考原型: `docs/01-产品文档/05-用户端H5/原型-REQ-用户-000-H5用户端-v2.0.html` ### 需了解的现有代码 @@ -89,7 +89,7 @@ | S1 | 所有 10 项验证全部通过 | 逐项打勾 | | S2 | ESLint/TypeScript 编译零错误 | `npm run build` 成功 | | S3 | ChatPanel.vue 以外的文件无改动 | `git diff --stat` 仅显示 ChatPanel.vue | -| S4 | 已有功能不受影响(InputBar 结束咨询��钮仍正常) | 人工服务态测试回归 | +| S4 | 已有功能不受影响(InputBar 结束咨询按钮仍正常) | 人工服务态测试回归 | | S5 | 菜单出入动画无卡顿(<200ms) | 感知测试 | | S6 | commit message 含 `[REQ-用户-005]` | git log 检查 |