免费分享一套SpringBoot+Vue实验室(预约)管理系统,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue实验室(预约)管理系统 ,分享下哈。

项目视频演示

【免费】SpringBoot+Vue实验室(预约)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBoot+Vue实验室(预约)管理系统 Java毕业设计项目来自互联网,免费开源分享,严禁商业。更多毕业设源码:http://www.java1234.com/a/bysj/javaweb/, 视频播放量 161、弹幕量 0、点赞数 3、投硬币枚数 2、收藏人数 4、转发人数 1, 视频作者 java1234官方, 作者简介 公众号:java1234 微信:java9266,相关视频:【免费】javaweb实验室管理系统毕业设计,【免费】javaweb大学生就业管理系统毕业设计,【免费】javaweb超市管理系统高级版毕业设计,【免费】SpringBoot+Vue药店(药房)管理系统 Java毕业设计,【免费】javaweb企业人事管理系统毕业设计,【免费】javaweb物业管理系统毕业设计,【免费】javaweb员工工资管理系统毕业设计,【免费】javaweb超市管理系统毕业设计,【免费】基于springboot的进销存(仓库)管理系统 Java毕业设计,【免费】javaweb高校教务管理系统毕业设计icon-default.png?t=N7T8https://www.bilibili.com/video/BV14S421N7GL/

项目介绍

国家对高校实验教学的重视程度不断提高,正在不断的探索高校教学改革的方法。其中,建设教学示范中心是推动高校教学发展的方法之一。高校教学示范中心是组织高水平教学,培养创新型、应用型人才的重要基地;是提高教学质量,整合、共享教学资源,深化实验教学改革的重要途径。我校紧跟时代发展的步伐,申请并成立了多个教学示范中心。此前,我校计算机科学与技术实验教学示范中心在信息化建设方面投入的精力较少,信息化管理程度不足。为加强教学示范中心信息化建设,本人选择信息化管理中预约管理方向进行探究,设计一款实验室预约管理系统,来填补教学示范中心在实验室预约管理方向的空缺,推动本校教学示范中心的发展。

按照预期要求,本预约管理系统可以实现对实验室预约的网络化、信息化管理,能够将学生和教师从繁琐的过程中解放出来。学生可以随时随地查看实验室信息,按自己需求预约。管理人员可以通过网络审批,大幅度加快了审核的速度,减少了管理人员的工作量,提高了实验室资源的利用率。因此在教学方面,本课题是有实践意义的

系统展示

部分代码

