任务说明书 — P0-3 快捷申请按钮空白气泡修复【已标记误报】
版本: v1.1 | 日期: 2026-07-17
⚠️ 误报声明(2026-07-18):经核实 InputBox.vue 是孤儿组件(ChatPanel.vue:96 实际使用 InputBar.vue),"快捷申请按钮"在当前产品中不存在,showApprovalCard 无人调用,本任务前提不成立。已保留:GET /approval/all-categories-card 端点(无害,可作未来功能备用)。待清理:InputBox.vue、showApprovalCard 列入批次 4 死代码。InputBar.vue 是否需要快捷申请入口属新产品决策,不在本次重构范围。
📋 基本信息
| 项目 |
内容 |
| 任务名称 |
P0-3 InputBox 快捷申请按钮空白气泡修复(新 all-categories-card 端点) |
| 任务ID |
#87 |
| 状态 |
⚠️ 误报(前提不成立,端点已保留备用) |
| 优先级 |
🔴 P0 |
| 类型 |
Bug修复 |
| 状态 |
待开始 |
| 负责人 |
宋献 |
| 创建日期 |
2026-07-17 |
| 计划完成日期 |
2026-07-18 |
📥 输入项来源
问题证据(F1,P0 Bug)
| 来源 |
说明 |
frontend-h5/src/stores/conversation.ts:900-917 |
showApprovalCard() 构造 extra_data={approval_type:'',confidence:0} |
frontend-h5/src/components/chat/MessageBubble.vue:19 |
要求 msg.extra_data?.action?.card_data(v3.0 纯渲染) |
| 结果 |
InputBox「快捷申请」按钮点击后渲染空白气泡 |
frontend-h5/src/components/chat/InputBox.vue:506 |
快捷申请按钮调用方 |
技术文档
| 来源文档 |
说明 |
docs/02-技术文档/重构记录/00-v4.0重构总方案.md |
D6 决策(快捷申请走新端点) |
backend/app/services/approval_matcher.py |
get_all_categories() 已具备能力(v3.0 已实现) |
📤 输出成果要求
交付物清单
| # |
交付物 |
类型 |
说明 |
| 1 |
backend/app/api/approval.py |
代码 |
新增 GET /approval/all-categories-card:调 get_approval_matcher().get_all_categories(),扁平化组装 {card_type:'multiple', title:'审批申请', description:'请选择审批类型', options:[...]} |
| 2 |
frontend-h5/src/api/conversation.ts |
代码 |
新增 getAllCategoriesCard() |
| 3 |
frontend-h5/src/stores/conversation.ts |
代码 |
showApprovalCard() 改 async:拉取(store 缓存一次)后插入 msg_type:'approval_card'、extra_data:{action:{card_data}} |
代码要点
- 后端端点需鉴权(require_employee 或同等),返回结构必须与前端
CardData 接口一致(card_type/title/description/options[{name,icon,desc,url}])
- store 缓存:首次点击拉取后存 ref,后续点击直接用,不重复请求
🔧 验证方式
| 验证项 |
验证方法 |
预期结果 |
| 端点响应 |
curl -H "Authorization: Bearer <token>" https://itsupport.servyou.com.cn/api/approval/all-categories-card |
200,options 数组 ≥18 项,每项含 name/icon/desc/url |
| 快捷申请渲染 |
H5 点快捷申请按钮 |
立即出现全量审批卡片(18 项),非空白 |
| 选项跳转 |
点任一选项(如 VPN账号申请) |
正确跳转 itsm-bridge/企微审批 |
✅ 完成标准
📊 工作分解
| 子任务 |
预估工时 |
状态 |
| 后端 all-categories-card 端点 |
30min |
⬜ |
| 前端 API + store 改造 |
30min |
⬜ |
| 构建部署 + 端到端验证 |
30min |
⬜ |
📞 依赖与阻塞
| 依赖 |
说明 |
状态 |
| v3.0 ApprovalMatcher.get_all_categories |
已实现 |
✅ 已完成 |
部署顺序:后端先发(端点先上线),前端再发(前端依赖端点)。
📈 变更记录
| 日期 |
变更内容 |
变更人 |
| 2026-07-17 |
创建任务 |
宋献 |