# reviewing 页面数据来源排查

> 排查日期：2026-03-18
> 页面路径：pages/reviewing/reviewing

## 概览

| 分类 | 数量 | 说明 |
|------|------|------|
| Mock 数据 | 0 | 无 mock 引用 |
| 硬编码数据 | 5 | 状态跳转路径、Storage key、Toast 文案等 |
| 已对接 API | 1 | `GET /api/xcx/me` |
| 前端计算/派生 | 3 | 状态栏高度、状态条件分支、application 提取 |
| 路由参数 | 0 | 无 |
| WXML 硬编码文案 | 12 | 标题、提示语、标签等 |

## 一、Mock 数据

无。本页面未引用 `mock-data.ts`，所有数据均来自 API。

## 二、硬编码数据

| # | 文件 | 行号 | 内容 | 风险等级 | 说明 |
|---|------|------|------|----------|------|
| 1 | `.ts` | L39 | `url: "/api/xcx/me"` | 🟢 低 | API 端点路径，通常不变 |
| 2 | `.ts` | L55 | `url: "/pages/mvp/mvp"` | 🟢 低 | approved 状态跳转路径 |
| 3 | `.ts` | L61 | `url: "/pages/no-permission/no-permission"` | 🟢 低 | disabled 状态跳转路径 |
| 4 | `.ts` | L67 | `url: "/pages/no-permission/no-permission"` | 🟢 低 | rejected 状态跳转路径 |
| 5 | `.ts` | L73 | `url: "/pages/apply/apply"` | 🟢 低 | new 状态跳转路径 |
| 6 | `.ts` | L82 | `title: "获取状态失败"` | 🟡 中 | Toast 错误提示文案，建议抽取为常量 |
| 7 | `.ts` | L86–93 | Storage key: `"token"`, `"refreshToken"`, `"userId"`, `"userStatus"` | 🟡 中 | 多处重复使用，建议抽取为常量统一管理 |
| 8 | `.ts` | L94 | `url: "/pages/login/login"` | 🟢 低 | 切换账号跳转路径 |

## 三、已对接 API

### 3.1 `GET /api/xcx/me`

| 属性 | 值 |
|------|-----|
| 调用位置 | `fetchStatus()` — L37-81 |
| 触发时机 | `onLoad()`、`onShow()`、`onPullDownRefresh()` |
| 请求方式 | `GET` |
| 需要鉴权 | ✅ `needAuth: true` |
| 请求参数 | 无 |
| 响应字段（使用中） | `user_id`, `status`, `nickname`, `latest_application` |
| 响应字段（application 子对象） | `id`, `site_code`, `role_type`, `phone`, `status`, `reject_reason`, `created_at` |

**状态流转逻辑：**

| `data.status` 值 | 行为 |
|-------------------|------|
| `"approved"` | `wx.reLaunch` → `/pages/mvp/mvp` |
| `"disabled"` | `wx.reLaunch` → `/pages/no-permission/no-permission` |
| `"rejected"` | `wx.reLaunch` → `/pages/no-permission/no-permission` |
| `"new"` | `wx.reLaunch` → `/pages/apply/apply` |
| `"pending"` | 留在当前页，展示审核中 UI |

**副作用：**
- 同步 `globalData.authUser`（`userId`, `status`, `nickname`）
- 写入 Storage：`userId`, `userStatus`

## 四、前端计算/派生数据

| # | 数据 | 来源 | 说明 |
|---|------|------|------|
| 1 | `statusBarHeight` | `wx.getWindowInfo().statusBarHeight` | 系统 API，用于自定义导航栏顶部偏移 |
| 2 | `status` | 从 API 响应 `data.status` 赋值 | 控制 pending/rejected 两种 UI 状态 |
| 3 | `application` | 从 API 响应 `data.latest_application` 提取 | 展示申请信息摘要（球房ID、身份、手机号） |

## 五、路由参数

无。本页面不接收任何路由参数。

## 六、WXML 硬编码文案

| # | 内容 | 位置 | 建议 |
|---|------|------|------|
| 1 | `"加载中..."` | loading 区域 | 可保留 |
| 2 | `"申请审核中"` | main-title（pending） | 可保留 |
| 3 | `"申请未通过"` | main-title（rejected） | 可保留 |
| 4 | `"您的访问申请已提交成功，正在等待管理员审核，请耐心等待"` | sub-title（pending） | 可保留 |
| 5 | `"很抱歉，您的申请未通过审核"` | sub-title（rejected） | 可保留 |
| 6 | `"审核进度"` | progress-title | 可保留 |
| 7 | `"通常需要 1-3 个工作日"` | progress-desc | 🟡 如审核时效变化需同步修改 |
| 8 | `"已提交"` / `"审核中"` / `"通过"` | 进度步骤标签 | 可保留 |
| 9 | `"拒绝原因"` | reject-title | 可保留 |
| 10 | `"申请信息"` | info-card-title | 可保留 |
| 11 | `"球房ID"` / `"申请身份"` / `"手机号"` | info-label | 可保留 |
| 12 | `"如有疑问，请联系管理员"` | contact-text | 可保留 |
| 13 | `"更换登录账号"` | switch-btn-text | 可保留 |

## 七、联调 TODO

| # | 优先级 | 事项 | 当前状态 | 说明 |
|---|--------|------|----------|------|
| 1 | — | — | — | 本页面已完成 API 对接，无待联调项 |

**结论：** reviewing 页面已完全对接 `GET /api/xcx/me`，无 mock 数据残留，联调状态良好。唯一建议是将 Storage key 和 Toast 文案抽取为常量统一管理。
