3.5 KiB
3.5 KiB
任务说明书 — P0-3 快捷申请按钮空白气泡修复
版本: v1.0 | 日期: 2026-07-17
📋 基本信息
| 项目 | 内容 |
|---|---|
| 任务名称 | 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/12-重构记录/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/企微审批 |
✅ 完成标准
- 后端端点上线,响应结构正确
- 前端 showApprovalCard 改造完成,快捷申请渲染正常
- 构建部署 H5 新版,端到端验证通过
- 状态看板已更新
📊 工作分解
| 子任务 | 预估工时 | 状态 |
|---|---|---|
| 后端 all-categories-card 端点 | 30min | ⬜ |
| 前端 API + store 改造 | 30min | ⬜ |
| 构建部署 + 端到端验证 | 30min | ⬜ |
📞 依赖与阻塞
| 依赖 | 说明 | 状态 |
|---|---|---|
| v3.0 ApprovalMatcher.get_all_categories | 已实现 | ✅ 已完成 |
部署顺序:后端先发(端点先上线),前端再发(前端依赖端点)。
📈 变更记录
| 日期 | 变更内容 | 变更人 |
|---|---|---|
| 2026-07-17 | 创建任务 | 宋献 |