# 挂号管理系统配置指南 ## 快速开始 挂号管理系统的代码已经全部完成,现在只需要在后台配置菜单和权限即可使用。 ## 配置步骤 ### 第一步:添加菜单 1. 登录后台管理系统 2. 进入 "权限管理" -> "菜单管理" 3. 点击 "添加菜单" 按钮 4. 填写以下信息: ``` 菜单名称:挂号管理 菜单类型:菜单 上级菜单:中医诊断(或选择其他合适的父菜单) 菜单路径:tcm/appointment/list 组件路径:tcm/appointment/list 权限标识:doctor.appointment/lists 菜单图标:Calendar(或 el-icon-calendar) 排序:根据需要设置(如:100) 是否显示:是 是否缓存:是 ``` 5. 点击 "确定" 保存 ### 第二步:配置权限节点 在刚创建的"挂号管理"菜单下,添加以下操作权限: #### 1. 挂号列表(已在菜单中配置) ``` 权限名称:挂号列表 权限标识:doctor.appointment/lists ``` #### 2. 挂号详情 ``` 权限名称:挂号详情 权限标识:doctor.appointment/detail 权限类型:按钮 ``` #### 3. 取消挂号 ``` 权限名称:取消挂号 权限标识:doctor.appointment/cancel 权限类型:按钮 ``` #### 4. 完成挂号 ``` 权限名称:完成挂号 权限标识:doctor.appointment/complete 权限类型:按钮 ``` ### 第三步:分配权限 1. 进入 "权限管理" -> "角色管理" 2. 选择需要使用挂号管理功能的角色(如:管理员、医生等) 3. 点击 "编辑权限" 4. 勾选刚才创建的"挂号管理"菜单及其下的所有权限 5. 保存 ### 第四步:验证配置 1. 刷新页面或重新登录 2. 在左侧菜单中应该能看到"挂号管理"菜单 3. 点击进入,应该能看到挂号列表页面 ## 功能测试 ### 1. 测试列表显示 - 访问挂号管理页面 - 验证列表数据正常显示 - 检查分页功能 ### 2. 测试搜索功能 - 在"患者姓名"输入框输入患者名字,点击"查询" - 在"医生姓名"输入框输入医生名字,点击"查询" - 选择"预约状态",点击"查询" - 选择"预约日期"范围,点击"查询" - 点击"重置"按钮,验证搜索条件清空 ### 3. 测试详情功能 - 点击任意一条记录的"详情"按钮 - 验证弹窗显示完整的挂号信息 ### 4. 测试取消功能 - 找一条"已预约"状态的记录 - 点击"取消"按钮 - 确认操作 - 验证状态变为"已取消" - 验证"取消"和"完成"按钮消失 ### 5. 测试完成功能 - 找一条"已预约"状态的记录 - 点击"完成"按钮 - 确认操作 - 验证状态变为"已完成" - 验证"取消"和"完成"按钮消失 ## 数据库检查 确保数据库表 `la_doctor_appointment` 已创建。如果没有,执行以下SQL: ```sql CREATE TABLE `la_doctor_appointment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `patient_id` int(11) NOT NULL COMMENT '患者ID', `doctor_id` int(11) NOT NULL COMMENT '医生ID', `roster_id` int(11) NOT NULL COMMENT '排班ID', `appointment_date` date NOT NULL COMMENT '预约日期', `period` varchar(20) NOT NULL COMMENT '时段', `appointment_time` time NOT NULL COMMENT '预约时间', `appointment_type` varchar(20) DEFAULT 'video' COMMENT '预约类型', `status` tinyint(1) DEFAULT '1' COMMENT '状态:1=已预约,2=已取消,3=已完成', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_time` int(10) unsigned DEFAULT NULL, `update_time` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_patient` (`patient_id`), KEY `idx_doctor_date` (`doctor_id`,`appointment_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='医生挂号表'; ``` ## 常见问题 ### Q1: 菜单配置后看不到? A: 检查以下几点: 1. 确认"是否显示"设置为"是" 2. 确认当前登录用户的角色有该菜单权限 3. 刷新页面或重新登录 ### Q2: 列表显示为空? A: 检查以下几点: 1. 确认数据库表已创建 2. 确认有挂号数据 3. 检查浏览器控制台是否有错误 ### Q3: 搜索功能不工作? A: 检查以下几点: 1. 确认输入的搜索条件正确 2. 确认数据库中有匹配的数据 3. 检查浏览器控制台是否有错误 ### Q4: 取消/完成按钮不显示? A: 检查以下几点: 1. 确认当前用户有相应的权限 2. 只有"已预约"状态的记录才显示这两个按钮 3. "已取消"和"已完成"状态的记录不显示操作按钮 ## 系统架构 ``` 前端(Vue3 + Element Plus) ├── 挂号列表页面:admin/src/views/tcm/appointment/list.vue ├── API接口:admin/src/api/doctor.ts └── 路由:动态路由(从后台配置加载) 后端(ThinkPHP) ├── 控制器:server/app/adminapi/controller/doctor/AppointmentController.php ├── 业务逻辑:server/app/adminapi/logic/doctor/AppointmentLogic.php ├── 列表查询:server/app/adminapi/lists/doctor/AppointmentLists.php ├── 验证器:server/app/adminapi/validate/doctor/AppointmentValidate.php └── 模型:server/app/common/model/doctor/Appointment.php 数据库 └── 表:la_doctor_appointment ``` ## 相关文档 - `APPOINTMENT_MANAGEMENT_COMPLETE.md` - 完整的功能说明文档 - `APPOINTMENT_SYSTEM.md` - 挂号系统总体设计 - `APPOINTMENT_PERIOD_FIX.md` - 时间段修复说明 ## 技术支持 如果遇到问题,请检查: 1. 浏览器控制台的错误信息 2. 后端日志文件 3. 数据库连接是否正常 4. 权限配置是否正确