# 页面名:task-detail 系列(任务详情) > PRD 参考:P6 `docs/prd/specs/P6-miniapp-fe-tasks.md`;`apps/miniprogram/doc/prd.md` 第八节 8.2 > 已实现:否 ## 页面说明 展示客户详细信息、消费习惯、AI 分析(关系分析+任务建议+话术参考+备注评分)、维客线索、备注入口。底部固定操作栏。 task-detail 系列共 4 个页面,卡片内容相同(以 task-detail.html 为准),差异仅在:头部 Banner 主题/配色、区域排列顺序、话术样式、部分文案。 ## Banner 主题映射表 | 页面 | Banner class | 主题色 | 任务类型 | |------|-------------|--------|----------| | task-detail.html | `banner-bg theme-red texture-aurora` | 红色 | 高优先召回 | | task-detail-priority.html | (同 task-detail,橙色变体) | 橙色 | 优先召回 | | task-detail-relationship.html | `banner-bg theme-pink texture-aurora` | 粉色 | 关系构建 | | task-detail-callback.html | `banner-bg theme-teal texture-aurora` | 青绿色 | 客户回访 | > ⚠️ Banner 背景使用 CSS 渐变+SVG 纹理(`banner.css` 中的 `texture-aurora`),内含复杂的 SVG 丝带效果。小程序实现时建议将各主题 Banner 背景导出为图片资源,统一放 `/assets/images/banner-{theme}.png`。 ## 页面区域顺序差异 | 区域 | task-detail(高优先/优先) | task-detail-relationship(关系构建) | task-detail-callback(客户回访) | |------|--------------------------|--------------------------------------|----------------------------------| | 1 | 与我的关系 | 维客线索 | 维客线索 | | 2 | 任务建议 | 与我的关系(含近期服务记录) | 与我的关系(含近期服务记录) | | 3 | 维客线索 | 任务建议 | 任务建议 | | 4 | 我给TA的备注 | 我给TA的备注 | 我给TA的备注 | | 5 | 近期服务记录 | (嵌入区域2) | (嵌入区域2) | ## 话术样式差异 | 页面 | 话术样式 | 说明 | |------|----------|------| | task-detail(高优先/优先) | 气泡样式 `.speech-bubble` | 浅蓝背景+边框+圆角+右下角尖角,每条带「复制」按钮 | | task-detail-relationship | 竖线样式 `border-l-2` | 左侧 2px 竖线 + 左内边距 | | task-detail-callback | 竖线样式 `border-l-2` | 同上 | ## 任务建议标题差异 | 页面 | 标题 | 背景色 | |------|------|--------| | task-detail | 💡 建议执行 | 蓝色系 | | task-detail-relationship | 💝 关系构建重点 | pink→rose | | task-detail-callback | 📞 常规回访要点 | teal→cyan | ## 状态变量 | 变量名 | 类型 | 初始值 | 说明 | |--------|------|--------|------| | taskDetail | object | null | 任务详情数据 | | customerInfo | object | null | 客户基本信息 | | serviceRecords | array | [] | 近期服务记录 | | aiAnalysis | object | null | AI 分析(应用 4:关系分析+任务建议+一句话总结) | | retentionClues | array | [] | 维客线索(应用 8 整合线索+人工) | | customerAnalysis | object | null | 客户分析(应用 7:运营策略+总结) | | talkingPoints | object | null | 话术参考(应用 5 缓存) | | noteScore | number | null | 备注分析评分(应用 6:1-10 分) | | noteModalVisible | boolean | false | 备注弹窗显示状态 | | noteText | string | "" | 备注输入内容 | | noteRating | object | {serviceWill: 0, returnChance: 0} | 星星评分(再次服务意愿+再来店可能性,各 1-5 星) | | ratingExpanded | boolean | false | 评分区域是否展开(回访任务默认 true) | | abandonModalVisible | boolean | false | 放弃客户弹窗显示状态(仅高优先/优先召回有) | | abandonReason | string | "" | 放弃原因 | | loading | boolean | true | 数据加载中 | | error | boolean | false | 加载失败 | ## 用户操作 → 响应 | 操作 | 触发条件 | 响应行为 | 目标状态 | |------|----------|----------|----------| | 页面加载 | 进入页面 | GET /api/xcx/tasks/{id} | loading→false | | 点击"问问助手" | 底部操作栏 | navigateTo chat(带任务+客户上下文引用) | — | | 点击"备注" | 底部操作栏 | 打开备注弹窗 | noteModalVisible=true | | 点击"展开评价" | noteModalVisible=true, ratingExpanded=false | 展开星星评分区域,隐藏展开按钮 | ratingExpanded=true | | 拖动/点击星星 | 评分区域展开 | 更新对应评分值(支持触摸拖动+鼠标拖动+点击) | noteRating 更新 | | 备注弹窗-提交 | noteText 非空 | POST /api/xcx/notes(含评分) | Toast "备注已保存",弹窗关闭 | | 点击"复制"(话术气泡) | 气泡样式页面 | 复制话术文本到剪贴板,按钮变"已复制" | — | | 点击"放弃" | 顶部导航栏右侧(仅高优先/优先) | 打开放弃确认弹窗 | abandonModalVisible=true | | 放弃弹窗-确认 | abandonReason 非空 | POST /api/xcx/tasks/{id}/abandon | Toast "已放弃该客户的维护" | | 点击返回 | 顶部导航栏 | navigateBack / history.back() | — | | 点击"重试" | error=true | 重新请求数据 | loading=true | ## "与我的关系"区域 - 标题带 section-title pink 样式 - AI 机器人图标(可爱机器人 SVG:圆角矩形身体+天线+紫蓝色大眼睛+微笑+粉色腮红+小耳朵) - 此图标可视为心形 ICON 的扩展,小程序中用 `/assets/icons/icon-ai-relationship.svg` - 关系等级色系:💖 非常好(>8.5 粉色渐变) / 🧡 良好(>7) / 💛 一般(>5) / 💙 待发展(<5 蓝色渐变) - 备注评分:星级展示(score ÷ 2 = 星数,支持半星,由 `ai-icons.js` 渲染) ## AI 应用编号映射(PRD 补充) | 应用编号 | 功能 | cache_type | 展示位置 | |----------|------|------------|----------| | 应用 4 | 关系分析 + 任务建议 + 一句话总结(summary) | `app4_analysis` | 与我的关系 / 任务建议 / 卡片底部 AI 文字 | | 应用 5 | 话术参考(5 条话术) | — | 话术区域 | | 应用 6 | 备注评分(1-10 分,6 分为标准分) | `app6_note_analysis` | 备注弹窗提交后 | | 应用 7 | 客户分析(运营策略 + 总结) | `app7_customer_analysis` | 客户分析区域 | | 应用 8 | 维客线索整合(`member_retention_clue` 表) | — | 维客线索区域 | ## AI 区域展示规则 - 维客线索(应用 8):Emoji 作为二级标签,提供者逗号分隔展示 - source=ai_consumption → "By:系统" - source=ai_note → "By:备注" - 客户分析(应用 7):运营策略数组 + 总结文本 - 关系分析+任务建议+一句话总结(应用 4) - 话术参考(应用 5):5 条话术,气泡/竖线样式展示 - 备注评分(应用 6):1-10 分,6 分为标准分 ## 备注弹窗规则 - 底部弹出式弹窗(`.modal-overlay` + `.modal-card`) - 包含:多行文本输入 + 星星评分(再次服务意愿 + 再来店可能性) - 回访任务(task-detail-callback):评分区域默认展开 - 其他任务类型:评分区域默认隐藏,通过"展开评价"按钮手动打开 - 星星打分交互:支持点击、触摸拖动、鼠标拖动(由 `task-detail-notes.js` 实现) ### 备注评分与回访完成判定(PRD 补充) - 提交备注后,后端调用应用 6 进行评分(1-10 分,6 分为标准分) - 评分细则:综合备注文本质量、服务意愿星级、再来店可能性星级 - 回访任务完成条件:备注评分 ≥ 5 → 任务标记完成;< 5 → 不算完成 - 只计第一个备注的评分(后续备注不影响完成判定) - 回访任务有效期 2 天:超过 2 天未完成则标签跳变(回到任务列表重新分配) ## 放弃客户弹窗(仅高优先/优先召回) - 遮罩层 + 居中弹窗 - 包含:多行文本输入(放弃原因)+ 提交按钮(红色 `.danger`) - 空值校验:原因为空时显示错误提示 - 关系构建和客户回访页面无"放弃"按钮 ## 底部操作栏 - 「问问助手」按钮:渐变背景(颜色随主题变化),聊天气泡图标 - 「备注」按钮:灰色背景,编辑笔图标 ## 页面状态枚举 | 状态名 | 视觉表现 | 触发条件 | |--------|----------|----------| | 加载中 | 区域文案"加载中..." | loading=true | | 正常态 | 完整详情展示 | 有数据 | | 错误态 | "加载失败,请点击重试" + 重试按钮 | error=true | ## 后端 API 依赖 | API | 方法 | 说明 | |-----|------|------| | `GET /api/xcx/tasks/{id}` | GET | 获取任务详情(含客户信息+AI 分析) | | `POST /api/xcx/notes` | POST | 创建备注(含评分,触发回访完成判定) | | `POST /api/xcx/tasks/{id}/abandon` | POST | 放弃任务(仅高优先/优先) | ## 页面导航 - 来源:task-list(点击任务卡片,按 task-type 跳转对应页面) - 去向:chat(问问助手) ## 全局组件 - 自定义顶部导航栏(返回按钮 + "任务详情",高优先/优先召回右侧有"放弃"按钮) - AI 悬浮按钮