# 配置指南

本文档说明如何配置海外预约小程序的各项参数。

## API 配置

### 开发环境
```javascript
Config.API_BASE_URL = 'http://localhost:3000'
```

### 生产环境
部署到生产环境时，需要修改为实际的服务器地址：
```javascript
Config.API_BASE_URL = 'https://your-domain.com'
```

## 上传配置

### 上传服务类型

项目支持多种上传方式：

1. **server** - 本地服务器上传（推荐开发环境使用）
   ```javascript
   Config.UPLOAD_SERVICE_TYPE = 'server'
   ```

2. **cos** - 腾讯云 COS 对象存储
   ```javascript
   Config.UPLOAD_SERVICE_TYPE = 'cos'
   Config.UPLOAD_CONFIG.cosDomain = 'https://your-bucket.cos.region.myqcloud.com'
   ```

3. **aliyun** - 阿里云 OSS 对象存储
   ```javascript
   Config.UPLOAD_SERVICE_TYPE = 'aliyun'
   ```

4. **qiniu** - 七牛云存储
   ```javascript
   Config.UPLOAD_SERVICE_TYPE = 'qiniu'
   ```

### 上传限制配置

```javascript
Config.UPLOAD_CONFIG = {
  imageQuality: 80,              // 图片压缩质量 (0-100)
  imageMaxSize: 5 * 1024 * 1024, // 图片最大 5MB
  videoMaxSize: 50 * 1024 * 1024 // 视频最大 50MB
}
```

### 不同场景的上传预设

```javascript
Config.UPLOAD_PRESETS = {
  normal: {
    imageQuality: 80,
    imageMaxSize: 5 * 1024 * 1024  // 普通图片 5MB
  },
  avatar: {
    imageQuality: 90,
    imageMaxSize: 2 * 1024 * 1024  // 头像 2MB
  },
  qrcode: {
    imageQuality: 85,
    imageMaxSize: 3 * 1024 * 1024  // 收款码 3MB
  }
}
```

## 业务配置

### 送花时间间隔
```javascript
Config.FLOWER_SEND_INTERVAL = 60 * 60 * 1000; // 1小时
```

## 环境切换

### 方法一：手动修改
直接修改 `modules/Config.js` 文件中的配置。

### 方法二：条件编译（推荐）
使用 uni-app 的条件编译功能：

```javascript
// #ifdef MP-WEIXIN
Config.API_BASE_URL = 'https://production-api.com'
// #endif

// #ifdef H5
Config.API_BASE_URL = 'http://localhost:3000'
// #endif
```

### 方法三：环境变量
创建不同的配置文件：

**Config.dev.js** (开发环境)
```javascript
export default {
  API_BASE_URL: 'http://localhost:3000',
  UPLOAD_SERVICE_TYPE: 'server'
}
```

**Config.prod.js** (生产环境)
```javascript
export default {
  API_BASE_URL: 'https://api.your-domain.com',
  UPLOAD_SERVICE_TYPE: 'cos'
}
```

然后在 `Config.js` 中根据环境导入：
```javascript
import DevConfig from './Config.dev.js'
import ProdConfig from './Config.prod.js'

const Config = process.env.NODE_ENV === 'production' ? ProdConfig : DevConfig
```

## 后端配置

后端配置文件位于 `backend/.env`，主要配置项：

```env
# 服务器端口
PORT=3000

# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=overseas_appointment
DB_USER=root
DB_PASSWORD=your_password

# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379

# JWT密钥
JWT_SECRET=your-secret-key
JWT_EXPIRES_IN=7d

# 微信小程序配置
WECHAT_APP_ID=your_app_id
WECHAT_APP_SECRET=your_app_secret

# 文件上传配置
UPLOAD_PATH=./uploads
MAX_FILE_SIZE=5242880
```

## 部署检查清单

部署到生产环境前，请确认以下配置：

- [ ] 修改 `Config.API_BASE_URL` 为生产环境地址
- [ ] 配置正确的上传服务类型和参数
- [ ] 后端 `.env` 文件配置正确的数据库连接
- [ ] 后端 `.env` 文件配置正确的 Redis 连接
- [ ] 后端 `.env` 文件配置正确的微信小程序 AppID 和 AppSecret
- [ ] 后端 `JWT_SECRET` 使用强密码
- [ ] 检查文件上传路径和权限
- [ ] 配置 HTTPS 证书（生产环境必须）
- [ ] 配置 CORS 允许的域名
- [ ] 设置合适的速率限制参数

## 常见问题

### Q: 为什么登录失败？
A: 检查以下几点：
1. `Config.API_BASE_URL` 是否正确
2. 后端服务是否正常运行
3. 微信小程序 AppID 和 AppSecret 是否配置正确
4. 网络是否可以访问后端服务

### Q: 图片上传失败？
A: 检查以下几点：
1. 图片大小是否超过限制
2. 上传服务类型配置是否正确
3. 如果使用云存储，检查密钥配置
4. 检查后端上传目录权限

### Q: 如何在开发环境使用真实的后端服务？
A: 修改 `Config.API_BASE_URL` 为后端服务器的实际地址，例如：
```javascript
Config.API_BASE_URL = 'http://192.168.1.100:3000'
```

### Q: 如何配置多个环境（开发、测试、生产）？
A: 建议使用环境变量或条件编译，参考上面的"环境切换"章节。

## 技术支持

如有问题，请查看：
- 后端 API 文档: http://localhost:3000/api-docs/
- API 使用指南: `modules/api/API_GUIDE.md`
- 后端 README: `backend/README.md`
