4.2 KiB
4.2 KiB
my-profile 页面数据来源排查
排查日期:2026-03-18 页面路径:pages/my-profile/my-profile
概览
| 分类 | 数量 | 说明 |
|---|---|---|
| Mock 数据 | 1 | mockUserProfile — 用户信息全量 mock |
| 硬编码数据 | 5 | 路由映射、弹窗文案、菜单 key 等 |
| 已对接 API | 0 | ⚠️ 无任何 API 调用 |
| 前端计算/派生 | 1 | TabBar 选中态同步 |
| 路由参数 | 0 | 无 |
| WXML 硬编码文案 | 5 | 菜单文字、弹窗文案 |
一、Mock 数据
1.1 mockUserProfile(🔴 高风险 — 页面核心数据全量 mock)
| 属性 | 值 |
|---|---|
| 来源文件 | utils/mock-data.ts |
| 导入方式 | import { mockUserProfile } from '../../utils/mock-data' |
| 赋值位置 | data.userInfo = mockUserProfile(页面初始化) |
| 类型定义 | UserProfile { name, avatar, role, storeName } |
Mock 值:
| 字段 | Mock 值 | 联调后应来自 |
|---|---|---|
name |
'小燕' |
API — 用户昵称 |
avatar |
'/assets/images/avatar-coach.png' |
API — 用户头像 URL |
role |
'助教' |
API — 用户角色 |
storeName |
'朗朗桌球' |
API — 所属门店名称 |
影响范围: 用户信息卡片区域(头像、姓名、角色标签、门店名)全部依赖此 mock。
二、硬编码数据
| # | 文件 | 位置 | 内容 | 风险等级 | 说明 |
|---|---|---|---|---|---|
| 1 | router.ts |
MENU_ROUTE_MAP | 'chat-history' → '/pages/chat-history/chat-history' |
🟢 低 | 菜单路由映射 |
| 2 | router.ts |
MENU_ROUTE_MAP | 'notes' → '/pages/notes/notes' |
🟢 低 | 菜单路由映射 |
| 3 | router.ts |
MENU_ROUTE_MAP | 'settings' → ''(空字符串) |
🟡 中 | 设置页未实现,点击无响应 |
| 4 | .ts |
onLogout() |
title: '确认退出', content: '确认退出当前账号吗?' |
🟢 低 | 弹窗文案 |
| 5 | .ts |
onLogout() |
confirmColor: '#e34d59' |
🟢 低 | 确认按钮颜色 |
| 6 | .ts |
onLogout() |
url: '/pages/login/login' |
🟢 低 | 退出后跳转路径 |
三、已对接 API
⚠️ 无。 本页面当前未调用任何 API。
代码中有两处 TODO 注释明确标注:
.tsL4:// TODO: 联调时替换为真实 API 获取用户信息.tsL11:// TODO: 联调时在此刷新用户信息
预期对接 API:
| 端点(推测) | 用途 | 替换目标 |
|---|---|---|
GET /api/xcx/me 或专用 profile 接口 |
获取当前用户信息 | mockUserProfile |
四、前端计算/派生数据
| # | 数据 | 来源 | 说明 |
|---|---|---|---|
| 1 | TabBar active: 'my' |
this.getTabBar().setData() |
onShow 时同步 custom-tab-bar 选中态 |
| 2 | route |
getMenuRoute(key) 纯函数 |
从 MENU_ROUTE_MAP 查找菜单 key 对应的页面路径 |
五、路由参数
无。本页面为 TabBar 页面,不接收路由参数。
六、WXML 硬编码文案
| # | 内容 | 位置 | 建议 |
|---|---|---|---|
| 1 | "备注记录" |
menu-text | 可保留 |
| 2 | "助手对话记录" |
menu-text | 可保留 |
| 3 | "退出账号" |
menu-text | 可保留 |
| 4 | 菜单图标路径 /assets/icons/menu-notes.svg 等 |
menu-icon image src | 🟢 低,静态资源 |
| 5 | visible="{{true}}" |
ai-float-button | 🟢 低,控制 AI 按钮显示 |
七、联调 TODO
| # | 优先级 | 事项 | 当前状态 | 说明 |
|---|---|---|---|---|
| 1 | 🔴 P0 | 替换 mockUserProfile 为真实 API 数据 |
未开始 | 页面核心数据全量 mock,需对接用户信息接口 |
| 2 | 🟡 P1 | onShow 中添加 API 刷新逻辑 |
未开始 | 确保每次进入页面获取最新用户信息 |
| 3 | 🟡 P1 | 确认用户信息接口字段映射 | 未开始 | name/avatar/role/storeName 需与后端字段对齐 |
| 4 | 🟢 P2 | 移除 mock-data.ts 中 mockUserProfile 的导入 |
未开始 | API 对接完成后清理 |
结论: my-profile 页面当前处于纯 mock 状态,用户信息卡片(姓名、头像、角色、门店)全部来自硬编码 mock 数据,是联调优先级最高的待办项。菜单跳转和退出登录逻辑已实现,无需额外对接。