# 医助列表接口测试指南 ## 快速测试 ### 1. 后端测试 #### 直接访问接口 ```bash # 使用 curl 测试 curl -X GET "http://your-domain/adminapi/tcm.diagnosis/getAssistants" \ -H "token: your-admin-token" ``` #### 预期响应 ```json { "code": 1, "msg": "success", "data": [ { "id": 1, "name": "医助张三", "account": "assistant1" }, { "id": 2, "name": "医助李四", "account": "assistant2" } ] } ``` ### 2. 前端测试 #### 步骤 1:登录管理后台 ``` 访问:http://your-domain/admin 登录账号:admin ``` #### 步骤 2:访问诊单管理 ``` 菜单:中医管理 → 诊单管理 或直接访问:http://your-domain/admin/tcm/diagnosis ``` #### 步骤 3:检查医助下拉列表 1. 查看页面顶部的筛选条件 2. 找到"医助"下拉框 3. 点击下拉框,查看是否显示医助列表 #### 步骤 4:测试指派功能 1. 选择一条诊单记录 2. 点击"指派"按钮 3. 在弹窗中选择医助 4. 点击"确定指派" ### 3. 浏览器控制台测试 打开浏览器开发者工具(F12),在 Console 中执行: ```javascript // 测试 API 调用 fetch('/adminapi/tcm.diagnosis/getAssistants', { headers: { 'token': localStorage.getItem('token') } }) .then(res => res.json()) .then(data => console.log('医助列表:', data)) ``` ## 检查清单 ### 后端检查 - [ ] 接口可以正常访问 - [ ] 返回的数据格式正确 - [ ] 只返回 `role_id = 2` 的管理员 - [ ] 只返回 `disable = 0` 的管理员 - [ ] 返回字段包含:id、name、account - [ ] 按 id 升序排列 ### 前端检查 - [ ] 页面加载时自动获取医助列表 - [ ] 筛选条件中的医助下拉框正常显示 - [ ] 指派弹窗中的医助下拉框正常显示 - [ ] 可以正常选择医助 - [ ] 不会出现权限错误 - [ ] 控制台没有错误信息 ### 功能检查 - [ ] 可以按医助筛选诊单 - [ ] 可以单个指派医助 - [ ] 可以批量指派医助 - [ ] 指派后列表正常刷新 - [ ] 医助名称正常显示 ## 常见问题 ### 问题 1:接口返回空数组 **原因:** - 数据库中没有 `role_id = 2` 的管理员 - 所有医助都被禁用(`disable = 1`) **解决:** ```sql -- 检查医助数据 SELECT id, name, account, role_id, disable FROM la_admin WHERE role_id = 2; -- 如果没有数据,需要添加医助 INSERT INTO la_admin (name, account, role_id, disable) VALUES ('医助测试', 'assistant_test', 2, 0); ``` ### 问题 2:前端显示"权限不足" **原因:** - 还在使用旧的 `adminLists` 接口 - 代码没有更新 **解决:** 1. 确认前端代码已更新 2. 清除浏览器缓存 3. 重新编译前端代码 ### 问题 3:下拉框不显示数据 **原因:** - API 返回的数据格式不对 - 前端解析数据错误 **解决:** 1. 打开浏览器控制台 2. 查看 Network 标签 3. 检查接口返回的数据 4. 查看 Console 是否有错误 ## 数据库检查 ### 检查医助数据 ```sql -- 查看所有医助 SELECT id, name, account, role_id, disable, create_time FROM la_admin WHERE role_id = 2 ORDER BY id ASC; ``` ### 检查角色配置 ```sql -- 查看角色ID为2的角色信息 SELECT * FROM la_system_role WHERE id = 2; ``` ### 添加测试医助 ```sql -- 添加测试医助(如果需要) INSERT INTO la_admin ( name, account, password, role_id, disable, create_time, update_time ) VALUES ( '测试医助', 'test_assistant', 'e10adc3949ba59abbe56e057f20f883e', -- 密码:123456 2, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP() ); ``` ## 性能测试 ### 测试大量数据 ```sql -- 添加100个测试医助 DELIMITER $$ CREATE PROCEDURE add_test_assistants() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 100 DO INSERT INTO la_admin ( name, account, password, role_id, disable, create_time, update_time ) VALUES ( CONCAT('医助', i), CONCAT('assistant', i), 'e10adc3949ba59abbe56e057f20f883e', 2, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP() ); SET i = i + 1; END WHILE; END$$ DELIMITER ; CALL add_test_assistants(); DROP PROCEDURE add_test_assistants; ``` ### 测试响应时间 ```bash # 使用 curl 测试响应时间 time curl -X GET "http://your-domain/adminapi/tcm.diagnosis/getAssistants" \ -H "token: your-admin-token" ``` ## 日志检查 ### 查看错误日志 ```bash # 查看 PHP 错误日志 tail -f runtime/log/error.log # 查看应用日志 tail -f runtime/log/202403/04.log ``` ### 搜索相关日志 ```bash # 搜索医助列表相关日志 grep "getAssistants" runtime/log/202403/*.log ``` ## 成功标准 当满足以下所有条件时,说明接口工作正常: - ✅ 接口返回 200 状态码 - ✅ 返回数据格式正确 - ✅ 前端下拉框正常显示医助列表 - ✅ 可以正常筛选和指派医助 - ✅ 没有权限错误 - ✅ 没有控制台错误 - ✅ 响应时间 < 500ms --- **测试日期:** 2024-03-04 **版本:** 1.0