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

粤嵌实训医疗项目--day06(Vue + SpringBoot)

往期回顾

  • 粤嵌实训医疗项目(小组开发)--day05-CSDN博客
  • 粤嵌实训医疗项目--day04(Vue + SpringBoot)-CSDN博客
  • 粤嵌实训医疗项目--day03(Vue + SpringBoot)-CSDN博客
  • 粤嵌实训医疗项目day02(Vue + SpringBoot)-CSDN博客
  • 粤嵌实训医疗项目--day01(Vue+SpringBoot)-CSDN博客

目录

一、预约挂号模块

------------前端实现------------

功能一:面包屑样式

功能二:搜索栏

功能三:功能表格(获取当前列内的参数)

功能四:分页显示

------------后端接口------------

功能一:通过列表查询所有挂号记录

功能二:根据id查找对应的订单

功能三:获取病例订单的详细信息

功能四:实现撤回效果


一、预约挂号模块

 业务需求:

------------前端实现------------

1.创建本次模块对应的视图,名称为RegisterList.Vue

2.配置好对应的动态路由

//  配置子路由children: [{path: 'vaccineType',//   --> /Layout/vaccineTypename: 'vaccineType',component: () => import('@/type/TypeList')},{path: 'userInfo',//   --> /Layout/vaccineTypename: 'userInfo',component: () => import('@/view/UserInfoList')},
//        本次模块使用的路由地址{path:'registration',name:'registration',component: () => import('@/view/RegisterList') }]

配置好后就可以开始实现前端样式了!


功能一:面包屑样式

头部设置导航栏,表明当前导航的地址。

在element官网中找到如下案例:

修改代码后如下:

       <div style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);height: 30px; padding-top: 1%;"><el-breadcrumb separator="/"><el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item><el-breadcrumb-item><a href="/">医生模块</a></el-breadcrumb-item><el-breadcrumb-item>挂号记录查询</el-breadcrumb-item></el-breadcrumb></div>

 展示:


功能二:搜索栏

通过搜索预约订单的id查询到对应的订单。

通过element查找对应组件案例有:

修改后代码如下:

   <!-- 顶部搜索栏 --><div style="display: flex; align-items: center; margin-left: 40%; margin-top: 2%;"><el-input v-model="input" placeholder="请输入挂号订单编号快速查询"></el-input></div>

但是如此还并不足够,因为只有一段 空白输入框,并没有查询按钮,所以还需要在组件仓库中查找按钮。

查找后插入对应代码如下:

   <!-- 顶部搜索栏 --><div style="display: flex; align-items: center; margin-left: 40%; margin-top: 2%;"><el-input v-model="input" placeholder="请输入挂号订单编号快速查询"></el-input><el-button type="primary" icon="el-icon-search">搜索</el-button></div>

展示:

前后端交互:

通过get方法访问后端实现查询功能,目标:通过挂号记录的唯一id,查看数据库是否存在。

1.引入request工具,进行get请求

//      实现根据挂号记录id查询挂号功能queryById(){request// 这里设置功能根据id查询对应的用户.get("/",{params:{id : this.input,}}).then((res)=>{// 将后台数据返回到表单中this.tableData = res.list;if(res.flag == false){this.$message.error("查询失败");}else{this.$message.success("查询成功");}})},

功能三:功能表格(获取当前列内的参数)

首先表格的基础功能在于展示数据,但是额外需要实现功能有

按钮一:实现查询对应挂号的详细病情

按钮二:撤销用户的挂号订单(注意:用户只能撤销自己的挂号)

在仓库表格中找到功能性表格

修改一下代码后放入模板中

  <divstyle="margin: 0 auto; width: 63%;  box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); margin-top: 2%;"><!-- 表格展示数据 --><el-table :data="tableData" border style="width: 100%"><el-table-column fixed prop="id" label="挂号订单编号" width="150"></el-table-column><el-table-column prop="UserName" label="病号名称" width="120"></el-table-column><el-table-column prop="registration_time" label="订单时间" width="120"></el-table-column><el-table-column prop="status" label="病历单状态" width="300"></el-table-column><el-table-column prop="doctorName" label="负责医生" width="120"></el-table-column><el-table-column fixed="right" label="操作" width="250" ><template slot-scope="scope"><!-- 通过按键打开内容 --><el-button type="info" @click="centerDialogVisible = true" style="width: 120px;">病情详细信息</el-button><el-dialog title="病例详细描述" :visible.sync="centerDialogVisible" width="30%" center><span>丁丁太小</span><span slot="footer" class="dialog-footer"><el-button @click="centerDialogVisible = false">取 消</el-button><el-button type="primary" @click="centerDialogVisible = false">确 定</el-button></span></el-dialog><!-- 撤回按钮 --><el-popconfirm title="你确定要撤回预约挂号记录吗?"><el-button type="danger" slot="reference" disabled>撤回</el-button></el-popconfirm></template></el-table-column></el-table></div>

