# 变更审计记录：修复小程序登录落地页跳转失效

| 字段 | 值 |
|------|-----|
| 日期 | 2026-03-28 02:03:11 |
| Prompt-ID | P20260328-015747 |
| Session-ID | 6ff7eb14 |
| Session 路径 | docs/audit/session_logs/2026-03/28/06_a6c60b56_011950 |

## 操作摘要

修复小程序登录后按角色跳转默认落地页失效的 bug。2026-03-27 权限改造（W1-W5）将 auth-guard.ts 从角色硬编码改为权限码驱动，但 login.ts 未同步更新，导致所有角色登录后都跳转到 my-profile。

## 根因分析

1. `syncVisibleTabs(role)` 改造后变成空操作（noop），登录后 tab 可见性未设置
2. `getRoleHome(role)` 内部改为读 `globalData.permissions`，但 `/api/xcx/login` 不返回 permissions（只有 `/api/xcx/me` 返回），导致 permissions 为空数组，所有角色都跳到 my-profile

## 修复方案

- approved 用户登录成功后，先请求 `/api/xcx/me` 获取 permissions
- 用 `syncPermissions(permissions)` 设置 tab 可见性
- 用 `getPermissionHome(permissions)` 计算正确的落地页
- `/me` 请求失败时降级到 my-profile，后续 app.ts 的 checkAuthStatus 会补偿

## 风险评估

- 新增一次 `/api/xcx/me` 请求，登录流程多一个网络往返（约 100-200ms）
- `/me` 失败时降级到 my-profile 而非卡住，可接受

## 验证矩阵

| 角色 | 预期落地页 | 权限码依据 |
|------|-----------|-----------|
| coach | task-list | view_tasks |
| staff | board-finance 或 board-customer | 看板权限 |
| manager | board-finance | 全部权限，finance 优先级最高 |
| 无角色 approved | my-profile | 无权限码 |

## 本次对话文件变更

### 新增文件
- `docs/audit/prompt_logs/prompt_log_20260328_015747.md`
- `docs/audit/session_logs/2026-03/28/06_a6c60b56_011950/main_01_6ff7eb14.md`
- `docs/audit/session_logs/2026-03/28/07_ac77697e_015550/main_01_77f49184.md`

### 删除文件
- `docs/audit/session_logs/2026-03/28/06_a6c60b56_011950/main_01_aeb580f4.md`

## 改动注解

### `apps/miniprogram/miniprogram/pages/login/login.ts`
- 变更类型：修改（bug 修复）
- 原始原因：2026-03-27 权限改造将 auth-guard.ts 从角色硬编码改为权限码驱动，但 login.ts 的登录成功跳转逻辑未同步更新，导致所有角色登录后都跳到 my-profile
- 思路分析：登录接口 `/api/xcx/login` 不返回 permissions 字段（只有 `/api/xcx/me` 返回），因此在 approved 分支中新增一次 `/me` 请求获取权限码。选择 try-catch 包裹并降级到 my-profile，而非阻塞登录流程，因为 app.ts 的 `checkAuthStatus` 会在后续页面 onShow 时补偿。import 从 `getRoleHome, syncVisibleTabs` 改为 `syncPermissions, getPermissionHome`，与 auth-guard.ts 的新 API 对齐
- 修改结果：登录后正确按权限码跳转到对应落地页（coach→task-list, staff→board, manager→board-finance）。新增约 100-200ms 网络延迟（一次额外 /me 请求）。AI_CHANGELOG 已同步更新

## DDL/迁移检查

- 无新增迁移 SQL

## 文档同步状态

- ⚠️ `apps/miniprogram/README.md` 需补充权限码驱动登录跳转说明（本次审计中已更新）
