3.4 KiB
3.4 KiB
页面名:customer-detail(客户详情)
PRD 参考:P9
docs/prd/specs/P9-miniapp-fe-details.md已实现:否
页面说明
展示客户全信息、消费记录(三种样式)、指数总览、备注、AI 维客线索、AI 客户分析。纯静态展示页(原型中无复杂交互函数)。
状态变量
| 变量名 | 类型 | 初始值 | 说明 |
|---|---|---|---|
| customerInfo | object | null | 客户信息(昵称、手机、会员卡等级、余额、注册日期) |
| indexes | object | null | 指数总览(WBI/NCI/SPI + 爱心 icon) |
| consumptionRecords | array | [] | 消费记录列表 |
| consumptionPage | number | 1 | 消费记录当前页 |
| hasMoreRecords | boolean | true | 是否还有更多消费记录 |
| retentionClues | array | [] | AI 维客线索(应用 8) |
| customerAnalysis | object | null | AI 客户分析(应用 7) |
| notes | array | [] | 备注列表 |
| loading | boolean | true | 数据加载中 |
| error | boolean | false | 加载失败 |
| loadingMore | boolean | false | 加载更多消费记录中 |
用户操作 → 响应(忠于原型 HTML)
| 操作 | 触发条件 | 响应行为 | 目标状态 |
|---|---|---|---|
| 页面加载 | 进入页面 | 请求客户详情+指数+消费记录+AI 数据 | loading→false |
| 滚动到底部 | hasMoreRecords=true | GET 消费记录下一页(每次 10 条) | loadingMore=true→false |
| 点击"问问助手" | 底部按钮 | navigateTo chat(window.location.href='chat.html') |
— |
| 点击返回 | 顶部导航栏 | navigateBack(history.back()) |
— |
原型 HTML 中仅有两个内联事件:顶部返回
history.back()和底部"问问助手"window.location.href='chat.html',无其他动态交互函数。
消费记录三种样式
- 台桌结账:下沉到
dwd_table_fee_log,每条台费详情,关联总金额汇总 - 商城订单:助教列表(花名+级别+课程类型+服务时长+定档绩效)、支付金额、食品酒水总金额
- 充值:充值金额、支付方式
消费记录展示规则
- 默认 10 条,拉到底懒加载(每次 10 条)
- 金额为 0 的项不展示
- 有团购/折扣时展示正价+实付
- 总金额仅在消费条目 >1 时出现
AI 区域展示
- 维客线索(应用 8):Emoji 二级标签,提供者逗号分隔(By:系统/By:备注)
- 客户分析(应用 7,
cache_type=app7_customer_analysis):运营策略数组 + 总结- 触发时机(PRD 补充):客户结账单出现后自动生成
- 应用 3 与应用 7 共用同一 cache_type,应用 3 为简版摘要,应用 7 为完整分析
页面状态枚举
| 状态名 | 视觉表现 | 触发条件 |
|---|---|---|
| 加载中 | 区域文案"加载中..." | loading=true |
| 正常态 | 完整客户详情 | 有数据 |
| 错误态 | "加载失败,请点击重试" + 重试按钮 | error=true |
后端 API 依赖
| API | 方法 | 说明 |
|---|---|---|
GET /api/customers/:id |
GET | 客户详情 |
GET /api/customers/:id/consumption-records |
GET | 消费记录(分页,懒加载) |
GET /api/customers/:id/indexes |
GET | 客户指数总览 |
页面导航
- 来源:board-customer(点击客户卡片)/ task-detail / performance
- 去向:chat(问问助手)
全局组件
- 自定义顶部导航栏(返回按钮 + "客户详情")
- AI 悬浮按钮