当前位置: 首页 > 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…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...