This commit is contained in:
Your Name
2026-03-20 13:56:40 +08:00
parent 7147c8e148
commit d765517b74
258 changed files with 2481 additions and 364 deletions
+267
View File
@@ -0,0 +1,267 @@
# 测试医生资质图片功能
## 测试步骤
### 1. 数据库准备
首先执行SQL文件添加字段:
```bash
# 如果使用 la_ 前缀
mysql -u root -p your_database < server/sql/add_doctor_qualification_images.sql
# 如果使用 zyt_ 前缀,先修改SQL文件中的表名
# 将 la_admin 替换为 zyt_admin
```
验证字段是否添加成功:
```sql
DESC la_admin;
-- 或
DESC zyt_admin;
-- 应该能看到 qualification_images 字段
```
### 2. 管理后台测试
#### 2.1 添加医生并上传资质图片
1. 登录管理后台
2. 进入"医生管理"页面
3. 点击"新增医生"按钮
4. 填写基本信息:
- 账号:test_doctor
- 姓名:测试医生
- 密码:123456
- 其他必填字段...
5. 在"专业信息"部分找到"资质图片"字段
6. 点击上传按钮,选择1-3张测试图片
7. 点击"确定"保存
#### 2.2 编辑医生资质图片
1. 在医生列表中找到刚创建的医生
2. 点击"编辑"按钮
3. 在"资质图片"字段中:
- 可以删除已有图片
- 可以添加新图片
- 可以调整图片顺序
4. 点击"确定"保存
#### 2.3 查看医生详情
1. 点击医生列表中的"详情"按钮
2. 确认能看到 `qualification_images` 字段
3. 确认图片URL格式正确
### 3. API接口测试
#### 3.1 测试添加医生接口
```bash
curl -X POST "http://your-domain/adminapi/auth.admin/add" \
-H "Content-Type: application/json" \
-H "token: your_admin_token" \
-d '{
"account": "test_doctor2",
"name": "测试医生2",
"password": "123456",
"password_confirm": "123456",
"gender": 1,
"role_id": [1],
"dept_id": [1],
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
"disable": 0,
"multipoint_login": 1
}'
```
#### 3.2 测试编辑医生接口
```bash
curl -X POST "http://your-domain/adminapi/auth.admin/edit" \
-H "Content-Type: application/json" \
-H "token: your_admin_token" \
-d '{
"id": 1,
"account": "test_doctor",
"name": "测试医生",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\",\"https://example.com/cert3.jpg\"]",
"disable": 0,
"multipoint_login": 1
}'
```
#### 3.3 测试医生详情接口
```bash
curl -X GET "http://your-domain/adminapi/auth.admin/detail?id=1" \
-H "token: your_admin_token"
```
预期返回:
```json
{
"code": 1,
"msg": "success",
"data": {
"id": 1,
"name": "测试医生",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
...
}
}
```
#### 3.4 测试小程序端医生详情接口
```bash
curl -X GET "http://your-domain/api/doctor/detail?id=1"
```
预期返回:
```json
{
"code": 1,
"msg": "success",
"data": {
"id": 1,
"name": "测试医生",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
...
}
}
```
### 4. 小程序端测试
#### 4.1 查看医生详情页
1. 打开小程序
2. 进入医生列表页面
3. 点击任意医生进入详情页
4. 滚动到"擅长领域"下方
5. 应该能看到"医生资质"区域(如果该医生有资质图片)
6. 资质图片以3列网格布局展示
#### 4.2 测试图片预览
1. 点击任意资质图片
2. 应该弹出图片预览界面
3. 可以左右滑动查看所有资质图片
4. 可以双指缩放查看图片细节
5. 点击关闭按钮或返回键退出预览
### 5. 边界情况测试
#### 5.1 无资质图片
- 医生没有上传资质图片时,小程序端不显示"医生资质"区域
- 管理后台显示空的上传区域
#### 5.2 单张图片
- 上传1张图片,正常显示
- 预览时只有1张图片
#### 5.3 多张图片
- 上传9张图片(最大限制)
- 所有图片都能正常显示
- 预览时可以滑动查看所有图片
#### 5.4 图片格式
- 测试 JPG 格式 ✓
- 测试 PNG 格式 ✓
- 测试 JPEG 格式 ✓
#### 5.5 错误数据处理
- 空字符串:不显示资质区域
- null:不显示资质区域
- 无效JSON:不显示资质区域(有容错处理)
- 非数组JSON:不显示资质区域
### 6. 性能测试
#### 6.1 图片加载速度
- 测试3张图片的加载时间
- 测试9张图片的加载时间
- 确认图片懒加载是否生效
#### 6.2 预览性能
- 测试预览大图的加载速度
- 测试滑动切换的流畅度
## 测试检查清单
- [ ] 数据库字段添加成功
- [ ] 管理后台可以上传资质图片
- [ ] 管理后台可以编辑资质图片
- [ ] 管理后台可以删除资质图片
- [ ] 添加医生接口正常工作
- [ ] 编辑医生接口正常工作
- [ ] 医生详情接口返回资质图片
- [ ] 小程序端正常显示资质图片
- [ ] 小程序端图片预览功能正常
- [ ] 无资质图片时不显示该区域
- [ ] 支持多种图片格式
- [ ] 错误数据有容错处理
- [ ] 图片加载性能良好
## 常见问题排查
### 问题1:管理后台上传图片后不显示
**排查步骤**
1. 检查浏览器控制台是否有错误
2. 检查图片上传接口是否成功
3. 检查 `material-picker` 组件是否正常工作
4. 检查 `formData.qualification_images` 是否有值
### 问题2:小程序端不显示资质图片
**排查步骤**
1. 检查医生详情接口返回的数据
2. 检查 `qualification_images` 字段是否有值
3. 检查 `qualificationImages` computed 是否正确解析
4. 检查图片URL是否可访问
5. 检查小程序域名白名单配置
### 问题3:图片预览失败
**排查步骤**
1. 检查 `uni.previewImage` 是否正常调用
2. 检查图片URL格式是否正确
3. 检查小程序权限配置
4. 查看小程序控制台错误信息
### 问题4:数据库字段不存在
**排查步骤**
1. 确认是否执行了SQL文件
2. 确认表名前缀是否正确(la_ 或 zyt_)
3. 手动执行 `DESC` 命令检查字段
4. 检查数据库连接是否正确
## 测试数据示例
### 示例1:单张图片
```json
["https://example.com/doctor-cert-1.jpg"]
```
### 示例2:多张图片
```json
[
"https://example.com/doctor-cert-1.jpg",
"https://example.com/doctor-cert-2.jpg",
"https://example.com/doctor-cert-3.jpg"
]
```
### 示例3:完整医生数据
```json
{
"id": 1,
"name": "李医生",
"title": "主任医师",
"license_no": "110101199001011234",
"qualification_images": "[\"https://example.com/cert1.jpg\",\"https://example.com/cert2.jpg\"]",
"enable_image_consult": 1,
"enable_video_consult": 1
}
```