医院信息化与智能化系统(18)

医院信息化与智能化系统(18)

这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置
如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的代码

预约挂号微服务模块搭建

前端知识点补充,此章节不会详细讲具体前端的每个知识点

1、nuxt搭建前端环境

服务端渲染(SSR,Server-Side Rendering) 是指在服务器端生成完整的 HTML 页面并将其发送给客户端的技术。与客户端渲染(CSR,Client-Side Rendering) 不同,SSR 在用户请求页面时,服务器会处理所有的渲染逻辑,并返回已渲染好的页面。浏览器只需显示 HTML 内容,而无需额外加载 JavaScript 来生成页面内容。

服务端渲染(SSR) 适用于对 SEO 要求较高、内容不频繁更新的场景,特别是需要快速呈现页面的情况。

Ajax适用于需要动态加载内容、提高用户交互体验的场景,通常与客户端渲染(CSR)结合使用,能提供更流畅的前端体验。

Nuxt.js 是一个基于 Vue.js 的开源框架,专门用于构建现代化的单页应用(SPA)和服务端渲染(SSR)应用。

下载及配置

下载地址:https://github.com/nuxt-community/starter-template/archive/master.zip

在前端工作区yygh文件夹内部创建yygh-site文件夹,把刚刚压缩包解压后的template文件夹中的所有内容,粘贴到yygh-site。

到VsCode工作区找到该文件夹,对package.json进行修改

  "name": "yygh-site ","description": " 医院挂号项目 ","author": " xxx ",

随后在nuxt.config.js进行修改(titlecontent部分)

    title: 'yygh-site',meta: [{ charset: 'utf-8' },{ name: 'viewport', content: 'width=device-width, initial-scale=1' },{ hid: 'description', name: 'description', content: '医院挂号项目' }],

在工作区找到yygh-site,右键->在集成终端中打开

  1. npm install(这里安不上可能需要换node版本)
  2. npm install element-ui

下载完在plugins文件夹下创建myPlugin.js文件

import Vue from 'vue'
import ElementUI from 'element-ui' //element-ui的全部组件
import 'element-ui/lib/theme-chalk/index.css'//element-ui的css
Vue.use(ElementUI) //使用elementUI

继续在nuxt.config.js中build模块下方添加plugins配置

  build{...},plugins: [{ src: '~/plugins/myPlugin.js', ssr: false }]

Node版本替换

医院信息化与智能化系统(5)有具体提及,使用nvm下载

  1. nvm list available查看可使用版本
  2. nvm install 16.14.0
  3. nvm use 16.14.0
  4. npm -v 查看是否自动配套了npm
    在这里插入图片描述

2、目录结构和封装axios

  1. 布局目录 layouts
    用于组织应用的布局组件。(头信息、尾信息)
  2. 页面目录 pages
    用于组织应用的路由及视图。Nuxt.js 框架读取该目录下所有的 .vue 文件并自动生成对应的路由配置。

创建utils文件夹,utils下创建request.js,代码项目提供。

这是在配置一个基于 axios 的 HTTP 请求工具,通常用于前端项目中处理 API 请求,以简化与后端的通信。这个工具代码实现了创建 axios 实例设置请求和响应拦截器,并添加了错误提示功能

输入npm install axios@0.25.0 --save(正确版本!)

npm list axios 查看版本

3、首页显示

首先在assets文件夹添加静态资源(css、images等)

layouts目录下修改默认布局文件default.vue,将主内容区域的内容替换成<nuxt />,将原有的内容全部删除替换。

提取头文件,创建layouts/myheader.vue文件;

提取尾文件,创建layouts/myfooter.vue文件;

在default.vue中导入并使用

    import myheader from './myheader'import myfooter from './myfooter'export default {components: {myheader,myfooter}}

根据项目提供的代码,更改pages/index.vue文件(复制文档的代码时,建议用word打开)

4、数据接口开发及前端显示

该页面要实现四个功能:

  1. 医院等级查询
  2. 查询地区
  3. 医院列表
  4. 医院名称模糊查询

在service-hosp模块controller/api/HospApiContorller类中创建和引用之前hospitalService内的方法达到效果。

前端显示

Nuxt.js 的asyncData 会在服务器端执行。也就是说,在服务器渲染页面时,Nuxt 会等待 asyncData 完成,获取数据后再渲染 HTML 页面并返回给客户端

 //服务端渲染异步,显示医院列表asyncData({ params, error }) {//调用return hospApi.getPageList(1,10,null).then(response => {return {list: response.data.content,pages: response.data.totalPages}})},

yygh-site中创建api文件夹里面包含hosp.jsdict.js里面分别对应Hospital和Dice对象的接口。

这里出现一个问题是报错:TypeError: Object(...) is not a function,我检查了所有代码都没有问题,在request.js导入axios中我发现,显示:无法找到模块“axios”的声明文件。”隐式拥有 "any" 类型,其他方法都没用,换版本才是正解(ps:我当时用的是0.9.0版本axios)

5、医院详情

