/* 公共js库,包含各种公共方法和公共库 */ define(['jquery', 'artTemplate', 'layer', 'accounting', 'moment', 'store', 'lodash', 'serializejson' ],function($,template,layer,accounting,moment,store,_,serializeJSON){ var util = { debug: true, online: 2, loginUrl:'' }; //全局ajax设置 $.ajaxSetup({ type:'POST', async:true, cache:false, dataType:'json', timeout:100000, beforeSend:function(){ util.loading(); }, statusCode:{ 404:function(){ }, 401:function(){ }, 200:function () { util.removeLoading(); } }, fail:function(jqXHR, textStatus, errorThrown){ util.removeLoading(); if('timeout' === textStatus){ alert('网络连接超时'); }else if('abort' === textStatus){ }else{ alert('网络异常'); } } }); util.url = function (serverId,type) { var route = '', port = ''; switch(util.online){ case 1: //正式环境 break; case 2: //测试环境 http://47.94.117.25/ port = 'http://47.94.59.225:8082'; break; case 3: //开发环境 port = 'http://47.95.205.132:8080'; break; } route = port + "/rest/service/routing/" + serverId; return route; }; util.picUrl = function (businessType,type) { //供应商id supplier //1.京东 var uri = ''; switch(businessType){ case 1: // n0(最大图)、n1(350*350px)、n2(160*160px)、n3(130*130px)、n4(100*100px) 为图片大小。 uri = 'http://img13.360buyimg.com/'+ type; break; case 3: // n0(最大图)、n1(350*350px)、n2(160*160px)、n3(130*130px)、n4(100*100px) 为图片大小。 uri = 'http://b2bimgcdn.nbdeli.com/'+ type; break; case 5: // n0(最大图)、n1(350*350px)、n2(160*160px)、n3(130*130px)、n4(100*100px) 为图片大小。 uri = 'http://static.grainger.cn/product_images_new/'+ type; break; case 6: // n0(最大图)、n1(350*350px)、n2(160*160px)、n3(130*130px)、n4(100*100px) 为图片大小。 if(config.loginId === 4){ uri = 'http://openapi.zkh360.com/'+ type; }else{ uri = 'http://120.26.11.169/'+ type; } break; case -1: // n0(最大图)、n1(350*350px)、n2(160*160px)、n3(130*130px)、n4(100*100px) 为图片大小。 uri = '?x-oss-process=style/'+ type; break; } return uri; }; util.picUrlAdapter = function(businessType,option){ //businessType 电子超市: 供应商id 1:京东 2:苏宁 3:得力 4:西域 5:固安捷 6:震坤行 电力专区: -1 //option pixel: 当businessType为1、3、5、6或者-1时 像素码 n0、n1、n2 ... 当businessType为4时 大小类型 L(大图)、M(中图)、S(小图) // picUrl: 后端返回的图片地址 var fn = {}; var realUrl = ""; var supplierType = ""; if(businessType == -1){ supplierType = "supplier_allUrl"; }else{ supplierType = "supplier_"+businessType; } fn.supplier_1 = function(){ return fn.getHandleUrl(businessType,"1"); }; fn.supplier_2 = function(){ return fn.getHandleUrl(businessType,"2"); }; fn.supplier_3 = function(){ return fn.getHandleUrl(businessType,"1"); }; fn.supplier_4 = function(){ return fn.getHandleUrl(businessType,"2"); }; fn.supplier_5 = function(){ return fn.getHandleUrl(businessType,"1"); }; fn.supplier_6 = function(){ return fn.getHandleUrl(businessType,"1"); }; fn.supplier_allUrl = function(){ return fn.getHandleUrl(businessType,"3"); }; fn.getHandleUrl = function(businessType,type){ var url = ""; switch(type){ case "1" : url = util.picUrl(businessType,option.pixel)+"/"+option.picUrl; break; case "2" : var urlList = option.picUrl.split(","); if(urlList.length === 1){ url = option.picUrl; }else{ switch(option.pixel){ case "L": url = urlList[0]; break; case "M": url = urlList[1]; break; case "S": url = urlList[2]; break; } } break; case "3" : url = option.picUrl+util.picUrl(businessType,option.pixel); break; } return url; }; realUrl = fn[supplierType]?fn[supplierType]():""; return realUrl; }; //加载laoding util.loading = function () { layer.load(2); }; util.removeLoading = function () { layer.closeAll('loading'); }; //模板过滤器 (function () { //表单序列化 util.serial = function (ele,rule) { var data = $(ele).serializeJSON(); function extra() { var str = JSON.stringify(data); var reg = eval('/('+rule+')/g'); data = JSON.parse(str.replace(reg,'')) } rule && extra(); return data; }; //过滤数据 template.helper('chooseDataFormat',function (data) { if(data){ data = data + ""; if(data.indexOf("*~~") !== -1){ return data.substring(data.indexOf("*~~")+3,data.length); }else{ if(data.length > 40){ data = data.substr(0,40)+"..."; } return data; } } }); //京东图片格式化 template.helper('jdPhoto',function (data) { if(data) { return "http://img13.360buyimg.com/n3/"+data } }); //图片招商格式化 template.helper('photoFormat',function (data) { if(data){ return data }else{ //图片待定 return "http://cms-dev.oss-cn-beijing.aliyuncs.com/jspxcms/uploads/20170911220153_33tq2whwk5.png" } }); //手机号格式 template.helper('telFormat',function (data) { if(data){ return data.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') } }); //金额格式化 template.helper('numberFormat',function (data) { return accounting.formatMoney(data,""); }); template.helper('priceFormat',function (data) { if(data){ return "¥ "+accounting.formatMoney(data,""); }else{ return '登录查看企业专享价'; } }); // 数字格式化 template.helper('dataFormat',function (data) { return accounting.formatMoney(data,"",0); }); //日期格式化 template.helper('dateFormat',function (data) { if(data){ return moment(parseInt(data)).format("YYYY-MM-DD"); } return ''; }); //时间格式化 template.helper('dateTimeFormat',function (data) { if(data){ return moment(parseInt(data)).format("YYYY-MM-DD HH:mm:ss"); }else{ return ''; } }); //我的订单列表状态样式 template.helper('orderStatusCss',function (status) { switch (status){ case 6: return "c_green"; case 7: case 8: return "c_red"; } return "c_gray_2"; }); //文本处理 template.helper('textFormat',function (data) { // var len = data.replace(/\s+/g, "").length; // if(len > 40){ // data = data.substr(0,45)+'...'; // } return data; }); })(); //数据处理方法 util.getData = function(data,successFun,errorFun){ var fn = {}; var str = 'get'+util.getType(data); fn.getObject = function (data) { if(data.respCode === '0000'){ return successFun(data.data); }else{ if(errorFun){ return errorFun(data); }else{ layer.msg(data.respDesc,{time:2000}); } } }; fn.getArray = function (data) { var list = []; $.each(data,function (i,v) { if(v[0].respCode === '0000'){ list.push(v[0].data); }else{ //layer.alert(data.message ? data.message : "系统繁忙",{icon:2}); } }); return successFun(list); }; fn[str](data); }; //统一页面跳转方法 util.goPage = function (type,url) { switch (type){ //页面跳转 case 1: window.location.href = url; break; //返回上一个页面 case 2: window.history.go(-1); break; //返回并刷新上一个页面 case 3: window.location.href = document.referrer; } }; //统一日志打印 util.log = function (log) { if(true === util.debug){ console.log(log); } }; //模板渲染方法 //方法一 util.renderTpl = function (sign,dom,data,callback) { var render = template.compile(dom); $(sign).html(render(data)); callback && callback(); }; //方法二 util.renderHtml = function (sign,data,callback) { $.each(sign,function (i,v) { $('.'+v).html(template(v,data)); }); callback && callback(); }; //方法三 /** * 模板渲染 * @param target dom元素类标识 * @param tpl 模板id标识 * @param data 渲染数据 * @param callback 回调函数 */ util.renderTpl2=function(target,tpl,data,callback){ $('.'+target).html(template(tpl,data)); callback&&callback(); } //缓存模板 util.setTemplate = function (sign) { var dom = $('#'+sign).html(); util.setCache(sign+'_template',dom); }; //渲染缓存模板 util.getTemplate = function (sign,data,callback) { var dom = util.getCache(sign+'_template'), render = template.compile(dom); $('.'+sign).html(render(data)); callback && callback(); }; //2个数组合并成1个数组对象 util.arrayMerge = function (arr1,arr2,param1,param2) { var newArray = []; $.each(arr1,function (i,v) { var obj = {}; obj[param1] = v; $.each(arr2,function (j,k) { if(i === j){ obj[param2] = k; } }) newArray.push(obj); }); return newArray; }; //数据校验 util.verifyData = function (data,sign,rule,msg) { var fn = {}; fn.check = function (value,mark,rule) { $.each(rule,function (checkfn,safeData) { fn[checkfn] ? fn[checkfn](value,mark,safeData) : fn.validFun(checkfn,value,mark,safeData); }) }; fn.validFun = function (checkfn,value,mark,data) { $.each(data,function (index,sign) { var reg = new RegExp(sign); if(reg.test(value)){ alert(msg[mark][checkfn]); return false; } }); }; fn.max = function (value,mark,data) { if(value > data){ alert(msg[mark]['max']); return false; } }; fn.min = function (value,mark,data) { if(value < data){ alert(msg[mark]['min']); return false; } }; $.each(data,function (key,value) { $.each(sign,function (i,mark) { if(key === mark){ fn.check(value,mark,rule[mark]); } }) }); }; //参数合并 util.splitData = function (name,datas) { var data = {}; $.each(datas,function (index,param) { $.each(name,function (i,paramName) { if(index === i){ data[paramName] = param; } }); }); return data; }; //数据存储 util.storeSet=function(param,data){ store.set(param,data); }; //数据获取 util.storeGet=function(param){ return store.get(param) }; //数据删除 util.storeRemove=function(param){ store.remove(param) }; //数据全清 util.storeClear=function(){ store.clearAll(); }; //数据合并 // var obj1 = [{ 'b': 2 }, { 'd': 4 }]; // var obj2 = [{ 'c': 3 }, { 'e': 5 }]; util.merge = function (obj1,obj2) { return _.merge(obj1, obj2); }; //所有存储数据列表展示 util.storeList=function(){ store.each(function(value, key) { console.log(key, '==', value) }); }; //获取值的类型 util.getType = function (obj) { var typeStr = Object.prototype.toString.call(obj), typeArr = []; typeStr = typeStr.substring(1, typeStr.length - 1); typeArr = typeStr.split(" "); return typeArr[1]; }; //事件的订阅和发布 (function($) { var o = $({}); $.subscribe = function () { o.on.apply(o, arguments); }; $.publish = function () { o.trigger.apply(o, arguments); }; $.unsubscribe = function () { o.off.apply(o, arguments); }; } (jQuery)); //eg: // function handle(e, a, b, c) { // console.log(a + b + c); // }; // 订阅 // $.subscribe("/some/topic", handle); // 发布 // $.publish("/some/topic", ["a", "b", "c"]); 输出abc // $.unsubscribe("/some/topic", handle); 退订 //闭包缓存 (function(){ var dataList = {}; //添加缓存 util.setCache = function (id, data) { if(typeof data ==="object"){ dataList[id] = $.extend(true,{},data); }else{ dataList[id] = data; } }; // 获得缓存 util.getCache = function (id) { if(dataList[id]){ if(typeof dataList[id] ==="object"){ return $.extend(true,{},dataList[id]); }else{ return dataList[id]; } }else{ return undefined; } }; // 根据id清空缓存 util.clearCache = function (id) { delete dataList[id]; }; // 清空所有的缓存 util.clearAllCache = function () { dataList = {}; } })(); //获得所有url后携带的参数 util.getAllQueryString = function (){ if(!location.search){ return {}; } var searchStr = location.search.substring(1), search = searchStr.split("&"), param = {}; $.each(search,function(index,value){ var Arr = value.split("="); param[Arr[0]] = Arr[1]; }); return param; }; //数据绑定 (function () { var DataBinder = function (objectId) { // 使用jQuery空对象作为监听对象 var pubSub = jQuery({}); // var dataAttr = 'bind-' + objectId; var message = objectId + ':change'; // 监听dom中所有元素的 data-binding 属性变化。并由pubSub来处理。 $(document).on('input change', '[data-' + dataAttr + ']', function (event) { var $ele = $(this); pubSub.trigger(message, [$ele.data(dataAttr), $ele.val()]); }); // pubSub把数据变化推送给所有与之绑定的页面元素 pubSub.on(message, function (event, proName, newValue) { $('[data-' + dataAttr + '=' + proName + ']').each(function () { var $ele = $(this); if($ele.is('input, textarea, select')) { $ele.val(newValue); } else { $ele.html(newValue); } }) }); return pubSub; }; util.bindParam = function (uid) { var binder = DataBinder(uid); var param = { attributes: {}, set: function (attrName, val) { this.attributes[attrName] = val; binder.trigger(uid + ':change', [attrName, val, this]); }, get: function (attrName) { console.log(this); return this.attributes[attrName]; }, _binder: binder } return param; }; })(); //数字转换中文 util.coinFormat = function (dValue) { var maxDec = 2; // 验证输入金额数值或数值字符串: dValue = dValue.toString().replace(/,/g, ""); dValue = dValue.replace(/^0+/, ""); // 金额数值转字符、移除逗号、移除前导零 if (dValue == "") { return '零元整' } // (错误:金额为空!) else if (isNaN(dValue)) { return '错误:金额不是合法的数值!'; } var minus = ''; // 负数的符号“-”的大写:“负”字。可自定义字符,如“(负)”。 var CN_SYMBOL = ''; // 币种名称(如“人民币”,默认空) if (dValue.length > 1) { if (dValue.indexOf('-') == 0) { dValue = dValue.replace('-', ""); minus = "负"; } // 处理负数符号“-” if (dValue.indexOf("+") == 0) { dValue = dValue.replace("+", ""); } // 处理前导正数符号“+”(无实际意义) } // 变量定义: var vInt = ""; var vDec = ""; // 字符串:金额的整数部分、小数部分 var resAIW; // 字符串:要输出的结果 var parts; // 数组(整数部分.小数部分),length=1时则仅为整数。 var digits, radices, bigRadices, decimals; // 数组:数字(0~9——零~玖);基(十进制记数系统中每个数字位的基是10——拾,佰,仟);大基(万,亿,兆,京,垓,杼,穰,沟,涧,正);辅币(元以下,角/分/厘/毫/丝)。 var zeroCount; // 零计数 var i, p, d; // 循环因子;前一位数字;当前位数字。 var quotient, modulus; // 整数部分计算用:商数、模数。 // 金额数值转换为字符,分割整数部分和小数部分:整数、小数分开来搞(小数部分有可能四舍五入后对整数部分有进位)。 var NoneDecLen = (typeof (maxDec) == 'undefined' || maxDec == null || Number(maxDec) < 0 || Number(maxDec) > 5); // 是否未指定有效小数位(true/false) parts = dValue.split('.'); // 数组赋值:(整数部分.小数部分),Array的length=1则仅为整数。 if (parts.length > 1) { vInt = parts[0]; vDec = parts[1]; // 变量赋值:金额的整数部分、小数部分 if (NoneDecLen) { maxDec = vDec.length > 5 ? 5 : vDec.length; } // 未指定有效小数位参数值时,自动取实际小数位长但不超5。 var rDec = Number('0.' + vDec); rDec *= Math.pow(10, maxDec); rDec = Math.round(Math.abs(rDec)); rDec /= Math.pow(10, maxDec); // 小数四舍五入 var aIntDec = rDec.toString().split('.'); if (Number(aIntDec[0]) == 1) { vInt = (Number(vInt) + 1).toString(); } // 小数部分四舍五入后有可能向整数部分的个位进位(值1) if (aIntDec.length > 1) { vDec = aIntDec[1]; } else { vDec = ''; } } else { vInt = dValue; vDec = ''; if (NoneDecLen) { maxDec = 0; } } if (vInt.length > 44) { return '错误:金额值太大了!整数位长【' + vInt.length.toString() + '】超过了上限——44位/千正/10^43(注:1正=1万涧=1亿亿亿亿亿,10^40)!'; } // 准备各字符数组 Prepare the characters corresponding to the digits: digits = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); // 零~玖 radices = new Array('', '拾', '佰', '仟'); // 拾,佰,仟 bigRadices = new Array('', '万', '亿', '兆', '京', '垓', '杼', '穰', '沟', '涧', '正'); // 万,亿,兆,京,垓,杼,穰,沟,涧,正 decimals = new Array('角', '分', '厘', '毫', '丝'); // 角/分/厘/毫/丝 resAIW = ''; // 开始处理 // 处理整数部分(如果有) if (Number(vInt) > 0) { zeroCount = 0; for (i = 0; i < vInt.length; i++) { p = vInt.length - i - 1; d = vInt.substr(i, 1); quotient = p / 4; modulus = p % 4; if (d == '0') { zeroCount++; } else { if (zeroCount > 0) { resAIW += digits[0]; } zeroCount = 0; resAIW += digits[Number(d)] + radices[modulus]; } if (modulus == 0 && zeroCount < 4) { resAIW += bigRadices[quotient]; } } resAIW += '元'; } // 处理小数部分(如果有) for (i = 0; i < vDec.length; i++) { d = vDec.substr(i, 1); if (d != '0') { resAIW += digits[Number(d)] + decimals[i]; } } // 处理结果 if (resAIW == '') { resAIW = '零' + '元'; } // 零元 if (vDec == '') { resAIW += '整'; } // …元整 resAIW = CN_SYMBOL + minus + resAIW; // 人民币/负……元角分/整 return resAIW; }; /** * 获取本地字典表 * @param name 字典名 * @param name 字典值 */ util.getLocalDic=function(name,code){ return this.localDic[name][code]; }; util.getLocalDicOfList=function(name){ var list=[]; $.each(this.localDic[name],function(i,v){ list.push({ id:i, text:v }) }) return list; }; util.getLocalDicOfListAll=function(name){ var list=[]; $.each(this.localDic[name],function(i,v){ list.push({ id:i, text:v }) }) list.unshift({id:"",text:"全部"}); return list; }; //数据字典 configDicEnum = { pCodes: JSON.stringify([ 'ORDER_SOURCE', 'SERVICE_TYPE', 'BUSINESS_TYPE', 'ACCT_STATUS', 'COMPANY_TYPE', 'REC_TYPE', 'INVOICE_TYPE', 'TRADE_TYPE', //行业 'NOTIFICATION_STATUS', 'PAY_TYPE', 'PAY_STATUS', 'PS_PAY_TYPE', 'ORDER_STATUS', 'SERVICE_ORDER_STATUS', 'AGREEMENT_CHANGE_TYPE', 'D_BILL_APPLY_INFO_BILL_STATUS', 'AGREEMENT_STATUS', 'AGREEMENT_CHANGE_STATUS', 'COMMODITY_AGREEMENTTYPE', 'SEARCH_STATUS', 'SUPPLIER_NAME', 'PERFORMANCE_TYPE', 'PERFORMANCE_SOURCE', 'PERFORMANCE_SCOPE', 'CONT_AMOUNT', 'COMMODITY_PURCHASETYPE', 'RETURN_STATUS', 'PROJECT_CLASS', 'COMPLAINT_PURCHASE_TYPE_FZB', 'COMPLAINT_PURCHASE_TYPE_ZB', 'COMPLAINT_PURCHASE_TYPE', 'PROJECT_CLASS', 'PLAN_TYPE',//询比价-计划类型 'PLAN_TYPE_COLLECTION',//询比价-计划类型-集采计划 'PLAN_TYPE_MONTH',//询比价-计划类型-月度 'PLAN_TYPE_YEAR',//询比价-计划类型-年度 'PLAN_TYPE_MAKEUP',//询比价-计划类型-采购补录 'PURCHASE_CATEGORY',//询比价-采购类别 'PLAN_CLASS',//询比价-计划分类 'PROJECT_CATEGORY',//询比价-项目类别 'PURCHASE_METHOD_REASON',//询比价-推荐采购方式理由 'NO_PUBLIC_REASON',//询比价-不公示理由 'BUILD_INSPECTION_METHOD',//询比价-施工/服务类评审方法 'DEILIVERY_DATE_METHOD',//询比价-交货期要求方式-物资 'COMPLETION_PERIOD_METHOD',//询比价-完工期要求方式-施工 'SERVICE_COMPLETE_METHOD',//询比价-服务完成要求方式-服务 'COST_TYPE',//询比价-费用类型 'APPLY_RANGE_TYPE',//询比价-应用范围类型 'ATTACHMENT_BUSI_TYPE',//询比价-附件业务类型 'PLAN_DOC_STATUS',//询比价-单据状态 'PLAN_TYPE_SAVE',//询比价-销售计划 'PLAN_CATEGORY',//询比价-计划类别 'PURCAHSE_METHOD',//询比价-推荐采购方式 'ENQUIRY_METHOD',//询比价-询价方式 'REVIEW_METHOD',//询比价-评审方法 'PLAN_BUSI_STATUS',//询比价-业务状态 'APPRAISE_PURCHASE_TYPE_ZB',//采购类别 招标 'APPRAISE_PURCHASE_TYPE_FZB',//采购类别 非招标 'PERFORMANCE_SOURCE',//不良行为来源 'BADBEHAVIOR_BUSITYPE', //业务类型 'BADBEHAVIOR_TYPE_ZTB',//不良行为 招标 'BADBEHAVIOR_TYPE_XBJ_DLZQ',//不良行为 询比价 'BADBEHAVIOR_DISPOSE_OPINION_TYPE',//处置意见 'BADBEHAVIOR_DISPOSE_TERM_JG',//处置期限 'ADBEHAVIOR_DISPOSE_TERM_ZTZG', 'BADBEHAVIOR_DISPOSE_TERM_QXZG', 'BADBEHAVIOR_DISPOSE_TERM_JZZR', 'BADBEHAVIOR_DISPOSE_TERM_ZTZG', 'BADBEHAVIOR_DISPOSE_TERM',//不良行为处置期限 'BADBEHAVIOR_TYPE',//不良行为类型 'RECOM_PURCHASE_WAY',//快速分配采购方式 'IQR_QUOTE_METHOD',//报价方式 'IQR_ORDER_TYPE',//订单类型 'IQR_REVIEW_METHOD',//评审报告-评审方法, 'INQUIRY_NODE_STATUS',//询价单节点状态 'BUSINESS_CATEGORY_OPERATE',// 'ACCOUNT_PROPERTY',//准入账户属性 ]) }; $.ajax({ data:configDicEnum,url:util.url('SelectDicValBypCodesBusiService') }).done(function (data) { util.getData(data,function (data) { util.storeSet('dicData',data[0]); }); }); util.localDic={ //异议状态0:待处理1:业绩存疑2:业绩无问题 PERFORMANCE_OBJECTION:{ "0":"待处理", "1":"业绩存疑", "2":"业绩无问题", "3":"无" }, //FIXME 审核状态:0:待审核,1:驳回,2:公示中,3:已公示,4:过期 PERFORMANCE_AUDIT:{ "0":"待审核", "1":"驳回", "2":"公示中", "3":"已公示", "4":"过期" }, //业绩信息管理 //FIXME 购类别 物资范围 COMMODITY_PURCHASETYPE:{ "WZ":"物资类", "SG":"施工类", "FW":"服务类", }, //FIXME 业绩来源 PERFORMANCE_SOURCE:{ "PTN":"平台内", "PTW":"平台外", }, //FIXME 业绩类别:PERFORMANCE_TYPE PERFORMANCE_TYPE:{ "HTYJ":"合同业绩", "TYYJ":"投运业绩", }, //FIXME 业绩范围:PERFORMANCE_SCOPE PERFORMANCE_SCOPE:{ "GDJT":"航天集团", "TLYQ":"同类央企", "THQY":"同行企业", "QT":"其他", }, QUALIFICATION_STATUS:{ "0":"待审核", "1":"驳回", "2":"已核实", "3":"未核实", "4":"过期", }, //合同金额:CONT_AMOUNT CONT_AMOUNT:{ "YBW":"100万以下", "YQW":"100~1000万", "WQW":"1000万~5000万", "YY":"5000万~1亿", "YYYS":"1亿以上", }, PERFORMANCE_STATUS:{ "0":"待审核", "1":"驳回", "2":"公示中", "3":"已公示", "4":"过期", }, // 不良行为类型类型 BADBEHAVIOR_TYPE:{ "CBWB":"串标围标", "JJCJ":"拒绝成交", "JJLXHT":"拒绝履行合同", "YJZJ":"业绩造假", "ZZZJ":"资质造假", "QT":"其他", }, // 所有不良行为处置期 BADBEHAVIOR_DISPOSE_TERM:{ "W":"无", "SGY":"3个月", "LGY":"6个月", "SEGY":"12个月", "ESSGY":"24个月", "YN":"1年", "SN":"3年", "WN":"5年", "YJ":"永久", }, // 业务类型 BADBEHAVIOR_BUSITYPE: { "ZTB": "招投标", "XBJ": "询比价", "DLZQ": "电力专区", "QT": "其他", }, // 不良行为审核状态 BADBEHAVIOR_STATUS:{ "0":"待核实", "1":"初审驳回", "2":"待复核", "3":"复审驳回", "4":"已核实", "5":"已撤销", }, // 处置意见 BADBEHAVIOR_DISPOSE_OPINION_TYPE:{ "JG":"警告", "ZTZG":"暂停资格", "QXZG":"取消资格", "JZZR":"禁止准入", }, // 处置状态 BADBEHAVIOR_STATUS_LS:{ "0":"待处置", "1":"处置中", "2":"待解禁", "3":"已解禁", }, // 评级评价 采购类别 招标 APPRAISE_PURCHASE_TYPE_ZB:{ "0":"招投标-物资类", "1":"招投标-施工类", "2":"招投标-监理类", "3":"招投标-勘察设计类", "4":"招投标-其他服务", }, APPRAISE_PURCHASE_TYPE_FZB:{ "0":"询比价-物资类", "1":"询比价-施工类", "2":"询比价-服务类", "3":"自营专区", "4":"生活保障" }, // 评级级别 RATINGLEVEL:{ "0":"普通", "1":"良好", "2":"优秀", }, ACCOUNT_PROPERTY:{ "DGFK":"对公付款", "DSFK":"对私付款", }, }; //数据适配方法 util.dataAdapter = function (data,arr1,arr2,flag) { var dll = {}; $.each(arr1,function (i,v1) { $.each(arr2,function (k,v2) { if(i === k){ dll[v1] = v2; } }); }); var str = JSON.stringify(data); var reg = eval('/('+arr1.join('|')+')/g'); var result = str.replace(reg,function ($0,$1) { return dll[$1]; }); var last = ''; if(flag === false){ last =$.extend(true,data,JSON.parse(result)); }else{ last = JSON.parse(result); } return last; }; //数据融合 util.dataMix = function (obj1,obj2) { return $.extend(true,obj1,obj2); }; //购物车计算统一方法 (function () { var fn = {}; var data = {}; var timer; $(document).on('click','.btn-compute',function (e) { e.preventDefault(); var _this = $(this); var type = _this.data("click"); data.ele = _this.closest('.content-compute'); var input = data.ele.find('.input-compute').length === 0 ? data.ele.find('.input-changed') : data.ele.find('.input-compute'); fn[type] ? fn[type](input) : console.log('未找到对应函数'); }); $(document).on('keyup','.input-compute,.input-changed',function (e) { e.preventDefault(); var reg = /^[0]+/g; if(reg.test($(this).val())){ $(this).val(1); }else{ $(this).val(this.value.replace(/[^0-9]/g,'')); } }); $(document).on('input','.input-changed',function (e) { e.preventDefault(); var _this = $(this); var value = _this.val(); if('' === value){ layer.msg('商品数量不能为空!'); }else{ var num = parseInt(value); if(0 === num){ layer.msg('商品数量不能为0!'); } if(num >= 1){ data = { ele:_this.closest('.content-compute'), num:_this.val() }; fn.publishGoods(data); } } }); $(document).on('blur','.input-compute',function (e) { e.preventDefault(); var _this = $(this); var value = _this.val(); if('' === value){ layer.msg('商品数量不能为空!'); _this.val(1); }else{ var num = parseInt(value); if(0 === num){ _this.val(1); } } data = { ele:_this.closest('.content-compute'), num:_this.val() }; fn.publishGoods(data); }); fn.minus = function (input) { if('' === input.val()){ input.val(1); data.num = input.val(); fn.publishGoods(data); }else{ var num = parseInt(input.val()); if (num > 1){ input.val(num - 1); data.num = input.val(); fn.publishGoods(data); } } }; fn.add = function (input) { if('' === input.val()){ input.val(1); data.num = input.val(); fn.publishGoods(data); }else{ var num = parseInt(input.val()); if(num === 999999){ layer.msg('超过最大限制!'); }else{ input.val(num + 1); data.num = input.val(); fn.publishGoods(data); } } }; fn.publishGoods = function (data) { clearTimeout(timer); timer = setTimeout(function () { $.publish('goodsCompute',data); },500); } })(); $.fn.bootstrapTableEx = function(opt){ var defaults = { //data:[], method: 'post', //请求方式(*) dataType: 'json', contentType: "application/x-www-form-urlencoded",//必须要有!!!! toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortStable: true, queryParamsType: '', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort // 设置为 '' 在这种情况下传给服务器的参数为:pageSize,pageNumber minimumCountColumns: 2, //最少允许的列数 locale:'zh-CN',//中文支持 paginationLoop:false, paginationPreText: '上一页', paginationNextText: '下一页', sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) silentSort:false, pageNo:1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 25, 50, 100], //可供选择的每页的行数(*) strictSearch: true, clickToSelect: false, //是否启用点击选中行 //height: 580, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 cardView: false, //是否显示详细视图 detailView: false, //是否显示父子表 smartDisplay: true,// 智能显示 pagination 和 cardview 等 responseHandler:function(res){ if(res.respCode==="0000"){ return { data:res.data.rows||[], total:res.data.recordsTotal, } }else{ layer.msg(res.respDesc,{time:2000}); return { data:[], total:0, }; } }, formatLoadingMessage: function () { return "正在努力地加载数据中..."; }, formatNoMatches: function () { //没有匹配的结果 return '没有找到匹配的记录'; } }; var option = $.extend({}, defaults, opt); $(this).bootstrapTable(option); }; return util; });