| /** | 
|  * 常用工具和方法 本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}, function () { | 
|                     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; | 
|     }, | 
|   | 
|     /** 在页面删除一个节点 */ | 
|     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()) | 
|     }, | 
|   | 
|     getTime:function() { | 
|         var date = new Date(); | 
|         return date.getFullYear() + "-" + setFomartZero((date.getMonth() + 1)) | 
|             + "-" + setFomartZero(date.getDate()) + " " + setFomartZero(date.getHours()) | 
|             + ":" + setFomartZero(date.getMinutes()); | 
|   | 
|     }, | 
|     chooesFile : function(fileText) { | 
|         $(fileText).trigger("click"); | 
|     }, | 
|     upFile : function(submitBtn) { | 
|         $(submitBtn).trigger("click"); | 
|     }, | 
|     selectFile : function(node,fileTextId,submitNode) { | 
|         var filePath = $(fileTextId).val() | 
|         var fileName = filePath.substring(filePath.lastIndexOf("\\") + 1, | 
|             filePath.length); | 
|         $(node).val(fileName); | 
|         $(submitNode).trigger("click"); | 
|     }, | 
|   | 
|     /** | 
|      * 根据autoFull的css类自动填充select框里面的option selecteder :选择器名 value: 默认值为id file: | 
|      * 默认值name url: 请求路径 param:{type : ''} 对象 为查询条件属性 defaultValue: 默认值 by | 
|      * luoyuanhong 2016-7-13 | 
|      */ | 
|     autoFullSelect: function (_initParam) { | 
|   | 
|         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"); | 
|                     console.log("autoFull"); | 
|                     var 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, | 
|                             c: true | 
|                         }) | 
|                         .invoke( | 
|                             url, | 
|                             function (loj) { | 
|                                 var html = ''; | 
|                                 /* html += '<option value="' | 
|                                       + "" | 
|                                       + '">' | 
|                                       + "全部" | 
|                                       + "</option>";*/ | 
|                                 a: for (var i = 0; i < loj | 
|                                     .getRowCount(); i++) { | 
|                                     b: for (var j = 0; j < hidden.length; j++) { | 
|                                         if (hidden[j] | 
|                                             && hidden[j] == loj | 
|                                                 .getString( | 
|                                                     i, | 
|                                                     value)) { | 
|                                             html += ""; | 
|                                             continue a; | 
|                                         } | 
|                                     } | 
|   | 
|                                     if (def) { | 
|                                         def = def + ""; | 
|                                         var values = def.split(","); | 
|                                         var isSelect = false; | 
|                                         for (var k = 0; k < values.length; k++) { | 
|                                             if ((values[k] + "") == loj.getString(i, value)) { | 
|                                                 html += '<option selected="selected" value="' | 
|                                                     + loj | 
|                                                         .getString( | 
|                                                             i, | 
|                                                             value) | 
|                                                     + '">' | 
|                                                     + loj | 
|                                                         .getString( | 
|                                                             i, | 
|                                                             filed) | 
|                                                     + "</option>"; | 
|                                                 isSelect = true; | 
|                                             } | 
|                                         } | 
|   | 
|                                         if (!isSelect) { | 
|                                             html += '<option value="' | 
|                                                 + loj | 
|                                                     .getString( | 
|                                                         i, | 
|                                                         value) | 
|                                                 + '">' | 
|                                                 + loj | 
|                                                     .getString( | 
|                                                         i, | 
|                                                         filed) | 
|                                                 + "</option>"; | 
|                                         } | 
|   | 
|                                     } else { | 
|                                         html += '<option value="' | 
|                                             + loj | 
|                                                 .getString( | 
|                                                     i, | 
|                                                     value) | 
|                                             + '">' | 
|                                             + loj | 
|                                                 .getString( | 
|                                                     i, | 
|                                                     filed) | 
|                                             + "</option>"; | 
|                                     } | 
|   | 
|                                 } | 
|                                 _this.append(html); | 
|                                 if(initParam && initParam.callback){ | 
|                                     initParam.callback(); | 
|                                 } | 
|                             }); | 
|                 }); | 
|     }, | 
|     /** | 
|      * 初始化时间控件方法 | 
|      * @param _initParam: | 
|      */ | 
|     ininDatetimepicker: function (_initParam) { | 
|         var initParam = { | 
|             format: "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss" | 
|             maxView: 4, //日期时间选择器最高能展示的选择范围视图。 | 
|             minView: "month",     //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour" | 
|             autoclose: true,    //true,选择完是否自动关闭,如果不关闭,改为:false | 
|             minuteStep: 5,    //此数值被当做步进值用于构建小时视图。对于每个 minuteStep 都会生成一组预设时间(分钟)用于选择 | 
|             weekStart: 1, //一周从哪一天开始。0(星期日)到6(星期六) | 
|             timeSelecter: ".datetimepicker",  //时间选择器的类名 | 
|             state: "none", //none,不做限制,beforeToday:只能选择当前日期之前,aferToday:只能选择当前日期之后 | 
|             listenBlur: false //由于validform当输入日期后还提示输入,因此 时间按控件当日期更改后,触发该类元素的blur事件,validfrom会验证 | 
|         } | 
|   | 
|         if (_initParam != null) { | 
|             //把传过来的参数覆盖默认参数 | 
|             initParam = $.extend(initParam, _initParam); | 
|         } | 
|         if (initParam.state == "beforeToday") { | 
|             initParam = $.extend(initParam, {endDate: new Date()}); | 
|             //日期只能选择当前日,及当前日之前的日期 | 
|   | 
|         } else if (initParam.state == "aferToday") { | 
|             //日期只能选择当前日,及当前日之后的日期 | 
|             initParam = $.extend(initParam, {startDate: new Date()}); | 
|         } | 
|         //可以选择任意日期 | 
|         var dataObj = $(initParam.timeSelecter).datetimepicker(initParam); | 
|   | 
|         if (initParam.listenBlur) { | 
|             dataObj.on('changeDate', function (e) { | 
|                 $(initParam.timeSelecter).trigger("blur"); | 
|             }); | 
|         } | 
|     }, | 
|     /** | 
|      * 结束时间不能小于开始时间 | 
|      * beginTimeId:开始时间控件的id,注意要传# | 
|      * endTimeId:结束时间控件的id,注意要传# | 
|      */ | 
|     limitStartEndTime: function (_initParam) { | 
|         var initParam = { | 
|             beginTimeId: "#beginTime", | 
|             endTimeId: "#endTime" | 
|         } | 
|         if (_initParam != null) { | 
|             initParam = $.extend(initParam, _initParam); | 
|         } | 
|         $(initParam.endTimeId).datetimepicker('setStartDate', $(initParam.beginTimeId).val()); | 
|         $(initParam.beginTimeId).datetimepicker('setEndDate', $(initParam.endTimeId).val()); | 
|   | 
|         //限制结束时间不能大于开始时间 | 
|         $(initParam.beginTimeId).datetimepicker().on('changeDate', function (e) { | 
|             var currentTime = e.date; | 
|             $(initParam.endTimeId).datetimepicker('setStartDate', currentTime); | 
|         }); | 
|         $(initParam.endTimeId).datetimepicker().on('changeDate', function (e) { | 
|             var currentTime = e.date; | 
|             $(initParam.beginTimeId).datetimepicker('setEndDate', currentTime); | 
|         }); | 
|     }, | 
|   | 
|     /* 关闭弹出的窗口 */ | 
|     closeForm: function () { | 
|         var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 | 
|         parent.layer.close(index); | 
|     }, | 
|   | 
|     padLeftZero: function (str) { | 
|         return ('00' + str).substr(str.length) | 
|     }, | 
|   | 
|   | 
|     formatDate: function (date, fmt) { | 
|         var date=new Date(date); | 
|         if (/(y+)/.test(fmt)) { | 
|             fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) | 
|         } | 
|         let o = { | 
|             'M+': date.getMonth() + 1, | 
|             'd+': date.getDate(), | 
|             'h+': date.getHours(), | 
|             'm+': date.getMinutes(), | 
|             's+': date.getSeconds() | 
|         } | 
|         for (let k in o) { | 
|             if (new RegExp(`(${k})`).test(fmt)) { | 
|                 let str = o[k] + '' | 
|                 fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : this.padLeftZero(str)) | 
|             } | 
|         } | 
|         return fmt | 
|     }, | 
|   | 
|   | 
|   | 
| } |