| # | 端 | 页面/路由 | 依赖端点(后端在线) | 登录态 | 真后端 | 异常态 | 判定 |
| 1 | A | Login /login | POST /auth/password-login + GET /identity 校验 is_admin | service 显式带 token 拉 identity;成功落 session | password-login 422(空参)/identity 401 实测;端点在 | 401 密码错/403 非管理员/400 未设密码三分支 + busy 防重入 + 11 位手机号校验 | ✅ |
| 2 | B | Login /login | POST /auth/password-login;staging dev:POST /auth/login | 成功 finishLogin 落 token | 422/400 实测(非 404);端点在 | ok/token 防御、403 无员工/商户身份提示、网络错误、空值校验、catch | ✅ |
| 3 | B | Bills /bills | GET /workbench/bills、GET /{id} | 经基座(get_current_user) | 401 实测、路由 miniapp_bills.py:82/127 | 列表/详情 catch + 错误态;空列表 | ✅(只读)·涉钱写降级 |
| 4 | B | Orders /orders | GET /merchant-console/orders、GET /orders/pending-confirm、POST /{id}/merchant-confirm、POST /{id}/merchant-reject | 经基座 | 列表+待接单 401 实测;265/344 路由在 | 双 Tab 各自 catch/errorMsg、空态、双包解包(code/ok)、409 detail 直显、4 处 catch | ✅ |
| 5 | B | PaymentSettings /payment-settings | GET /merchant-console/payment-mode、PUT 同路径 | 经基座 | 401 实测;129/152 路由在 | 400/403/404/409 detail 全分支、busy 防重入(saving/loading/loadError/未变更拦截)、网络 catch、留痕诚实只显计数 | ✅ |
| 6 | B | Redeem /redeem | POST /workbench/redeem/scan、/arrival、/confirm | 经基座(登录页) | scan 401 实测;121/229/320 路由在 | scan/arrival/confirm 3 catch;arrival 409/alreadyArrived detail 直显不阻断;状态机门禁 | ✅ |
| 7 | B | RedeemConfirm /redeem-confirm/:code | 同上 scan/arrival/confirm | 公开直达:基座豁免 reload;401 页面识别「登录」文案→「需商户/员工身份」 | scan 401 响应体 {detail:"未登录"} 实测 | 4 catch(最多);401 友好态、网络错误、loading/finally | ✅ |