46 lines
3.0 KiB
Markdown
46 lines
3.0 KiB
Markdown
## 接口梳理(App 用户相关)
|
||
- 登录与绑定:
|
||
- `POST /api/app/users/weixin/login`,请求含 `code`、`invite_code`;响应含 `token`、`user_id`、`avatar`、`nickname`、`invite_code`(.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md:5-10)
|
||
- `POST /api/app/users/{user_id}/phone/bind`,请求含微信手机号 `code`;响应为标准成功(.trae/documents/基于 Swagger 的 App 用户 API 汇总与 Uni-App 微信登录页面实现方案.md:11-16)
|
||
- 用户资料与地址:
|
||
- `PUT /api/app/users/{user_id}`(修改头像/昵称,`avatar`、`nickname`)(:19-22)
|
||
- 地址列表/新增/删除/设默认(`:23-27`),新增请求含基本地址字段(`:25-27`)
|
||
- 积分与统计:
|
||
- `GET /api/app/users/{user_id}/points/balance` 响应 `balance`(`:31-34`)
|
||
- `GET /api/app/users/{user_id}/stats` 响应 `coupon_count`、`item_card_count`、`points_balance`(`:35-37`)
|
||
- 订单与卡券/道具:
|
||
- 订单列表、优惠券、邀请、道具卡与使用记录(`:40-48`)
|
||
|
||
## 技术方案
|
||
- 网络层:
|
||
- 方案A(推荐)复用 `alova` 客户端与生成器,统一 `Authorization` 与错误处理(`:51`)
|
||
- 方案B 以 `uni.request` 封装最小所需接口(登录/绑定/统计),在请求头注入 `Bearer` token(`:71-72`)
|
||
- 平台与配置:
|
||
- `baseURL` 指向后端 `http://127.0.0.1:9991`;在微信小程序后台配置合法域名与 HTTPS 证书(`:75`)
|
||
- 状态与路由:
|
||
- `pages.json` 添加 `pages/login/index`;登录成功后 `uni.reLaunch` 到首页;用 `pinia` 管理 `isLogin`、`userInfo`、`points`(`:79`)
|
||
- 错误处理:
|
||
- 按既有分类提示与重试策略,覆盖网络错误、超时、404/500、参数错误(`:83`)
|
||
|
||
## 页面实现(Uni-App Vue3)
|
||
- 结构:Logo/说明、`「微信登录」`按钮、`open-type="getPhoneNumber"` 授权按钮、加载与错误提示(`:57-58`)
|
||
- 流程:
|
||
- 触发 `uni.login({ provider: 'weixin' })` 获取 `code` → 调用 `POST /api/app/users/weixin/login` → 持久化 `token`、`user_id`(`:61-62`)
|
||
- 可选手机号绑定:`onGetPhoneNumber` 取 `code` → `POST /api/app/users/{user_id}/phone/bind`(`:63-64`)
|
||
- 登录后拉取统计与积分余额更新首页(`:65-66`)
|
||
|
||
## 交付内容
|
||
- 新增 `pages/login/index.vue`(Composition API)含完整登录/绑定流程与错误提示(`:91-94`)
|
||
- 接入并配置网络层(复用 `alova` 或最小 `uni.request` 封装)
|
||
- 路由与 `pinia` 状态的最小接入
|
||
|
||
## 验证方法
|
||
- 在开发者工具/真机验证:`code` 获取、接口返回、`token/user_id` 存储、后续接口成功(`:87-88`)
|
||
- 输出必要的调试日志(不含敏感信息),观察错误分支与重试入口
|
||
|
||
## 执行步骤
|
||
1. 接入 Swagger JSON(`http://127.0.0.1:9991/swagger/v1/swagger.json`)同步生成或确认接口(`:99-101`)
|
||
2. 选定网络层方案并落地调用
|
||
3. 新增登录页面与交互逻辑
|
||
4. 调整路由与状态管理
|
||
5. 自测与联调,完成交付 |