对应的数据案例展示

 data() {return {tableData: [{id: '1',UserName: '王小虎',registration_time: '2023-10-22',status: '已处理',doctorName: '陈志平',},],centerDialogVisible: false,}}

展示:

前后端交互

通过生命周期,在创建时候就进行查询所有挂号记录。

设置生命周期:

   created() {// 在访问网页时候就进行get请求请求所有挂号记录this.query()},

查询所有数据方法:

//      查询所有挂号记录功能query(){request// 对应后端路径.get("/",{// 发送分页参数params:{pageNum: this.pageNum,pageSize: this.pageSize,}}).then((res)=>{this.tableData = res.list;this.total = res.total;})}},

除了一开始就调用query方法进行返回list之外,这个组件还需要实现两个功能,一个是查看挂号的详细信息,一个是撤回医生自己的表单。

1.查看详细信息

 //      查询挂号记录中用户的病情openDetails(val) {request.get("/vaccinum/registration/queryDescription", {params: {id: val}}).then((res) => {this.description = res.description;// this.src = res.src;})},

 

2.实现撤回功能

在组件上加入confrim函数,意味着当点击是否撤销时候执行函数handleDelete

 //      进行撤销操作handleDelete(val) {request.get("/vaccinum/registration/remove", {params: {id: val}}).then((res) => {if (res.flag == false) {this.$message.error("撤回失败");} else {this.$message.success("撤回成功");}this.query();})},

 

发送参数:id

  <!-- 撤回按钮 --><el-popconfirm title="你确定要撤回预约挂号记录吗?" @confirm="handleDelete(scope.row.id)"><el-button type="danger" slot="reference">撤回</el-button></el-popconfirm>

功能四:分页显示

展示的表格不能一次性展示所有数据,所以提供分页功能,并且需要可以多种页面容量显示。

仓库中找到分页组件

修改对应代码后如下:

 <!-- 分页标签 --><div class="block"><el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange":current-page.sync="currentPage2" :page-sizes="[8, 10, 12]" :page-size="100"layout="sizes, prev, pager, next" :total="100"></el-pagination></div>

实现前端分页函数如下:

        //      分页函数处理handleSizeChange(val) {console.log(val);this.pageSize = val;this.query();},handleCurrentChange(val) {console.log(val);this.currentPage = val;this.query();},

展示:

前端代码:

<template><div><div style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);height: 30px; padding-top: 1%;"><el-breadcrumb separator="/"><el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item><el-breadcrumb-item><a href="/">医生模块</a></el-breadcrumb-item><el-breadcrumb-item>挂号记录查询</el-breadcrumb-item></el-breadcrumb></div><!--  顶部搜索栏  --><div style="display:  flex;  align-items:  center;  margin-left:  40%;  margin-top:  2%;"><el-input placeholder="请输入内容" v-model="input" clearable @input="handleInput"></el-input><el-button type="primary" icon="el-icon-search" @click="queryById">搜索</el-button></div><divstyle="margin: 0 auto; width: 63%;  box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); margin-top: 2%;"><!-- 表格展示数据 --><el-table :data="tableData" border style="width: 100%"><el-table-column fixed prop="id" label="挂号订单编号" width="150"></el-table-column><el-table-column prop="userName" label="病号名称" width="120"></el-table-column><el-table-column prop="registration_time" label="订单时间" width="120"></el-table-column><el-table-column prop="status" label="病历单状态" width="300"></el-table-column><el-table-column prop="doctorName" label="负责医生" width="120"></el-table-column><el-table-column fixed="right" label="操作" width="250"><template slot-scope="scope"><!-- 通过按键打开内容 --><el-button type="info" @click=" centerDialogVisible = true; openDetails(scope.row.id)"style="width: 120px;">病情详细信息</el-button><el-dialog title="病例详细描述" :visible.sync="centerDialogVisible" width="30%" center :modal="false"><div class="block"><span class="demonstration" style="text-align: center;">病情图片展示</span><el-image :src="src"></el-image></div><span>病情详细描述:{{ description }}</span><span slot="footer" class="dialog-footer"><el-button @click="centerDialogVisible = false">取 消</el-button><el-button type="primary" @click="centerDialogVisible = false">确 定</el-button></span></el-dialog><!-- 撤回按钮 --><el-popconfirm title="你确定要撤回预约挂号记录吗?" @confirm="handleDelete(scope.row.id)"><el-button type="danger" slot="reference">撤回</el-button></el-popconfirm></template></el-table-column></el-table></div><!-- 分页标签 --><div class="block"><el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange":current-page.sync="currentPage2" :page-sizes="[8, 10, 12]" :page-size="pageSize"layout="sizes, prev, pager, next" :total="tableData.length"></el-pagination></div>``</div>
</template>
<script>
//导入request工具
import request from "@/utils/request";export default {methods: {//      -----------------------------------------------------前后端交互区---------------------handleClick(row) {console.log(row);},//      实现根据挂号记录id查询挂号功能queryById() {request// 这里设置功能根据id查询对应的用户.get("/vaccinum/registration/queryById", {params: {id: this.input,}}).then((res) => {// 将后台数据返回到表单中if (res.flag == false) {this.$message.error("查询失败,请检查订单号是否存在");} else {this.$message.success("查询成功");this.tableData = res.list;}})},//      查询所有挂号记录功能query() {request// 对应后端路径.get("/vaccinum/registration/list", {// 发送分页参数params: {currentPageNum: this.currentPageNum,pageSize: this.pageSize,}}).then((res) => {this.tableData = res.list;this.total = res.total;for (let i = 0; i < this.tableData.length; i++) {this.tableData[i].status = this.getStatusText(this.tableData[i].status);}})},//      查询挂号记录中用户的病情openDetails(val) {request.get("/vaccinum/registration/queryDescription", {params: {id: val}}).then((res) => {this.description = res.description;// this.src = res.src;})},//      进行撤销操作handleDelete(val) {request.get("/vaccinum/registration/remove", {params: {id: val}}).then((res) => {if (res.flag == false) {this.$message.error("撤回失败");} else {this.$message.success("撤回成功");}this.query();})},// ----------------------------------------------------------前端功能区-------------------// 使用聚焦,解决无法输入参数的问题handleInput(value) {console.log('输入值:', this.input);},//      分页函数处理handleSizeChange(val) {console.log(val);this.pageSize = val;this.query();},handleCurrentChange(val) {console.log(val);this.currentPage = val;this.query();},// 前端修改status并转为特定的文字显示getStatusText(status) {if (status === 0) {return "处理中";} else if (status === 1) {return "已处理";} else if (status === 2) {return "异常";} else {return "未知状态";}},},//  Vue的生命周期周期created() {// 在访问该模块时候就进行get请求请求所有挂号记录this.query()},//  Vue 数据存放处data() {return {// 案例数据tableData: [{id: '1',UserName: '王小虎',registration_time: '2023-10-22',status: '已处理',doctorName: '陈志平',},],centerDialogVisible: false,//          存放默认分页currentPageNum: 1,pageSize: 8,//          存放病情描述input: '',// 图片存放处src: 'https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg',}}
}</script>
<style>
.el-input {width: 25%;
}
</style>

------------后端接口------------

功能一:通过列表查询所有挂号记录

//  TODO:实现查询挂号订单的功能@RequestMapping("/list")public String query(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "8") Integer pageSize) throws JsonProcessingException {
//        创建结果集并实现分页HashMap map = new HashMap();Page page = new Page(pageNum,pageSize);
//        获取结果IPage<Registration> iPage = registrationService.page(page);List<Registration> records = iPage.getRecords();List<InfoSummery> summeries = new ArrayList<>();//将筛选后的结果放进表格中for (Registration registration : records){summeries.add(new InfoSummery(registration.getUserId(),userServiceservice.getById(registration.getUserId()).getName(),registration.getRegistrationTime(),registration.getStatus(),doctorService.getById(registration.getDoctorId()).getName()));}map.put("list",summeries);map.put("total",iPage.getTotal());return JSon_Tool.writeValueAsString(map);}//    挂号记录的一般信息类@Valueprivate static class InfoSummery{Integer id;String UserName;LocalDateTime registration_time;Integer status;String doctorName;}

 API测试:

前端页面展示:


功能二:根据id查找对应的订单

//    TODO:根据id查找对应的订单@RequestMapping("/queryById")public String queryById(@RequestParam("id") Integer id) throws JsonProcessingException {
//        结果集HashMap map = new HashMap();Registration registration;List<InfoSummery> summeryList = new ArrayList<>();
//        默认为falsemap.put("flag",false);try {
//            如果触发异常则说明找不到对应idregistration =registrationService.getById(id);summeryList.add(new InfoSummery(registration.getId(),userServiceservice.getById(registration.getUserId()).getName(),registration.getRegistrationTime(), registration.getStatus(), doctorService.getById(registration.getDoctorId()).getName()));map.put("list",summeryList);map.put("flag",true);}catch (Exception e){
//            查询失败打印信息e.printStackTrace();}finally {return JSon_Tool.writeValueAsString(map);}}

前端展示:

1.正常查询

2.异常查询


功能三:获取病例订单的详细信息

//    TODO:获取病例订单的详细信息@RequestMapping("/queryDescription")public String queryDiscription(@RequestParam("id") Integer id) throws JsonProcessingException {HashMap map = new HashMap();map.put("flag",false);
//        创建异常拦截try {String description = registrationService.getById(id).getDescription();
//            返回病情描述,病情图片map.put("description",description);map.put("flag",true);map.put("src",registrationService.getById(id).getDescribeImg());}catch (Exception e){e.printStackTrace();}finally {
//            无论成功与否都返回数据return JSon_Tool.writeValueAsString(map);}}

 前端展示:


功能四:实现撤回效果

//  TODO:进行挂号记录的撤销操作@RequestMapping("/remove")public String handleDelete(@RequestParam("id") Integer id) throws JsonProcessingException {HashMap map = new HashMap();map.put("flag", false);try {
//            执行删除操作boolean remove = registrationService.removeById(id);map.put("flag",remove);}catch (Exception e){}finally {return JSon_Tool.writeValueAsString(map);}}

 前端展示:

模块代码:

@RestController
@RequestMapping("/vaccinum/registration")
@AllArgsConstructor
public class RegistrationController {@AutowiredIRegistrationService registrationService;IUserService userServiceservice;IDoctorService doctorService;ObjectMapper JSon_Tool = new ObjectMapper();@RequestMapping("/insert")public String register(Registration registration) throws JsonProcessingException {HashMap map = new HashMap();boolean save = registrationService.save(registration);map.put("flag",save);return JSon_Tool.writeValueAsString(map);}//    TODO:根据id查找对应的订单@RequestMapping("/queryById")public String queryById(@RequestParam("id") Integer id) throws JsonProcessingException {
//        结果集HashMap map = new HashMap();Registration registration;List<InfoSummery> summeryList = new ArrayList<>();
//        默认为falsemap.put("flag",false);try {
//            如果触发异常则说明找不到对应idregistration =registrationService.getById(id);summeryList.add(new InfoSummery(registration.getId(),userServiceservice.getById(registration.getUserId()).getName(),registration.getRegistrationTime(), registration.getStatus(), doctorService.getById(registration.getDoctorId()).getName()));map.put("list",summeryList);map.put("flag",true);}catch (Exception e){
//            查询失败打印信息e.printStackTrace();}finally {return JSon_Tool.writeValueAsString(map);}}//  TODO:实现查询挂号订单的功能@RequestMapping("/list")public String query(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "8") Integer pageSize) throws JsonProcessingException {
//        创建结果集并实现分页HashMap map = new HashMap();Page page = new Page(pageNum,pageSize);
//        获取结果IPage<Registration> iPage = registrationService.page(page);List<Registration> records = iPage.getRecords();List<InfoSummery> summeries = new ArrayList<>();//将筛选后的结果放进表格中for (Registration registration : records){summeries.add(new InfoSummery(registration.getId(),userServiceservice.getById(registration.getUserId()).getName(),registration.getRegistrationTime(),registration.getStatus(),doctorService.getById(registration.getDoctorId()).getName()));}map.put("list",summeries);map.put("total",iPage.getTotal());return JSon_Tool.writeValueAsString(map);}//    TODO:获取病例订单的详细信息@RequestMapping("/queryDescription")public String queryDiscription(@RequestParam("id") Integer id) throws JsonProcessingException {HashMap map = new HashMap();map.put("flag",false);
//        创建异常拦截try {String description = registrationService.getById(id).getDescription();
//            返回病情描述,病情图片map.put("description",description);map.put("flag",true);map.put("src",registrationService.getById(id).getDescribeImg());}catch (Exception e){e.printStackTrace();}finally {
//            无论成功与否都返回数据return JSon_Tool.writeValueAsString(map);}}//  TODO:进行挂号记录的撤销操作@RequestMapping("/remove")public String handleDelete(@RequestParam("id") Integer id) throws JsonProcessingException {HashMap map = new HashMap();map.put("flag", false);try {
//            执行删除操作boolean remove = registrationService.removeById(id);map.put("flag",remove);}catch (Exception e){}finally {return JSon_Tool.writeValueAsString(map);}}
//    挂号记录的一般信息类@Valueprivate static class InfoSummery{Integer id;String UserName;LocalDateTime registration_time;Integer status;String doctorName;}
}

收获与总结:

前端:

1.url处理请求地址中如果出现%20,说明你的请求地址可能尾部有空格

2.对话表格组件使用时候,如果出现屏幕半黑的情况,那么是屏蔽罩没有关闭。

3.通过表格获取当前列的id只需要在scope作用域中获取对应的值即可,如scope.row.id

后端:

1.在访问数据时候尽量使用异常处理,这样访问时候即使非法访问也能得到一个返回结果。

2.mybatis-plus中设置一个实体集的主键应该按照如下操作

   /** * 主键 挂号id* */@TableId(type=IdType.AUTO)private Integer id;


 

相关文章:

粤嵌实训医疗项目--day06(Vue + SpringBoot)

往期回顾 粤嵌实训医疗项目(小组开发)--day05-CSDN博客粤嵌实训医疗项目--day04&#xff08;Vue SpringBoot&#xff09;-CSDN博客粤嵌实训医疗项目--day03&#xff08;Vue SpringBoot&#xff09;-CSDN博客粤嵌实训医疗项目day02&#xff08;Vue SpringBoot&#xff09;-CS…...

SPSS二元Logistic回归

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…...

前端-第一部分-HTML

一.初识HTML 1.1 HTML 简介 HTML 全称为 HyperText Mark-up Language&#xff0c;翻译为超文本标签语言&#xff0c;标签也称作标记或者元素。HTML 是目前网络上应用最为广泛的技术之一&#xff0c;也是构成网页文档的主要基石之一。HTML文本是由 HTML 标签组成的描述性文本&a…...

六度空间(C++)

目录 题目&#xff1a; 输入、输出格式&#xff1a; 代码&#xff1a; 运行结果&#xff1a; 题目&#xff1a; 输入、输出格式&#xff1a; 代码&#xff1a; #include<iostream> #include<algorithm> using namespace std; int g[10005][10005]; float n…...

记录undefined reference to `SSLv3_client_method‘错误笔记

libcurl.a(libcurl_la-openssl.o): in function ossl_connect_step1: openssl.c:(.text0x3ca8): undefined reference to SSLv3_client_method 我个人环境原因&#xff1a;编译选项指定了某个openssl目录&#xff0c;此目录下有libcrypto.a libssl.a 解决方法&#xff1a;…...

JS算法练习 11.11

leetcode 2619 数组原型对象的最后一个元素 请你编写一段代码实现一个数组方法&#xff0c;使任何数组都可以调用 array.last() 方法&#xff0c;这个方法将返回数组最后一个元素。如果数组中没有元素&#xff0c;则返回 -1 。 你可以假设数组是 JSON.parse 的输出结果。 示例…...

50代码审计-PHP无框架项目SQL注入挖掘

代码设计分为有框架和无框架 挖掘技巧&#xff1a;随机挖掘&#xff0c;定点挖掘&#xff0c;批量挖掘&#xff08;用工具帮助扫描探针&#xff0c;推荐工具&#xff1a;fortify&#xff0c;seay系统&#xff09;。 1.教学计划&#xff1a; ---审计项目漏洞 Demo->审计思…...

什么是微服务?与分布式又有什么区别?

什么是微服务&#xff0c;我们先从传统的单体结构进行了解&#xff0c;对两者进行对比。 单体结构 单体结构是一种传统的软件架构模式&#xff0c;它将应用程序划分为一组相互依赖的模块和组件。这些模块和组件通常都是构建在同一个平台上的&#xff0c;并且紧密耦合在一起。…...

案例 | 3D可视化工具HOOPS助力SolidWorks edrawings成功引入AR/VR技术

HOOPS中文网慧都科技是HOOPS全套产品中国地区指定授权经销商&#xff0c;提供3D软件开发工具HOOPS售卖、试用、中文试用指导服务、中文技术支持。http://techsoft3d.evget.com/达索系统SolidWorks面临的挑战 达索系统SolidWorks公司开发和销售三维CAD设计软件、分析软件和产品…...

初识Linux:目录路径

目录 提示&#xff1a;以下指令均在Xshell 7 中进行 一、基本指令&#xff1a; 二、文件 文件内容文件属性 三、ls 指令拓展 1、 ls -l &#xff1a; 2、ls -la&#xff1a; 3、ls [目录名] &#xff1a; 4、ls -ld [目录名]&#xff1a; 四、Linux中的文件和…...

抖音小程序开发:探索技术创新的代码之旅

随着抖音小程序的兴起&#xff0c;企业纷纷将目光投向这个充满活力的平台。抖音小程序开发不仅为品牌提供了更广泛的曝光机会&#xff0c;更是技术创新的舞台。本文将带领读者深入探索抖音小程序开发的技术要点&#xff0c;探讨如何通过代码实现个性化、高效的小程序。 1. 小…...

公司注册股东选择几个人合适?

创业初期很多创业者都会选择有注册有限责任公司&#xff0c;有限责任由五十个以下的股东出资设立&#xff0c;每个股东以其所认缴的出资额为限对公司承担有限责任。那么问题来了股东人数选择几个最合适呢&#xff0c;下面上海注册公司网&#xff08;www.91kaiye.cn&#xff09;…...

大数据治理——为业务提供持续的、可度量的价值(二)

第二部分&#xff1a;元数据集成体系结构 在明确了元数据管理策略后需要确定实现该管理策略所需的技术体系结构&#xff0c;即元数据集成体系结构。元数据集成体系结构涉及到多个概念&#xff0c;如元模型、元-元模型、公共仓库元模型&#xff08;CWM&#xff09;等&#xff0…...

前端安全方面有哪些攻击方式?

在前端开发中&#xff0c;存在一些常见的安全攻击方式。以下是一些常见的前端安全攻击方式&#xff1a; 1&#xff1a;跨站脚本攻击&#xff08;XSS&#xff09;&#xff1a; XSS攻击是指攻击者通过在网页中注入恶意脚本&#xff0c;使得用户在浏览器中执行该脚本&#xff0c;…...

linux的文件属性

在使用长格式查看目录信息时&#xff0c;会看到如下的结果。每一行代表对应的文件或者目录的详细信息。从左到右具体含义时文件属性、文件数、所有者、所属的组、文件大小、建立月份、建立日期、建立年份或时间及文件名 [rootmaster lib]# ll total 19260 drwxr-xr-x. 2 root…...

电脑指示灯闪烁,但是无法开机的解决方案

【便携机开机故障】电脑指示灯闪烁&#xff0c;但是无法开机的解决方案 问题描述 设备型号&#xff1a;联想 ThinkPad T14s 故障详情&#xff1a;电脑使用后未关机锁屏合盖后&#xff0c;再次使用时开关机指示灯一直闪烁&#xff0c;但是无法正常开机。 其他尝试方法&#xf…...

【电工基础】

电工基础 11.1 简介1.2 电路作用1.3 电路模型1.4 电流定义1.5 电压定义1.6 电动势1.7 电阻元件1.7.1 电阻元件定义1.7.2 电阻原件的特性1.7.31.7.4 1.81.91.10 345 1 1.1 简介 电源外部&#xff0c;正电荷移动的方向是由电源正极向电源负极方向&#xff0c;负电荷移动的方向是…...

【Word自定义配置,超简单,图文并茂】自定义Word中的默认配置,比如标题大小与颜色(参考科研作图配色),正文字体等

▚ 01 自定义样式Styles中的默认标题模板 &#x1f4e2;自定义标题的显示效果&#xff0c;如下图所示&#xff1a; 1.1 自定义标题的模板Normal.dotm 1.1.1 选择所需修改的标题 新建一个空白Word文档&#xff0c;依次选择菜单栏的开始Home&#xff0c;样式Styles&#xff0c;…...

常见排序算法之快速排序

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。 基本思想为∶任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右子序列中所有元素均大于基准值&#xff0c;…...

ESP32 C3 smartconfig一键配网报错

AP配网 在调试我的esp32c3的智能配网过程中&#xff0c;发现ap配网使用云智能App是可以正常配置的。 切记用户如果在menu菜单里使能AP配网&#xff0c;默认SSID名字为adh_PK值_MAC后6位。用户可以修改这个apssid的键值&#xff0c;但是要使用云智能app则这个名字的开头必须为ad…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...