5.人员管理模块(以及解决运行Bug)——帝可得管理系统

目录

  • 前言
  • 一、页面修改
    • 表单展示修改
  • 二、新增对话框修改
  • 三、修改对话框修改
    • 修改时展示创建时间
  • 四、解决页面展示错误
  • 五 、 解决【java.lang.NullPointerException: null】 Bug

前言

提示:本篇完成人员管理模块的开发,具体需求、修改代码的路径和最终效果不展示了,可参考文章
4.人员管理模块(开始预备工作)——帝可得管理系统

一、页面修改

表单展示修改

    <el-table v-loading="loading" :data="empList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center" /><el-table-column label="序号" type="index" width="50" align="center" prop="id" /><el-table-column label="人员名称" align="center" prop="userName" /><el-table-column label="归属区域" align="center" prop="regionName" /><el-table-column label="角色名称" align="center" prop="roleName" /><el-table-column label="联系电话" align="center" prop="mobile" /><el-table-column label="操作" align="center" class-name="small-padding fixed-width"><template #default="scope"><el-button link type="primary"  @click="handleUpdate(scope.row)" v-hasPermi="['manage:emp:edit']">修改</el-button><el-button link type="primary"  @click="handleDelete(scope.row)" v-hasPermi="['manage:emp:remove']">删除</el-button></template></el-table-column></el-table>

二、新增对话框修改

将角色与负责区域改为下拉框

  <el-dialog :title="title" v-model="open" width="500px" append-to-body><el-form ref="empRef" :model="form" :rules="rules" label-width="80px"><el-form-item label="人员名称" prop="userName"><el-input v-model="form.userName" placeholder="请输入人员名称" /></el-form-item><el-form-item label="角色" prop="roleId"><!-- <el-input v-model="form.roleId" placeholder="请输入角色id" /> --><el-select v-model="form.roleId" placeholder="请选择角色"><el-optionv-for="item in roleList":key="item.roleId":label="item.roleName":value="item.roleId"/></el-select></el-form-item><el-form-item label="联系电话" prop="mobile"><el-input v-model="form.mobile" placeholder="请输入联系电话" /></el-form-item><el-form-item label="创建时间" prop="mobile" v-if="form.id!=null">{{form.createTime}}</el-form-item><el-form-item label="负责区域" prop="regionId"><!-- <el-input v-model="form.regionId" placeholder="请输入所属区域Id" /> --><el-select v-model="form.regionId" placeholder="请选择负责区域"><el-optionv-for="item in regionList":key="item.id":label="item.regionName":value="item.id"/></el-select></el-form-item><el-form-item label="员工头像" prop="image"><image-upload v-model="form.image"/></el-form-item><el-form-item label="是否启用" prop="status"><el-radio-group v-model="form.status"><el-radiov-for="dict in emp_status":key="dict.value":label="parseInt(dict.value)">{{dict.label}}</el-radio></el-radio-group></el-form-item></el-form><template #footer><div class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></template></el-dialog>
import{listRole} from "@/api/manage/role";
import{loadAllParams} from "@/api/page";
import{listRegion} from "@/api/manage/region";
/* 查询区域列表 */
const regionList=ref([]);
function getRegionList() {listRegion(loadAllParams).then(response => {regionList.value = response.rows;});/* 查询角色列表 */
const roleList=ref([]);
function getRoleList() {listRole(loadAllParams).then(response => {roleList.value = response.rows;});
}
}

三、修改对话框修改

修改时展示创建时间

  <el-dialog :title="title" v-model="open" width="500px" append-to-body><el-form ref="empRef" :model="form" :rules="rules" label-width="80px"><el-form-item label="人员名称" prop="userName"><el-input v-model="form.userName" placeholder="请输入人员名称" /></el-form-item><el-form-item label="角色" prop="roleId"><!-- <el-input v-model="form.roleId" placeholder="请输入角色id" /> --><el-select v-model="form.roleId" placeholder="请选择角色"><el-optionv-for="item in roleList":key="item.roleId":label="item.roleName":value="item.roleId"/></el-select></el-form-item><el-form-item label="联系电话" prop="mobile"><el-input v-model="form.mobile" placeholder="请输入联系电话" /></el-form-item><el-form-item label="创建时间" prop="mobile" v-if="form.id!=null">{{form.createTime}}</el-form-item><el-form-item label="负责区域" prop="regionId"><!-- <el-input v-model="form.regionId" placeholder="请输入所属区域Id" /> --><el-select v-model="form.regionId" placeholder="请选择负责区域"><el-optionv-for="item in regionList":key="item.id":label="item.regionName":value="item.id"/></el-select></el-form-item><el-form-item label="员工头像" prop="image"><image-upload v-model="form.image"/></el-form-item><el-form-item label="是否启用" prop="status"><el-radio-group v-model="form.status"><el-radiov-for="dict in emp_status":key="dict.value":label="parseInt(dict.value)">{{dict.label}}</el-radio></el-radio-group></el-form-item></el-form><template #footer><div class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></template></el-dialog>

