书签 分享 收藏 举报 版权申诉 / 13

类型员工管理系统实现文档.docx

  • 文档编号:11566454
  • 上传时间:2023-03-19
  • 格式:DOCX
  • 页数:13
  • 大小:1.26MB

(2)用户数据的提交代码实现

该部分的代码实现使用js语言获得用户输入的姓名和密码数据,先校验两个数据是否为空,为空的话表单不合法。

表单不合法的情况下会给用户一个提示信息而且不会执行提交动作,只有表单校验通过之后,该方法才会将获得的用户输入数据传给控制层,完成用户输入数据的提交操作。

该部分功能的实现是在用户点击登录按钮之后才会执行的,后面还会有在用户输入数据完成后按下键盘Enter键后的数据提交方法的具体实现,代码实现如下所示。

handler:

function(){

$.messager.progress();//显示一个进度条

loginform.submit();

$('#loginform').form('submit',{

onSubmit:

function(){

varisValid=$(this).form('validate');

if(!

isValid){

$.messager.progress('close');//当form不合法的时候隐藏工具条

}else{

name2=document.getElementById("username2").value;

password2=document.getElementById("password2").value;

document.getElementById("password").value=password2;

document.getElementById("username").value=

encodeURI(encodeURI(name2));

returnisValid;

}

},

success:

function(){

$.messager.progress('close');//当成功提交之后隐藏进度条

}

});

}

(3)展现层接收后台数据并实现页面跳转的代码实现

该部分代码实现的功能是接收控制层经过用户名和密码校验后传到展现层的数据,并根据数据的不同来判断当前操作人具有的操作权限从而展示不同的主功能页面,代码实现如下所示。

