页面名:login(登录页)
PRD 参考:apps/miniprogram/doc/prd.md 第七节 7.1;P3 认证系统
已实现:是(apps/miniprogram/miniprogram/pages/login/)
页面说明
微信授权登录入口页。用户需勾选协议后才能点击登录按钮。登录后根据用户状态跳转到不同页面。
视觉元素(忠于原型 HTML)
- 顶部 Logo:台球图标 SVG(需转为图片资源
/assets/icons/logo-billiard.svg)
- 应用名称文字
- 微信登录按钮:渐变背景,含微信图标 SVG
- 底部协议勾选区域:勾选框 + 协议链接文字
状态变量
| 变量名 |
类型 |
初始值 |
说明 |
| agreed |
boolean |
false |
协议勾选状态 |
| loading |
boolean |
false |
登录请求中 |
用户操作 → 响应
| 操作 |
触发条件 |
响应行为 |
目标状态 |
| 点击协议勾选框 |
无 |
切换 agreed |
agreed=!agreed |
| 点击"使用微信登录" |
agreed=true |
调用 wx.login() 获取 code → POST /api/xcx-auth/login |
loading=true |
| 点击"使用微信登录" |
agreed=false |
无响应(按钮禁用态) |
不变 |
| 登录成功(status=new) |
API 返回 |
跳转 apply 页面 |
redirectTo apply |
| 登录成功(status=pending) |
API 返回 |
跳转 reviewing 页面 |
redirectTo reviewing |
| 登录成功(status=approved) |
API 返回 |
跳转默认首页(task-list 或 board-finance) |
switchTab |
| 登录成功(status=rejected) |
API 返回 |
跳转 no-permission 页面 |
redirectTo no-permission |
| 登录成功(status=disabled) |
API 返回 |
跳转 no-permission 页面 |
redirectTo no-permission |
| 登录失败 |
API 报错 |
Toast 提示错误信息 |
loading=false |
页面状态枚举
| 状态名 |
视觉表现 |
触发条件 |
| 默认态 |
按钮灰色禁用,协议未勾选 |
agreed=false |
| 可登录态 |
按钮蓝色渐变+阴影,协议已勾选 |
agreed=true |
| 加载中 |
按钮显示 loading 动画 |
loading=true |
后端 API 依赖
| API |
方法 |
说明 |
/api/xcx-auth/login |
POST |
微信登录(code → JWT + user_status) |
页面导航
- 来源:小程序启动 / 退出账号后 / reviewing/no-permission 点击"更换登录账号"
- 去向:apply / reviewing / no-permission / task-list / board-finance
全局组件