四、解决页面展示错误

添加时归属区域、角色名称为空:
在这里插入图片描述
具体代码修改参考文档:参考

五 、 解决【java.lang.NullPointerException: null】 Bug

  1. 当我修改人员管理信息时:前端显示如下信息;当F12后,响应显示500的错误;
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/53b42872345c4df2a0f0894d53b0d579.png

且后端服务器报错:

java.lang.NullPointerException: null 
at com.dkd.manage.service.impl.EmpServiceImpl.updateEmp(EmpServiceImpl.java:82) 
at com.dkd.manage.controller.EmpController.edit(EmpController.java:85)
at com.dkd.manage.controller.EmpController$$FastClassBySpringCGLIB$$90f7e0dd.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) 
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)...
...

错误显示了空指针异常:

java.lang.NullPointerException: null
at com.dkd.manage.service.impl.EmpServiceImpl.updateEmp(EmpServiceImpl.java:82)

  • 不清楚为什么?难道是前端修改后的数据没有传过来,于是打了断点,运行后:发现数据已经传到了后端,也就是前端没问题。
    在这里插入图片描述
  • 那么既然错误显示EmpServiceImpl.updateEmp有问题,就看代码,代码没什么问题。
  • 那是什么问题呢?它说roleMapper.selectRoleByRoleId(emp.getRoleId()); 处异常,且指明了是roleMapper是空指针?那就是说没有没有这个对象;
  • 好,往上翻,难道是没有注入,最终看了一下代码:
    @Autowiredprivate EmpMapper empMapper;private RegionMapper regionMapper;private RoleMapper roleMapper;

好家伙,RegionMapper、RoleMapper并没有注入;

修改代码:

    @Autowiredprivate EmpMapper empMapper;@Autowiredprivate RegionMapper regionMapper;@Autowiredprivate RoleMapper roleMapper;

重启后再次修改,修改成功。

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

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

相关文章

车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。

车 车辆种类分类识别数据集&#xff0c;可以识别7种汽车类型&#xff0c;已经按照7:2:1比 例划分数据集&#xff0c;训练集1488张、验证集507张,测试集31张&#xff0c; 共计2026张。 数据集分为一类客车(tinycar) &#xff0c;类客车(midcar) &#xff0c;三类 客车(bigcar) ,…

重学SpringBoot3-集成Redis(六)之消息队列

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis&#xff08;六&#xff09;之消息队列 1. 什么是发布/订阅&#xff08;Pub/Sub&#xff09;&#xff1f;2. 场景应用3. Spring Boot 3 整合 R…

感知机学习算法

感知机 一、感知机简介二、感知机模型2.1 感知机的基本组成2.2 求和函数2.2.1 时间总合2.2.2 空间总合 2.3 激活函数2.4 学习算法2.4.1 赫布学习规则2.4.2 Delta学习规则 三、 结论参考文献 一、感知机简介 M-P神经元模型因其对生物神经元激发过程的极大简化而成为神经网络研究…

微信小程序学习实录10:轻松获取用户昵称、头像与登录openid实战攻略

在微信小程序开发中&#xff0c;获取用户的个人信息&#xff08;如昵称和头像&#xff09;以及用户的唯一标识OpenID是非常常见的需求。本文将详细介绍如何通过微信提供的API来实现这些功能&#xff0c;并提供一个完整的实战案例。 用户选择头像 微信提供了chooseAvatar组件&…

ROS基础入门——实操教程

ROS基础入门——实操教程 前言 本教程实操为主&#xff0c;少说书。可供参考的文档中详细的记录了ROS的实操和理论&#xff0c;只是过于详细繁杂了&#xff0c;看得脑壳疼&#xff0c;于是做了这个笔记。 Ruby Rose&#xff0c;放在这里相当合理 本文初编辑于2024年10月4日 C…

使用vscode调试wails项目(golang桌面GUI)

文章目录 安装 Golang 环境安装 NPM安装 VSCode安装 Go 插件安装 Go 插件依赖工具安装 Wails系统检查 准备项目Visual Studio Code 配置安装和构建步骤参考资料 安装 Golang 环境 访问 golang 官网下载环境安装包&#xff1a;https://go.dev/dl/ 安装 NPM 从 Node 下载页面 …

时序必读论文16|ICLR24 CARD:通道对齐鲁棒混合时序预测Transformer

论文标题&#xff1a;CARD: Channel Aligned Robust Blend Transformer for Time Series Forecasting 论文链接&#xff1a;https://arxiv.org/abs/2305.12095 代码链接&#xff1a;https://github.com/wxie9/CARD 前言 Transformer取得成功的一个关键因素是通道独立&#…

