10用户管理(Vue3+Spring Boot)

目录

  • 1. 功能描述
  • 2. 接口地址
  • 3.后台Java代码
  • 4.前端框架搭建:views/user添加UserManageVue组件
  • 5. api/user.js中写请求接口代码
  • 6 获取用户信息
  • 7 删除用户
  • 8 修改状态
  • 9 效果演示

1. 功能描述

用户管理界面,对用户进行查询、状态变更、删除。

在这里插入图片描述

2. 接口地址

### 获取用户列表
GET http://localhost:8082/user/allUser
### 修改用户状态
PUT http://localhost:8082/user/updateStatus
### 删除用户
DELETE http://localhost:8082/user/deleteUser

3.后台Java代码

//   获取用户列表@GetMapping("/allUser")public Result getAllUser(){
//      查询所有用户角色为USER的用户信息QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eq("user_role","USER");
//        条件查询List<User> users = iUserService.list(queryWrapper);return Result.success(users);}
    //删除用户@DeleteMapping("/deleteUser")public Result removeUser(@RequestParam("userId") Integer userId){boolean result = iUserService.removeById(userId);if (result) {return Result.success("删除用户成功!");} else {return Result.error("删除失败,用户可能不存在!");}}
 //管理员修改用户状态@PutMapping("/updateStatus")public Result updataUserStatus(@RequestBody User user) {UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();updateWrapper.eq("user_id", user.getUserId()) // 使用目标用户 ID.set("user_status",user.getUserStatus());boolean result = iUserService.update(updateWrapper); // 调用 update 方法if (result) {return Result.success("状态重置");} else {return Result.error("修改失败,可能是其他问题!");}}

4.前端框架搭建:views/user添加UserManageVue组件

