目录:

(1)前台用户系统-医院详请-情接口开发

(2)前台用户系统-技术点-nuxt路由

(3)前台用户系统-医院详情-前端整合


(1)前台用户系统-医院详-情接口开发

现在做在页面点击某一个医院或者搜索某一个医院,进入到医院详情页面中去:

说明:需要获取医院信息(医院基本信息、预约信息)和科室信息

在HospApiController中添加接口访问:

 @ApiOperation(value = "根据医院编号获取科室列表")@GetMapping("department/{hoscode}")public Result index(@ApiParam(name = "hoscode", value = "医院code", required = true)@PathVariable String hoscode) {List<DepartmentVo> deptTree = departmentService.findDeptTree(hoscode);return Result.ok(deptTree);}@ApiOperation(value = "根据医院编号获取医院预约挂号详情")@GetMapping("{hoscode}")public Result item(@ApiParam(name = "hoscode", value = "医院code", required = true)@PathVariable String hoscode) {Map<String,Object> map= hospitalService.item(hoscode);return Result.ok(map);}

HospitalService 接口:

package com.atguigu.yygh.hosp.service;import com.atguigu.yygh.model.hosp.Hospital;
import com.atguigu.yygh.vo.hosp.HospitalQueryVo;
import org.springframework.data.domain.Page;import java.util.List;
import java.util.Map;public interface HospitalService {//上传医院接口的方法void save(Map<String, Object> paramMap);//根据医院编号进行查询Hospital getByHoscode(String hoscode);//医院列表(条件查询分页)Page<Hospital> selectHospPage(Integer page, Integer limit, HospitalQueryVo hospitalQueryVo);//更新医院的上线状态void updateStatus(String id, Integer status);//医院的详情信息Map<String, Object> getHospById(String id);//获取医院名称String getHospName(String hoscode);//根据医院名称模糊查询List<Hospital> findByHosName(String hosname);//根据医院编号获取医院预约挂号详情Map<String, Object> item(String hoscode);
}

实现类:

 //根据医院编号进行查询@Overridepublic Hospital getByHoscode(String hoscode) {Hospital hospital = hospitalRepository.getHospitalByHoscode(hoscode);return hospital;}//封装医院等级方法private Hospital setHospitalHosType(Hospital hospital){//获取到医院等级的名称String hostypeString= dictFeignClient.getName("Hostype", hospital.getHostype());//给hospital里面的Map属性赋值hospital.getParam().put("hostypeString", hostypeString);//查询省市区String provinceString = dictFeignClient.getName(hospital.getProvinceCode());String cityString = dictFeignClient.getName(hospital.getCityCode());String districtString = dictFeignClient.getName(hospital.getDistrictCode());hospital.getParam().put("fullAddress", provinceString + cityString + districtString);return hospital;}//根据医院编号获取医院预约挂号详情@Overridepublic Map<String, Object> item(String hoscode) {Map<String, Object> result = new HashMap<>();//医院详情//调用上面封装医院等级方法Hospital hospital = this.setHospitalHosType(this.getByHoscode(hoscode));//调用上面根据医院编号进行查询的方法result.put("hospital", hospital);//预约规则result.put("bookingRule", hospital.getBookingRule());//不需要重复返回hospital.setBookingRule(null);return result;}

(2)前台用户系统-技术点-nuxt路由

我们现在使用的nuxt框架,nuxt框架是基于vue做到的,实现的是服务端渲染,nuxt中有一种操作叫做nuxt路由跳转,nuxt有它特有的方式,nuxt实现路由跳转有2中路由

固定路由:

<template><div class="home page-component">test固定路由</div>
</template>

点击北京协和医院:

动态路由:

<template><div class="home page-component">test动态路由</div></template>

在次点击那个医院:路径发生了变化加;额1000_0

(3)前台用户系统-医院详情-前端整合

在hosp.js中继续定义接口访问:

 //根据医院编号查询医院预约挂号详情show(hoscode) {return request({url: `${api_name}/findHospDetail/${hoscode}`,method: 'get'})},//根据医院编号查询医院科室信息findDepartment(hoscode) {return request({url: `${api_name}/department/${hoscode}`,method: 'get'})},

