Java全栈开发---Java ERP系统开发:商业ERP(五)员工管理的完善

员工管理的完善

(一)查询页面的时候去掉密码

1、访问上面创建好的项目emp.html页面

密码是暴露状态
在这里插入图片描述

需要在显示的时候,屏蔽掉密码的显示

2、在erp_entity当中的Emp.java当中,设置注释

在这里插入图片描述

3、再次访问的时候登陆密码消失

在这里插入图片描述
将emp.html当中的密码列删除
在这里插入图片描述
再次访问
在这里插入图片描述

(二)性别的显示

在emp.html当中修改性别一列
在这里插入图片描述
再次访问emp.html页面
在这里插入图片描述

(三)日期格式化

1、查询的时候这样显示显然不对

在这里插入图片描述

2、对日期进行格式化引入date.js

在这里插入图片描述

// 对Date的扩展,将 Date 转化为指定格式的String   
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,   
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)   
// 例子:   
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423   
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18   
Date.prototype.Format = function(fmt)   
{
    
     //author: meizz   
	if(isNaN(this.getDate()))
	{
    
    
		return "";
	}
  var o = {
    
       
    "M+" : this.getMonth()+1,                 //月份   
    "d+" : this.getDate(),                    //日   
    "h+" : this.getHours(),                   //小时   
    "m+" : this.getMinutes(),                 //分   
    "s+" : this.getSeconds(),                 //秒   
    "q+" : Math.floor((this.getMonth()+3)/3), //季度   
    "S"  : this.getMilliseconds()             //毫秒   
  };   
  if(/(y+)/.test(fmt))   
    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
  for(var k in o)   
    if(new RegExp("("+ k +")").test(fmt))   
  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
  return fmt;   
} 
3、在emp.html当中引入该js(将上面的JS放入到对应ui文件当中)

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

(四)部门名称的完善

1、修改emp.hbm.xml当中的映射文件

在这里插入图片描述

2、 修改Emp,java实体类

在这里插入图片描述

3、 修改emp.html页面上的内容(给部门加上格式化器)

在这里插入图片描述

4、 修改BaseAction的listByPage方法和list方法:DisableCircularReferenceDetect禁用循环引用保护

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

5、再次访问emp.html:实现

在这里插入图片描述

(五)员工添加表单编辑

1、设置编辑框的大小crud.js里面设置

在这里插入图片描述

2、在emp.html(设置新增按钮编辑的文本框)

将性别改为单选按钮
在这里插入图片描述

3、在emp.html的添加页面上设置对应的添加功能(设置对应的日期格式)

在这里插入图片描述

<td>出生年月日</td>
<td>
	<input name="t.birthday" class="easyui-datebox" editable="false" > 
</td>

在这里插入图片描述

4、部门下拉列表的设置(在emp.html当中设置)

在这里插入图片描述
从emp当中对应外键的dep当中获取部门列表

<td>部门</td><td><input name="t.dep.uuid" class="easyui-combobox" data-options="
		 url:'dep_list',textField:'name',valueField:'uuid' " > 
</td>

在这里插入图片描述

5、设置一些其他属性(添加验证)

(1)在emp.html当中设置对应(验证的属性)

<td>登陆名</td>
<td><input name="t.username" class="easyui-validatebox" data-options="
required:true,missingMessage:'登录名不能为空!' "> 
</td>
<td>邮件地址</td>
<td><input name="t.email"  class="easyui-validatebox" data-options="
required:true,validType:'email',invalidMessage:'Email格式不正确'"> 
</td>

在这里插入图片描述
(2)在crud.js当中设置对应(验证的属性)点击保存的时候要验证
错误无法提交
在这里插入图片描述

//表单验证的时候当所有字段返回true的时候,该方法使用validatebox(验证框架)插件
		var isValid = $('#editForm').form('validate');
		
		if(isValid ==  false ){
    
    
			return;
		}
		
		var formdata= $('#editForm').serializeJSON();	
		$.ajax({
    
    
			url:name+'_'+method+'.action',
			data:formdata,
			dataType:'json',
			type:'post',
			success:function(value){
    
    
				if(value.success){
    
    
					$('#editWindow').window('close');
					$('#grid').datagrid('reload');
				}
				$.messager.alert('提示',value.message);				
			}
		});

在这里插入图片描述
(3)部门为必填required:true
在这里插入图片描述
在这里插入图片描述

6、员工搜索(普通表单的)

(1)修改性别在emp.html当中
在这里插入图片描述
(2)设置对应部门的下拉列表
在这里插入图片描述
(3)在EmpDao当中设置根据部门查询的条件
在这里插入图片描述

// 根据部门查询
if (null != emp1.getDep() && null != emp1.getDep().getUuid()) {
    
    
	dc.add(Restrictions.eq("dep", emp1.getDep()));
}

(4)条件查询成功
在这里插入图片描述

7、员工搜索(出生年月日)查询指定期间的信息

(1)修改前端emp.html当中的日期
在这里插入图片描述

出生年月日:<input name="t1.birthday" class="easyui-datebox" editable="false" > 
-> <input name="t2.birthday" class="easyui-datebox" editable="false" >

(2)修改后端EmpDap当中的条件
在这里插入图片描述
(3)查询成功在这里插入图片描述

(六)部门关联格式处理

1、点击修改的时候会报错(没有登录名称,真实姓名,性别,以及日期格式错误)

在这里插入图片描述
在BaseAction当中修改get方法
在这里插入图片描述
页面成功显示各种信息,但是部门没有显示出来
在这里插入图片描述

2、显示部门信息(修改BaseAction当中的mapJson方法)

在这里插入图片描述

private String mapJson(String jsonString, String prefix) {
    
    
		Map<String, Object> map = JSON.parseObject(jsonString);
		Map<String, Object> newmap = new HashMap();
		for (String key : map.keySet()) {
    
    
			if (map.get(key) instanceof Map) {
    
    // 判断左边的类型是否和右边相同
				// key值进行拼接
				Map<String, Object> m2 = (Map<String, Object>) map.get(key);//将map.get(key)值强制转换为map
				for (String key2 : m2.keySet()) {
    
    
					newmap.put(prefix + "." + key + "." + key2, m2.get(key2));
				}
			}else {
    
    
				newmap.put(prefix + "." + key, map.get(key));
			}
		}
		return JSON.toJSONString(newmap);
	}

再次运行会自动选择对应的部门
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/109243260