鸿蒙开发之ArkUI 界面篇 十九 Flex组件的特点

其语法格式是: Flex(参数对象){ 字组件1, 字组件2, 字组件3, 字组件4 } 这里你会发现&#xff0c;其实和Row容器&#xff0c;Colum容器的语法格式差不多&#xff0c;核心的关键是Colum、Row是不支持换行&#xff0c;实现FlexInterface接口&#xff0c;对外提供的属性是F…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(二).设置主键自增等特点

前言 在上一节中&#xff0c;主要介绍了 Navicat Premium 17 的使用以及创建一个基础的表格。当时只设置了给数据表补充字段&#xff0c;没有设置给数据表删除字段。现在补充一下。 ALTER TABLE student ADD test int(4); 给名为 student 的数据表添加 test 列&#xf…

Android OTA升级

针对Android系统OTA升级&#xff0c;MTK平台有相关介绍文档&#xff1a;https://online.mediatek.com/apps/faq/detail?faqidFAQ27117&listSW 概念一&#xff1a;OTA包的构建 AOSP full build&#xff1a;Android原生提供的全量包的构建&#xff0c;意思就是可以从任何一…

数据结构:AVL树

前言 学习了普通二叉树&#xff0c;发现普通二叉树作用不大&#xff0c;于是我们学习了搜索二叉树&#xff0c;给二叉树新增了搜索、排序、去重等特性&#xff0c; 但是&#xff0c;在极端情况下搜索二叉树会退化成单边树&#xff0c;搜索的时间复杂度达到了O(N)&#xff0c;这…

【EXCEL数据处理】000020 案例 保姆级教程,附多个操作案例。EXCEL使用表格。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000020 案例 保姆级教程&#xff0c;附多个操作案例。…

vulnhub-digitalworld.local DEVELOPMENT靶机

vulnhub&#xff1a;digitalworld.local: DEVELOPMENT ~ VulnHub 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.114.129&#xff0c;扫描端口 开了几个端口&#xff0c;8080端口有网页&#xff0c;访问 说是让访问html_pages 似乎把页面都写出来了&…

2-115 基于matlab的瞬态提取变换(TET)时频分析

基于matlab的瞬态提取变换&#xff08;TET&#xff09;时频分析&#xff0c;瞬态提取变换是一种比较新的TFA方法。该方法的分辨率较高&#xff0c;能够较好地提取出故障的瞬态特征&#xff0c;用于故障诊断领域。通过对原始振动信号设置不同信噪比噪声&#xff0c;对该方法的抗…

面向对象特性中 继承详解

目录 概念&#xff1a; 定义&#xff1a; 定义格式 继承关系和访问限定符 基类和派生类对象赋值转换&#xff1a; 继承中的作用域&#xff1a; 派生类的默认成员函数 继承与友元&#xff1a; 继承与静态成员&#xff1a; 复杂的菱形继承及菱形虚拟继承&#xff1a; 虚…

学MybatisPlus

1.设置MySql的数据库 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&serverTimezoneAsia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123 logging:l…

IDEA搭建JDK1.8源码调试环境

大家好 下载源码 安装好 JDK 后&#xff0c;源码目录下面有 src.zip 文件&#xff0c;这个文件就是 JDK 的源码 搭建调试环境 新建 Maven 工程&#xff0c;包含以下文件 source&#xff1a;源码文件夹&#xff08;手动新建&#xff09;test&#xff1a;单元测试文件夹&…

Linux文件重定向文件缓冲区

目录 一、C文件接口 二、系统文件I/O 2.1认识系统文件I/O 2.2系统文件I/O 2.3系统调用和库函数 2.4open( )的返回值--文件描述符 2.5访问文件的本质 三、文件重定向 3.1认识文件重定向 3.2文件重定向的本质 3.3在shell中添加重定向功能 3.4stdout和stderr 3.5如何理…

JS测试框架——Jest

文章目录 安装yarn安装jestvscode支持jest的智能提示创建JS测试用例 安装yarn yarn是meta发布的一款取代npm的包管理工具。 npm install -g yarn查看yarn软件源 yarn config get registry换源 yarn config set registry https://registry.npmmirror.com恢复官方源 yarn co…

中广核CGN25届校招网申SHL测评题库、面试流程、招聘对象,内附人才测评认知能力真题

​中国广核集团校园招聘在线测评攻略&#x1f680; &#x1f393; 校园招聘对象 2024届、2025届海内外全日制应届毕业生&#xff0c;大专、本科、硕士、博士&#xff0c;广核集团等你来&#xff01; &#x1f4c8; 招聘流程 投递简历 简历筛选 在线测评&#xff08;重点来啦…