Files
wxapp-guantong/README.md
T
2026-09-22 22:51:19 +08:00

83 lines
3.1 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.
# Smile First 口腔护理预约小程序
Smile First 是一个微信小程序预约 MVP,覆盖首页、选择项目、选择日期与时间、确认预约、预约成功、我的预约,以及 Go 后端 API。
## 技术栈
- 小程序:原生 WXML / WXSS / JS
- 后端:Go、Fiber、sqlc、Cobra、logrus
- 数据库:SQLite
- 部署:Docker / docker compose
## 本地运行后端
```bash
cp .env.example .env
# 本地开发可使用 GUAHAO_ADMIN_AUTH_MODE=none 直接进入后台
# 生产环境建议使用 GUAHAO_ADMIN_AUTH_MODE=oidc 并填写 OIDC 配置
# 体验版获取手机号还需要填写 GUAHAO_WECHAT_APPID / GUAHAO_WECHAT_SECRET
cd backend
go run ./cmd/smilefirst serve
```
默认监听 `:9800`,启动时会自动应用 schema 并插入默认项目、排期与时段。
管理后台入口:
- 登录页:`http://127.0.0.1:9800/admin/login`
- 默认页:`/admin/price-inquiries`
- 价格咨询派单:`/admin/price-inquiries`,展示授权手机号提交的地区、咨询项目、创建时间和更新时间
后台登录模式、OIDC 配置和微信小程序凭证从本地 `.env` 或运行环境变量读取,真实 `.env` 不提交到代码库:
```env
GUAHAO_ADMIN_AUTH_MODE=none
GUAHAO_ADMIN_SESSION_SECRET=
GUAHAO_ADMIN_PASSWORD_CHANGE_REDIRECT_URL=https://gh.yqbmb.com/admin/price-inquiries
GUAHAO_OIDC_ISSUER=https://auth.yqbmb.com/oidc
GUAHAO_OIDC_CLIENT_ID=
GUAHAO_OIDC_CLIENT_SECRET=
GUAHAO_OIDC_REDIRECT_URI=http://127.0.0.1:9800/admin/oidc/callback
GUAHAO_OIDC_SCOPES=openid profile email phone
GUAHAO_WECHAT_APPID=
GUAHAO_WECHAT_SECRET=
GUAHAO_UPLOAD_DIR=data/uploads
```
`GUAHAO_ADMIN_AUTH_MODE=none` 会跳过后台登录,仅建议本地开发使用;`oidc` 会通过 Logto/OIDC 授权登录,回调地址为 `/admin/oidc/callback`,登录后后台右上角展示授权用户姓名和修改密码入口。修改密码入口会跳转到 Logto Account Center 的 `/account/password`,完成后返回 `GUAHAO_ADMIN_PASSWORD_CHANGE_REDIRECT_URL`。
后台上传的首页图片和项目图片会保存到 `GUAHAO_UPLOAD_DIR`,并通过 `/uploads/...` 访问。
## Docker 部署
```bash
docker compose up --build
```
接口健康检查:
```bash
curl http://127.0.0.1:9800/healthz
```
## 小程序开发
用微信开发者工具打开 `uni-guahao/` 目录。小程序请求地址由 `uni-guahao/utils/api.uts` 自动选择,不需要发布前手动改 URL:
- 微信开发版 `develop`:`http://localhost:9800`
- 微信体验版 `trial` / 正式版 `release`:`https://gh.yqbmb.com`
线上域名需要在微信公众平台配置为 request 合法域名;本地开发时 `manifest.json` 已关闭开发域名校验。
首页不配置底部 `tabBar`。用户可直接选择项目和预约时段;在确认预约时授权手机号,授权成功后自动提交预约。确认页可通过半屏底部弹层查看《预约服务条款》。
## 关键目录
- `uni-guahao/`:uni-app x 微信小程序前端
- `backend/`:Go API 服务
- `backend/migrations/schema.sql`:SQLite schema
- `backend/queries/`:sqlc 查询
- `uni-guahao/static/`:小程序静态资源
- `docs/design-elements.md`:设计元素、裁切坐标和 token