首页 > 其他分享 >基于springboot+vue的医院预约系统(前后端分离)

基于springboot+vue的医院预约系统(前后端分离)

时间:2023-09-04 17:34:23浏览次数:41  
标签:vue springboot 预约 res 医生 医技 科室 部分 regDepart


技术详情:

 

系统使用技术:springboot+mybatis

前端技术:ElementUI、ajax、node.js、js、css

开发工具:idea

数据库:mysql5.7

项目介绍:

本系统采用springboot+vue整合开发,前端主要使用了Vue框架、Element UI和AJAX技术。项目后端主要使用了springboot等一系列框架和MyBatis以及Maven。这一套技术易于学习、操作和管理。数据库方面则是使用了MySQL数据库以及Navicat数据库管理工具,轻量,易于管理。

功能概述:

本系统基本实现了项目需求中提出的各项内容,主要实现了前台部分、门诊医生部分、医技医生部分、药房部分和系统管理部分五个子系统,还有一个最高权限的超级管理员,所以分为6个角色。其中前台部分包含了现场挂号、退号、费用查询三个子模块;门诊医生部分包含了病历首页、检验申请、门诊确诊、药物处方、费用查询五个子模块;医技医生部分包含了患者检验、医技管理两个子模块;药房管理部分包含出药和药品管理两个子模块;系统管理部分包含科室管理、医生排班管理、用户管理三个子模块;超级管理员包含以上所有功能。

文档详情:

基于springboot+vue的医院预约系统(前后端分离)_vue

部分功能:

由于角色较多,每个角色仅截图部分,下面我们来看看相关功能。

系统登录:

基于springboot+vue的医院预约系统(前后端分离)_javaweb_02

超级管理员-系统首页

查看系统首页

基于springboot+vue的医院预约系统(前后端分离)_java_03

超级管理员-门诊管理

查看门诊信息,并进行操作

基于springboot+vue的医院预约系统(前后端分离)_ajax_04

超级管理员-排班

对各个科室的医生进行排班,当天挂号只能预约当天的医生

基于springboot+vue的医院预约系统(前后端分离)_javaweb_05

超级管理员-用户管理

查看用户信息

基于springboot+vue的医院预约系统(前后端分离)_ajax_06

前台-挂号

对病人进行挂号操作

基于springboot+vue的医院预约系统(前后端分离)_java_07

医生-诊断

对病人进行诊断

基于springboot+vue的医院预约系统(前后端分离)_vue_08

医生-开方

开立处方

基于springboot+vue的医院预约系统(前后端分离)_javaweb_09

药师-出药

药师根据医生开具的药方就行出药

基于springboot+vue的医院预约系统(前后端分离)_ajax_10

药师-药品管理

对药品进行维护

基于springboot+vue的医院预约系统(前后端分离)_javaweb_11

医技-医技维护

对医技进行操作

基于springboot+vue的医院预约系统(前后端分离)_javaweb_12

后台部分代码:

/*
    * 加载挂号科室的信息*/
    @RequestMapping("/reception/regloaddep")
    public Map<String,Object> loading(){
        Map<String,Object> res=new HashMap<>();
        List<Departoptions> list = loadingS.sitRegDep();
        res.put("deps",list);
        return res;
    }


    /*
    * 获取并加载当前科室和号别的医生(有余号的)
    * */
    @RequestMapping("/reception/selbydoc")
    public Map<String,Object> SelBydoc(@RequestBody RegDepart regDepart){
        Map<String,Object> res=new HashMap<>();
        if(regDepart.getValue()==null||regDepart.getRegType()==null){//如果没有科室或号别就直接返回null
            return res;
        }
        //根据科室和号别获取医生(有问题,需要动态查询挂号信息,目前是静态)
        List<User> list = regService.getByDeReg(regDepart.getValue(), regDepart.getRegType());

        List<SelectK> list2= new ArrayList<>();
        for(User user1:list){
            list2.add(new SelectK(user1.getName(),user1.getId()));
        }
        res.put("doc",list2);
        if(regDepart.getRegType().equals("专家号")){
            res.put("type","50");
        }else if(regDepart.getRegType().equals("普通号")){
            res.put("type","20");
        }else res.put("type","");
        return res;

    }

    /**
     * 获取当前医生的余号,已经是实时的,已经判断了上下午
     * @param regDepart
     * @return
     */
    @PostMapping("/reception/getRgeNumber")
    public int getNumber(@RequestBody RegDepart regDepart){
        String docID=regDepart.getOptDoc();
        return regService.getRegNumber(docID)-regService.getNowNum(docID);
    }

前端部分代码:

