当前位置: 首页 > news >正文

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

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

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

预约挂号微服务模块搭建

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

1、npm run dev

在终端输入启动项目的命令npm run dev语句会直接进入模版网页中,但我们需要了解一下大致的流程。

它会首先找到package.json 文件:npm 会查看项目根目录下的 package.json 文件,寻找 scripts 部分的 dev 脚本定义。

随后它会执行该脚本:

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js"

这条命令的作用是启动一个 Webpack 开发服务器支持内联热模块替换显示打包进度,并使用指定的 Webpack 配置文件进行打包。

webpack.dev.conf.js文件中有一个语句

const baseWebpackConfig = require('./webpack.base.conf'),作用是导入一个通用的 Webpack 配置文件,并允许在当前的配置文件中使用这些基础配置。

那来分析一下这个webpack.base.conf.js的部分

入口名称: app

入口文件:src文件夹下的main.js

filename:指定输出文件的名称,这里使用 [name].js,其中 [name] 将被入口名称替换(app.js)。

HtmlWebpackPlugin: 该插件生成一个 HTML(index.html) 文件,并自动将打包后的 main.js文件注入到 该HTML,作为用户在浏览器中看到的页面结构。

  entry: {app: './src/main.js'},output: {path: config.build.assetsRoot,filename: '[name].js',...}...plugins: [new HtmlWebpackPlugin({filename: 'index.html',template: 'index.html',inject: true,favicon: resolve('favicon.ico'),title: 'vue-admin-template'})]

为了理清楚工程文件

index.html:项目的入口文件。它包含基本的 HTML 结构,其中<div id="app"></div>是用于挂载 Vue 实例的元素。所有的 Vue 组件最终都会渲染到这个 div 中。

main.js:Vue 项目的重要文件,负责初始化应用。它导入 Vue 库、应用的核心组件(如 App.vue)、路由配置(如 router/index.js)和状态管理(如 store/index.js)。在这里,创建 Vue 实例并将其挂载到 #app 元素上。

App.vue:应用的核心组件,负责结构和路由管理。它通常包含 <router-view/>组件,用于动态渲染当前路由对应的视图。App.vue 还可以包含全局样式和布局。通过 Vue RouterApp.vue 控制页面的切换,实现单页面应用的功能。

还有一个理解(可能需要考虑是否正确):

main.js:主要负责导入依赖(如 Vue、插件、样式库等),并在此处建立整个应用的模块之间的依赖关系。由于它是应用的入口文件,Webpack 会打包这个文件及其所有导入的依赖,确保这些依赖在浏览器中可用。

App.vue:主要是作为一个组件的定义,负责导入其他组件并构建应用的 UI 结构。它内部的组件和逻辑将被 main.js 导入并渲染,形成完整的应用视图。

因此,main.js 作为依赖导入的中心文件,负责初始化和设置,而 App.vue 则作为组件的容器,负责构建用户界面。

在这里插入图片描述

继续看代码

webpack.dev.conf.js'process.env': require('../config/dev.env')代码表示了一个全局常量值,该文件是一个js文件,指定了默认访问后端的接口路径BASE_API,后续可能要根据自己的路径进行修改。

在该文件的同一目录下,有一个名为index.js的文件,这里有几个需要关注的值。

  1. host: 'localhost' 当前项目主机名
  2. port: 9528 当前项目端口号
  3. useEslint: true 代码检查插件,可以改为false

2、登录代码改造

遇到的问题:默认情况下,前端项目已经实现了登录功能,后端连接到远程Mock平台的模拟数据接口进行登录,而Mock平台地址无效,导致前端的登录功能无法执行.

解决方法是:修改.\src\store\modules\user.js中的部分代码