在下拉框选择某一个内容,执行下面方法,跳转到详情页面中;或者点击某个医院名称,跳转到详情页面中。
在这里插入图片描述
在这里插入图片描述

需要在后端写两个方法,获取科室列表、医院预约挂号详情

  1. 获取科室列表方法:直接内部调用departmentService.findTree方法即可
  2. 医院预约挂号详情方法:在hospitalServiceImpl创建对应方法获取医院详情以及预约规则。
    根据hoscode得到Hospital对象,并将医院信息及预约规则单独用map集合封装。

Nuxt固定路由

固定路由是指路径在编译时就已经确定的路由,通常你可以在 pages 目录下创建一个 Vue 组件,Nuxt 会自动根据文件结构生成对应的路由。

比如:pages文件夹没有子文件夹,直接存放.vue文件

pages/├── index.vue      // 对应的路径是 '/'├── about.vue      // 对应的路径是 '/about'├── contact.vue    // 对应的路径是 '/contact'

或者:pages文件夹存在子文件夹

pages/├── hosp/      // 对应的路径是 '/hosp'├── index.vue      // 对应的路径是 '/hosp'├── about.vue 		// 对应的路径是 '/hosp/about.vue'

动态路由

动态路由允许你根据路由参数的不同,加载不同的内容。它是通过在 pages 目录中创建带有动态部分的文件名来实现的。vue命名规范:_参数名称.vue

window.location.href = '/hospital/' + item.hoscode

pages/├── hospital/      ├── _hoscode.vue      

_hoscode.vue中搭建医院详情页面,把之前两个封装的函数用上
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466850.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

场景解决方案丨迎战电商大促,企业管理跟踪驾驶舱助力中小企业打赢决胜之战

该方案已沉淀为➡️订单物流信息跟踪模板&#xff0c;点击&#x1f517;即可体验 随着互联网技术的发展和市场经济的变化&#xff0c;各行业的线上竞争愈发激烈。一方面&#xff0c;互联网平台凭借便捷的服务和丰富的产品吸引了大量客户&#xff1b;另一方面&#xff0c;复杂多…

Python练习12

Python日常练习 题目&#xff1a; 试题文件夹下的文本文件sentences.txt中&#xff0c;每行对应一个句子&#xff0c;该句子包含了多个 单词&#xff0c;单词之间以空格隔开。每个单词仅包含英文字母。我们希望能够将文件中的 每个句子转换为“山羊语”。句子的每…

DeFi 4.0峥嵘初现:主权金融时代的来临

近年来&#xff0c;Web3领域的创新似乎遇到了瓶颈&#xff0c;DeFi&#xff08;去中心化金融&#xff09;从热潮的巅峰逐渐进入了一个沉寂期。我们再也没有见到像DeFi Summer那样的行业兴奋&#xff0c;资本市场的动荡和Meme币的出现&#xff0c;似乎让人们忘记了曾经的区块链技…

如何通过六个步骤保护 AI 生成的代码

可以通过执行静态应用程序安全测试、动态安全测试、软件组合分析、使用安全代码实践、实施安全控制以及培训开发人员安全最佳实践来保护 AI 生成的代码。 随着人工智能 (AI) 在软件开发中发挥着越来越重要的作用&#xff0c;优先考虑 AI 生成的代码的安全性至关重要。 与人类…

51单片机教程(七)- 蜂鸣器

1 项目分析 利用P2.3引脚输出电平变化&#xff0c;控制蜂鸣器的鸣叫。 2 技术准备 1 蜂鸣器介绍 有绿色电路板的一种是无源蜂鸣器&#xff0c;没有电路板而用黑胶封闭的一种是有源蜂鸣器。 有源蜂鸣器和无源蜂鸣器 这里的“源”不是指电源。而是指震荡源。也就是说有源蜂鸣…

LangChain实际应用

1、LangChain与RAG检索增强生成技术 LangChain是个开源框架&#xff0c;可以将大语言模型与本地数据源相结合&#xff0c;该框架目前以Python或JavaScript包的形式提供&#xff1b; 大语言模型&#xff1a;可以是GPT-4或HuggingFace的模型&#xff1b;本地数据源&#xff1a;…

java的面向对象(从入门到深入)

目录 一、基本概念&#xff1a; 1.类 2.对象 3.继承 4.多态 5.封装 6.方法 7.接口 8.抽象 二、深入概念&#xff1a; 三:总结 一、基本概念&#xff1a; 1.类 类就是一个一个东西的蓝图&#xff0c;里面有着它的属性和方法。 2.对象 对象是一个类的实例化。 3.继承…

基础数据结构——队列(链表实现)

队列的性质 先进先出&#xff08;FIFO - First In First Out&#xff09;&#xff1a;最先加入队列的元素最先被移出后进后出&#xff08;后来的元素排在队尾&#xff09;只允许在队尾插入元素&#xff0c;在队首删除元素具有先来先服务的特点 链表实现队列 和之前创建链表相…

单纯的查询而言,vector和map谁更快

