s-HR Cloud V8.6 SP1及以上

【应用场景】 

在列表页中如何对过滤项某些字段是否有值做校验,如果没有值的时候点击查询提示去输入对应的值再查询,如下图

【详细说明/示例/操作步骤】

1、首先定义校验过滤项是否为空的方法,如果值为空就给与提示

/**
 * 判断过滤条件必填,如果为空,显示提示信息,过滤区域不隐藏
 * obj: 参数,如{"name":"attencePolicy","errorMessage":"请输入XXX字段"}
 * showMsg:是否显示提示语
 */
validateFastFilterItems: function(obj,showMsg){
    var self = this;
    var flag = true;
    if(self.getFastFilterItems()){
        //获取字段值,和判断字段是否有值
	    var filterItem = self.getFastFilterItems()[obj["name"]];
    	if(!filterItem){
    	   flag = false;
    	}
    	//flag为false表示字段没有值
		if(!flag){
		    //显示过滤条件框
		    if($(".filter-containers").is(":hidden")){
			    $("#filter-slideToggle").click();
		    }
		    if(showMsg == undefined || showMsg == true){
				shr.showWarning({message : obj["errorMessage"],hideAfter: 3});
			}
		}
	}else{
	    flag = false;
	}
	return flag;
},

2、函数调用的地方和方式,需要重写queryGrid这个方法

queryGrid: function(){
    var showMsg = true;
    //判断第一次加载页面就不提示过滤项必录
    if(this.isFirstLoad){
	showMsg = false;
    }
    this.isFirstLoad = false;
    var validate = this.validateFastFilterItems({"name":"attencePolicy","errorMessage":"请输入XXX字段"},showMsg);
    if(validate ){
        //shr.ats.atsResultToSumList.superClass为当前页的类,不同页面不同
        shr.ats.atsResultToSumList.superClass.queryGrid.call(this);
    }
},