This commit is contained in:
Your Name
2026-03-11 14:33:49 +08:00
parent 38ad60f4bb
commit 08dd9cd307
57 changed files with 9547 additions and 379 deletions
+178
View File
@@ -0,0 +1,178 @@
# 小程序API配置说明
## 问题解决
已修复 `process is not defined` 错误。小程序环境不支持 Node.js 的 `process` 对象。
## API 基础URL 配置
### 当前配置
API 基础 URL 在 `utils/api.js` 中定义:
```javascript
const API_BASE_URL = 'http://api.zzzhengyangtang.cn'
```
### 修改 API 地址
根据你的实际后端地址修改 `TUICallKit-Vue3/utils/api.js` 中的 `API_BASE_URL`
```javascript
// 开发环境
const API_BASE_URL = 'http://localhost:8000/api'
// 生产环境
const API_BASE_URL = 'https://your-production-api.com/api'
```
## 医生API端点
### 1. 获取医生列表
```javascript
import { doctorApi } from '../utils/api'
const response = await doctorApi.getDoctorList({
page_no: 1,
page_size: 10,
keyword: '医生' // 可选
})
```
**响应格式**:
```json
{
"code": 1,
"msg": "success",
"data": {
"lists": [
{
"id": 1,
"name": "张医生",
"account": "doctor1",
"avatar": "http://example.com/avatar.jpg",
"mobile": "13800138000",
"email": "doctor@example.com",
"specialty": "医生",
"title": "医生",
"rating": "4.8"
}
],
"count": 10,
"page_no": 1,
"page_size": 10
}
}
```
### 2. 获取医生详情
```javascript
const doctor = await doctorApi.getDoctorDetail(1)
```
### 3. 获取医生排班
```javascript
const roster = await doctorApi.getDoctorRoster(1, '2024-03-11')
```
## 错误处理
API 请求会自动处理以下情况:
1. **网络错误**: 显示 "网络错误" 提示
2. **请求失败**: 显示 "获取医生列表失败" 提示
3. **登录失效**: 自动清除 token
## 首页集成
首页 (`pages/index/index.vue`) 会在加载时自动调用 `fetchDoctors()` 方法获取医生列表。
### 首页流程
1. 页面加载时调用 `onMounted()`
2. `onMounted()` 调用 `fetchDoctors()`
3. `fetchDoctors()` 调用 `doctorApi.getDoctorList()`
4. 获取成功后更新 `doctors` 数据
5. 医生卡片自动渲染
### 点击医生卡片
点击医生卡片会跳转到挂号页面:
```javascript
uni.navigateTo({
url: `/pages/order/index?doctorId=${doctor.id}&doctorName=${doctor.name}`
})
```
## 调试技巧
### 1. 查看网络请求
在小程序开发者工具中:
1. 打开 "Network" 标签
2. 查看 API 请求的 URL、参数和响应
### 2. 查看控制台日志
```javascript
console.error('请求失败:', error)
```
### 3. 测试 API
使用 Postman 或 curl 测试 API
```bash
# 获取医生列表
curl "http://localhost:8000/api/doctor/lists?page_no=1&page_size=10"
# 获取医生详情
curl "http://localhost:8000/api/doctor/detail?id=1"
# 获取医生排班
curl "http://localhost:8000/api/doctor/roster?doctor_id=1&date=2024-03-11"
```
## 常见问题
### Q: 医生列表为空?
A: 检查以下几点:
1. API 地址是否正确
2. 后端是否有医生数据(role_id = 1)
3. 医生的 disable 字段是否为 0
4. 网络连接是否正常
### Q: 头像无法显示?
A:
1. 检查 avatar URL 是否完整
2. 检查图片服务器是否可访问
3. 检查小程序是否有网络权限
### Q: 如何修改 API 地址?
A: 修改 `TUICallKit-Vue3/utils/api.js` 中的 `API_BASE_URL` 常量。
### Q: 如何添加请求头?
A: 修改 `request()` 函数中的 `header` 对象:
```javascript
header: {
'Content-Type': 'application/json',
'Authorization': token,
'Custom-Header': 'value' // 添加自定义请求头
}
```
## 相关文件
- API 服务: `TUICallKit-Vue3/utils/api.js`
- 首页组件: `TUICallKit-Vue3/pages/index/index.vue`
- 后端控制器: `server/app/api/controller/DoctorController.php`
- 后端逻辑: `server/app/api/logic/DoctorLogic.php`