Files
Neo-ZQYY/docs/h5_ui/interactions/task-detail.md

149 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 页面名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 | 备注分析评分(应用 61-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 区域展示规则
- 维客线索(应用 8Emoji 作为二级标签,提供者逗号分隔展示
- source=ai_consumption → "By:系统"
- source=ai_note → "By:备注"
- 客户分析(应用 7运营策略数组 + 总结文本
- 关系分析+任务建议+一句话总结(应用 4
- 话术参考(应用 55 条话术,气泡/竖线样式展示
- 备注评分(应用 61-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 悬浮按钮