单纯的查询而言&#xff0c;vector和map谁更快 文章目录 单纯的查询而言&#xff0c;vector和map谁更快一、vector的查询二、vector和map对比三、总结 一、vector的查询 这道题目需要知道vector查询和随机访问的不同。 假设有一个包含 n 个元素的vector集合&#xff0c;需要查…

大A终究是逃不过高开低走的魔咒

大A终究是逃不过高开低走的魔咒&#xff0c;早盘高开太多&#xff0c;周末休市&#xff0c;今天会议结束&#xff0c;各种不确定因素增加等原因导致午盘普跌。其实还是那句话&#xff0c;股市嘛&#xff0c;涨多了会跌&#xff0c;跌多了会涨&#xff0c;别急也别慌。 周末&…

Ceisum无人机巡检视频投放

公司投标内容有个视频投放的功能动画&#xff0c;原本想实现这么一个效果&#xff1a; 案例效果来自别人的展示作品&#xff0c;Leader一眼就相中了这个效果&#xff0c;可惜别人的终究是别人的&#xff0c;又不会白白给你&#xff0c;终究是要自己动手尝试。 动画方面的展示…

Rust闭包(能够捕获周围作用域变量的匿名函数,广泛应用于迭代、过滤和映射)闭包变量三种捕获方式:通过引用(不可变引用)、通过可变引用和通过值(取得所有权)

文章目录 Rust 闭包详解闭包的定义与语法基本语法 闭包的特性- 环境捕获&#xff08;三种捕获方式&#xff1a;通过引用、通过可变引用和通过值&#xff08;取得所有权&#xff09;&#xff09;示例代码 - 内存安全与生命周期示例代码1 示例代码2&#xff1a;闭包所有权转移示例…

【国内中间件厂商排名及四大中间件对比分析】

国内中间件厂商排名 随着新兴技术的涌入&#xff0c;一批国产中间件厂商破土而出&#xff0c;并在短时间内迅速发展&#xff0c;我国中间件市场迎来洗牌&#xff0c;根据市占率&#xff0c;当前我国中间件厂商排名依次为&#xff1a;东方通、宝兰德、中创股份、金蝶天燕、普元…

Java 源码中的 Unicode 逃逸问题,别被注释给骗了

背景 看了一段项目源码&#xff0c;定义了一个 List 对象&#xff0c;往该列表对象 add 的代码前面有注释符号&#xff0c;但是程序运行时列表中却存在对象&#xff0c;为什么呢&#xff1f;仔细看了一下&#xff0c;注释符号和 add 代码之间有一个特殊符号 \u000d&#xff0c…

基于IM场景下的Wasm初探:提升Web应用性能|得物技术

一、何为Wasm &#xff1f; Wasm&#xff0c;全称 WebAssembly&#xff0c;官网描述是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm被设计为一个可移植的目标&#xff0c;用于编译C/C/Rust等高级语言&#xff0c;支持在Web上部署客户端和服务器应用程序。 Wasm 的开发者参…

基于百度飞桨paddle的paddlepaddle2.4.2等系列项目的运行

PPASR 必看&#xff01;&#xff01;&#xff01; PaddleSpeech develop --> PaddlePaddle 2.5.0/2.5.1 PaddleSpeech < 1.4.1 --> PaddlePaddle < 2.4.2 1.创建虚拟环境 conda create --name test python3.10 2.激活环境&#xff0c;安装ppasr的paddlepaddl…

2024MoonBit全球编程创新挑战赛参赛作品“飞翔的小鸟”技术开发指南

本文转载自 CSDN&#xff1a;https://blog.csdn.net/m0_61243965/article/details/143510089作者&#xff1a;言程序plus 实战开发基于moonbit和wasm4的飞翔的小鸟游戏 游戏中&#xff0c;玩家需要通过上下左右按键控制Bird&#xff0c;在不断移动的障碍pipe之间穿梭&#xf…

浅谈Agent

目录 什么是大模型 Agent &#xff1f; 大模型Agent 有哪些部分组成? 规划&#xff08;Planning&#xff09; Planning类型 不依赖反馈的计划 基于反馈的计划 拆解子目标和任务分解方法 COT TOT GOT LLMP 反思和完善 ReAct(融合推理与执行的能力) Reflexion(动态…

文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现

在众多的 AI 大模型的应用场景中&#xff0c;Text-to-SQL&#xff0c;也就是文本转 SQL&#xff0c;是其中实用性很高的一个。Text-to-SQL 充分利用了大模型的优势&#xff0c;把用户提供的自然语言描述转换成 SQL 语句&#xff0c;还可以执行生成的 SQL 语句&#xff0c;再把查…

DICOM标准:深入详解DICOM医学影像中的传输语法

引言 DICOM&#xff08;数字成像和通信医学&#xff09;标准在医学影像数据交换中扮演着至关重要的角色。其中&#xff0c;*传输语法&#xff08;Transfer Syntax&#xff09;是DICOM标准中定义数据编码和传输方式的核心部分。理解传输语法对于确保不同设备和系统之间的互操作性…