Files
Neo-ZQYY/docs/h5_ui/interactions/login.md

53 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 页面名login登录页
> PRD 参考:`apps/miniprogram/doc/prd.md` 第七节 7.1P3 认证系统
> 已实现:是(`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
## 全局组件
- 无底部 TabBar
- 无 AI 悬浮按钮