var loginUrl = "/admin/login.html"; /** * 获取当前运行程序的根 * @returns */ function getContextPath(){ var pathName = document.location.pathname; var index = pathName.substr(1).indexOf("/"); var result = pathName.substr(0,index+1); return result; } var urlPath = getContextPath(); var protocolStr = document.location.protocol; protocolStr = protocolStr + '//'; function getPath() { return protocolStr + window.location.host + getContextPath() + "/"; } /** * 普通弹框 * strMsg:弹出消息内容 * title:对话框标题 * options:{name:对话框ID, * moveable:可移动的false(默认),不启用; true,启用;} * */ $.Alert = function(strMsg, title, options){ layui.use('layer', function(){ var layer = layui.layer; layer.alert(strMsg, {icon: 6}); }); }; $.SuccAlert = function(strMsg, title, options){ layui.use('layer', function(){ var layer = layui.layer; strMsg=strMsg.replace(/\r\n/g,"
") strMsg=strMsg.replace(/\n/g,"
"); layer.alert(strMsg, {icon: 1}); }); }; $.ErrorAlert = function(strMsg, title, options){ layui.use('layer', function(){ var layer = layui.layer; strMsg=strMsg.replace(/\r\n/g,"
") strMsg=strMsg.replace(/\n/g,"
"); layer.alert(strMsg, {icon: 2}); }); }; /** * $.request * 描述:发送ajax请求,发送请求时默认添加参数MINView=JSON,请求的参数是json格式 * 参数: * options[map]:需要发送的请求的url地址 * data[map]:需要发送的请求的参数,支持数组参数 * success[function]:操作成功后(MINStatus=0)执行的方法 * data[map]:从服务器端返回的结果的json对象 * error[function]:操作失败后(MINStatus=1)执行的方法 * data[map]:从服务器端返回的结果的json对象 * loading[boolean]:通讯过程中是否显示loading条,默认true */ $.request = function(options) { var action = options.action; var data = options.data; var success = options.success; var error = options.error; var fatal = options.fatal; var loading = options.loading != false; var async = options.async; var method = options.method==null?"POST":options.method; var lang = options.lang == false ? false : true; if (data == null) data = {}; if (data.MINView == null){ data.MINView = "JSON"; } var loadingId; if(loading) { layui.use('layer', function(){ var layer = layui.layer; loadingId = layer.msg('处理中...', {icon: 16,shade: [0.5, '#f5f5f5'],scrollbar: false,offset: 'auto', time:100000}) ; }); } action = action.replace("../", ""); action = action.replace("../", ""); action = action.replace("../", ""); action = protocolStr + window.location.host + getContextPath() + "/" + action; $.ajax({ url : action, data : data, async : async, type:method, success : function(responseTxt, statusTxt, xhr) { layui.use('layer', function(){ var layer = layui.layer; layer.close(loadingId); }); if (statusTxt == "success") { var obj = $.parseJSON(responseTxt); if (obj.MINStatus == "0") {//正常返回 if (success != null){ success(obj); } } else if (obj.MINStatus == "1") {//正常返回,但是提示错误 if (error != null) { error(obj); } else { $.Alert(obj.MINErrorMessage); } } else if (obj.MINStatus == "2") {//登录超时 $.Alert("登录超时,3秒后跳到登录页面", "登录超时"); setTimeout('top.location.href = "' + protocolStr + window.location.host +getContextPath() + loginUrl +'"', 3000); } }else if(statusTxt == "error"){ $.Alert(xhr.status + ":" + xhr.statusText); } }, error: function (xhr, textStatus, errorThrown) { layui.use('layer', function(){ var layer = layui.layer; layer.close(loadingId); }); $.ErrorAlert("请求后台失败"); } }); }; /** * 主页跳转 */ $.turnPage = function(pageUrl){ $.get(pageUrl, function(responseTxt, statusTxt, xhr) { $("#mainContex").html(responseTxt); }); }; function isEmpty(str) { if(str == 'undefined' || str == "" || str == null || str == "null") { return true; } return false; } //$.fmtMoney //描述:格式化金额字符串 //参数: // cash[string]:金额字符串 //返回:格式化后的金额字符串[string] //示例: // 代码: // var amount = $.fmtMoney("12.3"); // 结果:amount="12.30"; var MINNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); var MINDigits = new Array("", "拾", "佰", "仟"); var MINUnits = new Array("", "万", "亿", "万亿", "仟兆"); $.fmtMoney = function(cash) { var temp = cash.toString(); if (temp.length == 0) { return "0.00"; } var dotPos = temp.indexOf("."); if (dotPos < 0) { return temp + '.00'; } if (dotPos == 0) { temp = '0' + temp; dotPos = temp.indexOf("."); } if (dotPos == temp.length - 2) { return temp + '0'; } if (dotPos == temp.length - 1) { return temp + '00'; } return temp; }; $.testAmt = function(cash){ var regex = /^([1-9][\d]{0,14}|0)(\.[\d]{1,2})?$/; return regex.test(cash); }; //为金额添加,分割符和.分割符 $.toCashWithCommaAndDot = function(cash){ if($.testAmt(cash)){ var temp = $.toCashWithComma( cash ); return $.fmtMoney(temp); }else return cash; }; //为金额添加,分割符 $.toCashWithComma = function( cash ) { while( cash.charAt(0) == '0' ) { cash = cash.substr(1); } if( cash.indexOf('.')<0 ){ return $.addComma(cash); } var dotIndex = cash.indexOf('.'); var integerCash = cash.substring( 0, dotIndex ); var decimalCash = cash.substring( dotIndex,dotIndex+3 ); return $.addComma(integerCash)+decimalCash; }; //添加逗号分隔符 $.addComma = function(str) { if (str.length > 3) { var mod = str.length % 3; var output = (mod > 0 ? (str.substring(0,mod)) : ''); for (i=0 ; i < Math.floor(str.length / 3); i++) { if ((mod == 0) && (i == 0)) output += str.substring(mod+ 3 * i, mod + 3 * i + 3); else output += ',' + str.substring(mod + 3 * i, mod + 3 * i + 3); } return (output); } else return str; }; //移除格式 $.removeComma = function(str) { return str.replace(new RegExp('\,', [ "g" ]), ''); }; //移除格式,如果为整数,不要.00 $.removeCommaNoZero = function(str) { var cash= str.replace(new RegExp('\,', [ "g" ]), ''); var decimalCash = cash.substring( cash.indexOf('.')+1 ); if(parseInt(decimalCash)==0){ return parseInt(cash); } return cash; }; //$.toChineseCash //描述:格式化大写金额字符串 //参数: // cash[string]:金额字符串 //返回:格式化后的大写金额字符串[string] //示例: // 代码: // var amount = $.toChineseCash("12.3"); // 结果:amount="拾贰圆叁角"; $.toChineseCash = function(cash) { if(!$.testAmt($.removeComma(cash))) return ""; if (cash == null || cash.length == 0) { return ''; } if (cash.indexOf(".")<0){ cash = cash+".00"; } if (cash.indexOf(".")==0){ cash = "0"+cash; if(cash.length==1){ cash = cash+"00"; } } var noCommaCash = $.removeComma(cash); if (parseFloat(cash) == 0) { return ''; } var convertIntegerToChineseCash = function(cash1) { if (cash1 == "0") return ""; var s = ""; // 返回值 var p = 0; // 字符位置指针 var m = cash1.length % 4; // 取模 // 四位一组得到组数 var k = (m > 0 ? Math.floor(cash1.length / 4) + 1 : Math.floor(cash1.length / 4)); // 外层循环在所有组中循环 // 从左到右 高位到低位 四位一组 逐组处理 // 每组最后加上一个单位: "[万亿]","[亿]","[万]" for ( var i = k; i > 0; i--) { var L = 4; if (i == k && m != 0) { L = m; } // 得到一组四位数 最高位组有可能不足四位 var s1 = cash1.substring(p, p + L); var l = s1.length; // 内层循环在该组中的每一位数上循环 从左到右 高位到低位 for ( var j = 0; j < l; j++) { var n = parseInt(s1.substring(j, j + 1)); if (n == 0) { if ((j < l - 1) && (parseInt(s1.substring(j + 1, j + 1 + 1)) > 0) // 后一位(右低) && s.substring(s.length - 1, s.length) != MINNums[n]) { s += MINNums[n]; } } else { s += MINNums[n]; s += MINDigits[l - j - 1]; } } p += L; // 每组最后加上一个单位: [万],[亿] 等 if (i < k)// 不是最高位的一组 { if (parseInt(s1) != 0) { // 如果所有 4 位不全是 0 则加上单位 [万],[亿] 等 s += MINUnits[i - 1]; } } else { // 处理最高位的一组,最后必须加上单位 s += MINUnits[i - 1]; } } // alert(s); return s + "圆"; }; var convertDecimalToChineseCash = function(cash2) { var returnCash = ""; if (cash2 == "00"||cash2 == "0") returnCash = "整"; else { for ( var i = 0; i < cash2.length; i++) { if (i >= 2) break;// 截取两位小数 var intValue = parseInt(cash2.charAt(i)); switch (i) { case 0: if (intValue != 0) returnCash += MINNums[intValue] + "角"; break; case 1: if (intValue != 0) returnCash += MINNums[intValue] + "分"; break; default: break; } } } return returnCash; }; if (!isFloat(noCommaCash)) { return convertIntegerToChineseCash(noCommaCash); } var dotIndex = noCommaCash.indexOf('.'); var integerCash = noCommaCash.substring(0, dotIndex); var decimalCash = noCommaCash.substring(dotIndex + 1); integerCash = convertIntegerToChineseCash(integerCash); // 1001.01 一千零一元零一分 if (integerCash != "" && decimalCash.substring(0, 1) == "0" && (decimalCash.substring(1) != "0" && decimalCash.substring(1) != "")) { integerCash = integerCash + "零"; } return integerCash + convertDecimalToChineseCash(decimalCash); } function isFloat(s2) { var isFloat1 = RegExp(/^([0-9]+(\.+))[0-9]+$/); return (isFloat1.test(s2)); } /** * 设定临时值 * @param key * @param val */ function setTempVal(key, val) { $.zui.store.pageSet(key, val); } /** * 获取临时值 * @param key * @param val */ function getTempVal(key) { $.zui.store.pageGet(key); } /** * 获取get的参数 * @param name * @returns */ function getQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } /** * 存储当前行数据 * @param rowData */ function setNowRowData(rowData) { layui.sessionData("ROW_DATA", {key:"NOW_ROW", value:rowData}); } /** * 存储当前行数据 * @param rowData 列数据 * @param params:{} * fields:[{field: 'id', title: 'ID'}, * {field: 'name', title: '用户名'}, * {field: 'headImg', title: '头像', img:true}, * {field: 'remark', title: '备注', maxlength:40}]] * columnNumber:2 // 明细页面显示的列数 */ function setNowRowData(rowData, params) { rowData.params = params; layui.sessionData("ROW_DATA", {key:"NOW_ROW", value:rowData}); } /** * 获取当前行数据 * @returns */ function getNowRowData() { return layui.sessionData("ROW_DATA").NOW_ROW; } //产生随机数函数 function rndNum(n){ var rnd=""; for(var i=0;i'; for(var k in selectVal){ //通过定义一个局部变量k遍历获取到了map中所有的key值 var itemVal = selectVal[k]; //获取到了key所对应的value的值! html = html + ''; } html = html + ''; $("#" + id).html(html); } /** * 生成基本样式下拉列表 第二种 * @param id div的ID * @param paramKey 应用参数名(例:IM_BRANCH_STATE) * @param selectName 下拉列表的id或者name * @param selectOption 默认选择的选项 * @param isSearchSelect 是否是可以搜搜的选择框 */ function initSelectb(id, paramKey, selectName, selectOption, isSearchSelect) { var selectVal = getAppParam(paramKey); if(isEmpty(selectVal)) { return false; } var html = ''; $("#" + id).html(html); } /** * 生成复选框 * @param id div的ID * @param paramKey 应用参数名(例:IM_BRANCH_STATE) * @param selectName 下拉列表的id或者name * @param selectOption 默认选择的选项 */ function initCheckBox(id, paramKey, selectName, selectOption) { var selectVal = getAppParam(paramKey); if(isEmpty(selectVal)) { return false; } var html = ""; for(var k in selectVal){ //通过定义一个局部变量k遍历获取到了map中所有的key值 var itemVal = selectVal[k]; //获取到了key所对应的value的值! html = html + ''; } $("#" + id).html(html); } /** * 生成单选框 * @param id div的ID * @param paramKey 应用参数名(例:IM_BRANCH_STATE) * @param selectName 下拉列表的id或者name * @param selectOption 默认选择的选项值 */ function initRadio(id, paramKey, selectName, selectOption) { var selectVal = getAppParam(paramKey); if(isEmpty(selectVal)) { return false; } var html = ""; for(var k in selectVal){ //通过定义一个局部变量k遍历获取到了map中所有的key值 var itemVal = selectVal[k]; //获取到了key所对应的value的值! html = html + ''; } $("#" + id).html(html); } /** * js转意字符 * @param str * @returns */ function escape2Html(str) { var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'}; return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];}); } /** *详情查看,去掉

等图书符号 */ function escape2Htmlb(str) { var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'}; var stt = str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){ return arrEntities[t]; }); return escape2Html(stt).replace(/<.*?>/ig,""); } /** *根据表id监听switch */ function switchMonitor(data,tableTest,id,is){ var change = data.elem.checked; alert(this.id); //获取表格数据 var oldData = table.cache["tableTest"]; for (var i = 0; i < oldData.length; i++) { if(oldData[i].trid == this.id ){ if(change){ oldData[i].isdecision = 1; }else{ oldData[i].isdecision = 0; } } } table.cache["tableTest"] = oldData; } /**每次登陆清理之前的残留缓存*/ function clearLove(){ setTempVal("TEMP_APP_PARAM_IS_SET",""); setTempVal("TEMP_APP_ROLEBSN_IS_SET","") } //组装下载 function exportExcel(action,param){ var params = ""; layui.each(param, function(index, item){ params += "&" +index+ "=" +item; }) window.open(action+params); }