# 医院科室选择功能 - 快速开始 ## 一、执行SQL脚本(必须) ### 1. 进入MySQL ```bash mysql -u root -p ``` ### 2. 选择数据库 ```sql USE your_database_name; ``` ### 3. 执行SQL脚本 ```sql source d:/project/急救转运/code/Api/RuoYi-Vue-master/sql/hospital_department_dict.sql; ``` 或者直接在命令行执行: ```bash mysql -u root -p your_database_name < d:/project/急救转运/code/Api/RuoYi-Vue-master/sql/hospital_department_dict.sql ``` ### 4. 验证数据 ```sql -- 查看字典类型 SELECT * FROM sys_dict_type WHERE dict_type = 'hospital_department'; -- 查看科室数据(应该有30条记录) SELECT dict_sort, dict_label, dict_value, list_class FROM sys_dict_data WHERE dict_type = 'hospital_department' ORDER BY dict_sort; ``` ## 二、前端代码已完成 前端代码已经修改完成,包括: ### ✅ 已完成的修改 1. **导入字典API** ```javascript import { getDicts } from "@/api/dict" ``` 2. **添加数据字段** ```javascript departmentOptions: [] // 科室字典数据 ``` 3. **页面加载时获取科室数据** ```javascript onLoad(options) { // ... 其他代码 this.loadDepartments() } ``` 4. **加载科室方法** ```javascript loadDepartments() { getDicts('hospital_department').then(response => { this.departmentOptions = response.data || [] }) } ``` 5. **模板改为选择器** - 转出医院科室:使用 `` 组件 - 转入医院科室:使用 `` 组件 6. **选择事件处理** - `onHospitalOutDepartmentChange()` - 转出医院科室选择 - `onHospitalInDepartmentChange()` - 转入医院科室选择 ## 三、测试步骤 ### 1. 启动后端服务 ```bash cd d:/project/急救转运/code/Api/RuoYi-Vue-master ./ry.bat ``` ### 2. 启动前端(如果需要) ```bash cd d:/project/急救转运/code/Api/RuoYi-Vue-master/app npm run dev:h5 ``` ### 3. 测试功能 1. **打开急救转运任务创建页面** - 导航至:任务管理 > 创建急救转运任务 2. **测试转出医院科室选择** - 点击"转出医院"下的"科室"选择器 - 应该显示30个科室选项 - 选择任意科室(如:急诊科) - 确认选择器显示已选科室 3. **测试转入医院科室选择** - 点击"转入医院"下的"科室"选择器 - 应该显示30个科室选项 - 选择任意科室(如:ICU) - 确认选择器显示已选科室 4. **测试数据提交** - 填写完整表单 - 点击"保存"按钮 - 查看数据库 `sys_task_emergency` 表 - 确认科室信息正确保存 ## 四、后台管理(可选) ### 访问字典管理 ``` 系统管理 > 字典管理 > 数据字典 ``` ### 查看科室配置 1. 在字典类型列表中找到"医院科室" 2. 点击"字典配置"按钮 3. 查看所有30个科室数据 ### 新增科室(示例) 1. 点击"新增"按钮 2. 填写信息: - 字典标签:放射科 - 字典键值:放射科 - 字典排序:31 - 列表样式:info - 状态:正常 3. 保存 4. 刷新前端页面,应该能看到新增的科室 ## 五、常见问题 ### Q1: 科室列表为空? **A:** 检查SQL脚本是否执行成功 ```sql SELECT COUNT(*) FROM sys_dict_data WHERE dict_type = 'hospital_department'; -- 应该返回 30 ``` ### Q2: 前端不显示科室? **A:** 1. 检查浏览器控制台是否有错误 2. 检查网络请求是否成功:`/system/dict/data/type/hospital_department` 3. 检查返回的数据格式是否正确 ### Q3: 选择后不显示科室名称? **A:** 1. 检查 `range-key="dictLabel"` 是否设置正确 2. 检查数据结构中是否有 `dictLabel` 字段 ### Q4: 如何修改科室列表? **A:** 1. 方法一:在后台管理系统中修改(推荐) 2. 方法二:修改 SQL 文件后重新执行 ### Q5: 如何添加更多科室? **A:** 在 SQL 文件中添加新的 INSERT 语句: ```sql INSERT INTO sys_dict_data(dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) VALUES(31, '新科室名称', '新科室名称', 'hospital_department', '', 'info', 'N', '0', 'admin', SYSDATE(), '备注'); ``` ## 六、验证清单 - [ ] SQL脚本执行成功 - [ ] 数据库中有30条科室记录 - [ ] 前端代码已更新 - [ ] 转出医院科室选择器正常显示 - [ ] 转入医院科室选择器正常显示 - [ ] 选择科室后正确显示科室名称 - [ ] 提交任务后科室数据正确保存 - [ ] 后台字典管理可以查看科室列表 ## 七、科室列表速查 | 序号 | 科室名称 | 分类 | 颜色标识 | |------|----------|------|----------| | 1 | 急诊科 | 急诊 | 红色(danger) | | 2 | 急救中心 | 急诊 | 红色(danger) | | 3 | 心内科 | 内科 | 蓝色(primary) | | 4 | 呼吸内科 | 内科 | 蓝色(primary) | | 5 | 消化内科 | 内科 | 蓝色(primary) | | 6 | 神经内科 | 内科 | 蓝色(primary) | | 7 | 肾内科 | 内科 | 蓝色(primary) | | 8 | 内分泌科 | 内科 | 蓝色(primary) | | 9 | 血液科 | 内科 | 蓝色(primary) | | 10 | 风湿免疫科 | 内科 | 蓝色(primary) | | 11 | 普外科 | 外科 | 绿色(success) | | 12 | 骨科 | 外科 | 绿色(success) | | 13 | 神经外科 | 外科 | 绿色(success) | | 14 | 心胸外科 | 外科 | 绿色(success) | | 15 | 泌尿外科 | 外科 | 绿色(success) | | 16 | 烧伤科 | 外科 | 绿色(success) | | 17 | ICU | 重症 | 橙色(warning) | | 18 | CCU | 重症 | 橙色(warning) | | 19 | 肿瘤科 | 专科 | 灰色(info) | | 20 | 感染科 | 专科 | 灰色(info) | | 21 | 儿科 | 专科 | 灰色(info) | | 22 | 妇产科 | 专科 | 灰色(info) | | 23 | 眼科 | 专科 | 灰色(info) | | 24 | 耳鼻喉科 | 专科 | 灰色(info) | | 25 | 口腔科 | 专科 | 灰色(info) | | 26 | 皮肤科 | 专科 | 灰色(info) | | 27 | 康复科 | 专科 | 灰色(info) | | 28 | 中医科 | 专科 | 灰色(info) | | 29 | 精神科 | 专科 | 灰色(info) | | 30 | 其他科室 | 其他 | 默认(default) | ## 八、完成标志 当你看到以下界面时,说明功能已成功实现: 1. 打开急救转运任务创建页面 2. 转出医院的"科室"显示为选择器(有向右箭头) 3. 点击后显示30个科室选项 4. 选择后显示所选科室名称 5. 转入医院的"科室"同样功能正常 **恭喜!科室选择功能实现完成!** 🎉