此处主要的问题是调用一个名为login的函数。当 login 函数成功返回时,执行这个回调,response 是从服务器返回的响应。应对方法是设置一个默认的data对象,里面包含token默认值。

  actions: {// 登录Login({ commit }, userInfo) {const data = {'token':'admin'}setToken(data.token)commit('SET_TOKEN', data.token)// const username = userInfo.username.trim()// return new Promise((resolve, reject) => {//   login(username, userInfo.password).then(response => {//     const data = response.data//     setToken(data.token)//     commit('SET_TOKEN', data.token)//     resolve()//   }).catch(error => {//     reject(error)//   })// })}

获取用户信息部分同理,其中roles表示用户角色avatar表示头像

// 获取用户信息GetInfo({ commit, state }) {const data  = {'roles':'admin','name':'admin','avatar':'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif'}if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组commit('SET_ROLES', data.roles)} else {reject('getInfo: roles must be a non-null array !')}commit('SET_NAME', data.name)commit('SET_AVATAR', data.avatar)// return new Promise((resolve, reject) => {//   getInfo(state.token).then(response => {//     const data = response.data//     if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组//       commit('SET_ROLES', data.roles)//     } else {//       reject('getInfo: roles must be a non-null array !')//     }//     commit('SET_NAME', data.name)//     commit('SET_AVATAR', data.avatar)//     resolve(response)//   }).catch(error => {//     reject(error)//   })// })},

登出前端登出代码操作同理

./src/utils/request.js找到

config.headers['X-Token'] = getToken()语句,并将X-Token对应改为我们之前代码中配置的token

3、框架开发流程

第一步是添加路由

router/index.js是在 Vue.js 项目中用于配置路由的文件,负责定义页面访问路径与组件之间的映射关系

以其中部分代码作为讲解:

path: '/example' 是定义的一级路由路径,当用户访问 /example 路径时,系统会匹配到这个路由配置。

redirect: '/example/table' 定义了路由的重定向行为,当访问/example时,会自动重定向到 /example/table,即用户访问 /example 时直接跳转到表格页面。

name: 'Example'为这个路由配置指定一个名字。通常 name 属性在需要通过编程导航到该路由时使用,比如 router.push({ name: 'Example' })

meta: { title: 'Example', icon: 'example' } 其中meta 是路由的元信息,可以包含任意自定义属性。这段元数据中的 title 会作为页面标题显示,icon 表示这个页面在菜单中对应的图标,值为 example 的图标

children: [...]是这个路由的子路由配置,表示 ·/example下包含两个子路由:table tree,用于展示不同的内容。

第二步是设置跳转页面路径

component: () => import('@/views/table/index'): 使用懒加载的方式加载组件,只有访问到该路由时,才会异步加载该组件,节省资源。

{path: '/example',component: Layout,redirect: '/example/table',name: 'Example',meta: { title: 'Example', icon: 'example' },children: [{path: 'table',name: 'Table',component: () => import('@/views/table/index'),meta: { title: 'Table', icon: 'table' }},{path: 'tree',name: 'Tree',component: () => import('@/views/tree/index'),meta: { title: 'Tree', icon: 'tree' }}]}

第三步 在api文件夹创建js文件,用来封装和后端交互的请求逻辑

component: () => import('@/views/table/index')为例,它跳转的其实是index.vue文件

创建API:在 api 文件夹中创建一个 table.js 文件,用来封装和后端交互的请求逻辑。

import request from '@/utils/request'; // 通常会有一个封装好的请求工具// 获取表格数据
export function fetchTableData(query) {return request({url: '/api/table/list', // 后端 API 地址method: 'get',params: query});
}

@/utils/request 文件的核心功能就是基于 axios 或其他 HTTP 库统一封装 HTTP 请求的逻辑,包括:

  • 配置基础 URL,简化 API 请求路径。
  • 请求拦截器,添加 Token 或其他公共请求头。
  • 响应拦截器,统一处理响应数据和错误。
  • 错误处理,简化每个 API 请求的异常处理。
  • 请求超时、取消重复请求等功能,提高用户体验。

第四步 在页面引入js文件,使用axios进行调用

调用 API 并展示数据: 在 views/table/index.vue 中,通过引入api/table.js中的方法获取数据,并将数据展示在页面上。

相关文章:

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

医院信息化与智能化系统(6) 这里只描述对应过程&#xff0c;和可能遇到的问题及解决办法以及对应的参考链接&#xff0c;并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图&#xff0c;可以试试PlantUML&#xff0c;告诉GPT你的文件结构&#xff0c;让他给你对应的…...

前端学习---(6)js基础--4

Promise Promise 是异步编程的一种新的解决方案和规范。 Promise优点: 1、可以很好地解决ES5中的回调地狱的问题&#xff08;避免了层层嵌套的回调函数&#xff09;。 2、统一规范、语法简洁、可读性和和可维护性强。 3、Promise 对象提供了简洁的 API&#xff0c;使得管理异步…...

241026-RHEL如何以root身份卸载Docker

在 RHEL 8.8 中&#xff0c;以 root 身份卸载 Docker 可以通过以下步骤完成&#xff1a; 停止 Docker 服务&#xff08;如果已启动&#xff09;&#xff1a; sudo systemctl stop docker删除 Docker 包&#xff1a; 运行以下命令卸载 Docker 引擎及其依赖包&#xff08;docker-…...

iPhone当U盘使用的方法 - iTunes共享文件夹无法复制到电脑怎么办 - 如何100%写入读出

效果图 从iPhone复制文件夹到windows电脑 步骤windows 打开iTunes通过USB连接iPhone和电脑手机允许授权iTunes中点击手机图标&#xff0c;进入到点击左边“文件共享”&#xff0c;在右边随便选择一个App&#xff08;随意...&#xff09;写入U盘&#xff1a;拖动电脑的文件&am…...

jenkins ssh 免密报错Host key verification failed.

jenkins 发布项目&#xff0c;ssh连接远程服务器时报错&#xff1a;Host key verification failed. 解决&#xff1a; 原因是生成的sshkey不是用的jenkins用户&#xff0c;所以切换用户到&#xff1a;jenkins重新生成sshkey su jenkins ssh-keygen -t rsa ssh-copy-id -i ~/…...

智能科学与技术(一级学科)介绍

智能科学与技术&#xff1a;探索智能的边界与未来 智能科学与技术的起源与发展学科定位与内涵学科范围与研究方向培养目标相关学科 在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为科技创新的重要驱动力。随着技术的不断进步&#xff0c;智能…...

iOS调试真机出现的 “__llvm_profile_initialize“ 错误

一、错误形式&#xff1a; app启动就崩溃&#xff0c;如下&#xff1a; Demo__llvm_profile_initialize:0x1045f7ab0 <0>: stp x20, x19, [sp, #-0x20]!0x1045f7ab4 <4>: stp x29, x30, [sp, #0x10]0x1045f7ab8 <8>: add x29, sp, #0x100x1…...

Android SELinux——neverallow问题处理(十六)

上一篇我们介绍了通过添加允许策略处理问题,这里我们主要来看一些 neverallow 策略问题该怎么处理。 一、neverallow介绍 遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级…...

Vue 关于路由

关于路由 路由的模式与区别 路由的两种模式&#xff1a; hashhistory 区别&#xff1a; 表象不同 hash 模式中&#xff0c;在地址里以 /#/ 分隔&#xff1b;history 模式中&#xff0c;地址里以 / 分隔。关于找不到当前页面发送请求的问题 history 模式会给后端发送一次请…...

香港海洋投资启动创新海洋牧场,领航全球海洋经济

香港&#xff0c;这座国际大都市&#xff0c;以其独特的地理位置和深厚的海洋文化底蕴&#xff0c;再次站在了全球海洋经济发展的前沿。近日&#xff0c;香港海洋投资发展有限公司&#xff08;以下简称“香港海洋投资”&#xff09;在万众瞩目中&#xff0c;正式宣布启动其创新…...

C/C++ 每日一练:二分查找

二分查找是一种高效的查找算法&#xff0c;用于在有序数组中定位目标元素的位置。它的核心思想是每次查找时将范围缩小一半。 题目要求 实现一个二分查找算法。给定一个递增排序的整型数组 arr 和一个目标值 target&#xff0c;编写一个函数 binarySearch&#xff0c;若 targe…...

Linux基础IO--重定向--缓冲区

1&#xff0c;为什么语言喜欢做封装&#xff1f; 我们先知道一个概念&#xff0c;显示器叫做字符设备&#xff0c;根据ACSLL码来打印数据&#xff0c;所以我们从键盘输入的 1234&#xff0c;在显示器看来就是一个一个的字符(1,2,3,4)而不是一千两百三十四: 下图输入字符类型数…...

Conda 安装与使用指南

Conda 是一个开源的软件包管理和环境管理系统&#xff0c;主要解决一个系统上同时要使用python2&#xff0c;python3等等多个python环境的切换问题&#xff0c;支持多种编程语言&#xff08;如 Python、R 等&#xff09;&#xff0c;可以在 Windows、macOS 和 Linux 上运行。它…...

C++中获取硬盘ID的方法

在C++中,直接获取硬盘的ID(通常是硬盘的序列号或唯一标识符)并不是一项简单的任务,因为这通常涉及到低级的硬件访问,这通常是由操作系统或特定的硬件驱动程序管理的。标准C++库并没有提供直接访问硬盘ID的功能。 然而,可以通过以下几种方法来获取硬盘的ID: 操作系统特定…...

OpenRTP 传输增加OpenRTPServer

开源地址 最近增加了OpenRTPServer&#xff0c; 已经修改完成一版放在了目录下&#xff0c;window和linux下编译都成功了&#xff0c;不过由于修改代码CMakefile 需要修改&#xff0c;先放放 OpenRTP开源地址 vlc得纠错传输方式 我发现我代码写错以后&#xff0c;vlc 依然能…...

使用vue3+cesium+earthsdk+supermap实现通视分析(有版本报错问题)

main.js: 这个文件是项目的入口文件,主要进行了以下操作: 使用Vue 3的createApp创建应用实例。加载了element-plus UI 组件库。加载了router和store,以及axios用于发送HTTP请求。将@turf/turf和自定义的bus.js注册到全局属性中,便于在组件中使用。环境配置需求: 你需要安…...

python 轮子是什么

此一词语的由来是因为轮子由人类所发明&#xff0c;且在各方面都带来许多便利。既然轮子已被发明&#xff0c;而且在使用上没有什么缺陷&#xff0c;重新再发明一次轮子是没有意义的&#xff0c;只是浪费时间&#xff0c;分散研究者的资源&#xff0c;使其无法投入更有意义及价…...

农作物大豆病虫害识别分类数据集(猫脸码客第227期)

农作物大豆病虫害识别分类数据集 大豆&#xff0c;作为全球重要的粮食作物之一&#xff0c;不仅承载着人类饮食中的重要角色&#xff0c;还深刻影响着农业经济的发展。然而&#xff0c;大豆的生长过程中&#xff0c;常常面临着来自病害和虫害的双重威胁。这些病虫害不仅会影响…...

如何在算家云搭建GPT-SOVITS(语音转换)

一、模型介绍 GPT-SOVITS是一款强大的小样本语音转换和文本转语音 WebUI工具。它集成了声音伴奏分离、自动训练集分割、中文ASR和文本标注等辅助工具。 具有以下特征&#xff1a; 零样本 TTS&#xff1a; 输入 5 秒的声音样本并体验即时文本到语音的转换。少量样本 TTS&…...

ThinkPad T480拆机屏幕改装:便携式显示器DIY指南

ThinkPad T480拆机屏幕改装&#xff1a;便携式显示器DIY指南 本文记录了将旧笔记本电脑 T480 拆机屏幕改装为便携式显示器的全过程。作者在决定升级设备后&#xff0c;选择通过 DIY 方式利用原有的屏幕资源。文章详细介绍了屏幕驱动板的安装、螺丝孔的剪裁、排线连接及固定的步…...

C++ (8) C++11及更新特性:探索魔法新领域

C11及更新特性&#xff1a;探索魔法新领域 随着C语言的不断进化&#xff0c;C11及其后续版本带来了许多激动人心的新特性&#xff0c;它们就像是魔法世界中新发现的领域&#xff0c;充满了无限的可能性。这些新特性不仅提高了编程的效率和灵活性&#xff0c;还为程序员提供了更…...

【vue】Mammoth.js的使用:将.docx和doc 文件转换成HTML

mammoth.convertToHtml(input, options&#xff09; &#xff1a;把源文档转换为 HTML 文档 mammoth.convertToMarkdown(input, options) &#xff1a;把源文档转换为 Markdown 文档。 mammoth.extractRawText(input) &#xff1a;提取文档的原始文本。这将忽略文档中的所有格式…...

HarmonyOS介绍 第一课习题答案

一、判断题 1. “一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。为了实现这一目的,HarmonyOS提供了多端开发环境,多端开发能力以及多端分发机制。 正确(True)错误(False) 正确(True)回答正确 2. 《鸿蒙生态应用开发白皮书》全面阐释了鸿蒙生态下应…...

c/c++ stdcall cdel fastcall等函数调用约定说明

调用约定&#xff08;Calling Conventions&#xff09;是编程中定义函数如何接收参数、返回值以及如何管理堆栈的协议。主要的调用约定包括 __cdecl、__stdcall、__fastcall 和 __thiscall 等。下面将详细介绍这些调用约定的特点及其适用场景。 1. __cdecl 调用约定 定义&…...

【ROS概述】概念及环境搭建

学习途径&#xff1a; 教程&#xff1a;Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 课程视频&#xff1a;https://www.bilibili.com/video/BV1Ci4y1L7ZZ 机器人体系 要完全实现一个机器人的系统研发&#xff0c;几乎是“全栈”开发&#xff0c;…...

MongoDB Shell 基本命令(三)生成学生脚本信息和简单查询

一、生成学生信息脚本 利用该脚本可以生成任意个学生信息&#xff0c;包括学号、姓名、班级、年级、专业、课程名称、课程成绩等信息&#xff0c;此处生成2万名学生&#xff0c;学生所有信息都是给定范围后随机生成。 生成学生信息后&#xff0c;再来对学生信息进行简单查询。…...

java核心技术点都有哪些

1. 面向对象编程&#xff08;OOP&#xff09; 核心概念&#xff1a;类、对象、继承、封装、多态。 比喻&#xff1a;面向对象编程就像是在搭建一个积木城堡。类&#xff08;Class&#xff09;是城堡的设计图纸&#xff0c;它定义了城堡的结构和功能&#xff1b;对象&#xff08…...

4404 - 提高:二分与三分:曲线(三分)

明明做作业的时候遇到了n个二次函数Si(x)=ax22+bx+c,他突发奇想设计了一个新的函数F(x)=max(Si(x)), i=1,2...n。 明明现在想求这个函数在[0,10000]的最小值,要求精确到小数点后四位四舍五入。 输入 输入包含T 组数据 (T<10) ,每组第一行一个整数 n(n≤10000) ,之后n行…...

软件工程--需求分析与用例模型

面向对象分析(ObjectOrientedAnalysis&#xff0c;简称OOA) 分析和理解问题域&#xff0c;找出描述问题域所需的类和对象&#xff0c;分析它们的内部构成和外部关系&#xff0c;建立独立于实现的OOA模型&#xff0c;暂时忽略与系统实现有关的问题。 主要使用UML中的以下几种图…...

预测房价学习

1. 实现函数来方便下载数据 import hashlib import os import tarfile import zipfile import requestsDATA_HUB dict() DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/def download(name, cache_diros.path.join(.., data)):"""下载一个DATA_HUB中…...

机wordpress/外链群发

目录qq邮箱前往邮箱的设置->帐号开启IMAP/SMTP服务安全验证得到授权码163邮箱前往邮箱的设置->POP3/SMTP/IMAP开启smtp服务安全验证得到授权码总结『杂记』分享一些实用的技巧方法 安装环境&#xff0c;配置环境教程&#xff0c;推荐实用软件 软件的使用问题。 欢迎关注 …...

做外贸学英语的网站/百度客户服务电话

VMware View 组件如何组成在一起最终用户启动 View Client 登录 View Connection Server。该服务器与 WindowsActive Directory 集成&#xff0c;通过它可以访问 VMware vSphere 环境、刀片或物理 PC 或 Windows 终端服务服务器中托管的虚拟桌面。客户端设备使用 VMware View 的…...

网上注册公司申请入口/seo怎么优化方案

我们知道 STM32 有很多寄存器&#xff0c;看起来特别费劲&#xff0c;当然如果通过前面的直接查看寄存器值的方法确实可以观察数据&#xff0c;但在这里我要介绍一个特别方便的查看方式。KEIL 集成的外设窗口&#xff08;注意这个外设串口对 STM32F4 系列支持效果并不理想&…...

banner图片怎么设计网站/百度推广助手电脑版

最近两天在学习GBDT&#xff0c;看了一些资料&#xff0c;了解到GBDT由很多回归树构成&#xff0c;每一棵新回归树都是建立在上一棵回归树的损失函数梯度降低的方向。 以下为自己的理解&#xff0c;以及收集到的觉着特别好的学习资料。 1、GBDT可用于回归任务和分类任务。 GBDT…...

php做动态网站/游戏推广论坛

我有一个数据帧序列看起来像这样-a b r1 43 630 587d b c1 34 30 87我想创建一个新的数据帧&#xff0c;它看起来像-^{pr2}$我用了密码-appended_data pd.concat(appended_data, axis0)其中&#xff0c;附加的“数据”列表包含单个数据帧系列作为元素。以前当我将它与其他数据集…...

网站建设响应式是什么意思/网站seo关键词优化排名

如果在爱和技术之间选其一&#xff0c;我更愿意爱而非技术。爱是天性&#xff0c;智力是器用&#xff0c;器用不能取代天性。不欲得到和拥有&#xff0c;只是宁静地与之相处。 那曾使人欢乐的&#xff0c;是使人现在所悲伤&#xff1b;而今天的悲伤&#xff0c;复又成将来的欢乐…...