<template>
  <div>
    <div style="overflow:hidden">
      <el-form ref="form" :model="form" label-width="80px" style="padding-top: 20px;">
        <div style="float: left; padding-left: 200px;">
          <el-form-item label="*科室名" class="kkk">
            <el-input v-model="form.depName" placeholder="请输入内容"></el-input>
          </el-form-item>
          <el-form-item label="*类别" class="kkk">
            <el-input v-model="form.depType" placeholder="请输入内容"></el-input>
          </el-form-item>
          <el-form-item label="*编号" class="kkk">
            <el-input v-model="form.depNum" placeholder="请输入内容"></el-input>
          </el-form-item>
        </div>
      </el-form>
      <el-button icon="el-icon-search" type="primary" v-on:click="onSubmit()" style="width:120px; height: 50px;" round>搜索</el-button>
      <el-button icon="el-icon-plus" type="success" @click="dialogVisible = true" style="width:120px; height: 50px;" round>新增科室</el-button>
      <el-dialog title="提示" :visible.sync="dialogVisible" width="40%" :append-to-body="true"
        :before-close="handleClose">

        <div style=" margin-left:100px ;">
          <el-form ref="form1" :model="childform" label-width="80px" style="padding-top: 20px;">
            <div style="">
              <el-form-item label="科室名称" class="kkk">
                <el-input v-model="childform.depName" placeholder="请输入内容"></el-input>
              </el-form-item>
              <el-form-item label="科室编号" class="kkk">
                <el-input v-model="childform.depNum" placeholder="请输入内容"></el-input>
              </el-form-item>
            </div>
            <div style="">
              <el-form-item label="科室类型" class="kkk">
                <el-input v-model="childform.depType" placeholder="请输入内容"></el-input>
              </el-form-item>
            </div>
          </el-form>
        </div>

        <span slot="footer" class="dialog-footer">
          <el-button @click="dialogVisible = false">取 消</el-button>
          <el-button type="primary" v-on:click="addDepart()">确 定</el-button>
        </span>
      </el-dialog>
    </div>
    <div style="padding-left: 0px; margin-left: 250px; margin-top:20px ;">
      <el-table ref="multipleTable" :data="tableData" height="300" tooltip-effect="dark" border="true"
        :header-cell-style="{'text-align':'center'}"
        style="width: 80%; padding-left: 20px;">
        <el-table-column prop="depNum" label="编号" align="center" width="240">
        </el-table-column>
        <el-table-column prop="depName" label="科室名" align="center" width="240">
          <template slot-scope="scope">
            <span v-if="scope.row.show">
              <el-input size="mini" v-model="scope.row.depName"></el-input>
            </span>
            <span v-else>{{ scope.row.depName }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="depType" label="类别" align="center" width="240">
          <template slot-scope="scope">
            <span v-if="scope.row.show">
              <el-input size="mini" v-model="scope.row.depType"></el-input>
            </span>
            <span v-else>{{ scope.row.depType }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="name" label="操作" align="center" width="340">
          <template slot-scope="scope">
            <span v-if="!scope.row.show">
              <el-button @click="editRow(scope.row)" type="text" size="small">编辑</el-button>
            </span>
            <span v-else><el-button @click="saveRow(scope.row)" type="text" size="small">保存</el-button></span>
            /<el-button @click="canRow(scope.row)" type="text" size="small">取消</el-button>
            <el-button v-on:click="deleteRow(scope.$index, tableData, scope.row)" type="text" size="small" style="width:100px; height: 50px;" round>删除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,而且也与当前的热点话题关联,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,比较适合毕业设计和课程设计的相关应用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

标签:vue,springboot,预约,res,医生,医技,科室,部分,regDepart
From: https://blog.51cto.com/u_14544277/7353303

相关文章

  • 基于springboot+vue的高校迎新系统(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询项目介绍: 本系统为2022年11月开发完成,最新原创项目,采用前后端分离,项目......
  • 基于springboot+vue的社区健康码管理系统(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 本系统为2022年11月开发完成,采用前后端分离,项目......
  • 基于springboot+vue的电子村务系统(前后端分离)
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 本系统为原创项目,以电子村务为主题,采用前后端分......
  • 基于springboot的校园跑腿系统
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询项目介绍: 该系统创作于2022年5月,包含详细数据库设计。基于springboot......
  • 基于springboot自习室预约管理
    博主主页:猫头鹰源码博主简介:Java领域优质创作者博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 该系统创作于2023年3月,基于springboot技术,数据层......
  • SpringBoot+Nacos+OpenFeign实现服务的注册、发现、远程调用
    一、概述微服务的开发必定会用到SpringBoot、Nacos(服务发现、注册、配置中心)、OpenFeign(服务远程调用,也就是通过注解调用其他服务的接口)。今天写这篇是想把这三个功能集成在一起。让他们一起参与微服务的开发工作。要实现的目标:nacos要能够注册及发现服务,openfeign......
  • SpringBoot 读取配置文件
    在resources文件下创建新的配置文件,如test.yml:es:name:elasticsearch准备使用@PropertySource注解来读取test.yml内容,但@PropertySource本身不支持yml文件,所以创建以下类:publicclassPropertySourceConfigextendsDefaultPropertySourceFactory{@Override......
  • SpringBoot 下使用Swagger3.0
    swagger3.0和2.x的版本有一些配置是不一样的,故记录下。pom.xml依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>Config.java内容@Configura......
  • 使用Flask和Vue.js构建现代Web应用
    博客主题:使用Flask和Vue.js构建现代Web应用概述在本篇博客中,我们将介绍如何使用Flask和Vue.js这两个流行的框架来构建一个现代化的Web应用。Flask是一个轻量级的PythonWeb框架,而Vue.js是一个灵活且易于使用的JavaScript框架,用于构建交互式的用户界面。我们将通过一个简单的示......
  • vue3+ts Axios封装—重复请求拦截
    创建好vue3项目1.安装Axios与ElementPlusAxios安装npminstallaxiosElementPlus安装官网入口:https://element-plus.gitee.io/zh-CN/npminstallelement-plus--saveElement主要用到信息提示与全屏加载动画2.在src目录下创建api文件夹和utils文件夹api......