/** * EasyUI 工具类 * * @date 2015年5月9日 下午2:27:47 */ var EasyUiUtil = { /** * 通用消息提示 */ message : { "SUCCESS" : "操作成功", "ERROR" : "操作失败" }, /** * 开启loading状态 * */ showLoading : function(msg){ $("<div class=\"datagrid-mask\"></div>").css({ display : "block", width : "100%", zIndex:99999, height : $(window).height() }).appendTo("body"); $("<div class=\"datagrid-mask-msg\"></div>").html(msg).appendTo( "body").css({ display : "block", zIndex:99999, left : ($(document.body).outerWidth(true) - 190) / 2, top : ($(window).height() - 45) / 2 }); }, //文本溢出省略号 formatContent: function(val, row) { if(!isEmpty(val)){ if(val.length > 10){ var vs = val.substring(0, 10); return '<a href="javascript:void(0);" title="'+val+'" class="easyui-tooltip">'+vs+'</a>'+'...'; }else{ return '<a href="javascript:void(0);" title="'+val+'" class="easyui-tooltip">'+val+'</a>'; } }else{ return "/"; } }, /** * 关闭loading状态 */ closeLoading : function(){ $(".datagrid-mask").remove(); $(".datagrid-mask-msg").remove(); }, /** * 关闭模态窗口 * * @param {String} * win 模态窗口ID * @param {String} * options 模态窗口属性 */ showWindow : function(win, options) { $("#" + win).window(options); }, /** * 关闭模态窗口 * * @param {String} * win 模态窗口ID */ closeWindow : function(win) { $("#" + win).window('close'); }, /** * form表单属性转JSON格式 * * @param {String} * formId 当前表单的ID值 * @return {String} */ form2Json : function(formId) { var arr = $('#' + formId).serializeArray(); var jsonStr = ""; jsonStr += '{'; for (var i = 0; i < arr.length; i++) { var jName =arr[i].name.replace(/\"/g,"'").replace(/\\/g,"\\\\"); var jValue = arr[i].value.replace(/\"/g,"'").replace(/\\/g,"\\\\"); jsonStr += '"' + jName.replace(/[\r\n]/g, "") + '":"' + jValue.replace(/[\r\n]/g, "") + '",'; } jsonStr = jsonStr.substring(0, (jsonStr.length - 1)); jsonStr += '}'; var json = JSON.parse(jsonStr); return json; }, /** * 字符串转JSON格式 * * @param {String} * str 字符串 * @return {String} */ str2Json : function(str) { return JSON.parse(str); }, /** * Json转字符串 * * @param {String} * jsonStr json字符串 * @return {String} */ json2Str : function(jsonStr) { return JSON.stringify(jsonStr); }, /** * EasyUi通用提示 * * @param {String} msgType 类型 * @return {String} */ alert : function(msgType) { if (msgType.toLowerCase() == 'success') { $.messager.alert('提示', EasyUiUtil.message.SUCCESS,'info'); } else if (msgType.toLowerCase() == 'error') { $.messager.alert('提示', EasyUiUtil.message.ERROR, 'error'); } }, /** * add by wesley.wei * 去除数组重复数据 * @param data 数组 * @returns */ uniqueArray:function(data) { data = data || []; var a = {}; for (var i = 0; i < data.length; i++) { var v = data[i]; if (typeof (a[v]) == 'undefined') { a[v] = 1; } } data.length = 0; for ( var i in a) { data[data.length] = i; } return data; }, /** * 返回yyyy-MM-dd HH:mm格式 * */ dateTimeFormatter: function (value, rec, index) { if(value != undefined && value != 'undefined'){ var t = value.lastIndexOf(":"); return value.substr(0,t); } return value; }, /** * 返回yyyy-MM-dd格式 * */ dateFormatter: function (value, rec, index) { if(value != undefined && value != 'undefined'){ var t = value.split(' '); return t[0]; } return value; }, //格式化金钱 formatPrice : function(value, row){ if(value != undefined && value != 'undefined' && value != 0){ return accounting.formatNumber(value,2); }else{ return "/"; } }, //动态Tab addTab : function(element,title,url){ if ($('#'+element+'').tabs('exists', title)){ $('#'+element+'').tabs('select', title); } else { $('#'+element+'').tabs('add',{ title:title, href:url, closable:true }); } }, /** * 判断form内属性值是否被修改 * * @param jsonForm 对应修改的form序列化后的json数据 * @param row 对应datagrid选中的数据源 * * @Return true 存在修改项 * false 不存在修改项 */ isModified:function(jsonForm,row){ for(key in jsonForm){ //form中存在,但数据源datagrid中不存在 if(row[key] == undefined){ continue; } //form中""或null,但数据源datagrid中为null或""时,不进行比较 if(!((jsonForm[key] == null || jsonForm[key] == '') && (row[key] == null || row[key] == ''))){ //如果值不同,则返回true if(jsonForm[key] != row[key]) return true; } } return false; }, /** * 获取form被修改信息 * * @param jsonForm 对应修改的form序列化后的json数据 * @param row 对应datagrid选中的数据源 * @param columnJSModel 为表单form中name属性中英对照js,需在update.jsp中引用此js文件 * * @Return json 数据如:[{"updateColumn":"loanRatio","updateColName":"贷款额比例","updateContent":"由11变更为100.00"}, * {"updateColumn":"loanQuotaTypeName","updateColName":"贷款额比例形式","updateContent":"由油卡变更为实物"}] * */ getModifiedField:function(jsonForm,row,columnJSModel){ var modifiedArry = []; var jsonArrStr = ''; for(key in jsonForm){ //form中存在,但数据源datagrid中不存在 if(row[key] == undefined){ continue; } //form中""或null,但数据源datagrid中为null或""时,不进行比较 if(!((jsonForm[key] == null || jsonForm[key] == '') && (row[key] == null || row[key] == ''))){ //如果值不同,则返回true if(jsonForm[key] != row[key]){ var jsonObj = {}; jsonObj.updateColumn = key; jsonObj.updateColName = columnJSModel[key]; jsonObj.updateContent = '由'+ row[key] + '变更为' + jsonForm[key]; modifiedArry[modifiedArry.length] = jsonObj; } } } jsonArrStr = JSON.stringify(modifiedArry); //console.log(jsonArrStr); return jsonArrStr; } }; $.extend($.fn.validatebox.defaults.rules, { /*必须和某个字段相等*/ equalTo: { validator:function(value,param){ return $(param[0]).val() == value; }, message:'字段不匹配' } });