<script setup>
import { ref, computed } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Delete, RefreshRight } from '@element-plus/icons-vue'// 用户表单数据模型
const userModel = ref({userId: '',userName: '',userEmail: '',userStatus: ''
})// 表单引用
const formRef = ref(null)// 用户列表数据模型
const users = ref([{"userId": 1,"userName": "张三","userEmail": "zhangsan@example.com","userStatus": '0'},{"userId": 2,"userName": "李四","userEmail": "lisi@example.com","userStatus": '1'},// 其他用户项...
])// 搜索关键词
const searchKeyword = ref('')// 表单验证规则
const rules = {userName: [{ required: true, message: '请输入用户名', trigger: 'blur' }],userEmail: [{ required: true, message: '请输入邮箱', trigger: 'blur' }, { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }]
}// 控制抽屉是否显示
const visibleDrawer = ref(false)// 获取用户列表
const getUsers = async () => {}// 初始化时获取用户列表
getUsers()// 搜索用户
const searchUsers = () => {if (searchKeyword.value.trim() === '') {// 如果搜索关键词为空,则显示所有用户getUsers()} else {// 根据关键词筛选用户users.value = users.value.filter(user =>user.userName.includes(searchKeyword.value) ||user.userEmail.includes(searchKeyword.value))}
}// 重置搜索
const resetSearch = () => {searchKeyword.value = ''getUsers()
}// 2、实现删除功能
const deleteUser = (userId) => {console.log("删除");
}// 切换用户状态
const toggleUserStatus = (userId) => {console.log("切换状态");
}</script><template><el-card class="page-container"><!-- 搜索表单 --><el-form inline><el-form-item label="用户名/邮箱:"><el-input v-model="searchKeyword" placeholder="请输入用户名或邮箱"></el-input></el-form-item><el-form-item><el-button type="primary" @click="searchUsers">搜索</el-button><el-button @click="resetSearch">重置</el-button></el-form-item></el-form><!-- 用户列表 --><el-table :data="users" style="width: 100%" :default-sort="{ prop: 'userName', order: 'ascending' }"><el-table-column label="用户名" prop="userName" sortable></el-table-column><el-table-column label="邮箱" prop="userEmail"></el-table-column><el-table-column label="状态" prop="userStatus" sortable><template #default="{ row }"><el-switch v-model="row.userStatus" active-value="0" inactive-value="1" active-color="#13ce66"inactive-color="#ff4949" @change="toggleUserStatus(row.userId)"><template #active-value>已启用</template><template #inactive-value>已禁用</template></el-switch></template></el-table-column><el-table-column label="操作" width="300"><template #default="{ row }"><el-button :icon="Delete" circle plain type="danger" @click="deleteUser(row.userId)"></el-button></template></el-table-column></el-table></el-card>
</template><style scoped>
.page-container {padding: 20px;
}.header {display: flex;justify-content: space-between;align-items: center;
}
</style>

初始效果如下:
在这里插入图片描述

5. api/user.js中写请求接口代码

// 获取所有普通用户数据
export const userListService = () => {return request.get('/user/allUser')
}// 修改用户状态
export const userStatusUpdateService = (usersDatas) => {return request.put('/user/updateStatus', usersDatas)
}// 删除用户
export const userDeleteService = (userId) => {return request.delete('/user/deleteUser', { params: { userId: userId } })
}

6 获取用户信息

// 导入userListService
import { userListService } from '@/api/user'
// 获取用户列表
const getUsers = async () => {// 这里可以调用后端API获取用户列表// 假设这里有一个返回用户列表的模拟函数const result = await userListService()users.value = result.data
}// 初始化时获取用户列表
getUsers()

7 删除用户

// 1、导入userDeleteService
import { userDeleteService } from '@/api/user'
// 2、实现删除功能
const deleteUser = async (userId) => {await ElMessageBox.confirm('确定要删除该用户吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {// 用户点击了确定// 提交删除请求userDeleteService(userId).then(result => {ElMessage.success(result.message ? result.message : '删除成功')getUsers()})})
}

8 修改状态

// 调用接口
import { userStatusUpdateService } from '@/api/user'
// 切换用户状态
const toggleUserStatus = (userId) => {const user = users.value.find(u => u.userId == userId)// 这里可以调用后端API更新用户状态userStatusUpdateService(user).then(result => {ElMessage.success(result.message ? result.message : '状态更新成功')getUsers()}).catch(error => {ElMessage.error(error.message)});
}

9 效果演示

在这里插入图片描述
用户管理操作视频

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统——lvm逻辑卷

Linux系统——lvm逻辑卷 一、lvm逻辑卷1、lvm操作流程2、操作指令 二、逻辑卷操作1、创建逻辑卷1.1 /dev/cloud/openstack 5G xfs /cloud/openstack1.2 /dev/cloud/docker 10G ext4 /cloud/docker 2、逻辑卷扩容2.1 扩容流程2.2 需求一&#xff1a;扩容ext4文件系统的逻辑卷2.3…

Ubuntu-Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题

Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题 一、问题描述二、原因分析三、解决办法 一、问题描述 Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题 zhyzhy-HP:~/Sources/mpv-examples/libmpv/qt$ make g -c -pipe -g -Wall -Wextra -D_REENTRANT -fPIC -DQT_WIDGET…

SQL JOIN的学习

SQL JOIN (w3school.com.cn) 之前跟着老师学数据库的时候学过&#xff0c;最近又比较频繁的在使用。 再复习一下。 Id_P是主键 Id_O是主键 1. SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P Orders.Id_P 2. SEL…

Idea 2023.2.7构建SpringCloud多模块项目

Idea 2023.2.7构建SpringCloud多模块项目 本文介绍如何使用idea 2023.2.7构建基于SpringCloud alibaba微服务项目&#xff0c;基于Nacos注册中心。 环境准备&#xff1a; JDK版本&#xff1a;jdk17 SpringBoot:3.3.4 SpringCloud:2023.0.3 Nacos服务端:2.4.3 1、创建父工程&a…

大数据测试:Charles修改响应数据

上一篇大数据测试&#xff1a;Fiddler修改响应数据-CSDN博客 &#xff0c;有同学反馈有没有Charles的方式修改响应数据&#xff0c;本篇就是Charles修改数据操作步骤&#xff0c;相比较fiddler&#xff0c;Charles相对简单&#xff0c;便捷&#xff0c;我很喜欢 1、背景&…

为什么SSH协议是安全的?

SSH的传输层协议&#xff08;Transport Layer Protocol&#xff09;和用户鉴权协议&#xff08;Authentication Protocol&#xff09;确保数据的传输安全&#xff0c;这里只介绍传输层协议&#xff0c;是SSH协议的基础。 本文针对SSH2协议。 1、客户端连接服务器 服务器默认…

Web组态数据联动

1. 通过get/post获取设备列表信息 2. websocket连接mqtt服务器&#xff0c;接收json报文信息 3. 通过Alpine进行数据联动 4. 封装svg对象&#xff0c;更新属性值 index.html <!DOCTYPE html> <html lang"en"> <head> <meta charset&qu…

Wavelet Convolutions for Large Receptive Fields

大感受野的小波卷积 论文链接&#xff1a;https://arxiv.org/abs/2407.05848v2 项目链接&#xff1a;https://github.com/BGU-CS-VIL/WTConv Abstract 近年来&#xff0c;人们一直试图增加卷积神经网络&#xff08;CNN&#xff09;的核大小&#xff0c;以模拟Vision Transfo…

基于深度学习的车辆车型检测识别系统(YOLOV5)

界面图&#xff1a; 项目简介&#xff1a; 网络&#xff1a;深度学习网络 yoloV5 软件&#xff1a;PycharmAnaconda 环境&#xff1a;python3.8 opencv PyQt5 torch1.9 文件&#xff1a;训练集8000张图片 测试集1000张图片 系统包含所有文件夹 环境文件 UI文件 功能&a…

Zookeeper快速入门:部署服务、基本概念与操作

文章目录 一、部署服务1.下载与安装2.查看并修改配置文件3.启动 二、基本概念与操作1.节点类型特性总结使用场景示例查看节点查看节点数据 2.文件系统层次结构3.watcher 一、部署服务 1.下载与安装 下载&#xff1a; 一定要下载编译后的文件&#xff0c;后缀为bin.tar.gz w…

PE结构之导出表

导出表结构中各种值的意义 ​​​​​​ 根据函数地址表遍历函数名称RVA表,和上面的图是逆过程 //函数地址表 和当前内存中的位置DWORD AddressOfFunctionsFOA RVAToFOA(LPdosHeader, LPexprotDir->AddressOfFunctions);PDWORD LPFunctionsAddressInMemary (PDWORD)((cha…

ssm基于VUE的图书馆管理系统的设计与实现+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 目 录 III 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 2 第2章 开发环境与技术 3 …

Android终端GB28181音视频实时回传设计探讨

技术背景 好多开发者&#xff0c;在调研Android平台GB28181实时回传的时候&#xff0c;对这块整体的流程&#xff0c;没有个整体的了解&#xff0c;本文以大牛直播SDK的SmartGBD设计开发为例&#xff0c;聊下如何在Android终端实现GB28181音视频数据实时回传。 技术实现 Andr…

基于ESP32的灌溉系统

精准灌溉优化与高效水资源利用&#xff1a;基于IoT的农业解决方案 引言 传统农业实践缺乏实时监控和高效操作&#xff0c;导致效率低下和产量不高。本项目旨在利用物联网&#xff08;IoT&#xff09;技术和低成本通信协议&#xff0c;设计一个解决方案来解决这一问题。提出的…

Docker实践与应用举例

目录 1. 引言 2. Docker的基本概念 2.1 什么是Docker容器 2.2 Docker镜像 2.3 Docker架构 3. Docker的应用场景 3.1 开发与测试环境的隔离 3.2 持续集成与持续交付&#xff08;CI/CD&#xff09; 3.3 微服务架构 4. Docker的实践案例 4.1 部署Nginx反向代理 4.2 使用…

研发线上事故风险解读之缓存篇

专业在线打字练习平台-巧手打字通&#xff0c;只输出有价值的知识。 一 前言 本文继续基于《线上事故案例集》&#xff0c;进一步深入梳理线上事故缓存使用方面的问题点&#xff0c;重点关注缓存在使用和优化过程中可能出现的问题&#xff0c;旨在为读者提供具有实践指导意义的…

学习如何将Spring Boot Jar包注册成Windows服务

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 在开发Spring Boot应用时&#xff0c;我们通常通过命令行或IDE手动启动项目。然而&#xff0c;在生产环境中&#xff0c;为了提升效率和稳定性&#xff0c;我们更希望应用能够自动启动&#xff0c;并且作为Wi…

OpenCV高级图形用户界面(5)获取指定滑动条(trackbar)的当前位置函数getTrackbarPos()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 返回滑动条的位置。 该函数返回指定滑动条的当前位置。 cv::getTrackbarPos() 函数用于获取指定滑动条&#xff08;trackbar&#xff09;的当前…

【H2O2|全栈】JS入门知识(二)

目录 JS 前言 准备工作 运算符 算数运算符 比较运算符 自增、自减运算符 逻辑运算符 运算符的优先级 分支语句 if-else语句 switch语句 三元表达式 结束语 JS 前言 本系列博客主要分享JavaScript的基础语法知识&#xff0c;本期为第二期&#xff0c;包含一些简…

Linux基础命令系列一小白必掌握

前言 为了有一个大概的复习框架所以先给出总的思维导图&#xff0c;如图&#xff1a; 目录 1.Linux的目录结构&#xff1f;Linux命令与命令行是什么&#xff1f;Linux命令基础格式&#xff1f; 2.ls命令 3.cd命令 4.mkdir命令 5.touch命令 6.cat命令 7.cp命令 8.mv命令…