# 页面数据需求说明文档(推测版 / Mock 阶段) 版本:v1.0 适用范围:球房运营助手原型页面的前后端数据契约设计 说明:本文件基于现有 H5 原型代码推断,用于 **Mock / 接口设计前置**。不是最终后端接口定义,但足够支撑前端页面开发与后续接口对齐。 --- ## 1. 文档目标 本文件用于回答三个问题: 1. **哪些内容应该由后端返回?** 2. **哪些内容应该写在前端模板/枚举中?** 3. **页面要稳定开发,需要哪些接口与字段?** 本阶段使用 Mock 数据代替真实接口,因此要求: - 字段结构先稳定; - 列表、详情、筛选、统计、弹窗提交等数据模型先统一; - 前端派生字段与后端源字段边界清晰。 --- ## 2. 总体判断原则 ## 2.1 必须由后端返回的数据 以下内容不能写死在模板中: 1. 用户身份、门店、权限、审核状态 2. 任务列表、任务详情、任务状态、备注、放弃原因 3. 客户详情、服务记录、消费记录、余额、到店时间 4. 助教详情、绩效、工资、客户数、服务记录 5. 看板统计、榜单排序、筛选结果、时间范围数据 6. AI 洞察文案、AI 话术建议、对话记录 7. 月份切换、对比数据、趋势值 8. 业务枚举背后的值(类型 code、状态 code、标签 code) 9. 数值格式化前的原始值(金额、小时、次数、时间戳) ## 2.2 可以由前端模板维护的数据 以下内容可以先前端写死,后续再看是否由平台统一下发: 1. 页面固定标题 2. 静态说明文案 3. 空状态文案 4. 权限页/审核页的帮助说明 5. 通用按钮文案(取消、确认、保存) 6. 前端 UI 状态: - 弹窗是否打开 - 当前激活 tab - 当前筛选器是否展开 - Toast 是否显示 7. 某些纯展示枚举的样式映射: - 任务类型颜色 - 标签颜色 - 徽章图标 - 看板 section 图标 ## 2.3 建议“后端返回 code,前端做样式映射”的数据 例如: - `taskType = high_priority | priority | relationship | callback` - `memberLevel = vip | gold | normal` - `gender = male | female | unknown` - `noteType = customer | coach` - `status = pending | approved | rejected | abandoned | completed` 原因: - 后端可控业务语义 - 前端可控视觉样式 - 文案和颜色不会耦死在接口层 --- ## 3. 全局数据模型 ## 3.1 当前登录用户 `CurrentUser` ```json { "userId": "u_1001", "name": "小燕", "nickname": "小燕", "avatarUrl": "https://...", "roleCode": "coach", "roleName": "助教", "siteId": "site_001", "siteName": "广州朗朗桌球", "defaultHome": "task", "permissionStatus": "approved" } ``` ### 字段说明 | 字段 | 类型 | 来源 | 说明 | |---|---|---|---| | `userId` | string | 后端 | 用户唯一 ID | | `name` | string | 后端 | 昵称/展示名 | | `avatarUrl` | string | 后端 | 头像 | | `roleCode` | string | 后端 | `coach / manager / admin ...` | | `roleName` | string | 后端或前端映射 | 展示身份 | | `siteId` | string | 后端 | 球房 ID | | `siteName` | string | 后端 | 球房名称 | | `defaultHome` | string | 后端 | 默认首页 | | `permissionStatus` | string | 后端 | 权限状态 | --- ## 3.2 通用枚举建议 ### 任务类型 `TaskType` ```json [ { "code": "high_priority", "name": "高优先召回" }, { "code": "priority", "name": "优先召回" }, { "code": "relationship", "name": "关系构建" }, { "code": "callback", "name": "客户回访" } ] ``` ### 任务状态 `TaskStatus` ```json [ { "code": "pending", "name": "待处理" }, { "code": "completed", "name": "已完成" }, { "code": "abandoned", "name": "已放弃" }, { "code": "pinned", "name": "置顶" } ] ``` ### 备注对象类型 `NoteEntityType` ```json [ { "code": "customer", "name": "客户" }, { "code": "coach", "name": "助教" }, { "code": "task", "name": "任务" } ] ``` ### 会员等级 `MemberLevel` ```json [ { "code": "vip", "name": "VIP" }, { "code": "gold", "name": "黄金会员" }, { "code": "normal", "name": "普通会员" } ] ``` --- ## 4. 页面级数据需求 ## 4.1 登录页 `login` ### 页面用途 - 微信登录入口 - 用户协议勾选 - 登录后跳转默认首页 ### 后端需求 #### 接口 A:登录态获取 / 登录 ```json { "code": 0, "data": { "token": "xxx", "user": { "userId": "u_1001", "name": "小燕", "roleCode": "coach", "roleName": "助教", "siteId": "site_001", "siteName": "广州朗朗桌球", "permissionStatus": "approved", "defaultHome": "task" } } } ``` ### 页面模板可写死 - Logo / slogan - “任务管理 / 数据看板 / 智能助手”卖点文案 - 用户协议、隐私政策入口文案 ### 提交动作 - 微信登录 - 勾选协议状态仅前端控制 --- ## 4.2 申请页 `apply` ### 原型可见字段 - 球房 ID - 申请身份 - 手机号 - 编号(选填) - 昵称 ### 后端需求 #### 接口 B:提交访问申请 **请求** ```json { "siteId": "site_001", "applyRole": "coach", "phone": "13800000000", "staffNo": "A102", "nickname": "小燕" } ``` **响应** ```json { "code": 0, "data": { "applicationId": "app_001", "status": "reviewing" } } ``` ### 页面模板可写死 - 提交流程 1~4 步说明 - 填写提示文案 ### 风险提示 - `applyRole` 不要传中文文案,传 code - 手机号、球房 ID、员工编号的格式校验规则建议后端也做 --- ## 4.3 审核中 / 无权限页 `reviewing` / `no-permission` ### 后端需求 #### 接口 C:当前账号权限状态查询 ```json { "code": 0, "data": { "permissionStatus": "reviewing", "siteId": "site_001", "siteName": "广州朗朗桌球", "adminName": "厉超", "adminContact": "138****0000", "reason": null } } ``` #### `permissionStatus` 建议取值 - `reviewing` - `approved` - `rejected` - `revoked` ### 页面模板可写死 - 说明文案 - 联系管理员的固定描述结构 ### 页面中真正来自后端的 - 管理员姓名/联系方式 - 驳回或收回原因 - 当前状态 --- ## 4.4 首页设置 `home-settings` ### 需求 - 获取默认首页设置 - 修改默认首页设置 #### 接口 D1:获取用户设置 ```json { "code": 0, "data": { "defaultHome": "task" } } ``` #### 接口 D2:保存用户设置 **请求** ```json { "defaultHome": "board" } ``` **响应** ```json { "code": 0, "data": true } ``` ### 前端模板可维护 - “任务 / 看板”的展示文案 --- ## 4.5 我的 `my-profile` ### 后端需求 #### 接口 E:我的信息 ```json { "code": 0, "data": { "userId": "u_1001", "name": "小燕", "roleCode": "coach", "roleName": "助教", "siteName": "广州朗朗桌球", "avatarUrl": "https://..." } } ``` ### 页面按钮跳转 - 备注记录 - 助手对话记录 - 退出账号 #### 接口 F:退出登录 前端即可清空 token;后端如需审计,可补一个退出埋点接口。 --- ## 4.6 任务列表 `task-list` 这是最关键页面之一。 ### 页面结构拆分 #### 1)顶部个人与站点信息 - 当前用户昵称 - 角色 - 门店名 - 头像 #### 2)业绩进度卡 - 距离 100h 仅剩多少小时 - 档位进度条 - 基础课 / 激励课 / 全部小时数 - 达成奖励 - 月预计收入及同比/环比变化 #### 3)任务区 - 今日客户维护总数 - 置顶任务列表 - 其他任务列表 - 已放弃任务列表 #### 4)长按上下文菜单 - 置顶 - 放弃 - AI - 备注 ### 后端数据需求 #### 接口 G:任务列表页聚合数据 ```json { "code": 0, "data": { "userSummary": { "userId": "u_1001", "name": "小燕", "roleCode": "coach", "roleName": "助教", "avatarUrl": "https://...", "siteName": "广州朗朗桌球" }, "performanceSummary": { "targetHour": 100, "remainHour": 12.5, "currentTierIndex": 1, "tierBounds": [0, 100, 130, 160, 190, 220], "baseHour": 77.5, "incentiveHour": 12.0, "totalHour": 87.5, "rewardAmount": 800, "forecastIncome": 6206, "incomeCompareValue": -368, "incomeCompareLabel": "比1月同期" }, "taskSections": { "pinnedCount": 2, "normalCount": 3, "abandonedCount": 2 }, "tasks": [ { "taskId": "t_001", "taskType": "high_priority", "taskTypeName": "高优先召回", "status": "pending", "isPinned": true, "customerId": "c_001", "customerName": "王先生", "genderEmoji": "💖", "hasNote": true, "lastVisitDays": 15, "balanceLevel": "very_high", "balanceLevelName": "非常多", "descLine1": "最近到店:15天前 · 余额:非常多", "descLine2": "偏好晚间时段,可推荐夜场套餐", "aiHint": "偏好晚间时段,可推荐夜场套餐", "abandonReason": null, "priorityScore": 98 } ] } } ``` ### 字段归因说明 #### 必须后端返回 - 任务列表本身 - 任务类型 - 置顶状态 - 放弃状态 - 客户姓名 - 最近到店天数 - 余额等级 - AI 提示 - 是否有备注 - 业绩进度统计 - 预计收入与比较值 #### 前端可派生 - 任务卡左侧颜色 - 任务类型 badge 样式 - `💖 💙 💛 🧡` 这类关系/情绪小符号(如果不是业务字段,可由前端映射) - “已放弃”分组标题样式 - 进度条视觉分段 ### 交互写接口需求 #### 接口 H1:置顶 / 取消置顶任务 ```json { "taskId": "t_001", "isPinned": true } ``` #### 接口 H2:放弃任务 ```json { "taskId": "t_001", "reason": "客户已转会至其他球房" } ``` #### 接口 H3:新增任务备注 ```json { "taskId": "t_001", "content": "客户本周不方便,建议下周三回访" } ``` --- ## 4.7 任务详情(四个页面共性) 页面: - `task-detail` - `task-detail-priority` - `task-detail-callback` - `task-detail-relationship` ### 共性信息块 1. 客户头部信息 - 姓名 - 手机 - 会员等级 - 任务类型 - 维客线索 / AI 洞察 2. 客户基础信息 / 消费习惯 / 服务关系 3. AI 建议话术 4. 备注区 5. 放弃客户弹窗(主版) 6. 星级评分(备注弹窗内) ### 后端建议:统一一个详情接口,通过 taskType 决定展示差异 #### 接口 I:任务详情 ```json { "code": 0, "data": { "taskId": "t_001", "taskType": "high_priority", "taskTypeName": "高优先召回", "status": "pending", "customer": { "customerId": "c_001", "name": "王先生", "avatarText": "王", "phoneMasked": "138****5678", "memberLevel": "gold", "memberLevelName": "黄金会员", "registerDays": 730, "tags": ["VIP会员", "高价值"] }, "relationship": { "score": 0.85, "label": "非常好", "summary": "最近3个月每周均有1-2次课程互动,客户反馈良好。" }, "balance": { "amount": 8600, "level": "very_high", "levelName": "非常多" }, "visit": { "lastVisitAt": "2026-02-25T20:00:00+08:00", "lastVisitDays": 12, "idealIntervalDays": 7 }, "insights": [ { "section": "客户基础", "source": "system", "icon": "👤", "title": "普通会员 · 注册10个月 · 近期活跃度下降" }, { "section": "消费习惯", "source": "system", "icon": "🌙", "title": "偏好夜场 20:00-22:00" } ], "aiSuggestions": [ { "suggestionId": "s_001", "content": "最近是否工作较忙?周末夜场新上了双人套餐,给您预留时段。" } ], "latestNote": { "noteId": "n_001", "content": "客户上次说月底来店。", "createdAt": "2026-02-26T18:00:00+08:00", "ratings": { "intention": 4, "relation": 5, "service": 4 } } } } ``` ### 备注相关接口 #### 接口 J1:新增 / 更新备注 ```json { "taskId": "t_001", "content": "客户上次说月底来店。", "ratings": { "intention": 4, "relation": 5, "service": 4 } } ``` #### 接口 J2:删除备注 ```json { "noteId": "n_001" } ``` ### 放弃任务接口 可复用 `H2` ### AI 话术复制 前端行为,不需要接口。 --- ## 4.8 客户详情 `customer-detail` ### 页面可见数据 - 姓名、手机号、会员编号 - 储值余额 - 60天消费 - 理想到店间隔 - 距今到店天数 - AI 智能洞察 - 客户标签 - 可能还有最近服务、消费偏好等 #### 接口 K:客户详情 ```json { "code": 0, "data": { "customerId": "c_001", "name": "王先生", "avatarText": "王", "phoneMasked": "138****5678", "memberNo": "VIP20231215", "memberLevel": "vip", "memberLevelName": "VIP", "balanceAmount": 8600, "consume60dAmount": 2800, "idealVisitIntervalDays": 7, "daysSinceLastVisit": 12, "relationshipScore": 0.85, "insightSummary": "高价值 VIP 客户,月均到店 4 次,夜场偏好明显。", "tags": ["高价值", "VIP", "夜场偏好"], "stats": { "visitCount30d": 4, "visitCount60d": 8, "avgTicket30d": 350 } } } ``` --- ## 4.9 客户服务记录 `customer-service-records` ### 原型可见 - 客户头部摘要 - 累计服务次数 - 关系指数 - 按月份切换 - 本月服务次数 - 服务时长 - 按时间列出服务记录 #### 接口 L:客户服务记录 ```json { "code": 0, "data": { "customer": { "customerId": "c_001", "name": "王先生", "phoneMasked": "139****5678" }, "summary": { "totalServiceCount": 28, "relationshipScore": 0.85 }, "month": "2026-02", "monthSummary": { "serviceCount": 6, "serviceDurationHour": 11.5, "relationshipScore": 0.85 }, "records": [ { "recordId": "sr_001", "startAt": "2026-02-07T20:00:00+08:00", "endAt": "2026-02-07T22:30:00+08:00", "durationHour": 2.5, "tableNo": "A1", "coachName": "小燕", "projectName": "中八陪练", "remark": null } ], "monthOptions": ["2026-01", "2026-02"] } } ``` ### 前端模板可维护 - 月份切换按钮样式 - 列表分组表现 --- ## 4.10 助教详情 `coach-detail` ### 原型可见 - 姓名、星级、擅长项目 - 工龄、客户数 - 本月定档业绩 - 折算前 - 本月工资预估 - 客源储值余额 - 收入明细切换(本月 / 上月) - 备注弹窗 - 任务展开收起 #### 接口 M:助教详情 ```json { "code": 0, "data": { "coach": { "coachId": "coach_001", "name": "小燕", "avatarText": "小", "level": "star", "levelName": "星级", "skills": ["中八", "斯诺克"], "workingYears": 3, "customerCount": 68 }, "summary": { "currentMonthPerfHour": 87.5, "rawPerfHour": 89.0, "forecastSalary": 6950, "customerBalanceAmount": 86200 }, "incomeTabs": { "thisMonth": { "totalAmount": 6206, "items": [ { "label": "基础课收入", "amount": 4200 }, { "label": "激励课收入", "amount": 1200 } ] }, "lastMonth": { "totalAmount": 16880, "items": [] } }, "tasks": [ { "taskId": "t_001", "taskType": "high_priority", "customerName": "王先生", "status": "pending" } ], "latestNotes": [ { "noteId": "n_001", "content": "本月表现优秀。", "createdAt": "2026-02-27T12:00:00+08:00" } ] } } ``` ### 备注接口 可复用通用备注接口,只是实体类型变为 `coach`。 --- ## 4.11 备注页 `notes` ### 原型可见 - 客户备注 - 助教备注 - 按时间倒序 #### 接口 N:备注列表 ```json { "code": 0, "data": { "tabs": [ { "type": "customer", "count": 12, "notes": [ { "noteId": "n_001", "entityType": "customer", "entityId": "c_001", "entityName": "王先生", "content": "客户今天表示下周有朋友生日聚会...", "createdAt": "2026-02-27T15:30:00+08:00" } ] }, { "type": "coach", "count": 8, "notes": [] } ] } } ``` ### 页面模板可维护 - Tab 标题文案 - 备注卡片样式 - 标签颜色映射 --- ## 4.12 助手对话 `chat` 与对话记录 `chat-history` ### 需要区分两层数据 #### A. 对话会话列表 #### B. 某个会话中的消息流 ### 接口 O1:会话列表 ```json { "code": 0, "data": { "sessions": [ { "sessionId": "cs_001", "title": "如何提升王先生的到店频率?", "updatedAt": "2026-03-01T10:20:00+08:00", "messageCount": 8, "sourceType": "task", "sourceId": "t_001", "sourceSummary": "任务 - 高优先召回" } ] } } ``` ### 接口 O2:会话详情 / 消息流 ```json { "code": 0, "data": { "session": { "sessionId": "cs_001", "title": "如何提升王先生的到店频率?", "sourceType": "task", "sourceId": "t_001", "quoteCard": { "title": "任务 - 高优先召回", "summary": "王先生 · 最近到店15天前 · VIP客户" } }, "messages": [ { "messageId": "m_001", "role": "user", "content": "如何提升这位客户的到店频率?", "createdAt": "2026-03-01T10:20:00+08:00" }, { "messageId": "m_002", "role": "assistant", "content": "根据王先生的消费数据分析,我有以下建议...", "createdAt": "2026-03-01T10:20:03+08:00", "actions": [ { "type": "copy", "label": "复制" } ] } ] } } ``` ### 接口 O3:发送消息 ```json { "sessionId": "cs_001", "content": "输入消息..." } ``` ### 模板可维护 - 聊天气泡左右布局 - 用户/助手样式映射 - 输入栏样式 - 语音按钮是否展示(如无真实语音能力,可先前端占位) --- ## 4.13 业绩详情 `performance` ### 原型可见 - 本月预计收入 - 上月收入 - 当前档位 - 基础课到手时薪 - 激励课到手时薪 - 下一阶段 - 可能还包括新客户/老客户分段明细、本月/上月记录展开 #### 接口 P:业绩详情 ```json { "code": 0, "data": { "coach": { "coachId": "coach_001", "name": "小燕", "roleName": "助教", "siteName": "广州朗朗桌球" }, "incomeSummary": { "forecastIncome": 6206, "lastMonthIncome": 16880 }, "tier": { "currentLevelLabel": "当前档位", "baseHourRate": 80, "incentiveHourRate": 95, "nextLevelLabel": "下一阶段", "nextBaseHourRate": 90, "nextThresholdHour": 100, "currentHour": 87.5 }, "sections": { "newCustomer": { "summary": {}, "items": [] }, "regularCustomer": { "summary": {}, "items": [] }, "thisMonthRecords": { "items": [] }, "lastMonthRecords": { "items": [] } } } } ``` --- ## 4.14 业绩明细 `performance-records` ### 原型可见 - 月份 - 总记录笔数 - 总业绩时长 - 折算前 - 预估收入 - 每笔记录:客户、时间、时长、预估收入 #### 接口 Q:业绩明细列表 ```json { "code": 0, "data": { "coach": { "coachId": "coach_001", "name": "小燕", "levelName": "星级", "siteName": "球会名称店" }, "month": "2026-02", "summary": { "recordCount": 32, "perfHour": 59.0, "rawHour": 60.5, "forecastIncome": 4720 }, "records": [ { "recordId": "pr_001", "date": "2026-02-07", "customerName": "王先生", "timeRange": "20:00-22:30", "durationHour": 2.5, "forecastIncome": 210, "projectName": "中八陪练", "isEstimated": true } ], "monthOptions": ["2026-01", "2026-02"] } } ``` --- ## 4.15 财务看板 `board-finance` 这是最复杂的数据页之一。 ### 原型可见 - 一级 tab:财务 / 客户 / 助教 - 二级筛选:时间、区域、是否环比 - 多个 section: - 经营一览 - 预收资产 - 收入 - 其他财务块 - section 导航 - 粘性头部 - 比较值 - 提示弹窗 ### 后端建议 #### 接口 R:财务看板聚合查询 **请求** ```json { "timeRange": "current_month", "areaCode": "all", "compareEnabled": true } ``` **响应** ```json { "code": 0, "data": { "filters": { "timeRange": "current_month", "areaCode": "all", "compareEnabled": true }, "overview": { "revenueAmount": 128000, "revenueCompare": 0.12, "customerCount": 860, "customerCompare": 0.05, "visitCount": 1260, "visitCompare": -0.03 }, "prepaidAssets": { "balanceAmount": 560000, "newRechargeAmount": 88000, "consumeAmount": 42000, "refundAmount": 3200 }, "incomeSections": [ { "sectionId": "overview", "sectionTitle": "经营一览", "sectionDesc": "本月核心经营指标", "sectionEmoji": "📈", "cards": [ { "metricCode": "revenue", "metricName": "营业收入", "value": 128000, "unit": "元", "compareValue": 0.12 } ] } ], "availableTimeRanges": [ { "code": "current_month", "name": "本月" }, { "code": "last_month", "name": "上月" }, { "code": "current_week", "name": "本周" } ], "availableAreas": [ { "code": "all", "name": "全部区域" }, { "code": "hall", "name": "大厅" }, { "code": "a_zone", "name": "A区" } ] } } ``` ### 说明 - **所有统计卡和 section 数据必须后端返回。** - 前端不应计算环比、同比,只负责展示。 - 提示弹窗内容如果是规则说明,可前端枚举;如果是后台运营配置,可后端返回。 --- ## 4.16 客户看板 `board-customer` ### 原型可见 - 排序/维度筛选 - 项目筛选 - 时间筛选 - 客户 TOP100 - 多个维度榜单:最应召回、最大消费潜力、最高余额、最近充值、最近到店等 #### 接口 S:客户看板榜单 **请求** ```json { "dimension": "recall_priority", "projectCode": "all", "timeRange": "last_60_days", "pageNo": 1, "pageSize": 100 } ``` **响应** ```json { "code": 0, "data": { "dimension": "recall_priority", "projectCode": "all", "timeRange": "last_60_days", "total": 100, "list": [ { "customerId": "c_001", "name": "王先生", "memberLevel": "vip", "balanceAmount": 8600, "consumePotentialScore": 95, "lastVisitDays": 15, "recentRechargeAt": "2026-02-20T12:00:00+08:00", "projectPreference": "中八", "exclusiveScore60d": 0.82, "frequentScore60d": 0.91, "mainTags": ["夜场偏好", "高价值"] } ] } } ``` ### 前端模板可维护 - 榜单卡片样式 - 维度图标与说明 - 维度值的视觉突出方式 --- ## 4.17 助教看板 `board-coach` ### 原型可见 - 排序维度 - 擅长项目 - 时间范围 - 助教榜单 - 每个榜单卡片显示: - 姓名 - 星级 - 擅长项目 - 定档 / 折前 - 代表客户 - 距升档小时数 #### 接口 T:助教看板榜单 **请求** ```json { "sortBy": "perf_high", "skillCode": "all", "timeRange": "current_month", "pageNo": 1, "pageSize": 100 } ``` **响应** ```json { "code": 0, "data": { "sortBy": "perf_high", "skillCode": "all", "timeRange": "current_month", "list": [ { "coachId": "coach_001", "name": "小燕", "level": "star", "skills": ["中八", "斯诺克"], "perfHour": 86.2, "rawHour": 92.0, "representCustomers": ["王先生", "李女士", "赵总"], "upgradeRemainHour": 13.8, "salaryAmount": 6950, "customerBalanceAmount": 86200, "finishedTaskCount": 21 } ] } } ``` --- ## 5. 通用备注 / 操作类接口 ## 5.1 备注对象模型 `Note` ```json { "noteId": "n_001", "entityType": "task", "entityId": "t_001", "entityName": "王先生", "content": "客户月底来店。", "ratings": { "intention": 4, "relation": 5, "service": 4 }, "createdBy": { "userId": "u_1001", "name": "小燕" }, "createdAt": "2026-02-27T18:30:00+08:00", "updatedAt": "2026-02-27T18:30:00+08:00" } ``` ## 5.2 通用操作建议 - 置顶任务 - 放弃任务 - 新增备注 - 删除备注 - 修改默认首页 - 发送 AI 消息 都建议走单独写接口,而不是塞进一个大而全的“页面保存接口”。 --- ## 6. 页面里哪些值建议写死,哪些不能写死 ## 6.1 可以写死 - 页面标题 - 固定空状态文案 - AI 图标视觉资源 - badge 颜色映射 - section emoji - “查看详情 / 取消 / 保存备注 / 复制”这类通用文案 ## 6.2 不能写死 - 用户姓名、头像、身份、门店 - 客户姓名、手机号、余额、最近到店 - 助教绩效、工资、客户数 - 任务类型、任务状态、放弃原因 - 看板所有统计值、趋势值、榜单排序结果 - AI 话术正文 - 会话记录 - 备注正文 - 月份可选范围 - 管理员信息 - 权限状态 --- ## 7. Mock 数据组织建议 ## 7.1 建议目录 ```text mock/ auth/ login.json permission-status.json user/ profile.json settings.json task/ list.json detail-high-priority.json detail-priority.json detail-callback.json detail-relationship.json customer/ detail.json service-records-2026-02.json coach/ detail.json performance.json performance-records-2026-02.json note/ list.json chat/ sessions.json session-detail.json board/ finance-current-month.json customer-recall-priority.json coach-perf-high.json ``` ## 7.2 Mock 规则 - 所有金额统一返回 number,不带 `¥` - 所有比率统一返回 number,不带 `%` - 所有时间统一返回 ISO 8601 字符串 - 所有状态统一返回 code,不直接返回样式 - 所有列表都返回 `total/pageNo/pageSize/list` - 所有详情都返回固定对象结构,不随页面版本频繁变化 --- ## 8. 最终接口分组建议 ## 8.1 认证与权限 - `POST /auth/login` - `GET /auth/permission-status` - `POST /auth/apply` - `POST /auth/logout` ## 8.2 用户与设置 - `GET /user/profile` - `GET /user/settings` - `POST /user/settings/default-home` ## 8.3 任务 - `GET /task/list` - `GET /task/detail` - `POST /task/pin` - `POST /task/abandon` - `POST /task/note` - `DELETE /task/note` ## 8.4 客户 - `GET /customer/detail` - `GET /customer/service-records` ## 8.5 助教与业绩 - `GET /coach/detail` - `GET /coach/performance` - `GET /coach/performance-records` ## 8.6 备注 - `GET /note/list` ## 8.7 AI 会话 - `GET /chat/sessions` - `GET /chat/session-detail` - `POST /chat/send` ## 8.8 看板 - `GET /board/finance` - `GET /board/customer-ranking` - `GET /board/coach-ranking` --- ## 9. 结论 1. **原型中的绝大多数业务内容都应视为后端数据,不应写死到模板。** 2. **真正适合写死的是页面外壳、样式映射、空态文案和按钮文案。** 3. **对前端最重要的不是接口数量少,而是字段结构稳定。** 4. **建议尽早统一 code/enum 体系,否则后续页面会出现同义字段多版本并存。** 5. **Mock 阶段就应按真实接口结构组织 JSON,避免后续全量返工。** --- ## 10. 建议优先落地的接口顺序 ### P0 1. 登录 / 权限状态 2. 当前用户信息 3. 任务列表 4. 任务详情 5. 备注新增/删除 6. 放弃任务 7. AI 会话列表 / 会话详情 / 发消息 ### P1 1. 客户详情 2. 助教详情 3. 业绩详情 4. 业绩明细 5. 服务记录 ### P2 1. 财务看板 2. 客户看板 3. 助教看板