# 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 注释明确标注: - `.ts` L4: `// TODO: 联调时替换为真实 API 获取用户信息` - `.ts` L11: `// 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 数据,是联调优先级最高的待办项。菜单跳转和退出登录逻辑已实现,无需额外对接。