员工管理的完善
(一)查询页面的时候去掉密码
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);
}
再次运行会自动选择对应的部门