医院信息化与智能化系统(9)
医院信息化与智能化系统(9)
这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置
如果你想通过文字描述或代码画流程图,可以试试PlantUML
,告诉GPT你的文件结构,让他给你对应的代码
预约挂号微服务模块搭建
前端知识点补充,此章节不会详细讲具体前端的每个知识点
1、Bug修改
Bug:
当点击修改按钮
后,跳转到添加页面,再点击医院设置添加
,医院的数据并不会清空
。
这里涉及到vue中组件重用问题
,vue-router导航切换时,如果两个路由都渲染同个组件,组件的生命周期方法
(created或者mounted)不会再被调用, 组件会被重用,显示上一个路由渲染出来的自建。
解决方案:
可以简单的在 router-view上加上一个唯一的key
,来保证路由切换时都会重新触发生命周期方法,确保组件被重新初始化。·
修改 src/views/layout/components/AppMain.vue
文件如下:
通过生成动态 key
,每次路由发生变化时<router-view>
都会重新渲染。这种方法可以避免因为路由名称相同
导致的缓存问题,从而确保页面在切换时正确刷新。
<router-view:key="key"></router-view>
...
computed: {
key() {
returnthis.$route.name !== undefined? this.$route.name + +newDate(): this.$route + +newDate()}}
接着之前在add.vue的created方法中,在判断完是否存在id值(if
)后,添加一个else
语句,即如果执行的是添加操作,则表单数据清空
,将hospitalSet
属性赋值为空。
2、数据字典介绍
数据字典
就是管理系统常用的
分类数据或者一些固定数据,例如:省市区三级联动数据、民族数据、行业数据、学历数据等,由于该系统大量使用这种数据,所以我们要做一个数据管理
方便管理系统数据,一般系统基本都会做数据管理。
表设计及分析
创建yygh_cmn
数据库,里面创建dict
表,以下除了(创建时间
、更新时间
、是否删除
字段外)
字段名 | 含义 |
---|---|
id | 自身id,每一个name都对应不同的id |
parent_id | 上级 ID,通过 id 与 parent_id 构建上下级关系 |
name | 名称,用于数据字典中的名称展示 |
value | 值,用于标识数据字典的具体值 |
dict_code | 编码,全局唯一的自定义编码 |
全部分类
是级别最高的,所以它的id是1
,并且没有上级
;对应省
、医院等级
、证件类型...
,他们属于其下属级别。
value值
对应用户填写的信息。1
表示医院等级是三级甲等
dict_code
的作用是对应医院等级、学历...
这一分类,因为它们的parent_id都为1
,不好单独区分,所以可以根据编码来获取指定类型数据(比如医院等级都为一级的医院
)。
3、搭建service-cmn模块
和搭建service-hosp类似
在后端创建service-cmn
模块,首先仿照service-hosp,创建application.properties
配置文件
创建启动类ServiceCmnApplication
。添加好@SpringBootApplication
和@ComponentScan
注释和main
方法
再创建mapper
、controller
、service
、config
文件夹
其中config中创建CmnConfig
配置类,用于指定MyBatis Mapper
接口所在的包路径以及组件
集中声明管理
在model模块已经创建了对数据字典实体类的封装(Dict
),对应其表结构(id、paren_id...
),所以在mapper接口(DictSetMapper
)创建时,继承BaseMapper,指定泛型为它即可
封装类的额外操作
- 如果希望在前端使用element-ui创建的表格中呈现
多级
效果,类似于下拉选项,则必须提供hasChildren 字段
来指定哪些行是包含子节点 - 所以在实体类的创建中,需要多添加一个boolean类型属性
hasChildren
,来表示是否有子节点 - 但是在数据库中并无该字段,所以需要在该属性上添加注解
@TableField(exist = false)
- 其是 MyBatis-Plus 框架中的一个注解,用于在实体类的字段上标记该字段不与数据库表中的任何字段对应`
紧接着在service文件夹创建DictService
接口和对应的DictServiceImpl
在controller文件夹创建DictController,实例化DictService
类,设置@RestController
、CrossOrigin
等注解
4、数据字典接口-列表功能
在DictController
创建对应接口函数
- 根据数据id查询子数据列表
思路是设置请求方式为get
,在url中获取id
值,再根据id查找对应paren_id ==id
的List<Dict>
集合
其中,根据id查询对应集合的功能,需要在DictService
中声明该方法,并在DictServiceImpl
中实现该方法,逻辑是创建QueryWrapper对象构建条件,判断利用wrapper.eq()
方法实现paren_id ==id
效果,并根据wrapper返回集合List。
这里还需要一个功能是判断id下是否有子节点,这关系到hasChildren
字段的值设置。
接着在findChildData
中调用该方法,利用集合遍历,并根据集合中的id再次查询
它们作为别人的子节点,是否自己也有子节点。
//根据数据id查询子数据列表@Overridepublic List<Dict> findChildData(Long id) {QueryWrapper<Dict> wrapper = new QueryWrapper<>();wrapper.eq("parent_id",id);List<Dict> dictList = baseMapper.selectList(wrapper);//向list集合每个dist对象中设置hasChildrenfor (Dict dict :dictList){Long dictId = dict.getId();boolean isChildren = this.isChildren(dictId);dict.setHasChildren(isChildren);}return dictList;}//判断id下面是否有子节点private boolean isChildren(Long id){QueryWrapper<Dict> wrapper = new QueryWrapper<>();wrapper.eq("parent_id",id);Integer count = baseMapper.selectCount(wrapper);return count>0;}
在测试时需要注意两个问题
:
- 运行时运行的是
8202
的配置运行类
,而不是之前8201的了,否则开启的是8201的端口,打不开对应的swagger页面 - 在两个模块同时声明同一个mybatis-plus插件时,即Spring Boot 应用中定义了两个同名的
@Bean
,由于 Spring Boot 默认不允许 Bean 名称冲突,因此应用启动失败。 - 解决方法:可以选择在一个配置类中
重命名
以避免命名冲突。
@Bean(name = "customPaginationInterceptor")
public PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();
}
前端配置
第一步是在路由router/index.js
添加配置,主要包括定义路径、名称、跳转路径等。
其中跳转路径定义为views/dict/list.vue
,在api/dict
定义接口调用方法
在list.vue中,依旧跟之前一致,在return中初始化变量list:[]
作为数据字典列表数组,在method中创建getDictList
方法,内部调用dict.js中的dictList
方法,在created
中,页面渲染前调用getDictList
方法,并传id值为1
在前端展示代码中,结合element-ui
标签,解释下方内容
:data="list":
绑定了一个名为 list 的数据源,表格会根据这个数据源动态渲染行数据。
:load="getChildrens":
指定当需要加载子节点时调用的函数,这个函数会在懒加载模式下被触发,通常用于获取子节点的数据。
:tree-props="{children: 'children', hasChildren: 'hasChildren'}":
用于定义树形结构的数据属性,children 表示子节点的字段名,hasChildren 表示是否有子节点的字段名。
<el-table:data="list"style="width: 100%"row-key="id"borderlazy:load="getChildrens":tree-props="{children: 'children', hasChildren: 'hasChildren'}"><el-table-column label="名称" width="230" align="left"><template slot-scope="scope"><span>{{ scope.row.name }}</span></template></el-table-column>...</el-table>
这里getChildrens
函数
- tree:当前树节点的数据对象。tree.id 表示当前节点的唯一标识
- treeNode:Element UI 树形表格组件传递的节点信息对象。这里并未使用,但可以包含节点的层级、状态等信息。
- resolve:一个回调函数,用于通知 el-table 加载完成的数据。将异步请求的数据通过 resolve 返回给表格进行渲染。
getChildrens(tree, treeNode, resolve) {dict.dictList(tree.id).then(response => {resolve(response.data)})}
在测试时,需要把dev.env.js
中的BASE_API
修改为8202,并且修改后需要重新启动npm run dev
还碰到一个问题是,在前端路由定义时,是分为了数据管理
和数据字典
两个部分的,但是在显示过程中并没有下拉菜单,所以在router/index.js
添加alwaysShow:true
在医院等级等下面,并没有下滑按钮显示更下一层级的数据,这里考虑更换element-ui依赖版本
,在package.json
中,将原有的"element-ui": "2.4.6"
改为2.12.0
,并在vue-admin-template-master
文件夹中找到element-ui文件夹删除(好像不删也可以直接下载覆盖)
如果报错:需要来自administrator的权限才能对此文件夹进行更改
参照此处
并且注意把项目关了再删除,随后npm install
即可。
相关文章:
医院信息化与智能化系统(9)
医院信息化与智能化系统(9) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的…...
逻辑回归与神经网络
从逻辑回归开始学习神经网络 神经网络直观上解释,就是由许多相互连接的圆圈组成的网络模型: 而逻辑回归可以看作是这个网络中的一个圆圈: 圆圈被称为神经元,整个网络被称为神经网络。 本节的任务是我们究竟如何理解具体的一个神…...
隨筆 20241024 Kafka 数据格式解析:批次头与数据体
Kafka作为分布式流处理平台,以其高吞吐量、可扩展性和强大的数据传输能力,成为了现代大数据和实时处理的核心组件之一。在Kafka中,数据的存储和传输遵循一种高效的结构化格式,主要由 批次头(Batch Header)和…...
【WiFi7】 支持wifi7的手机
数据来源 Smartphones with WiFi 7 - list of all latest phones 2024 Motorola Moto X50 Ultra 6.7" 1220x2712 Snapdragon 8s Gen 3 16GB RAM 1024 GB 4500 mAh a/b/g/n/ac/6e/7 Sony Xperia 1 VI 6.5" 1080x2340 Snapdragon 8 Gen 3 12GB RAM 512 G…...
LabVIEW偏振调制激光高精度测距系统
在航空航天、汽车制造、桥梁建筑等先进制造领域,许多大型零件的装配精度要求越来越高,传统的测距方法在面对大尺寸、高精度测量时,难以满足工业应用的要求。绝对测距技术在大尺度测量上往往会因受环境影响大、测距精度低而无法满足需求。基于…...
Python Pandas 数据分析的得力工具:简介
Python Pandas 数据分析的得力工具:简介 在如今的大数据与人工智能时代,数据的收集和处理能力变得至关重要。无论是在科学研究、商业分析还是人工智能领域,如何快速、高效地分析和处理数据都是不可忽视的课题。在众多的数据分析工具中&#…...
Llama 3.2-Vision 多模态大模型本地运行教程
Ollama 刚刚放出了对 Llama 3.2-Vision 的支持!这让人想起了新游戏发布带来的兴奋感——我期待着探索 Ollama 对 Llama 3.2-Vision 的支持。该模型不仅在自然语言理解方面表现出色,而且可以无缝处理图像,最好的部分是什么?它是免费…...
iOS 18.2 可让欧盟用户删除App Store、Safari、信息、相机和照片应用
升级到 iOS 18.2 之后,欧盟的 iPhone 用户可以完全删除一些核心应用程序,包括 App Store、Safari、信息、相机和 Photos 。苹果在 8 月份表示,计划对其在欧盟的数字市场法案合规性进行更多修改,其中一项更新包括欧盟用户删除系统应…...
照片怎么转换成pdf?盘点6种图片转pdf格式有效方法,直击要点!
照片怎么转换成pdf?在日常生活和工作中,我们难免会碰到需要将照片以pdf格式保存的情况,以便于更好的整理、分享或打印。虽然jpg格式的图片因其体积小而方便分享,但有时我们也希望将这些图片转换成pdf格式,以便于创建专…...
【Qt】Windows下Qt连接DM数据库
环境信息:W11 Qt5.12及以上 dm8 QODBC达梦 Windows环境创建ODBC数据源 使用 ODBC 方法访问 DM 数据库服务器之前,必须先配置 ODBC 数据源 在控制面板Windows工具中显示ODBC数据源管理器 ODBC数据源管理器标签 用户 DSN:添加、删除或配置本…...
2024 你还不会微前端吗 (上) — 从巨石应用到微应用
前言 微前端系列分为 上/下 两篇,本文为 上篇 主要还是了解微前端的由来、概念、作用等,以及基于已有的微前端框架进行实践,并了解微前端的核心功能所在,而在 下篇 中主要就是通过自定义实现一个微前端框架来加深理解。 微前端是…...
WPF+MVVM案例实战(三)- 动态数字卡片效果实现
1、创建项目 打开 VS2022 ,新建项目 Wpf_Examples,创建各层级文件夹,安装 CommunityToolkit.Mvvm 和 Microsoft.Extensions.DependencyInjectio NuGet包,完成MVVM框架搭建。搭建完成后项目层次如下图所示: 这里如何实现 MVVM 框…...
#网络安全#渗透测试# 渗透测试应用
网络安全渗透测试是一种重要的安全评估方法,用于发现和评估网络系统中的安全漏洞。在进行渗透测试时,需要注意以下几个关键点: 法律和道德考量 获得授权:在进行渗透测试之前,必须获得目标系统的正式授权。未经授权的测…...
MicroServer Gen8再玩 OCP万兆光口+IT直通之二
这个接上一篇,来个简单测试。 一、测试环境 PC端:Win10,网卡:万兆光纤(做都做了,都给接上),硬盘使用N年的三星SSD 840 交换机:磊科GS10,带两个万兆口 Gen…...
【JAVA面试题】Java和C++主要区别有哪些?各有哪些优缺点?
文章目录 强烈推荐前言区别:1. 语法和编程风格2.内存管理3.平台独立性4.性能5.指针和引用6.多线程7.使用场景 Java 的优缺点优点:缺点: C 的优缺点优点:缺点: 总结专栏集锦 强烈推荐 前些天发现了一个巨牛的人工智能学…...
保姆级教程!!教你通过【Pycharm远程】连接服务器运行项目代码
小罗碎碎念 这篇文章主要解决一个问题——我有服务器,但是不知道怎么拿来写代码,跑深度学习项目。确实,玩深度学习的成本比较高,无论是前期的学习成本,还是你需要具备的硬件成本,都是拦路虎。小罗没有办法…...
JMeter详细介绍和相关概念
JMeter是一款开源的、强大的、用于进行性能测试和功能测试的Java应用程序。 本篇承接上一篇 JMeter快速入门示例 , 对该篇中出现的相关概念进行详细介绍。 JMeter测试计划 测试计划名称和注释:整个测试脚本保存的名称,以及对该测试计划的注…...
如何使用Git
简介 一.git简介 Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理.通过Git仓库来存储和管理这些文件,Git仓库分两种: 本地仓库:开发人员自己电脑上的Git仓库远程仓库:远程服务器上的Git仓库 commit:提交,将本地文件和版本信息保存到本地仓库 p…...
Redis 哨兵 问题
前言 相关系列 《Redis & 目录》(持续更新)《Redis & 哨兵 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 哨兵 & 总结》(学习总结/最新最准/持续更新)《Redis & 哨兵…...
安卓基础001
前言 也是好久没有更新博客了,最近实习也是需要学习一些知识哈哈哈哈哈哈为了更好的发展嘛,咱们从客户端开始,过程可能有点像写前端,不喜勿喷,希望在学习的过程中也可以给大家带来一些简单得帮助吧....... tips:这里跳过安卓studio安装,大家可自行寻找教程 写的不详细,只是为了…...
shodan2:绕过shodan高级会员限制+metasploit批量验证漏洞
shodan2 shodanmetasploit批量验证漏洞 shodan的这个指令语法是特别多的,那么我不可能说一个个全部讲完,因为有的参数可能你一辈子都用不上,主要就是把一些红队最常用的参数给你讲完,今天我们看看怎么去查一个cve-2019-0708的一…...
【JAVA毕业设计】基于Vue和SpringBoot的母婴商城系统
本文项目编号 T 030 ,文末自助获取源码 \color{red}{T030,文末自助获取源码} T030,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...
探索Python安全字符串处理的奥秘:MarkupSafe库揭秘
文章目录 探索Python安全字符串处理的奥秘:MarkupSafe库揭秘第一部分:背景介绍第二部分:MarkupSafe是什么?第三部分:如何安装MarkupSafe?第四部分:MarkupSafe的简单使用方法1. 使用escape函数2.…...
Xcode真机运行正常,打包报错
1.问题: 老项目Xcode真机运行没问题,但但打包的时候却报了以下错误: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/r…...
Android Audio基础——音频混音线程介绍(十)
MixerThread 是 Android 音频输出的核心部分,主要负责将多个音频流混合成一个输出流,通常用于处理多个音频源(如音乐播放器、语音通话、系统提示音等)的混音操作,混音后的音频数据会被发送到音频硬件(如扬声器或耳机)进行最终输出。大多数 Android 的音频都需要经过 Mix…...
【Excel】函数各类公式总结
在 Excel 中,有许多常用的公式和函数用于各种类型的计算,包括基本的数学运算、统计运算、逻辑判断、查找与引用、文本处理,以及复数计算。下面列出了一些常用的 Excel 函数: 1、数学与三角函数 SUM求和函数,计算一组…...
【入门篇】2.9 系统滴答定时器 SysTick
目录 一,SysTick 系统滴答定时器 二,SysTick寄存器 2.1 SysTick 控制和状态寄存器(CTRL) 2.2 SysTick 重装载数值寄存器(LOAD) 2.3. SysTick 当前值寄存器(VAL) 2.4 SysTick 校准值寄存器(CALIB) 三,使用SysTick定时器 四,用法示例 一,SysTick 系统滴答定时…...
BiRefNet:颠覆图像分割,AI黑科技再升级
BiRefNet:颠覆图像分割,AI黑科技再升级 BiRefNet 是一款超强的图像分割 AI 模型,精准度惊人✨,适用于医疗、农业、工业等多个领域🌍,让图像处理变得简单高效!快来体验这款黑科技吧!…...
编写一个简单的Iinput_dev框架
往期内容 本专栏往期内容: input子系统的框架和重要数据结构详解-CSDN博客input device和input handler的注册以及匹配过程解析-CSDN博客input device和input handler的注册以及匹配过程解析-CSDN博客 I2C子系统专栏: 专栏地址:IIC子系统_憧憬…...
ctfshow的sql注入解题思路171-211
ctfshow-SQL注入 web171:爆库名->爆表名->爆字段名->爆字段值 -1 union select 1,database() ,3 -- //返回数据库名 -1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema库名 -- //获取数据库里的表名 -…...
武乡网站建设/营销型网站
用途 通过除去绑定程序和符号调试程序使用的信息,降低扩展公共对象文件格式(XCOFF)的对象文件的大小。 语法 strip [ -V ] [ -r [ -l ] | -x [ -l ] | -t | -H | -e | -E ] [ -X {32 |64 |32_64 }] [ -- ] File ... 描…...
南京网站制作工具/seo主要做什么
Flowable 6.6.0 用户指南相关文档下载 BPMN用户指南 第一部分 - 中文PDF精编版BPMN用户指南 第二部分 - 中文PDF精编版BPMN用户指南 第三部分 - 中文PDF精编版应用程序指南 - 中文PDF精编版应用程序指南 - 中英对照PDF精编版应用程序指南 - Eclipse设计器中文PDF精编版表单用户…...
东莞保安公司最新招聘/seo外包优化服务商
锚点决定了形状的大小 . 对于线形,默认情况下,线从第一个锚单元的左上边缘到左上边缘加上最后一个锚单元的 dx 和 dy . 第一锚单元是锚的左上方的单元,而最后的锚单元是锚的右下方的单元 . 因此,默认情况下,线条形状将…...
WordPress情侣博客模板/东莞网站推广优化网站
文章来自:http://www.cnblogs.com/shawn-xie/archive/2012/08/15/2638480.html 一.安装在安装PhoneGap开发环境之前,需要按顺序安装以下工具:1.Java SDK java sdk,不安装的话不能正常安装Android SDK。安装成功检测:启…...
移动网站好处/域名信息查询
WCF是微软实现其在过去五年与业界合作伙伴共同开发的所有Web服务标准的机制,它有望实现广泛的互操作性,适用于诸多平台、运行时环境和编程语言。 WCF(Windows Communications Foundation,原先称为Indigo)是微软的下一…...
中国建设银行网站会员登录/腾讯云域名注册官网
如何为企业量身制定行之有效的考核体系?如何有效激发员工的创业激情?如何通过企业绩效管理助推集团战略落地?阿米巴通过“81”绩效量化技术,解决了“考核什么”和“怎么考核”的技术问题,让员工不但要对过程负责&#…...