## 接口梳理(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. 自测与联调,完成交付