loginform=$('#loginform').form({

url:

'../user/userlogin',

success:

function(str){

if(str==0){

$.messager.progress('close');

$('#loginDialog').dialog('close');

window.location.href="../index.jsp";

}else{

$.messager.progress('close');

$.messager.alert("提示信息","用户名或密码错误!

","error");

}

}

});

3.2登录功能控制层代码实现

控制层主要实现的功能是接收展现层传输的用户名和密码并调用逻辑层和Dao层实现方法来判断用户名和密码的合法性,如果数据库表中存在该姓名和密码的组合则表示登录成功,否则登录失败。

该部分判断员工姓名和密码的合法性的时候调用工具类将用户输入的姓名转换为拼音全拼,如果数据库中存有该员工姓名并且员工输入的密码与姓名经过工具类转换后得到的全拼相同则表示该员工登录成功,有一个条件不符合则表示登录失败,成功状态会发送到展现层向用户或员工以提示框的形式展现出来,成功则转到主页面,不成功则仍停留在当前登录页面并弹出登录失败信息。

具体代码实现如下所示。

publicvoidlogin()throwsIOException{

Stringmsg="1";

Stringname=URLDecoder.decode(URLDecoder.decode(user.getUsername(),"UTF-8"),"UTF-8");

user.setUsername(name);

curryUsercurruser=usermanager.login(user.getUsername(),user.getPassword());

PinYinUtilpinYinUtil=newPinYinUtil();

Stringpy=pinYinUtil.changeToPinyin(name);

if(curruser!

=null){

if(Integer.parseInt(curruser.getPowerlimit())==0){

curruser.setPowerlimit("0");

msg="0";

}elseif(Integer.parseInt(curruser.getPowerlimit())==1){

curruser.setPowerlimit("1");

msg="0";

}

session.put("curruser",curruser);

}elseif(user.getPassword().equals(py)){

curryUsercurrpro=promanager.proLogin(user.getUsername(),user.getPassword());

if(currpro!

=null){

currpro.setPowerlimit("2");

session.put("curruser",currpro);

msg="0";

}

}

response.setCharacterEncoding("utf-8");

response.getWriter().print(msg);

}

4.员工管理界面实现

员工管理操作界面采用北部和中部布局格式,北部面板放置检索条件,中部面板显示主要操作界面。

在北部面板可以执行的操作主要是检索员工数据,该面板放置的检索条件有员工姓名、入职时间、所在部门、和最后修改时间,用户可以输入其中一个或者多个条件进行对员工数据检索。

中部面板放置一个表格,该表格有一个工具栏上面放置增加操作按钮、删除操作按钮、编辑操作按钮和Excel导出操作按钮。

点击增加按钮会弹出一个可以输入员工信息的面板,在该面板中可以输入员工的相关信息,其中姓名具有唯一性验证,即用户不可以输入与与员工列表中员工姓名相同的姓名。

出生日期和入职日期是采用的日期控件,用户可以点击选择日期而不可以直接输入。

员工学历是一个下拉列表框,员工的学历可以从中选择,手机、邮箱、住址和薪水是输入框,用户可以输入新员工的对应信息,其中邮箱具有邮箱格式验证,输入的邮箱地址必须满足一定的邮箱格式才可以继续操作。

员工部门和员工职位是两个联动的下拉列表,其中的数据全部加载于数据库中的部门名称和职位名称,在部门下拉列表选择一个部门名称后,职位下拉列表会将选择部门下的所有职位加载显示出来以供用户选择。

以上所有元素都有非空验证,其中任何一项为空时无法进行保存操作。

员工爱好是一个文本框,可以为空。

点击删除按钮会将用户已选择的所有员工信息执行删除操作、删除之前会弹出提示框,用来防止误操作,用户可以选择多条数据后执行批量删除操作。

在用户未选择员工信息而点击删除按钮的情况下系统会给出提示,提示用户先选择用户数据后再执行删除操作。

点击编辑操作按钮后会弹出一个用来存放用户选择的数据的面板,该面板可以将员工资料以可编辑的格式展现给用户,用户可以对展现出的信息进行修改保存操作,系统会将新的信息替代原来的信息保存到数据库员工表中,在该操作中不支持员工姓名的修改操作,也就是说只要执行新增用户后,用户的姓名边不可以第二次修改。

操作状态的成功与否后台会传到展现层给用户展现出来。

点击导出按钮后,系统会将数据库表中所有员工的信息已Excel表格的形式导出到本地计算机中,存放地址可以由用户自己选择,存放表格标题以员工表加当前时间年月日时分秒的形式自动命名,导出成功后用户可以打开和查看。

导出操作便于公司对员工信息的打印复制处理,方便对员工信息的管理。

中部面板表格主体显示信息由员工姓名、员工姓别、出生日期、入职日期、学历、手机、地址、电子邮件、职位、部门、薪金、爱好、创建时间、最后修改该时间。

每条记录前都有编号和选择框,支持多项选择,记录具有隔行斑马线效果,便于记录的查看和浏览。

表格底部有分页栏,可以选择每页的显示记录数目以及转到下一页、上一页、第一页和最后一页,可以显示当前页面记录数和总记录数目,数据过多时可以自动产生滚动条。

点击一条记录时会有左键菜单弹出,左键菜单的操作功能有对当前记录的详情查看、编辑和删除。

没条记录的员工姓名都有超链接点击超链接可以查看当前员工的详细信息。

员工管理效果预览图如图2-4所示。

图2-4员工管理界面预览效果图

5.员工管理代码实现

5.1员工新增和编辑保存功能代码实现

员工增加保存功能主要是用户点击保存按钮时触发js保存方法,该方法可以获取面板中用户填写的新员工详细信息,并可以控制form表单的提交,form表单提交之前会验证表单的合法性,如果有员工信息输入错误的情况表单提交动作会终止,并有响应提示给用户,只有完全符合设定条件下的表单才会提交到控制层。

控制层接收新员工数据并调用逻辑层和Dao层方法将用户信息保存到数据库表中。

新员工的增加会自动产生一个32位员工编号,该编号是唯一的,不允许重复,在数据库员工表中充当主键作用。

记录创建时间也会在记录插入表格的同时自动生成,而且还会产生一个标示记录状态的员工状态符,该状态可以表示当前记录是否被启用。

员工编辑保存功能如增加保存操作几乎一致,展示层同样将获取用户操作后的员工数据经表单的合法性验证后传到控制层,控制层接收数据后调用逻辑层和Dao层编辑方法对员工信息进行编辑操作。

员工编辑与员工新增功能的不同点在于员工新增时的员工编号是系统自动生成并充当主键作用,员工编辑功能是系统根据员工主键对该员工记录执行信息修改功能,记录的主键并不改变。

员工新增与员工编辑展现层保存方法代码实现如下所示。

functionsaveuser(){

varpdept=$('#pdept2').combobox('getValue');

varpjob=$('#pjob2').combobox('getValue');

varpschoolage=$('#pschoolage2').combobox('getValue');

$("#pdid").attr("value",pdept);

$("#pjid").attr("value",pjob);

$("#pschoolage3").attr("value",pschoolage);

$("#fm").form("submit",{

url:

url,

onsubmit:

function(){

return$(this).form("validate");

},

success:

function(str){

if(str==0){

$.messager.show({

msg:

'操作成功',

title:

'提示'

});

}elseif(str==1){

$.messager.alert("提示信息","操作失败!

","error");

}else{

$.messager.alert("提示信息","内部错误,请联系管理员!

","error");

}

$("#dlg").dialog("close");

$("#dg").datagrid("load");

}

});

}

5.2员工删除的代码实现

员工删除功能的实现在展现层只需将用户选择的将要删除的员工记录编号传到控制层,在控制层调用逻辑层和Dao层的删除方法,即可以执行删除操作。

删除操作允许用户在展现层选择多条记录进行操作,删除操作的展现层代码实现如下所示。

functionforRemove(){

varpid="";

varrows=$('#dg').datagrid('getSelections');

if(rows.length==0){

$.messager.show({

msg:

'请先选择数据!

!

',

title:

'提示'

});

returnfalse;

}

if(!

confirm('确定要删除'+rows.length+'条数据吗?

')){

returnfalse;

}

for(vari=0;i

varid=rows[i].pid;

pid+=id+",";

}

$.ajax({

url:

'proforDelPro',

data:

"pid="+pid,

dataType:

"text",

success:

function(str){

$.messager.show({

msg:

str,

title:

'提示'

});

editIndex=undefined;

$('#dg').datagrid('unselectAll');

$('#dg').datagrid('reload');

}

});

}

6.部门管理界面实现

部门管理界面的实现与员工界面有所不同,由于部门操作的信息量较少,部门管理界面的设计采用行编辑的方式来实现部门的增加和编辑操作。

对行编辑操作的描述就是在表格基础上实现部门的增删改查,操作期间并没有弹出面板的出现。

界面布局的实现与员工管理操作界面相似,功能实现的方式有所不同。

执行部门增加操作时会动态添加一行到表格的前端并打开相应信息对应列的可编辑功能,用户在可编辑的列中输入部门信息后点击保存按钮即可实现部门增加功能。

用户在部门信息列表中双击记录所在行即可打开该条记录所在行的编辑功能,执行相关信息的修改完善后点击保存按钮即可实现部门的编辑修改功能。

部门删除功能同样支持批量删除和单删除,相应操作流程可参考员工管理功能的操作实现流程。

部门管理界面效果预览图如图2-5所示。

图2-5部门管理界面预览效果图

三、数据库的实现

数据库表的创建基本符合商业开发对数据库的要求,也符合业务操作对数据库表的要求设计,本系统所有功能操作共涉及到八张表,每张表都有自己的主键和对数据记录的状态标识的字段,个别表格中还包含其他表格的主键作为外键,对应实体的创建中外键会被对应表格实体代替,便于各表数据的相互获取,对数据的控制和获取带来极大方便。

请假表创建语句示例如下:

------------------------------

--Tablestructureforleavetab

------------------------------

DROPTABLEIFEXISTS`leavetab`;

CREATETABLE`leavetab`(

`id`varchar(36)NOTNULLCOMMENT'主键',

`pid`varchar(36)NOTNULLCOMMENT'请假人',

`uid`varchar(36)DEFAULTNULL,

`reason`varchar(1000)NOTNULLCOMMENT'请假原因',

`timebgan`datetimeDEFAULTNULLCOMMENT'请假开始时间',

`timeend`datetimeDEFAULTNULLCOMMENT'请假结束时间',

`backperson`varchar(30)DEFAULTNULLCOMMENT'批准人',

`backtime`datetimeDEFAULTNULLCOMMENT'批准时间',

`lasttime`datetimeDEFAULTNULLCOMMENT'销假时间',

`remark`varchar(1000)DEFAULTNULL,

`status`varchar(10)DEFAULTNULLCOMMENT'1.未提交;2.上级审核;3.已批准;4.未通过;5.已销假',

`subtime`datetimeDEFAULTNULLCOMMENT'提交时间',

PRIMARYKEY(`id`)

)ENGINE=InnoDBDEFAULTCHARSET=utf8;

 

四、项目小结

该员工管理

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
员工 管理 系统 实现 文档
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:员工管理系统实现文档.docx
链接地址:https://www.bdocx.com/doc/11566454.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开