# 海外预约系统

海外预约小程序系统，包含 uni-app 微信小程序前端、Node.js 后端 API 和 Vue.js 管理后台。

## 项目结构

```
project-root/
├── miniprogram/              # uni-app 小程序前端
│   ├── pages/                # 页面组件
│   ├── components/           # 公共组件
│   ├── static/               # 静态资源
│   ├── locale/               # 国际化文件
│   ├── utils/                # 工具函数
│   ├── modules/              # 业务模块
│   ├── uni_modules/          # uni-app 插件
│   └── package.json          # 前端依赖
│
├── backend/                  # Node.js 后端
│   ├── src/                  # 源代码
│   │   ├── controllers/      # 控制器
│   │   ├── services/         # 业务服务
│   │   ├── models/           # 数据模型
│   │   ├── routes/           # 路由定义
│   │   └── middleware/       # 中间件
│   ├── logs/                 # 日志文件
│   ├── uploads/              # 上传文件
│   └── package.json          # 后端依赖
│
├── admin/                    # Vue 管理后台
│   ├── src/                  # 源代码
│   │   ├── views/            # 页面视图
│   │   ├── stores/           # 状态管理
│   │   ├── router/           # 路由配置
│   │   └── utils/            # 工具函数
│   └── package.json          # 管理后台依赖
│
├── docs/                     # 项目文档
│   ├── guides/               # 使用指南
│   ├── setup/                # 配置文档
│   ├── troubleshooting/      # 问题排查
│   └── analysis/             # 分析文档
│
├── docker/                   # Docker 配置
├── docker-compose.yml        # Docker 编排
├── docker-compose.dev.yml    # 开发环境 Docker
├── Makefile                  # 项目命令
└── package.json              # 根目录脚本
```

## 快速开始

### 环境要求

- Node.js >= 18.0.0
- MySQL 8.0+
- Redis (可选，用于缓存)

### 安装依赖

```bash
# 安装所有子项目依赖
npm run install:all

# 或分别安装
npm run miniprogram:install
npm run backend:install
npm run admin:install
```

### 运行项目

#### 后端 API

```bash
# 初始化数据库
npm run backend:init-db

# 开发模式
npm run backend:dev

# 生产模式
npm run backend:start
```

后端默认运行在 http://localhost:3000

#### 小程序前端

```bash
# H5 开发模式
npm run miniprogram:dev

# 微信小程序开发模式
npm run miniprogram:dev:weixin

# 构建 H5
npm run miniprogram:build

# 构建微信小程序
npm run miniprogram:build:weixin
```

#### 管理后台

```bash
# 开发模式
npm run admin:dev

# 构建生产版本
npm run admin:build

# 预览构建结果
npm run admin:preview
```

管理后台默认运行在 http://localhost:5173

## Docker 部署

```bash
# 开发环境
docker-compose -f docker-compose.dev.yml up -d

# 生产环境
docker-compose up -d
```

## 可用脚本

| 脚本 | 说明 |
|------|------|
| `npm run install:all` | 安装所有子项目依赖 |
| `npm run miniprogram:dev` | 运行小程序 H5 开发服务器 |
| `npm run miniprogram:dev:weixin` | 运行小程序微信开发模式 |
| `npm run backend:dev` | 运行后端开发服务器 |
| `npm run backend:test` | 运行后端测试 |
| `npm run admin:dev` | 运行管理后台开发服务器 |
| `npm run admin:build` | 构建管理后台 |

## 文档

详细文档请查看 `docs/` 目录：

- [配置指南](docs/setup/CONFIG_GUIDE.md)
- [微信配置](docs/setup/WECHAT_SETUP.md)
- [登录指南](docs/guides/LOGIN_GUIDE.md)
- [认证指南](docs/guides/AUTH_GUIDE.md)

## 技术栈

- 小程序前端: uni-app + Vue 3 + Vue I18n
- 后端: Node.js + Express + Sequelize + MySQL
- 管理后台: Vue 3 + Element Plus + Pinia + Vite
- 部署: Docker + Nginx

## License

ISC