<template><!-- header --><div class="nav-container page-component"><!--左侧导航 #start --><div class="nav left-nav"><div class="nav-item selected"><spanclass="v-link selected dark":onclick="'javascript:window.location=\'/hosp/' + hospital.hoscode + '\''">预约挂号</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/detail/' +hospital.hoscode +'\''">医院详情</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/notice/' +hospital.hoscode +'\''">预约须知</span></div><div class="nav-item"><span class="v-link clickable dark"> 停诊信息 </span></div><div class="nav-item"><span class="v-link clickable dark"> 查询/取消 </span></div></div><!-- 左侧导航 #end --><!-- 右侧内容 #start --><div class="page-container"><div class="hospital-home"><div class="common-header"><div class="title-wrapper"><span class="hospital-title">{{ hospital.hosname }}</span><div class="icon-wrapper"><span class="iconfont"></span>{{ hospital.param.hostypeString }}</div></div></div><div class="info-wrapper"><imgclass="hospital-img":src="'data:image/jpeg;base64,' + hospital.logoData":alt="hospital.hosname"/><div class="content-wrapper"><div>挂号规则</div><div class="line"><div><span class="label">预约周期:</span><span>{{ bookingRule.cycle }}天</span></div><div class="space"><span class="label">放号时间:</span><span>{{ bookingRule.releaseTime }}</span></div><div class="space"><span class="label">停挂时间:</span><span>{{ bookingRule.stopTime }}</span></div></div><div class="line"><span class="label">退号时间:</span><span v-if="bookingRule.quitDay == -1">就诊前一工作日{{ bookingRule.quitTime }}前取消</span><span v-if="bookingRule.quitDay == 0">就诊前当天{{ bookingRule.quitTime }}前取消</span></div><div style="margin-top: 20px">医院预约规则</div><div class="rule-wrapper"><ol><li v-for="item in bookingRule.rule" :key="item">{{ item }}</li></ol></div></div></div><div class="title select-title">选择科室</div><div class="select-dept-wrapper"><div class="department-wrapper"><div class="hospital-department"><div class="dept-list-wrapper el-scrollbar" style="height: 100%"><divclass="dept-list el-scrollbar__wrap"style="margin-bottom: -17px; margin-right: -17px"><div class="el-scrollbar__view"><divclass="sub-item"v-for="(item, index) in departmentVoList":key="item.id":class="index == activeIndex ? 'selected' : ''"@click="move(index, item.depcode)">{{ item.depname }}</div></div></div><div class="el-scrollbar__bar is-horizontal"><divclass="el-scrollbar__thumb"style="transform: translateX(0%)"></div></div><div class="el-scrollbar__bar is-vertical"><divclass="el-scrollbar__thumb"style="transform: translateY(0%); height: 91.4761%"></div></div></div></div></div><div class="sub-dept-container"><divv-for="(item, index) in departmentVoList":key="item.id":class="index == 0 ? 'selected' : ''"class="sub-dept-wrapper":id="item.depcode"><div class="sub-title"><div class="block selected"></div>{{ item.depname }}</div><div class="sub-item-wrapper"><divv-for="it in item.children":key="it.id"class="sub-item"@click="schedule(it.depcode)"><span class="v-link clickable">{{ it.depname }} </span></div></div></div></div></div></div></div><!-- 右侧内容 #end --></div><!-- footer -->
</template><script>
import "~/assets/css/hospital_personal.css";
import "~/assets/css/hospital.css";import hospitalApi from "@/api/hosp";export default {data() {return {hoscode: null,activeIndex: 0, //样式hospital: {param: {},}, //医院bookingRule: {}, //预约的信息departmentVoList: [], //科室的信息};},created() {this.hoscode = this.$route.params.hoscode;this.init();},methods: {init() {//根据医院编号查询详情hospitalApi.show(this.hoscode).then((response) => {this.hospital = response.data.hospital; //赋值this.bookingRule = response.data.bookingRule;});//根据医院编号查询科室hospitalApi.findDepartment(this.hoscode).then((response) => {this.departmentVoList = response.data; //赋值});},//左侧菜单框往下滑,做选中方法move(index, depcode) {this.activeIndex = index;document.getElementById(depcode).scrollIntoView();},},
};
</script>

点击这个医院:

(3)前台用户系统-医院详情-前端整合

创建目录包:

<template><!-- header --><div class="nav-container page-component"><!--左侧导航 #start --><div class="nav left-nav"><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/' + hospital.hoscode + '\''">预约挂号</span></div><div class="nav-item selected"><spanclass="v-link selected dark":onclick="'javascript:window.location=\'/hosp/detail/' +hospital.hoscode +'\''">医院详情</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/notice/' +hospital.hoscode +'\''">预约须知</span></div><div class="nav-item"><span class="v-link clickable dark"> 停诊信息 </span></div><div class="nav-item"><span class="v-link clickable dark"> 查询/取消 </span></div></div><!-- 左侧导航 #end --><!-- 右侧内容 #start --><div class="page-container"><div class="hospital-detail"><div class="common-header"><div class="title-wrapper"><span class="hospital-title">{{ hospital.hosname }}</span><div class="icon-wrapper"><span class="iconfont"></span> {{ hospital.param.hostypeString }}</div></div></div><div class="info-wrapper"><img:src="'data:image/jpeg;base64,' + hospital.logoData":alt="hospital.hosname"style="width: 80px; height: 80px"/><div class="content-wrapper"><div></div><div></div><div></div><div><div class="icon-text-wrapper"><span class="iconfont prefix-icon"></span><span class="text"><p>{{ hospital.route }}</p> </span><span class="iconfont right-icon"></span></div></div></div></div><div class="title mt40">医院介绍</div><div class="detail-content mt40"><p>{{ hospital.intro }}</p></div></div></div><!-- 右侧内容 #end --></div><!-- footer -->
</template><script>
import "~/assets/css/hospital_personal.css";
import "~/assets/css/hospital.css";import hospitalApi from "@/api/hosp";
export default {data() {return {hoscode: null,hospital: {param: {},},};},created() {this.hoscode = this.$route.params.hoscode;this.init();},methods: {init() {hospitalApi.show(this.hoscode).then((response) => {this.hospital = response.data.hospital;});},},
};
</script><style>
.hospital-detail .info-wrapper {width: 100%;padding-left: 0;padding-top: 0;margin-top: 0;flex-direction: inherit;
}.hospital-detail .info-wrapper .text {font-size: 14px;
}.hospital-detail .content-wrapper p {text-indent: 0;
}
</style>
<template><!-- header --><div class="nav-container page-component"><!--左侧导航 #start --><div class="nav left-nav"><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/' + hospital.hoscode + '\''">预约挂号</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/detail/' +hospital.hoscode +'\''">医院详情</span></div><div class="nav-item selected"><spanclass="v-link selected dark":onclick="'javascript:window.location=\'/hosp/notice/' +hospital.hoscode +'\''">预约须知</span></div><div class="nav-item"><span class="v-link clickable dark"> 停诊信息 </span></div><div class="nav-item"><span class="v-link clickable dark"> 查询/取消 </span></div></div><!-- 左侧导航 #end --><!-- 右侧内容 #start --><div class="page-container"><div class="hospital-notice"><div class="content"><h2>{{ hospital.hosname }}预约挂号须知</h2><p>为方便您早日就医康复,请您认真阅读预约挂号须知:</p><h4 id="一、预约实名制:">一、预约实名制:</h4><p>统一平台电话预约和网上预约挂号均采取实名制注册预约,请您如实提供就诊人员的真实姓名、有效证件号(身份证、护照)、性别、手机号码、社保卡号等基本信息。</p><h4 id="二、预约挂号:">二、预约挂号:</h4><p>按照北京市卫健委统一平台要求,预约挂号规则如下:</p><ul><li>在同一自然日,同一医院,同一科室,同一就诊单元,同一就诊人,可以预约最多1个号源;</li><li>在同一自然周,同一就诊人,可以预约最多8个号源;</li><li>在同一自然月,同一就诊人,可以预约最多12个号源;</li><li>在同一自然季度,同一就诊人,可以预约最多24个号源。</li></ul><h4 id="三、取消预约:">三、取消预约:</h4><p>已完成预约的号源,如需办理退号,至少在就诊前一工作日14:00前通过网站、微信公众号、114电话等平台预约渠道进行取消预约。</p><h4 id="四、爽约处理:">四、爽约处理:</h4><p>如预约成功后患者未能按时就诊且不办理取消预约号视为爽约,同一患者在自然年内爽约规则如下:</p><ul><li>累计爽约3次,自3次爽约日起,90天内不允许通过114平台进行预约挂号;</li><li>累计爽约6次,自6次爽约日起,180天内不允许通过114平台进行预约挂号。</li></ul></div></div></div><!-- 右侧内容 #end --></div><!-- footer -->
</template><script>
import "~/assets/css/hospital_personal.css";
import "~/assets/css/hospital.css";import hospitalApi from "@/api/hosp";
export default {data() {return {hoscode: null,hospital: {param: {},},};},created() {this.hoscode = this.$route.params.hoscode;this.init();},methods: {init() {hospitalApi.show(this.hoscode).then((response) => {this.hospital = response.data.hospital;});},},
};
</script><style>
.hospital-detail .info-wrapper {width: 100%;padding-left: 0;padding-top: 0;margin-top: 0;flex-direction: inherit;
}.hospital-detail .info-wrapper .text {font-size: 14px;
}.hospital-detail .content-wrapper p {text-indent: 0;
}
</style>

点击医院详情:

点击预约须知:

尚医通-医院详情功能(二十七)相关推荐

  1. 三、尚医通医院管理实现

    文章目录 三.医院管理实现 1.医院列表 1.1 医院列表api接口 1.1.1 添加service分页接口与实现 1.1.2 添加controller方法 1.2 service-cmn模块提供接口 ...

  2. 尚医通-医院列表接口-等级接口-功能测试(二十二)

    目录: (1)医院列表接口-医院等级接口  (2)医院列表接口-远程调用  (3)医院列表接口-功能测试 (1)医院列表接口-医院等级接口 由于我们的医院等级.省市区地址都是取的数据字典value值, ...

  3. 尚医通项目:项目总结

    课程链接:尚医通项目 开始时间:2022-07-09 项目总结 尚医通业务流程 项目功能总结(后台管理系统) 本地访问地址 http://localhost:9528/ 医院设置管理 (1)医院设置列 ...

  4. Day228229.上传查询医院接口、上传查询删除科室接口、上传查询删除排班接口 -尚医通

    尚医通 一.上传医院接口 参考<尚医通API接口文档.docx>业务接口4.1上传医院 参考<医院接口模拟系统.docx>进行接口测试与数据上传 这里要整合hospital-m ...

  5. Day108.尚医通:医院模拟系统接口对接 - 医院|科室|排班 增删改分页条件查询

    目录 一.部署医院模拟系统 二.开发平台接口 - 上传(保存)医院信息接口 3.实现医院上传功能 4.实现签名校验 三.查询医院 四.搭建科室接口 上传科室 五.查询科室  ★★ 六.删除科室 七.上 ...

  6. 尚医通-阿里云短信服务(二十九)

    目录: (1)前台用户系统-手机登录-阿里云短信服务介绍 (2)手机登录-整合短信服务 (3)整合短信发送服务测试 (1)前台用户系统-手机登录-阿里云短信服务介绍 现在使用阿里云完成短信服务:注册登 ...

  7. 尚医通【预约挂号系统】总结

    这里写目录标题 1.项目介绍 2.技术点 3.业务流程 4.项目架构 5.项目源码(包含sql) 6.启动步骤 7.项目模块说明 8.项目功能总结 9.效果图 后台管理端 前端展示端 数据库 1.项目 ...

  8. 尚医通 (三十六) --------- 微信支付

    目录 一.微信支付介绍 二.微信支付开发 1. api 接口 2. 前端 3. 处理支付结果 三.取消预约 1. 需求描述 2. 开发微信退款接口 3. 前端 一.微信支付介绍 A.微信扫码支付申请 ...

  9. 尚医通_第12章_用户平台首页数据

    尚医通_第12章_用户平台首页数据 文章目录 尚医通_第12章_用户平台首页数据 第一节.首页静态数据整合 一.首页静态数据整合 1.添加静态资源 2.修改页面布局 第二节.首页数据显示功能 一.首页 ...

最新文章

  1. Java孩子父母类,@Output孩子和父母之间的沟通 . 角2(5)
  2. 专访图灵奖得主John Hopcroft:中国必须提升本科教育水平,才能在AI领域赶上美国
  3. mysql性能调优快捷键_mysql优化篇
  4. 用java程序将GBK字符转成UTF-8编码格式(转)
  5. 10个步骤的筛选器模式
  6. java类spring加载_spring的加载机制?
  7. web开发 学习_是否想学习Web开发但不知道从哪里开始?
  8. 【P1714】切蛋糕(单调队列)
  9. 横河电机修复多个工控产品漏洞,可用于破坏和操纵物理进程
  10. Selenium+Python自动化测试学习问题总结笔记
  11. oracle巡检计划书,网络巡检计划表.doc
  12. Windows环境下修改IP的bat文件
  13. 对九个超级程序员的采访
  14. git中fatal: Authentication failed for 的问题
  15. 2018数学建模论文写作方法
  16. 如何使用Python给照片自动带上口罩,我是从入门放弃到爱不释手的
  17. 时序数据库 InfluxDB
  18. 知识点15:文件的高级应用
  19. java绘制流程图基本元素,java绘制图片
  20. Golang Context 详细原理和使用技巧

热门文章

  1. 服务端渲染(SSR) 和客户端渲染(CSR)
  2. Qt 读取并且显示SVG图片
  3. 装宽带的师傅为什么不肯装我自己买的七类网线?
  4. 【Android原生开发】个人小助手
  5. 给TextView中的部分文本添加链接的两种方式
  6. Live555编译过程
  7. 机械3层车库图解说明
  8. 腾讯cos 上传php实例,tp5 接入腾讯对象存储COS
  9. python爬取基金历史净值_Python学习笔记之抓取某只基金历史净值数据实战案例
  10. 银联生成ARQC,ARPC,MAC,CVN生成