业务场景:用于Web页面,序时簿表格数据过滤。需要前端JS与控制层Java代码共同配合完成。
例如,用户打开列表界面之后,只能看到自己录入的数据,或者切换到某个组织之后,只能看到本级组织所属的数据等。
本例中控制层使用了SpringMVC的方式,关于控制层实现方式,具体可参考博主相关文章。
/**************************提示:只允许修改开发区域,其他区域会被覆盖!********************************/
mod.definePage("extend/custom/js/DetectionResultSimpPage",function(waf){
//@beginUseModule
//@endUseModule
var _public = {},_private = {},me=_self;
//@beginPublic
waf.extend(_public,{
});
//@endPublic
/**************************开发区域开始**********************************************/
//@beginPrivate
waf.extend(_private,{
// 初始化序时簿表格过滤条件
// 过滤条件通过向控制层请求,获取过滤字符串
queryOnInitEventBefore:function(){
var filterItems = "";
waf.ajax({
url:waf.getContextPath() + "/lims/detectionResultList.do?method=initFilter",
data:'',
type:'post',
dataType:'',
async:false,
success:function(data){
// alert(waf.toJSON(data));
filterItems = data.data;
}
});
// 获取过滤条件之后,为表格添加过滤
waf("#queryGrid").dataGrid("option", "filterItems", filterItems);
waf("#bizCommonQuery").bizCommonQuery("option", "beforeSearch", function(filter){
if(filter != null && filter != ""){
filter = filter + " and " + filterItems;
} else {
filter = filterItems;
}
return filter;
});
}
});//@endPrivate
// 框架queryOnInitEvent之前,增加过滤条件
_self.subscribeEvent("queryOnInitEvent", _private.queryOnInitEventBefore, "before");
/**************************开发区域结束**********************************************/
return _public;
});
/**
* 序时簿表格初始化过滤条件
*/
@RequestMapping(params={"method=initFilter"})
@ResponseBody
public void initFilter(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception{
// 序时簿只显示当前用户的数据
String filter = "";
service = DetectionResultFactory.getRemoteInstance();
Context ctx = WafContext.getInstance().getContext();
UserInfo user = ContextUtil.getCurrentUserInfo(ctx);
// 格式:'', '', ''
String dptIds = service.getDptFilters(); //获取派工单数据
if(VerifyUtil.notNull(dptIds)){
filter = "dtcUser.number = '" + user.getNumber() + "' and dptId in (" + dptIds + ")";
} else {
filter = "dtcUser.number = '" + user.getNumber() + "' and dptId in ('')";
}
JSONUtils.SUCCESS(filter);
}