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

平台项目列表页实现(二)

这里写目录标题

  • 一、顶部盒子设计
    • 1. 顶部盒子包含项目列表和添加项目、退出登录2个按钮
  • 二、项目列表盒子设计
  • 三、添加项目盒子设计
  • 四、退出登录功能实现
  • 五、路由导航守卫实现
  • 六、展示项目信息
  • 七、bug修复
    • 1、当项目名称太长或者项目负责人太长,需要一行展示,当超过8个字...展示
  • 八、删除单个项目
  • 九、添加项目功能
  • 十、编辑和添加使用同一个弹框
  • 十一、编辑项目
  • 十二、总体实现代码
  • 十三:鼠标放上指定的位置变成手,点击进入home页面

一、顶部盒子设计

在这里插入图片描述

1. 顶部盒子包含项目列表和添加项目、退出登录2个按钮

在这里插入图片描述

<template><!-- 项目列表页面 --><div class="pros_box"><!-- 顶部的盒子 --><div class="top_box"><span>项目列表</span><el-button icon="User" color="#00aa7f">退出登录</el-button><el-button icon="Plus" color="#00aa7f">添加项目</el-button></div</div>
</template><script></script><style scoped>
/* 顶部内容 */.top_box{border-bottom:solid 5px #00aa7f;height: 50px;  设置高度font:bold 20px/40px '微软雅黑';color: #00aa7f; 设置背景颜色margin: 20px auto; }/* 大盒子 */.pros_box{margin: 30px auto;max-width: 1400px;}/* 顶部按钮 */.top_box .el-button{float:right; 右浮动margin: 10px;}
</style>

二、项目列表盒子设计

在这里插入图片描述
在这里插入图片描述

项目列表页面(整个页面的大盒子)包含显示项目列表的区域(显示所有项目的盒子)包含单个项目(单个项目的盒子)包含图标、项目名称、负责人、2个按钮,共4个盒子

<template><!-- 项目列表页面 --><div class="pros_box"><!-- 顶部的盒子 --><div class="top_box"><span>项目列表</span><el-button icon="User" color="#00aa7f">退出登录</el-button><el-button icon="Plus" color="#00aa7f">添加项目</el-button></div><!-- 显示项目列表的区域 --><div class="pro_list"><!-- 单个项目 --><el-card class="pro"><!-- 图标 --><div class="pro_icon"><el-icon><Platform /></el-icon></div><!-- 项目名称 --><div class="pro_name">演示项目</div><!-- 负责人 --><div class="leader">负责人:kobe</div><div class="btns"><el-button size="small" icon="Edit" style="float:left;" color="#efefef">编辑</el-button><el-button size="small" icon="Delete" style="float:right;" color="#efefef">删除</el-button></div></el-card></div></div>
</template><script></script><style scoped>
/* 顶部内容 */.top_box{border-bottom:solid 5px #00aa7f;height: 50px;/* 设置字体加粗 宽度和高度  */font:bold 20px/40px '微软雅黑';/* 设置颜色 */color: #00aa7f;margin: 20px auto;}/* 大盒子 */.pros_box{margin: 30px auto;/* 设置最大宽度 */max-width: 1400px;}/* 顶部按钮 */.top_box .el-button{/* 右浮动 */float:right;margin: 10px;}/* 项目列表样式 */.pro{width:200px;height: 250px;float: left;margin: 10px;}/* 项目中图标的样式 */.pro .pro_icon{width: 60px;height: 60px;border-radius: 30px;  /* 背景颜色 */background: #e1ffed;color: #00aa7f;font: normal 30px/60px '微软雅黑';/* 居中 */text-align: center;margin: 0 auto;}/* 项目名称的样式 */.pro .pro_name{text-align: center;margin-top: 20px;font: bold 18px/20px '微软雅黑';}/* 负责人 */.pro .leader{text-align: center;color: rgb(55, 28, 206);/* 设置:字体/行高 */font: normal 15px/40px '微软雅黑'; /* margin-bottom: 10px;  */}/* 按钮区域 */.pro .btns{margin-top: 50px;text-align: center;}</style>

三、添加项目盒子设计

在这里插入图片描述

<template>............<!-- 添加项目的盒子 --><el-card class="pro"><div class="add_box"><el-icon :size="50" color="green"><Plus /></el-icon></div></el-card>
</template><style scoped>....../* 添加项目 */.pro .add_box{/* 水平居中 */text-align: center; /* 高度 *//* height: 250px; *//* 行高 */line-height: 200px;}......
</style>

四、退出登录功能实现

<el-button @click="logout"  icon='User' color='#00aa7f'>退出登录</el-button>
<script>export default{data(){return{}},methods:{// 退出登录logout(){//清除token和用户名window.sessionStorage.removeItem('token')window.sessionStorage.removeItem('username')//跳转到登录页面this.$router.push({name:'login'})}}}
</script>

五、路由导航守卫实现

添加路由导航守卫,控制前端页面访问的权限

router.beforeEach(async (to, from) => {// 获取sessionStorage是否存在token,如果存在token视为已经登录const isAuthenticated = window.sessionStorage.getItem('token')if (// 检查用户是否已登录!isAuthenticated &&// ❗️ 避免无限重定向to.name !== 'login') {// 将用户重定向到登录页面return { name: 'login' }}})

六、展示项目信息

<script>export default{data(){return{//项目列表信息projectList:[]}},methods:{......// 通过接口获取后端所有的项目async getAllProject(){const response= await this.$api.getAllProjects()if(response.status===200){console.log(response.data)// 将获取到的项目信息保存到data中this.projectList=response.data}}},// 钩子函数,最先执行的方法created(){this.getAllProject()}}
</script>
<!-- 显示项目列表的区域 --><div class="pro_list"><!-- 单个项目显示在一个el-card --><el-card class="pro" v-for="pro in projectList" :key='pro.id'><!-- 图标 --><div class="pro_icon"><el-icon><Platform /></el-icon></div><!-- 项目名称 --><div class="pro_name">{{pro.name}}</div><!-- 项目负责人 --><div class="pro_leader">{{pro.leader}}</div><!-- 按钮 --><div class="btns"><el-button  color="#d9d9d9" class="edit" size="small" icon="Edit">编辑</el-button><el-button color="#F5F5DC" class="del" size="small" icon="Delete">删除</el-button></div></el-card><!-- 添加项目的空盒子--><el-card class="pro"><!-- 图标 --><div class="add_pro"><el-icon :size=70><Plus/></el-icon></div></el-card></div>

七、bug修复

在这里插入图片描述

1、当项目名称太长或者项目负责人太长,需要一行展示,当超过8个字…展示

 <!-- 项目名称 --><div class="pro_name"><span v-if="pro.name.length<8">{{pro.name}}</span><el-tooltip v-else class="item" effect="dark" v-bind:content=pro.name placement="top-start">{{pro.name.slice(0,8)}}...</el-tooltip></div><!-- 项目负责人 --><div class="pro_leader"><span v-if="pro.leader.length<8">{{pro.leader}}</span><el-tooltip v-else class="item" effect="dark" v-bind:content=pro.leader placement="top-start">{{pro.leader.slice(0,8)}}...</el-tooltip></div>

八、删除单个项目

index.js

export default{// 登录接口login(params){return http.post('/login/',params)},// ---------------------------项目操作的api---------------------------// 获取项目列表getAllProjects(){return http.get('/projects/')},// 删除项目的接口delProject(id){return http.delete(`/projects/${id}/`)}
}
<div class="btns"><el-button  color="#d9d9d9" class="edit" size="small" icon="Edit">编辑</el-button><el-button color="#F5F5DC" class="del" size="small" icon="Delete" @click="clickDelete(pro.id)">删除</el-button></div>
<script>import { ElMessage, ElMessageBox } from 'element-plus'export default{data(){return{//项目列表信息projectList:[]}},methods:{......// 通过接口获取后端所有的项目async getAllProject(){const response= await this.$api.getAllProjects()if(response.status===200){console.log(response.data)// 将获取到的项目信息保存到data中this.projectList=response.data}},// 调用接口删除项目async deletePro(proId){//发送接口请求const response = await this.$api.delProject(proId)if(response.status===204){//更新页面的数据this.getAllProject()//提示删除成功this.$message({type: 'success',message: '删除成功!'})}},// 点击删除项目clickDelete(id){this.$confirm('此操作不可恢复,确定要删除吗?', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {// 调用删除的接口this.deletePro(id)// 取消操作 -->}).catch(() => {this.$message({type: 'info',message: '已取消删除'});          });}},// 钩子函数,最先执行的方法created(){this.getAllProject()}}
</script>

九、添加项目功能

index.js

export default{// 登录接口login(params){return http.post('/login/',params)},// ---------------------------项目操作的api---------------------------// 获取项目列表getAllProjects(){return http.get('/projects/')},// 删除项目的接口delProject(id){return http.delete(`/projects/${id}/`)},//添加项目的接口createProject(params){return http.post('/projects/',params)}}
<!-- 顶部盒子 -->
<div class="top_box"><span>项目列表</span><el-button @click="logout"  icon='User' color='#00aa7f'>退出登录</el-button><el-button @click="addDlg=true" icon='Plus' color='#00aa7f'>添加项目</el-button>
</div><!-- 添加项目的空盒子-->
<el-card class="pro"><!-- 图标 --><div class="add_pro" @click="addDlg=true"><el-icon :size=70><Plus/></el-icon></div></el-card><!-- 添加项目的弹框 -->
<el-dialog v-model="addDlg" title="添加项目" ><el-form :model="form"><el-form-item label="项目名称"><el-input v-model="addForm.name"></el-input></el-form-item><el-form-item label="负责人"><el-input v-model="addForm.leader"></el-input></el-form-item></el-form><div class="dialog-footer"><el-button @click="addDlg = false">取 消</el-button><el-button type="primary" @click="addPro">确 定</el-button></div>
</el-dialog>
<script>import { ElMessage, ElMessageBox } from 'element-plus'export default{data(){return{//项目列表信息projectList:[],// 添加项目的弹框是否显示addDlg:false,// 向表单中输入的文字addForm:{name:"",leader:""}}},methods:{.........// 添加项目async addPro(){// 发送请求const response=await this.$api.createProject(this.addForm)if(response.status===201){//更新页面的数据this.getAllProject()// 关闭窗口this.addDlg=falsethis.$message({type: 'success',message: '添加成功!'})}}},// 钩子函数,最先执行的方法created(){this.getAllProject()}}
</script>

十、编辑和添加使用同一个弹框

title:不写死
在这里插入图片描述
在data中设置dlgTitle为弹窗的标题
在这里插入图片描述
接着在显示title的地方,设置数据绑定
在这里插入图片描述
给编辑按钮添加一个事件clickEdit
在这里插入图片描述
在这里插入图片描述
修改点击添加的方法clickAdd
在这里插入图片描述
在这里插入图片描述

十一、编辑项目

index.js


export default{// 登录接口login(params){return http.post('/login/',params)},// ---------------------------项目操作的api---------------------------// 获取项目列表getAllProjects(){return http.get('/projects/')},// 删除项目的接口delProject(id){return http.delete(`/projects/${id}/`)},//添加项目的接口createProject(params){return http.post('/projects/',params)},// 修改项目updateProject(id,params){return http.patch(`/projects/${id}/`,params)}}

根据dlgTitle发送不同的接口
加粗样式
在这里插入图片描述
id怎么传?
this.addForm={…pro}:将项目信息赋值给addForm

在这里插入图片描述

十二、总体实现代码

<template><!-- 项目列表页面 --><div class="pros_box"><!-- 顶部盒子 --><div class="top_box"><span>项目列表</span><el-button @click="logout"  icon='User' color='#00aa7f'>退出登录</el-button><el-button @click="clickAdd" icon='Plus' color='#00aa7f'>添加项目</el-button></div><!-- 显示项目列表的区域 --><div class="pro_list"><!-- 单个项目显示在一个el-card --><el-card class="pro" v-for="pro in projectList" :key='pro.id'><div style="cursor: pointer;" @click="selectPro(pro)"><!-- 图标 --><div class="pro_icon"><el-icon><Platform /></el-icon></div><!-- 项目名称 --><div class="pro_name"><span v-if="pro.name.length<8">{{pro.name}}</span><el-tooltip v-else class="item" effect="dark" v-bind:content=pro.name placement="top-start">{{pro.name.slice(0,8)}}...</el-tooltip></div><!-- 项目负责人 --><div class="pro_leader"><span v-if="pro.leader.length<8">{{pro.leader}}</span><el-tooltip v-else class="item" effect="dark" v-bind:content=pro.leader placement="top-start">{{pro.leader.slice(0,8)}}...</el-tooltip></div></div><!-- 按钮 --><div class="btns"><el-button @click="clickEdit(pro)"  color="#d9d9d9" class="edit" size="small" icon="Edit">编辑</el-button><el-button color="#F5F5DC" class="del" size="small" icon="Delete" @click="clickDelete(pro.id)">删除</el-button></div></el-card><!-- 添加项目的空盒子--><el-card class="pro"><!-- 图标 --><div class="add_pro" @click="clickAdd"><el-icon :size=70><Plus/></el-icon></div></el-card></div></div><!-- 添加项目的弹框 --><!-- <el-dialog v-model="addDlg" title="添加项目" > --><!-- <el-form :model="form"><el-form-item label="项目名称"><el-input v-model="addForm.name"></el-input></el-form-item><el-form-item label="负责人"><el-input v-model="addForm.leader"></el-input></el-form-item></el-form> --><!-- <div class="dialog-footer"><el-button @click="addDlg = false">取 消</el-button> <el-button type="primary" @click="addPro">确 定</el-button></div></el-dialog> --><!-- 添加和编辑项目的弹窗 --><el-dialog v-model="addDlg" :title="dlgTitle" ><el-form :model="form"><el-form-item label="项目名称"><el-input v-model="addForm.name"></el-input></el-form-item><el-form-item label="负责人"><el-input v-model="addForm.leader"></el-input></el-form-item></el-form><div class="dialog-footer"><el-button @click="addDlg = false">取 消</el-button><!-- <el-button type="primary" @click="addPro">确 定</el-button> --><el-button v-if='(dlgTitle==="添加项目")' type="primary" @click="addPro">确 定</el-button><el-button v-else type="primary" @click="updatePro">提交修改</el-button></div></el-dialog></template><script>import { ElMessage, ElMessageBox } from 'element-plus'// 导入映射方法的函数mapActionsimport { mapActions } from 'pinia'import { userStore } from '../store/user.js'export default{data(){return{//项目列表信息projectList:[],// 添加项目的弹框是否显示addDlg:false,addForm:{name:"",leader:""},// 弹框的标题dlgTitle:"添加项目"}},methods:{// 退出登录// logout(){// 	//清除token和用户名// 	window.sessionStorage.removeItem('token')// 	window.sessionStorage.removeItem('username')// 	//跳转到登录页面// 	this.$router.push({name:'login'})	// },// 将全局定义的logout方法,映射为当前组件的logout方法...mapActions(userStore,['logout','savePro']),// 通过接口获取后端所有的项目async getAllProject(){const response= await this.$api.getAllProjects()if(response.status===200){console.log(response.data)// 将获取到的项目信息保存到data中this.projectList=response.data}},// 调用接口删除项目async deletePro(proId){//发送接口请求const response = await this.$api.delProject(proId)if(response.status===204){//更新页面的数据this.getAllProject()//提示删除成功this.$message({type: 'success',message: '删除成功!'})}},// 点击删除项目clickDelete(id){this.$confirm('此操作不可恢复,确定要删除吗?', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {// 调用删除的接口this.deletePro(id)// 取消操作 -->}).catch(() => {this.$message({type: 'info',message: '已取消删除'});          });},// 添加项目async addPro(){// 发送请求const response=await this.$api.createProject(this.addForm)if(response.status===201){//更新页面的数据this.getAllProject()// 关闭窗口this.addDlg=falsethis.$message({type: 'success',message: '添加成功!'})}},// 点击编辑执行 的方法clickEdit(pro){// 修改titlethis.dlgTitle='编辑项目'// 将项目信息赋值给addFormthis.addForm={...pro}// 显示编辑框this.addDlg=true},// 点击添加项目clickAdd(){this.dlgTitle='添加项目'// 将项目信息addForm置空this.addForm={name:'',leader:''}// 展示弹窗this.addDlg=true},// 发送请求,修改编辑后的项目信息async updatePro(){const id=this.addForm.idconst params={leader:this.addForm.leader,name:this.addForm.name}const response=await this.$api.updateProject(id,params)if(response.status===200){//更新页面的数据this.getAllProject()// 提示this.$message({type: 'success',message: '修改成功!'})}// 关闭窗口this.addDlg=false},// 选择进入的项目selectPro(pro){this.$router.push({name:"home"})console.log(666)// 将项目信息保存到vue的全局数据存储仓库this.savePro(pro)}},// 钩子函数,最先执行的方法created(){this.getAllProject()}}
</script><style scoped>/* ----------------顶部样式--------------------- *//* 整体盒子 */.pros_box{max-width: 1480px;margin: 30px auto;}/* 顶部盒子 */.top_box{border-bottom: solid 5px green;height: 40px;font: bold 20px/40px '微软雅黑';color: #00aa7f;margin: 20px auto;}/* 顶部按钮 */.top_box .el-button{float: right;margin-left: 10px;}/* ------------------项目列表样式-------------------------- */.pro{width: 200px;height: 250px;margin: 20px;float: left;}/* 项目中图标样式 */.pro .pro_icon{width: 80px;height: 80px;border-radius: 40px;background: #e1ffed;color: #00aa7f;font: normal 30px/60px '微软雅黑';text-align: center;margin: 0 auto;}/* 项目名称的样式 */.pro .pro_name{text-align: center;margin-top: 20px;font: bold 18px/40px '微软雅黑';}/* 负责人的样式 */.pro .pro_leader{text-align: center;color: blue;font: normal 12px/20px '微软雅黑';	}/* 按钮区域的样式 */.pro .btns{margin-top: 30px;}.pro .btns .edit{float: left;}.pro .btns .del{float: right;}/*添加的盒子样式*/.pro .add_pro{text-align: center;height: 250px;line-height: 250px;color: #d3d4d3;}</style>

index.js路由设置

const routes = [{path: '/',name: 'index',redirect:{name:"login"}},{path: '/user/login',name: 'login',component: () => import('../views/Login.vue')},{path: '/allProject',name: 'allProject',component: () => import('../views/AllProject.vue')},{path: '/home',name: 'home',component: () => import('../views/Home.vue')},
]

十三:鼠标放上指定的位置变成手,点击进入home页面

在这里插入图片描述
用大的div包起来

<!-- 单个项目显示在一个el-card -->
<el-card class="pro" v-for="pro in projectList" :key='pro.id'><div style="cursor: pointer;" @click="selectPro(pro)"><!-- 图标 --><div class="pro_icon"><el-icon><Platform /></el-icon></div><!-- 项目名称 --><div class="pro_name"><span v-if="pro.name.length<8">{{pro.name}}</span><el-tooltip v-else class="item" effect="dark" v-bind:content=pro.name placement="top-start">{{pro.name.slice(0,8)}}...</el-tooltip></div><!-- 项目负责人 --><div class="pro_leader"><span v-if="pro.leader.length<8">{{pro.leader}}</span><el-tooltip v-else class="item" effect="dark" v-bind:content=pro.leader placement="top-start">{{pro.leader.slice(0,8)}}...</el-tooltip></div></div><!-- 按钮 --><div class="btns"><el-button @click="clickEdit(pro)"  color="#d9d9d9" class="edit" size="small" icon="Edit">编辑</el-button><el-button color="#F5F5DC" class="del" size="small" icon="Delete" @click="clickDelete(pro.id)">删除</el-button></div></el-card>

相关文章:

平台项目列表页实现(二)

这里写目录标题 一、顶部盒子设计1. 顶部盒子包含项目列表和添加项目、退出登录2个按钮 二、项目列表盒子设计三、添加项目盒子设计四、退出登录功能实现五、路由导航守卫实现六、展示项目信息七、bug修复1、当项目名称太长或者项目负责人太长&#xff0c;需要一行展示&#xf…...

osg实现鼠标框选

目录 1. 需求的提出 2. 具体实现 2.1. 禁止场景跟随鼠标转动 2.2. 矩形框前置绘制 3. 附加说明 3.1. 颜色设置说明 3.2.矩形框显示和隐藏的另一种实现 1. 需求的提出 有时需要在屏幕通过按住键盘上的某个键如Ctrl键且按住鼠标左键&#xff0c;拖出一个矩形&#xff0c;实现框…...

电路原理解题笔记(一)

文章目录 贼基础的知识等效电阻基尔霍夫电流定律电阻电路的一般分析支路电流法节点电压法回路电流法 电路定理叠加定理戴维宁等效电路诺顿等效电路求某电阻值为多少可吸收最大功率。吸收、释放功率 第一个月&#xff0c;对应猴博士的一到五课时。 贼基础的知识电阻电路的等效变…...

分享几个优秀开源免费管理后台模版,建议收藏!

大家好&#xff0c;我是 jonssonyan 今天和大家分享一些免费开源的后台管理页面&#xff0c;帮助大家快速搭建前端页面。为什么要用模板&#xff1f;道理很简单&#xff0c;原因是方便我们快速开发。我们不应该花太多的时间在页面调整上&#xff0c;而应该把精力放在核心逻辑和…...

BFS模板:844. 走迷宫

给定一个 nmnm 的二维整数数组&#xff0c;用来表示一个迷宫&#xff0c;数组中只包含 00 或 11&#xff0c;其中 00 表示可以走的路&#xff0c;11 表示不可通过的墙壁。 最初&#xff0c;有一个人位于左上角 (1,1)(1,1) 处&#xff0c;已知该人每次可以向上、下、左、右任意…...

re学习(37)DASCTF 2023 0X401七月暑期挑战赛 controflow

程序通过改变栈里面的返回地址来控制程序的控制流 从而达到混淆的效果 左侧有许多被hook的函数 在每个函数开头设置断点 然后观察程序的运行流程 会发现输入的数据会进行 异或 相加 异或 相减 相乘 异或等操作 要注意部分运算的索引是 从[10]开始的 具体思路参考&#xf…...

数字IC前端学习笔记:数字乘法器的优化设计(进位保留乘法器)

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 阵列乘法器设计中限制乘法器速度的是随着数据位宽而迅速增大的串行进位链&#xff0c;如果使用进位保留加法器&#xff0c;则可以避免在设计中引入较长时间的等待&…...

prority_queue的学习

优先级队列&#xff08;Priority Queue&#xff09;是一种抽象数据类型&#xff0c;它类似于普通的队列或堆栈&#xff0c;但每个元素都有一个关联的优先级&#xff0c;这个优先级决定了元素在队列中的位置和被访问的顺序。在优先级队列中&#xff0c;具有最高优先级的元素通常…...

【vue3】toRef与toRefs的使用,toRef与ref的区别

假期第四篇&#xff0c;对于基础的知识点&#xff0c;我感觉自己还是很薄弱的。 趁着假期&#xff0c;再去复习一遍 1、toRef与toRefs 创建一个ref对象&#xff0c;其value值指向另一个对象中的某个属性 语法&#xff1a;const name toRef&#xff08;person,‘name’&#xf…...

信息论基础第二章部分习题

2.5 证明若H(Y|X)0&#xff0c;则Y是X的函数 若 H ( Y ∣ X ) 0 H(Y|X) 0 H(Y∣X)0&#xff0c;意味着在已知 X X X 的条件下&#xff0c; Y Y Y 的不确定性为零&#xff0c;即给定 X X X 的值&#xff0c;我们完全确定了 Y Y Y 的值。这表明 Y Y Y 的取值完全由 X X…...

信息化发展73

数字经济 数字经济是继农业经济、工业经济之后的更高级经济形态。从本质上看&#xff0c;数字经济是一种新的技术经济范式&#xff0c;它建立在信息与通信技术的重大突破的基础上&#xff0c;以数字技术与实体经济融合驱动的产业梯次转型和经济创新发展的主引擎&#xff0c;在…...

560. 和为 K 的子数组

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的连续子数组的个数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [1,2,3], k 3 输出&#xff1a;2…...

24 mysql all 查询

前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 此系列文章建议从 mysql const 查询 开始看 测试表结构…...

【Excel单元格数值统计】python实现-附ChatGPT解析

1.题目 Excel单元格数值统计 知识点: 递归、循环数组 时间限制:2s 空间限制:256MB 限定语言:不限 题目描述: Excel工作表中对选定区域的数值进行统计的功能非常实用。仿照Excel的这个功能,请对给定表格中选中区域中的单元格进行求和统计,并输出统计结果。 为简化计算,假设当…...

爬虫项目实战——爬取B站视频

目标&#xff1a;对B站视频详情页url进行视频的爬取。 注&#xff1a;由于B站的音频和视频的链接是分开的&#xff0c;所以在提取是需要分别提取&#xff0c;然后进行合成。 这里只管提取&#xff0c;合成的工作以后再说。 具体步骤 发送请求 对于视频详情页url地址发送请求 …...

关掉在vscode使用copilot时的提示音

1. 按照图示的操作File --> Preferences --> Settings 2. 搜索框输入关键字Sound&#xff0c;因为是要关掉声音&#xff0c;所以找有关声音的设置 3. 找到如下图所示的选项 Audio Cues:Line Has Inline Suggetion,将其设置为Off 这样&#xff0c;就可以关掉suggest code时…...

【有限域除法】二元多项式除法电路原理及C语言实现

二元多项式除法电路原理 例: g ( x ) = x 4 + x 2 + x + 1 g(x)=x^4 + x^2+x+1...

RabbitMQ核心总结

AMQP协议核心概念 RabbitMQ是基于AMQP协议的&#xff0c;通过使用通用协议就可以做到在不同语言之间传递。 server&#xff1a;又称broker&#xff0c;接受客户端连接&#xff0c;实现AMQP实体服务。 connection&#xff1a;连接和具体broker网络连接。 channel&#xff1a…...

Unicode与UTF-8

软件开发中乱码问题经常遇到&#xff0c;Unicode&#xff0c;UTF-8, ASCII等都是高频词语&#xff0c;不过具体是啥意思其实都不清楚。这个周末研究了一下&#xff0c;略有了解&#xff0c;记录一下。 Unicode Unicode本身是纯理论的东西&#xff0c;和具体计算机实现无关。它…...

A : DS单链表--类实现

Description 用C语言和类实现单链表&#xff0c;含头结点 属性包括&#xff1a;data数据域、next指针域 操作包括&#xff1a;插入、删除、查找 注意&#xff1a;单链表不是数组&#xff0c;所以位置从1开始对应首结点&#xff0c;头结点不放数据 类定义参考 #include<…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...