/** * 常用工具和方法 本js依赖jQuery * * @author 姜友瑶 */ var MTools = { /** * 用逗号分开的存的id是否包含对应的id * 如比较 123,123,124 中是否包含12这个主键 * 比对的方法是 字符串中是否包含"^12$" "^12,.*" 或者 ".+,12$" 或者 ".+,12,$"或者 ".+,12,.+" 字符串 * */ isContainId:function(ids,id){ var reg1=new RegExp("^"+id+"$|^"+id+",.*|.+,"+id+"$|.+,"+id+",$|.+,"+id+",.+"); if(reg1.test(ids)){ return true; }else{ return false; } }, /** * 对表格中单挑数据进行处理 请在url后添加参数 url: 远程地址 msg:提示信息 callbackfn:操作成功后回调函数 */ handleItem : function(url, msg, callbackfn) { layer.confirm(msg, function() { $.AjaxProxy().invoke(url, function(loj) { layer.msg(loj.getValue("info"), { icon: 1, time: 1000 //2秒关闭(如果不配置,默认是3秒) }, function(){ //do something if (callbackfn) { callbackfn(); } }); }); }); }, /** 返回一个随机数 */ random : function() { return Math.floor(Math.random() * (1000000000 + 1)); }, /** 返回一个随机字符串 */ randomStr : function() { return 'pp' + Math.floor(Math.random() * (1000000000 + 1)); }, /** 页面定向 */ redirect : function(url) { window.location.href = url; }, /** 页面定向 无视iframe */ toPredirect : function(url) { window.top.location.href = url; }, /** 图片在上传的时候,需要在页面嵌套一个jspifram页面 页面处理完图片后服务器返回脚本代码控制父窗口显示图片。 */ upolad : function(img_id, file_id) { if ($("#" + file_id).val() == '') { layer.alert("请先选择要上传的文件!"); return; } $("#" + img_id).attr("src", basePath + "/resource/images/loadingbig.gif"); $("#" + img_id).show(); }, /** 在页面删除一个节点 */ delThis : function(id) { $('#' + id).remove(); }, /** 在页面删除一个节点,带上滑效果 */ delThisSlide : function(id) { $('#' + id).slideUp("fast", function() { $('#' + id).remove(); }); }, changeValidateCode : function(id) { $("#" + id).attr("src", basePath + "/common/validateImg?rand=" + this.random()) }, login : function(dataform) { $.post(basePath + "/common/dologin", $(".dataForm").serialize(), function(data) { // 全局异常显示 if (data.status == 'ok') { MTools.redirect(basePath + "/" + data.page); } else { layer.msg(data.info, { icon : 5, time : 50000 }); MTools.changeValidateCode('code'); } }); }, chooesFile : function() { $("#fileText").trigger("click"); }, upFile : function() { $("#submitBtn").trigger("click"); }, selectFile : function(node) { var filePath = $("#fileText").val() var fileName = filePath.substring(filePath.lastIndexOf("\\") + 1, filePath.length); $(node).val(fileName); }, /** * 根据autoFull的css类自动填充select框里面的option * selecteder :选择器名 * value: 默认值为id * file: 默认值name * url: 请求路径 * param:{type : ''} 对象 为查询条件属性 * defaultValue: 默认值 * by luoyuanhong 2016-7-13 */ autoFullSelect:function(_initParam){ console.log("---"); var initParam={ value:"id",//value默认值 filed:"name",//filed默认值 selecteder:".autoFull" } if(_initParam){ initParam=$.extend(initParam,_initParam) } $(initParam.selecteder).each(function(){ var _this=$(this); var def= _this.data("def")== null||_this.data("def")=="" ? initParam.def : _this.data("def"); var param = _this.data("param") == null ? initParam.param:eval( "(" + _this.data("param") +")" ); var value = _this.data("value") == null ? initParam.value : _this.data("value"); var filed = _this.data("filed")== null ? initParam.filed : _this.data("filed"); var url = _this.data("url"); //增加一个排除不显示的 值得,参数是数组如 jsp的input属性data-hidden=1,2 eval( "var hidden = [" + _this.data("hidden") +"]" ); //取服务器请求数据 $.AjaxProxy({ p: param }).invoke(url,function(loj){ var html =''; a:for(var i=0;i'+ loj.getString(i,filed)+""; } else{ html += '"; } } _this.append(html); }); }); }, /** * 初始化时间控件方法 * @param _initParam: */ ininDatetimepicker:function(_initParam){ var initParam = { format : "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss" minView: "month", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour" minuteStep: 5, //此数值被当做步进值用于构建小时视图。对于每个 minuteStep 都会生成一组预设时间(分钟)用于选择 autoclose: true, //true,选择完是否自动关闭,如果不关闭,改为:false weekStart : 1, //一周从哪一天开始。0(星期日)到6(星期六) timeSelecter: ".datetimepicker", //时间选择器的类名 state : "none", //none,不做限制,beforeToday:只能选择当前日期之前,aferToday:只能选择当前日期之后 } if(_initParam!=null){ //把传过来的参数覆盖默认参数 initParam = $.extend(initParam, _initParam); } if(initParam.state=="beforeToday"){ //日期只能选择当前日,及当前日之前的日期 $(initParam.timeSelecter).datetimepicker({ format : initParam.format, minView: initParam.minView, autoclose: initParam.autoclose, minuteStep: initParam.minuteStep, weekStart : initParam.weekStart, endDate : new Date(), }); }else if(initParam.state=="aferToday"){ //日期只能选择当前日,及当前日之后的日期 $(initParam.timeSelecter).datetimepicker({ format : initParam.format, minView: initParam.minView, autoclose: initParam.autoclose, minuteStep: initParam.minuteStep, weekStart : initParam.weekStart, startDate : new Date(), }); }else{ //可以选择任意日期 $(initParam.timeSelecter).datetimepicker({ format : initParam.format, minView: initParam.minView, autoclose: initParam.autoclose, minuteStep: initParam.minuteStep, weekStart : initParam.weekStart, }); } }, /** * 结束时间不能小于开始时间 * beginTimeId:开始时间控件的id,注意要传# * endTimeId:结束时间控件的id,注意要传# */ limitStartEndTime:function(_initParam){ var initParam = { beginTimeId : "#beginTime", endTimeId : "#endTime" } if(_initParam!=null){ initParam = $.extend(initParam, _initParam); } //限制结束时间不能大于开始时间 $(initParam.beginTimeId).datetimepicker().on('changeDate', function(e){ var currentTime = e.date; $(initParam.endTimeId).datetimepicker('setStartDate', currentTime); //这里做级联 var beginTime = $(initParam.beginTimeId).val(); var endTime = $(initParam.endTimeId).val(); if(beginTime!= "" && endTime!= ""){ $(initParam.endTimeId).val(beginTime); } }); }, /*关闭弹出的窗口*/ closeForm:function(){ var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.layer.close(index); } }