# 任务说明书 — P0-4 RecommendCard invokeApproval ReferenceError 修复 > **版本**: v1.0 | **日期**: 2026-07-17 --- ## 📋 基本信息 | 项目 | 内容 | |------|------| | **任务名称** | P0-4 RecommendCard 点击 approval 推荐项崩溃修复 | | **任务ID** | #88 | | **优先级** | 🔴 P0 | | **类型** | Bug修复 | | **状态** | 待开始 | | **负责人** | 宋献 | | **创建日期** | 2026-07-17 | | **计划完成日期** | 2026-07-18 | --- ## 📥 输入项来源 ### 问题证据(F2,P0 Bug) | 来源 | 说明 | |------|------| | `frontend-h5/src/components/assistant/RecommendCard.vue:178` | `case 'approval'` 分支调用 `invokeApproval(item.approval_type)` | | grep 验证 | 该函数在当前文件**无定义、无导入、无 emit** → 点击 approval 类型推荐项必现 `ReferenceError` 崩溃 | | 备份文件 | 函数仅存在于 `RecommendCard.vue.bak_bridge_1784261164:262`(遗留备份,不应引用) | ### 技术文档 | 来源文档 | 说明 | |----------|------| | `docs/02-技术文档/重构记录/01-问题验证清单.md` | F2 | --- ## 📤 输出成果要求 ### 交付物清单 | # | 交付物 | 类型 | 说明 | |---|--------|------|------| | 1 | `RecommendCard.vue` L178 附近 | 代码 | `case 'approval'` 改为与 download 一致:`if (item.url) window.open(item.url,'_blank')`;无 url 时 `showToast('链接缺失')` | ### 代码要求 - 纯前端修复,零后端依赖 - 同步检查 L147 是否引用了接口中不存在的 `item.action` 字段(若有则一并清理) --- ## 🔧 验证方式 | 验证项 | 验证方法 | 预期结果 | |--------|----------|-----------| | 点击 approval 推荐项 | H5 右侧栏推荐卡片点击 approval 类型项 | 不报错、正确跳转 | | 构建 | `pnpm build` | 无 TS 报错 | --- ## ✅ 完成标准 - [ ] invokeApproval 调用已替换 - [ ] 构建通过,部署验证 - [ ] 状态看板已更新 --- ## 📊 工作分解 | 子任务 | 预估工时 | 状态 | |--------|----------|------| | 修复 case 'approval' 分支 | 10min | ⬜ | | 检查清理 item.action 死引用 | 10min | ⬜ | | 构建部署验证 | 20min | ⬜ | --- ## 📞 依赖与阻塞 | 依赖 | 说明 | 状态 | |------|------|------| | 无 | 独立任务,纯前端 | — | --- ## 📈 变更记录 | 日期 | 变更内容 | 变更人 | |------|----------|--------| | 2026-07-17 | 创建任务 | 宋献 |