Files
fitness-coach/miniprogram/README.md
wm 70ff806042 feat: 小程序连接服务器IP + 同步未提交开发
- miniprogram/config.js: BASE_URL 指向 http://192.227.237.8:3001
- 动作标题中文化(nameZh),搜索匹配 name/nameZh/nameEn
- 新增计划/收藏/我的 等页面与组件
- 后端 Docker 化(Dockerfile/.dockerignore)与翻译脚本
- .gitignore 补充 .DS_Store
2026-07-22 14:05:30 +08:00

61 lines
3.9 KiB
Markdown
Raw Permalink 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.

# FITCOACH 微信小程序(前端)
高端暗金风格dark luxe的健身动作推荐小程序。所有数据来自 NestJS 后端 API。
## 设计系统
设计令牌定义在 `app.wxss``page` 选择器CSS 变量):
- 背景 `#0E1110`、表面 `#171C19`、金 `#D9B36C`、次强调 `#58C9B9`
- 圆角 `--radius:28rpx`、发丝分隔线 `--line`、阴影 `--shadow`
- 图标统一使用 **emoji + CSS 渐变**(不依赖二进制图片资源)
## 配置
打开 `config.js`
```js
module.exports = { BASE_URL: 'http://localhost:3000' };
```
- 本地调试:填写电脑局域网 IP`http://192.168.1.10:3000`
- 真机/发布:**必须**改为 HTTPS 且已在小程序后台配置为 request 合法域名
## 运行
1. 微信开发者工具 → 导入项目 → 选择本目录AppID 可用测试号)
2. 本地调试可在「详情 → 本地设置」勾选「不校验合法域名、TLS 版本以及 HTTPS 证书」
3. 编译预览
## 页面
| 页面 | 文件 | 说明 |
|------|------|------|
| 首页 | `pages/index` | Hero + 快捷入口 + 精选轮播 + 官方计划分级入口 + 按部位/器械浏览 |
| 分类浏览 | `pages/category` | 按 dimension(bodyPart/equipment/target/type/muscleGroup) 筛选列表 |
| 智能推荐 | `pages/recommend` | 选目标肌群(按部位分组)+ 可选器械 → 评分排序结果 |
| 动作详情 | `pages/detail` | GIF + 中文步骤 + 主要/协同肌群 + 收藏按钮 + 加入计划 + 相关推荐 + 分享 |
| 官方计划 | `pages/collection` | 按水平分级(新手/进阶/高级/全阶段)的官方推荐计划列表 |
| 计划详情 | `pages/collection-detail` | 官方计划动作列表 + 收藏/一键导入我的计划 |
| 搜索 | `pages/search` | 模糊搜索;`mode=select` 时用于向计划添加动作 |
| **我的** | `pages/profile` | 个人中心:登录态、资料编辑、收藏/计划统计、菜单入口 |
| **收藏动作** | `pages/favorites` | 我收藏的动作,可管理移除 |
| **我的计划** | `pages/my-plans` | 计划列表,新建/进入 |
| **编辑计划** | `pages/plan-edit` | 新建/编辑计划(名称/描述/图标/主题色) |
| **计划详情** | `pages/plan-detail` | 我的计划动作管理(增删/编辑/删除) |
| **收藏计划** | `pages/plan-favorites` | 我收藏的官方计划 |
## 用户体系
- **登录**`utils/auth.js` 封装 `wx.login → POST /api/auth/login`;后端未配 `WX_APPID` 时走开发降级(任意 code 建号)。登录态存于 `wx.storage``access_token`/`openid`/`user_profile`)。
- **自动重登**`utils/request.js` 在收到 401 时调用注册的 `unauthorizedHandler` 重新登录并重试一次原请求,页面无需感知。
- **个人中心** `pages/profile`:未登录显示登录卡片;已登录显示头像/昵称/统计/菜单,支持改昵称与 emoji 头像、退出登录。
- **收藏**:动作收藏(详情页心形)、官方计划收藏(计划详情页)。
- **计划**:可新建/编辑计划、向计划添加或移除动作(搜索页 `select` 模式)、从官方计划一键导入为个人副本。
## 组件
`exercise-card`(动作卡)、`section-header`(分区标题)、`chip`(筛选标签)、
`navbar`(自定义导航栏,处理状态栏高度)、`bottom-nav`(底部导航:首页/分类/我的)、
`level-tag`(难度等级标签)、`avatar`emoji 头像)、`plan-card`(计划卡)。
## 接口映射
- `services/exercise.js`:列表/详情/分类/推荐/官方计划/搜索/统计。
- `services/user.js``services/favorite.js``services/plan.js`:用户资料、收藏、计划,字段与后端响应一一对应。
## 注意事项
- 小程序 `<image>` 支持 GIF动作演示直接使用 `gifUrl`
- 所有请求经 `utils/request.js` 单点封装,自动带 `Authorization` 头、失败统一 toast。
- 包体保持精简:主包仅含页面与组件,无大体积本地资源。