1. 获取地址https://fifteen.xiaobias.com/source/2102. 项目简介本项目为一款医院挂号就诊系统旨在为患者提供便捷的在线挂号服务并为医院管理人员、医生提供后台管理功能。系统支持用户注册登录、浏览医生信息、在线挂号、支付挂号费用、查询挂号记录以及查看健康教育和公告信息。后台管理端支持对用户、医生、挂号订单、健康教育内容、公告等进行管理和审核并通过字典表实现数据动态配置。项目名称数据库yiyuanguanhaojiuzhen中文名称医院挂号就诊系统3. 技术栈层次技术选型后端框架Spring Boot 2.2.2.RELEASE MyBatis-Plus Apache Shiro数据库MySQL 5.7.32-log前端后台Vue.js Element UI ECharts Axios前端前台Layui jQuery Vue.js Element UI部分其他Fastjson、Hutool、Apache Commons Lang34. 详细介绍4.1 系统角色系统包含三种角色管理员(users表)医生(yisheng表)用户(患者yonghu表)4.2 功能模块4.2.1 前台面向普通用户医生浏览与预约用户可查看医生列表按科室、职位筛选查看医生详情履历、价格、挂号须知点击“预约挂号”填写挂号日期、时间段上午/下午并提交。在线支付挂号时自动从用户余额中扣除挂号费用余额不足时可充值模拟充值页面。挂号记录用户可在个人中心查看自己的挂号记录及审核状态审核中/通过/拒绝。健康教育浏览医院发布的健康科普文章支持富文本。公告信息查看医院公告。在线咨询用户可以向管理员发送问题管理员后台回复支持实时刷新显示。个人中心修改个人信息姓名、手机号、身份证、邮箱、头像、性别、充值余额、修改密码。4.2.2 后台管理员端 - Vue Element UI管理员管理对系统管理员账号进行增删改查。用户管理查看、修改、删除用户信息软删除。医生管理增删改查医生信息工号、账户、科室、职位、职称、头像、联系方式、挂号须知、邮箱、挂号价格、履历介绍。挂号管理查看所有用户的挂号订单审核通过/拒绝并填写审核结果。健康教育管理发布/编辑/删除健康教育文章支持富文本。公告信息管理发布/编辑/删除公告。在线咨询管理查看用户提问并回复状态标记未回复/已回复。基础数据管理字典表动态配置科室、职位、健康教育类型、公告类型、挂号状态、时间类型上午/下午、审核状态等。轮播图管理配置前台页面轮播图片。4.2.3 医生端查看自己的挂号记录待审核、已就诊等。查看健康教育和公告信息。4.3 数据库表结构核心表表名说明主要字段yonghu用户表账户、密码、姓名、手机号、身份证、邮箱、性别、余额、逻辑删除yisheng医生表工号、账户、密码、姓名、科室、职位、职称、头像、电话、邮箱、挂号价格、履历guahao挂号记录表医生ID、用户ID、就诊识别码、挂号日期、时间类型、挂号状态、审核状态、审核结果jiankangjiaoyu健康教育表标题、类型、图片、发布时间、内容、逻辑删除news公告表名称、图片、类型、发布时间、内容chat在线咨询表用户ID、问题、问题时间、回复、回复时间、状态、数据类型dictionary字典表字段编码、字段名、编码索引、编码名称、父级IDconfig配置表轮播图等配置参数名、值users管理员表用户名、密码、角色tokenToken表登录认证用户ID、用户名、表名、角色、token、过期时间5. 部分代码5.1 后端 - 挂号订单保存含余额扣减// 文件GuahaoController.javaRequestMapping(/add)publicRadd(RequestBodyGuahaoEntityguahao,HttpServletRequestrequest){// ... 查重、校验 ...YonghuEntityuserIdyonghuService.selectById((Integer)request.getSession().getAttribute(userId));YishengEntityyishengEntityyishengService.selectById(guahao.getYishengId());if(userId.getNewMoney()yishengEntity.getYishengNewMoney()){returnR.error(余额不足请充值);}userId.setNewMoney(userId.getNewMoney()-yishengEntity.getYishengNewMoney());yonghuService.updateById(userId);guahaoService.insert(guahao);returnR.ok();}5.2 前端 - 医生列表展示Vue!-- 文件src/main/resources/admin/admin/src/views/modules/yisheng/list.vue 风格示例 -- template div classapp-container el-form :modelqueryParams refqueryForm ... el-form-item label医生名称 el-input v-modelqueryParams.yishengName placeholder请输入医生名称 / /el-form-item el-form-item label科室 el-select v-modelqueryParams.yishengTypes placeholder请选择科室 el-option label全部 value / el-option v-foritem in yishengTypesList :keyitem.codeIndex :labelitem.indexName :valueitem.codeIndex / /el-select /el-form-item el-button typeprimary clickhandleQuery搜索/el-button /el-form el-table :datayishengList ... el-table-column propyishengName label医生名称 / el-table-column propyishengNewMoney label挂号价格 / !-- ... 其他列 ... -- /el-table /div /template5.3 字典表初始化监听器项目启动时加载字典到ServletContext// 文件DictionaryServletContextListener.javaWebListenerpublicclassDictionaryServletContextListenerimplementsServletContextListener{OverridepublicvoidcontextInitialized(ServletContextEventsce){ApplicationContextappContextWebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());DictionaryServicedictionaryServiceappContext.getBean(DictionaryService.class);ListDictionaryEntitydictionaryEntitiesdictionaryService.selectList(newEntityWrapperDictionaryEntity());MapString,MapInteger,StringmapnewHashMap();for(DictionaryEntityd:dictionaryEntities){MapInteger,Stringmmap.getOrDefault(d.getDicCode(),newHashMap());m.put(d.getCodeIndex(),d.getIndexName());map.put(d.getDicCode(),m);}sce.getServletContext().setAttribute(dictionaryMap,map);}}6. 部分截图7. 项目总结本系统基于Spring Boot MyBatis-Plus构建后端采用Shiro进行权限控制和Token认证前后端分离架构。后台管理界面使用Vue Element UI实现现代化管理体验前台面向患者使用Layui jQuery保证轻量级和兼容性。系统实现了医院挂号就诊的核心业务流程用户注册登录 → 浏览医生 → 选择时间段挂号 → 扣费 → 管理员审核 → 用户查看挂号结果。同时拓展了健康教育、公告、在线咨询等功能丰富了医患互动场景。字典表动态管理机制使得科室、职位、类型等基础数据无需硬编码具备良好的可维护性。项目结构清晰分层合理适合作为中小型医院信息化管理的参考实现。
基于springboot2+vue3的医院挂号就诊系统
发布时间:2026/5/23 18:44:50
1. 获取地址https://fifteen.xiaobias.com/source/2102. 项目简介本项目为一款医院挂号就诊系统旨在为患者提供便捷的在线挂号服务并为医院管理人员、医生提供后台管理功能。系统支持用户注册登录、浏览医生信息、在线挂号、支付挂号费用、查询挂号记录以及查看健康教育和公告信息。后台管理端支持对用户、医生、挂号订单、健康教育内容、公告等进行管理和审核并通过字典表实现数据动态配置。项目名称数据库yiyuanguanhaojiuzhen中文名称医院挂号就诊系统3. 技术栈层次技术选型后端框架Spring Boot 2.2.2.RELEASE MyBatis-Plus Apache Shiro数据库MySQL 5.7.32-log前端后台Vue.js Element UI ECharts Axios前端前台Layui jQuery Vue.js Element UI部分其他Fastjson、Hutool、Apache Commons Lang34. 详细介绍4.1 系统角色系统包含三种角色管理员(users表)医生(yisheng表)用户(患者yonghu表)4.2 功能模块4.2.1 前台面向普通用户医生浏览与预约用户可查看医生列表按科室、职位筛选查看医生详情履历、价格、挂号须知点击“预约挂号”填写挂号日期、时间段上午/下午并提交。在线支付挂号时自动从用户余额中扣除挂号费用余额不足时可充值模拟充值页面。挂号记录用户可在个人中心查看自己的挂号记录及审核状态审核中/通过/拒绝。健康教育浏览医院发布的健康科普文章支持富文本。公告信息查看医院公告。在线咨询用户可以向管理员发送问题管理员后台回复支持实时刷新显示。个人中心修改个人信息姓名、手机号、身份证、邮箱、头像、性别、充值余额、修改密码。4.2.2 后台管理员端 - Vue Element UI管理员管理对系统管理员账号进行增删改查。用户管理查看、修改、删除用户信息软删除。医生管理增删改查医生信息工号、账户、科室、职位、职称、头像、联系方式、挂号须知、邮箱、挂号价格、履历介绍。挂号管理查看所有用户的挂号订单审核通过/拒绝并填写审核结果。健康教育管理发布/编辑/删除健康教育文章支持富文本。公告信息管理发布/编辑/删除公告。在线咨询管理查看用户提问并回复状态标记未回复/已回复。基础数据管理字典表动态配置科室、职位、健康教育类型、公告类型、挂号状态、时间类型上午/下午、审核状态等。轮播图管理配置前台页面轮播图片。4.2.3 医生端查看自己的挂号记录待审核、已就诊等。查看健康教育和公告信息。4.3 数据库表结构核心表表名说明主要字段yonghu用户表账户、密码、姓名、手机号、身份证、邮箱、性别、余额、逻辑删除yisheng医生表工号、账户、密码、姓名、科室、职位、职称、头像、电话、邮箱、挂号价格、履历guahao挂号记录表医生ID、用户ID、就诊识别码、挂号日期、时间类型、挂号状态、审核状态、审核结果jiankangjiaoyu健康教育表标题、类型、图片、发布时间、内容、逻辑删除news公告表名称、图片、类型、发布时间、内容chat在线咨询表用户ID、问题、问题时间、回复、回复时间、状态、数据类型dictionary字典表字段编码、字段名、编码索引、编码名称、父级IDconfig配置表轮播图等配置参数名、值users管理员表用户名、密码、角色tokenToken表登录认证用户ID、用户名、表名、角色、token、过期时间5. 部分代码5.1 后端 - 挂号订单保存含余额扣减// 文件GuahaoController.javaRequestMapping(/add)publicRadd(RequestBodyGuahaoEntityguahao,HttpServletRequestrequest){// ... 查重、校验 ...YonghuEntityuserIdyonghuService.selectById((Integer)request.getSession().getAttribute(userId));YishengEntityyishengEntityyishengService.selectById(guahao.getYishengId());if(userId.getNewMoney()yishengEntity.getYishengNewMoney()){returnR.error(余额不足请充值);}userId.setNewMoney(userId.getNewMoney()-yishengEntity.getYishengNewMoney());yonghuService.updateById(userId);guahaoService.insert(guahao);returnR.ok();}5.2 前端 - 医生列表展示Vue!-- 文件src/main/resources/admin/admin/src/views/modules/yisheng/list.vue 风格示例 -- template div classapp-container el-form :modelqueryParams refqueryForm ... el-form-item label医生名称 el-input v-modelqueryParams.yishengName placeholder请输入医生名称 / /el-form-item el-form-item label科室 el-select v-modelqueryParams.yishengTypes placeholder请选择科室 el-option label全部 value / el-option v-foritem in yishengTypesList :keyitem.codeIndex :labelitem.indexName :valueitem.codeIndex / /el-select /el-form-item el-button typeprimary clickhandleQuery搜索/el-button /el-form el-table :datayishengList ... el-table-column propyishengName label医生名称 / el-table-column propyishengNewMoney label挂号价格 / !-- ... 其他列 ... -- /el-table /div /template5.3 字典表初始化监听器项目启动时加载字典到ServletContext// 文件DictionaryServletContextListener.javaWebListenerpublicclassDictionaryServletContextListenerimplementsServletContextListener{OverridepublicvoidcontextInitialized(ServletContextEventsce){ApplicationContextappContextWebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());DictionaryServicedictionaryServiceappContext.getBean(DictionaryService.class);ListDictionaryEntitydictionaryEntitiesdictionaryService.selectList(newEntityWrapperDictionaryEntity());MapString,MapInteger,StringmapnewHashMap();for(DictionaryEntityd:dictionaryEntities){MapInteger,Stringmmap.getOrDefault(d.getDicCode(),newHashMap());m.put(d.getCodeIndex(),d.getIndexName());map.put(d.getDicCode(),m);}sce.getServletContext().setAttribute(dictionaryMap,map);}}6. 部分截图7. 项目总结本系统基于Spring Boot MyBatis-Plus构建后端采用Shiro进行权限控制和Token认证前后端分离架构。后台管理界面使用Vue Element UI实现现代化管理体验前台面向患者使用Layui jQuery保证轻量级和兼容性。系统实现了医院挂号就诊的核心业务流程用户注册登录 → 浏览医生 → 选择时间段挂号 → 扣费 → 管理员审核 → 用户查看挂号结果。同时拓展了健康教育、公告、在线咨询等功能丰富了医患互动场景。字典表动态管理机制使得科室、职位、类型等基础数据无需硬编码具备良好的可维护性。项目结构清晰分层合理适合作为中小型医院信息化管理的参考实现。