package com.li.lrms.controller;import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.li.lrms.common.result.Result;
import com.li.lrms.model.user.User;
import com.li.lrms.service.UserService;
import com.li.lrms.util.JwtUtils;
import com.li.lrms.util.MD5;
import com.li.lrms.vo.login.EditVo;
import com.li.lrms.vo.user.UserQueryVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;@CrossOrigin
@RestController
@RequestMapping("/admin/users/user")
public class UserController {@Autowiredprivate UserService userService;//1.查询所有用户@GetMapping("findAll")public Result findAllUser() {List<User> list = userService.list();return Result.ok(list);}//2.增加@PostMapping("addUser")public Result addUser(@RequestBody User users) {//        String password = users.getPassword();String encrypt = MD5.encrypt("123456");users.setPassword(encrypt);boolean b = userService.save(users);if (b) return Result.ok();else return Result.fail();}//3.删除@DeleteMapping("{id}")public Result removeUser(@PathVariable String id) {boolean b = userService.removeById(id);if (b) return Result.ok();else return Result.fail();}//4.条件查询分页/*** 1.创建vo类,封装条件值* 2.编写controller* 获取当前页面current和每页对象值limit* 获取条件语句 hospitalSetQueryVo*/@PostMapping("findpage/{current}/{limit}")public Result findPageUser(@PathVariable long current, @PathVariable long limit,@RequestBody(required = false) UserQueryVo usersQueryVo) {//创建page对象,传递当前页,每页记录数Page<User> page = new Page<>(current, limit);//构建查询条件QueryWrapper<User> queryWrapper = new QueryWrapper<>();String name = usersQueryVo.getUserName();String role = usersQueryVo.getRole();if (!StringUtils.isEmpty(role)) {     //输入非空queryWrapper.eq("role", role);  //获取用户id}if (!StringUtils.isEmpty(name)) {queryWrapper.like("user_name", usersQueryVo.getUserName()); //获取用户id}//调用方法实现分页查询IPage<User> usersPage = userService.page(page, queryWrapper);//返回结果return Result.ok(usersPage);}//按id查询@GetMapping("getUsers/{id}")public Result getUsers(@PathVariable String id) {User users = userService.getById(id);return Result.ok(users);}//修改用户信息@PostMapping("updateUsers")public Result updateUsers(@RequestBody User users) {String password = users.getPassword();String encrypt = MD5.encrypt(password);users.setPassword(encrypt);boolean update = userService.updateById(users);if (update) return Result.ok();else return Result.fail();}//批量删除@DeleteMapping("batchRemove")public Result batchRemoveUsers(@RequestBody List<String> list) {userService.removeByIds(list);return Result.ok();}//修改状态@PutMapping("updateStatus/{id}/{status}")public Result setStatus(@PathVariable String id, @PathVariable Integer status) {//根据id查询User users = userService.getById(id);//修改信息users.setStatus(status);//调用函数更新userService.updateById(users);return Result.ok();}//4.修改个人信息//1.电话号码 2.密码  3.邮箱  4.@PostMapping("editInfo")public Result editInfo(@RequestBody(required = false) EditVo editVo, HttpServletRequest request) {String userId = JwtUtils.getMemberIdByJwtToken(request);User user = userService.getByUserId(userId);   //获得该用户信息userService.updateInfo(editVo, user);return Result.ok();}}
<template><div class="login-container"><el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on"label-position="left"><div class="title-container"><h3 class="title">实验室信息管理系统</h3></div><el-form-item prop="username"><span class="svg-container"><svg-icon icon-class="user"/></span><el-inputref="username"v-model="loginForm.username"placeholder="Username"name="username"type="text"tabindex="1"auto-complete="on"/></el-form-item><el-form-item prop="password"><span class="svg-container"><svg-icon icon-class="password"/></span><el-input:key="passwordType"ref="password"v-model="loginForm.password":type="passwordType"placeholder="Password"name="password"tabindex="2"auto-complete="on"@keyup.enter.native="handleLogin"/><span class="show-pwd" @click="showPwd"><svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/></span></el-form-item><el-button :loading="loading" type="primary" style="width:48%;margin-bottom:30px;"@click.native.prevent="handleLogin">登录</el-button><el-button type="primary" style="width:48%;margin-bottom:30px;" @click="dialogFormVisible = true">注册</el-button><div style="text-align: center"><el-radio v-model="loginForm.role" label="user">学生  </el-radio><el-radio v-model="loginForm.role" label="teacher">教师   </el-radio><el-radio v-model="loginForm.role" label="admin">管理员    </el-radio></div><el-dialog title="" :visible.sync="dialogFormVisible"><div class="register"><h1>注册</h1><el-form ref="registerForm" :model="user" label-width="100px"><el-form-item label="姓名"><el-input v-model="user.userName" placeholder="Enter your username"></el-input></el-form-item><el-form-item label="账号"><el-input v-model="user.userId" placeholder="Enter your username"></el-input></el-form-item><el-form-item label="密码"><el-input v-model="user.password" type="password" placeholder="Enter your password"></el-input></el-form-item><el-form-item label="电话"><el-input v-model="user.phone" placeholder="Enter your phone number"></el-input></el-form-item><el-form-item label="邮箱"><el-input v-model="user.email" placeholder="Enter your email"></el-input></el-form-item><el-form-item><el-button type="primary" @click="register()">注册</el-button><el-button @click="dialogFormVisible = false">返回</el-button></el-form-item></el-form></div></el-dialog><div class="tips"><span style="margin-right:20px;"></span><span> </span></div></el-form><div align="center"><a href="http://www.java1234.com/a/bysj/javaweb/" target="_blank"><font color="red">Java1234收藏整理</font></a></div></div>
</template><script>
import {validUsername} from '@/utils/validate'
import axios from "axios";export default {name: 'Login',data() {const validateUsername = (rule, value, callback) => {if (!validUsername(value)) {callback(new Error('请输入正确的用户名'))} else {callback()}}const validatePassword = (rule, value, callback) => {if (value.length < 6) {callback(new Error('密码不小于6位'))} else {callback()}}return {user: {userName: '',userId: '',password: '',phone: '',email: '',role: 'user'},dialogFormVisible: false,loginForm: {username: '20171506001',password: '123456',role: ''},loginRules: {username: [{required: true, trigger: 'blur', validator: validateUsername}],password: [{required: true, trigger: 'blur', validator: validatePassword}]},loading: false,passwordType: 'password',redirect: undefined}},watch: {$route: {handler: function (route) {this.redirect = route.query && route.query.redirect},immediate: true}},methods: {register() {this.$refs.registerForm.validate(valid => {if (valid) {axios.post('http://localhost:8200/admin/member/stuRegister', this.user).then(response => {console.log(response.data);this.$message.success('注册成功')// handle response}).catch(error => {console.log(error);// handle error});} else {console.log('Validation failed');}});},resetForm() {this.$refs.registerForm.resetFields();},showPwd() {if (this.passwordType === 'password') {this.passwordType = ''} else {this.passwordType = 'password'}this.$nextTick(() => {this.$refs.password.focus()})},handleLogin() {this.$refs.loginForm.validate(valid => {if (valid) {this.loading = truethis.$store.dispatch('user/login', this.loginForm).then(() => {this.$router.push({path: this.redirect || '/'})this.loading = false}).catch(() => {this.loading = falsethis.$message({type: "error",message: "用户名或密码输入有误!",})})} else {console.log('error submit!!')return false}})},}
}
</script><style lang="scss">
/* 修复input 背景不协调 和光标变色 */
/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */$bg: #283443;
$light_gray: #232222;
$cursor: #fff;@supports (-webkit-mask: none) and (not (cater-color: $cursor)) {.login-container .el-input input {color: $cursor;}
}/* reset element-ui css */
.login-container {.el-input {display: inline-block;height: 47px;width: 85%;input {background: transparent;border: 0px;-webkit-appearance: none;border-radius: 0px;padding: 12px 5px 12px 15px;color: $light_gray;height: 47px;caret-color: $cursor;&:-webkit-autofill {box-shadow: 0 0 0px 1000px $bg inset !important;-webkit-text-fill-color: $cursor !important;}}}.el-form-item {border: 1px solid rgba(255, 255, 255, 0.1);background: rgba(0, 0, 0, 0.1);border-radius: 5px;color: #454545;}
}
</style><style lang="scss" scoped>
.register {width: 500px;margin: 0 auto;padding: 50px 0;
}$bg: #2d3a4b;
$dark_gray: #889aa4;
$light_gray: #eee;.login-container {min-height: 100%;width: 100%;background-color: $bg;overflow: hidden;.login-form {position: relative;width: 520px;max-width: 100%;padding: 160px 35px 0;margin: 0 auto;overflow: hidden;}.tips {font-size: 14px;color: #fff;margin-bottom: 10px;span {&:first-of-type {margin-right: 16px;}}}.svg-container {padding: 6px 5px 6px 15px;color: $dark_gray;vertical-align: middle;width: 30px;display: inline-block;}.title-container {position: relative;.title {font-size: 26px;color: $light_gray;margin: 0px auto 40px auto;text-align: center;font-weight: bold;}}.show-pwd {position: absolute;right: 10px;top: 7px;font-size: 16px;color: $dark_gray;cursor: pointer;user-select: none;}
}
</style>

源码下载

CSDN 1积分下载:https://download.csdn.net/download/caofeng891102/88865898

或者免费领取加小锋老师wx:java9266

热门推荐

免费分享一套SpringBoot+Vue药店(药房)管理系统,帅呆了~~-CSDN博客

免费分享一套微信小程序扫码点餐(订餐)系统(uni-app+SpringBoot后端+Vue管理端技术实现) ,帅呆了~~_微信小程序扫码点餐 java vue-CSDN博客

免费分享一套微信小程序外卖跑腿点餐(订餐)系统(uni-app+SpringBoot后端+Vue管理端技术实现) ,帅呆了~~_跑腿或点餐的uniapp前端模版-CSDN博客

免费分享一套Springboot+Vue前后端分离的在线教育平台系统,挺漂亮的-CSDN博客

免费分享一套Springboot+Vue前后端分离的停车场管理系统,挺漂亮的-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2810094.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

2024年青海省考公告已出,速速查收报名详细流程,千万不要错过报名时间哦

2024年青海公务员考试公告职位表已经发布&#xff0c;报名时间2月26日9:00至3月1日18:00&#xff0c; 以下是本次考试的重要时间安排&#xff1a; 报名时间&#xff1a;2024年2月26日9:00至3月1日18:00 缴费时间&#xff1a;2024年2月26日9:00至3月4日23:30 报名调剂时间&a…

【嵌入式——QT】SpinBox

QSpinBox用于整数的显示和输入&#xff0c;一般显示十进制数&#xff0c;也可以显示二进制、十六进制数&#xff0c;而且可以在显示框中增加前缀和后缀。QDoubleSpinBox用于浮点数的显示和输入&#xff0c;可以设置显示小数位数&#xff0c;也可以设置显示的前缀和后缀。 样式…

ZTE E8820V2重启偶现5G wifi丢失问题

使用ZTE E8820V2设备时,发现设备在多次重启过程中会出现5G wifi信号丢失的情况。 1. 现象日志 使用老毛子固件,具体丢失时会出现相关log: 2. 问题原因: GPIO#19 是 PCIE reset 外,GPIO#26 也要 reset。 3. 解决方法: E8820V2/rt-n56u/trunk$ git diff linux-3.4.x…

Spring的另一大的特征:AOP

目录 AOP &#xff08;Aspect Oriented Programming&#xff09;AOP 入门案例&#xff08;注解版&#xff09;AOP 工作流程——代理AOP切入点表达式AOP 通知类型AOP通知获取数据获取切入点方法的参数获取切入点方法返回值获取切入点方法运行异常信息 百度网盘分享链接输入密码数…

MySQL 篇-深入了解 DDL 语言(一)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 MySQL 说明 2.0 DDL 语言 2.1 DDL 语言 - 定义数据库 2.1.1 创建数据库操作 2.1.2 查看数据库操作 2.1.3 使用数据库操作 2.1.4 删除数据库操作 2.2 DDL 语言 …

JAVA工程师面试专题-《Redis》篇

目录 一、基础 1、Redis 是什么 2、说一下你对redis的理解 3、Redis 为什么这么快&#xff1f; 4、项目中如何使用缓存&#xff1f; 5、为什么使用缓存&#xff1f; 6、Redis key 和value 可以存储最大值分别多是多少&#xff1f; 7、Redis和memcache有什么区别&#xf…

【自译】MIT麻省理工学院技术双月刊(The Bimonthly MIT Technology Review)125周年纪念词

上期 MIT Review 链接&#xff1a;创新版块概览&#xff08;二&#xff09; MIT Technology Review 125 原文 Happy Anniversary For 125 years, Technology Review has aimed to explain the “always new and ever more complex problems” we face. “To a community gr…

YOLOv9尝鲜测试五分钟极简配置

pip安装python包&#xff1a; pip install yolov9pip在https://github.com/WongKinYiu/yolov9/tree/main中下载好权重文件yolov9-c.pt。 运行下面代码&#xff1a; import yolov9model yolov9.load("yolov9-c.pt", device"cpu") # load pretrained or c…

c# 广度优先搜索(Breadth-First Search,BFS)

在这篇文章中我将讨论用于树和图的两种遍历机制之一。将使用 C# 示例介绍广度优先搜索 (BFS)。图是最具挑战性和最复杂的数据结构之一。 广度优先搜索的工作原理&#xff1a;广度优先搜索 &#xff08;BFS&#xff09;是一种探索树或图的方法。在 BFS 中&#xff0c;您首先探索…

教你 3 分钟用 Hexo 建立一个纯静态、高性能的个人博客

只要会使用命令行&#xff0c;执行简单的命令。那么&#xff0c;用 Hexo 建立一个个人博客的过程&#xff0c;称得上是轻松愉快且简单&#xff01; 我会以 Mac 操作系统作为例子&#xff0c;因为在 Mac 上实现这一切更为简单&#xff0c;因为 Mac 操作系统的命令行环境相对来说…

荣耀MWC发布AI使能的全场景战略

【2024年2月25日&#xff0c;巴塞罗那】荣耀在2024 MWC世界移动通信大会上正式发布了全新的AI使能的全场景战略&#xff0c;推出平台级AI赋能&#xff0c;以人为中心的跨操作系统体验和基于意图识别的全新人机交互&#xff0c;以及与全球合作伙伴合作的荣耀Magic6 Pro&#xff…

前端基础面试题(一)

摘要&#xff1a;最近&#xff0c;看了下慕课2周刷完n道面试题&#xff0c;记录下... 1.请说明Ajax、Fetch、Axios三者的区别 三者都用于网络请求&#xff0c;但维度不同&#xff1a; Ajax&#xff08;Asynchronous Javascript ang XML&#xff09;&#xff0c;是一种在不重新…

Matryoshka Representation Learning (MRL)-俄罗斯套娃向量表征学习

前言 在2024年1月底OpenAI发布新的向量模型&#xff0c;并提到新的向量模型支持将向量维度缩短。向量模型支持缩短维度而又不会威胁到向量的表示能力的原因在于使用了Matryoshka Representation Learning。 Matryoshka Representation Learning (MRL)是2022年发表的论文&#…

Redis 服务集群、哨兵、缓存及持久化的实现原理和应用场景

Redis 是一种高性能的键值存储系统&#xff0c;已经成为了许多企业和互联网公司的核心技术之一。本文将介绍 Redis 的服务集群、哨兵以及缓存实现原理和应用场景&#xff0c;以帮助读者更好地理解和使用 Redis。 引言&#xff1a; 随着互联网应用规模不断扩大&#xff0c;Redi…

RocketMQ - RocketMQ的架构原理和使用方法

1. MQ如何集群化部署来支撑高并发访问 假设RocketMQ部署在一台机器上&#xff0c;即使这台机器的配置很高&#xff0c;但是一般来说一台机器也就支撑10万的并发访问。 这个时候&#xff0c;假设有大量的系统都要往RocketMQ里高并发的额写入消息&#xff0c;可能达到每秒有几十…

canvas水波纹效果,jquery鼠标水波纹插件

canvas水波纹效果&#xff0c;jquery鼠标水波纹插件 效果展示 jQuery水波纹效果&#xff0c;canvas水波纹插件 HTML代码片段 <div class"scroll04wrap"><h3>发展历程</h3><div class"scroll04"><p>不要回头&#xff0c;一…

在苹果电脑MAC上安装Windows10(双系统安装的详细图文步骤教程)

在苹果电脑MAC上安装Windows10&#xff08;双系统安装的详细图文步骤教程&#xff09; 一、准备工作准备项1&#xff1a;U盘作为系统安装盘准备项2&#xff1a;您需要安装的系统镜像 二、启动转换助理步骤1&#xff1a;找到启动转换助理步骤2&#xff1a;启动转换助理步骤3&…

java接受命令行输入

在Java中&#xff0c;你可以使用​​Scanner​​类来接受命令行输入。以下是一个简单的例子&#xff0c;演示如何从命令行接受输入&#xff1a; import java.util.Scanner;public class CommandLineInputExample {public static void main(String[] args) {// 创建一个Scanner…

linux服务器vi文件中文乱码

服务器vi编辑中文乱码 cat 文本是中文 可以编辑 vi /etc/environment 文件修改为utf8中文字符集 LANGzh_CN.UTF-8 LANGUAGEen_US:en LC_CTYPE"zh_CN.UTF-8" LC_NUMERIC"zh_CN.UTF-8" LC_TIME"zh_CN.UTF-8" LC_COLLATE"zh_CN.UTF-8"…

48.仿简道云公式函数实战-文本函数-EXACT

1. EXACT函数 比较两个字符串是否完全相同&#xff08;区分大小写&#xff09;。完全相同则返回 true&#xff0c;否则返回 false。 2. 函数用法 EXACT(text1,text2) 3. 函数示例 比较两个字符串是否完全相同&#xff08;区分大小写&#xff09;。完全相同则返回 true&…