Files
zyt/APPOINTMENT_SETUP_GUIDE.md
T
2026-03-04 15:32:30 +08:00

190 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 挂号管理系统配置指南
## 快速开始
挂号管理系统的代码已经全部完成,现在只需要在后台配置菜单和权限即可使用。
## 配置步骤
### 第一步:添加菜单
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. 权限配置是否正确