You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
4.2 KiB

1 month ago
# S-lake高校雷达网 · 微信小程序
基于 **UniApp + Vue3 + TypeScript + Pinia + uview-plus** 搭建UI 对齐 `slake-school-service/public/slake/frontend/mobile-html` 原型。
## 开发
```bash
cd code/slake-school-wx
npm install
npm run dev:mp-weixin # 微信小程序
npm run dev:h5 # H5 浏览器调试(推荐本地联调)
```
微信开发者工具导入目录:`code/slake-school-wx/dist/dev/mp-weixin`
## 本地 H5 浏览器调试(调用真实 API
后端需先启动:
```bash
cd code/slake-school-service
php artisan serve # http://127.0.0.1:8000
```
确保 `.env``APP_ENV=local`(启用开发登录),并已配置 `WX_APPID` / `WX_SECRET`(小程序端用)。
前端:
```bash
cd code/slake-school-wx
npm run dev:h5 # 默认 http://127.0.0.1:5174
```
3 weeks ago
- H5 请求走 Vite 代理:`/api` → `http://127.0.0.1:8000`(见 `.env.development``VITE_API_PROXY_TARGET`
1 month ago
- API 前缀:`/api/miniapp/v1`(见 `.env.development``VITE_API_BASE`
3 weeks ago
- 本地想用线上 API复制 `.env.development.local.example``.env.development.local` 并取消注释
1 month ago
- **登录**H5 下登录页使用 `POST /auth/dev-login`(无需微信 code微信小程序使用 `POST /auth/wechat-login`
- Token 存储键:`slake_miniapp_token`,后续请求自动带 `Authorization: Bearer`
## 微信小程序联调
1. `npm run dev:mp-weixin`
2. 微信开发者工具导入 `dist/dev/mp-weixin`
3. 勾选「不校验合法域名、web-view、TLS 版本」
3 weeks ago
4. 开发包 API 直连 `VITE_MP_API_BASE`(默认 `http://127.0.0.1:8000/api/miniapp/v1`
5. 正式包(`npm run build:mp-weixin`)使用线上 `https://slake.ali251.langye.net/api/miniapp/v1`(见 `.env.production`
6. 发布前在微信公众平台配置 request 合法域名:`slake.ali251.langye.net`(须 HTTPS开发阶段可勾选「不校验合法域名」
1 week ago
7. **高校雷达网 web-view** 还须配置 **业务域名**(与 request 域名分开配置):
- 登录 [微信公众平台](https://mp.weixin.qq.com/) → 开发 → 开发管理 → 开发设置 → **业务域名**
- 添加 `https://slake.ali251.langye.net` 并下载校验文件
- 将校验文件名与内容写入后端 `.env``WECHAT_MP_WEBVIEW_VERIFY_FILE`、`WECHAT_MP_WEBVIEW_VERIFY_CONTENT`(见 `slake-school-service/.env.example`),或把校验文件放到 `slake-school-service/public/` 根目录
- 真机/正式版未配置业务域名时web-view 会提示「请在反馈与投诉中联系开发者」
8. 可选:在 `.env.production` 设置 `VITE_MP_RADAR_PAGE_BASE=https://slake.ali251.langye.net` 显式指定雷达 H5 域名
3 weeks ago
## API 环境说明
| 场景 | 配置文件 | API 地址 |
|------|----------|----------|
| 本地 H5 开发 | `.env.development` | `/api/miniapp/v1` → 代理到 `127.0.0.1:8000` |
| 本地微信开发 | `.env.development` | `http://127.0.0.1:8000/api/miniapp/v1` |
| 本地调试线上 | `.env.development.local` | `https://slake.ali251.langye.net/api/miniapp/v1` |
| 生产构建 | `.env.production` | `https://slake.ali251.langye.net/api/miniapp/v1` |
1 month ago
## 当前阶段
- ✅ TabBar 五页与子页面 UI 已还原
- ✅ 已接入后端 `/api/miniapp/v1` 真实接口(列表、详情、报名、我的、日历、需求、签到等)
- ✅ TabBar 图标、首页快捷入口 SVG、课程列表样式已按原型适配
- `src/mock/data.ts` 保留作参考,页面已不再引用
## 目录说明
| 路径 | 说明 |
| --- | --- |
| `src/pages/` | TabBar 主包页面 |
| `src/subpkg/` | 详情、日历、登录、资料、需求等分包 |
| `src/components/` | 公共组件(字典 Tab、报名弹窗等 |
| `src/api/` | 后端 API 封装 |
| `src/utils/request.ts` | 请求层Bearer Token |
| `src/utils/adapters.ts` | API 数据 → UI 模型适配 |
| `src/styles/` | 公共样式 |
## 视觉规范
- 主色:`#b11e23`
- 未开始:`#1d64d8` · 进行中:`#16834a` · 已结束:`#9aa3b2`
- 字号/间距按 `mobile-html` 原型430px 宽)换算:`src/styles/tokens.scss` 中 `pr(px)` → rpx
详细方案见 `slake-school-service/docs/小程序UniApp开发方案.md`
本地环境见 `slake-school-service/docs/本地环境说明.md` §9。