日积月累的jit-lib方法,

来源:互联网 发布:元数据管理工具 编辑:程序博客网 时间:2024/06/05 23:46
pc端


; (function ($) {    var util={};    /*     日期时间的格式化     @formatm:日期格式yyyy-MM-dd hh:mm:ss:SS;  2016-06-08     */    Date.prototype.format =function(format,displayPlaceholder)    {        var o = {            "M+" : this.getMonth()+1, //month            "d+" : this.getDate(), //day            "h+" : this.getHours(), //hour            "m+" : this.getMinutes(), //minute            "s+" : this.getSeconds(), //second            "q+" : Math.floor((this.getMonth()+3)/3), //quarter            "S" : this.getMilliseconds() //millisecond        }        if(/(y+)/.test(format)) format=format.replace(RegExp.$1,            (this.getFullYear()+"").substr(4- RegExp.$1.length));        for(var k in o)if(new RegExp("("+ k +")").test(format))             if(displayPlaceholder&&o[k]-10<0) {                 format = format.replace(RegExp.$1,                     RegExp.$1.length == 1 ? o[k] :                         ("0" + o[k]).substr(("" + o[k]).length));             } else{                 format = format.replace(RegExp.$1,                     RegExp.$1.length == 1 ? o[k] :                         ("00" + o[k]).substr(("" + o[k]).length));             }        return format;    };    /*///两种调用方式     var template1="我是{0},今年{1}了";     var template2="我是{name},今年{age}了";     var result1=template1.format("loogn",22);     var result2=template2.format({name:"loogn",age:22});     /////两个结果都是"我是loogn,今年22了"*/    String.prototype.format = function(args) {        var result = this;        if (arguments.length > 0) {            if (arguments.length == 1 && typeof (args) == "object") {                for (var key in args) {                    if(args[key]!=undefined){                        var reg = new RegExp("({" + key + "})", "g");                        result = result.replace(reg, args[key]);                    }                }            }            else {                for (var i = 0; i < arguments.length; i++) {                    if (arguments[i] != undefined) {                        var reg = new RegExp("({[" + i + "]})", "g");                        result = result.replace(reg, arguments[i]);                    }                }            }        }        return result;    };    //日期比较根据不同的diffType 返回不同的 值, 相差多少天, 时 ,分 ,秒    util.GetDateDiff=function(startTime, endTime, diffType) {//作为除数的数字        var divNum = 1;        switch (diffType) {            case "second":                divNum = 1000;                break;            case "minute":                divNum = 1000 * 60;                break;            case "hour":                divNum = 1000 * 3600;                break;            case "day":                divNum = 1000 * 3600 * 24;                break;            default:                break;        }        return  parseInt((new Date(startTime)-new Date(endTime))/ parseInt(divNum));    };    //提交loading 防止多点    // notProceed  为true 没有在进行提交    util.isLoading=function(notProceed){        if(notProceed){            $(".isSubmitLoading").remove();        }else{            if($(".isSubmitLoading").length==0) {                $("body").append('<div class="isSubmitLoading"></div>');            }        }    };    util.obj2list = function(obj){        var list = [];        for(var i in obj){            list.push(obj[i]);        }        return list;    };    util.list2obj = function(list,key){        var obj = {};        for(var i=0;i<list.length;i++){            var idata = list[i];            obj[idata[key]] = idata;        }        return obj;    };    util.obj2list = function(obj){        var list = [];        for(var i in obj){            list.push(obj[i]);        }        return list;    };    util.getUrlParam=function(key){        var urlstr = window.location.href.split("?").length > 1 ? window.location.href.split("?") : window.location.href.split("#"),            params = {};               if (urlstr[1]) {            var items = urlstr[1].split("&");            for (var i = 0; i < items.length; i++) {               var itemarr = items[i].split("=");               params[itemarr[0]] = itemarr[1];            }        }         return key?params[key]:params;    }    util.toUrlWithParam=function(toUrl,param){      var value = "",itemarr = [],params;      params = this.getUrlParam();      if(param){         var temps = param.split("&"),tempparam;         for(var i=0;i<temps.length;i++){            tempparam = temps[i].split('=');            params[tempparam[0]] = tempparam[1];         }      }      var paramslist = [];      for(var key in params){         paramslist.push(key + '=' + params[key]);      }      location.href= toUrl + "?" + paramslist.join("&");   } ;    //构建ajax    util.buildAjaxParams=function(param){         var _param = {            type: "post",            dataType: "json",            url: "",            data: null,            beforeSend: function () {            },            success: null,            error: function (XMLHttpRequest, textStatus, errorThrown){                    $.util.isLoading(true);                    $(".loading").hide();            }         };         $.extend(_param,param);         //var baseInfo = this.getBaseAjaxParam();         var action = param.data.action,            interfaceType = param.interfaceType||'Product',            _req = {               'Locale':null,               'CustomerID':(param.customerId?param.customerId:null),               'UserID':(param.userId?param.userId:null),               'OpenID':null,               'Token':null,                    'ChannelID':(param.ChannelID?param.ChannelID:null),               'Parameters':param.data,                    'random':Math.random()            };         delete param.data.action;            //"+"转换成"%2B":用于解决保存不了+号字符的问题         var _data = {             'req':JSON.stringify(_req).replace("+","%2B")         };         _param.data = _data;            if(param.data.oldInface){                _param.url = _param.url;            }else {                _param.url = _param.url + '?type=' + interfaceType + '&action=' + action;            }         return _param;   };    //最新的ajax封装   util.ajax=function(param){         var _param;          if($(".tableWrap").find(".loading").length>0){    //$(".tableWrap").find(".Refresh").length==0防止一个页面多个接口调用多吃             var dom=$(".tableWrap").find(".loading").parent();             // $(".tableWrap").find(".loading").remove();              if(window.dom&&window.dom!==dom){                  $.util.partialRefresh(window.dom);              }else{                  $.util.partialRefresh(dom);              }          }         if(param.url.indexOf('Gateway.ashx')!=-1){            _param = util.buildAjaxParams(param);         }else{            _param = util.buildAjaxParams(param);         }         //_param.url =  _param.url;        _param.success= function (data) {            $.util.isLoading(true);            $(".datagrid-mask,.datagrid-mask-msg").remove();            if (!data.IsSuccess && data.ResultCode == 500) {              /*  $.messager.alert("提示", data.Message,"error",function() {                   // location.href = "/default.aspx?method=LogOut";                });*/            } else {                param.success(data);                //$(".loading").hide();            }        };         $.ajax(_param);   };    /*        保存页面的参数        @option        {            domFlag:""   //页面元素要保存的标记            attrs:"",    //要保存的属性            pageSize        ]    */   util.oldBuildAjaxParams=function(param){       debugger;       var _param = {           type: "post",           dataType: "json",           url: "",           data: null,           beforeSend: function () {           },           success: null,           error: function (XMLHttpRequest, textStatus, errorThrown){               $.util.isLoading(true);               $(".datagrid-mask,.datagrid-mask-msg").remove();               $(".loading").hide();           }       };       $.extend(_param,param);       var method = param.data.action;       delete param.data.action;       //_param.data = JSON.stringify(param.data);      if(param.data.form) {         /* var _data = {              'form': JSON.stringify(param.data.form)          };*/          param.data.form=JSON.stringify(param.data.form);          _param.data = param.data;      }      if(param.isJSON){  //是否需要格式data 参数          _param.data = JSON.stringify(param.data);      }        param.url = _param.url;       _param.url = _param.url + '?&method=' + method;       if(param.data.QueryStringData){         var query=param.data.QueryStringData;           var querystring=""           $.each(query,function(name,val){               querystring+="&{0}={1}".format(name,val);           });          // console.log(querystring);           _param.url += querystring;       }       return _param;    };    util.oldAjax=function(param){       debugger;        var _param;        if($(".tableWrap").find(".loading").length>0&&$(".tableWrap").find(".Refresh").length==0){            var dom=$(".tableWrap").find(".loading").parent();            //$(".tableWrap").find(".loading").remove();            $.util.partialRefresh(dom);        }        if(param.url.indexOf('Handler.ashx')!=-1||param.url.indexOf('Hander.ashx')!=-1){            _param = util.oldBuildAjaxParams(param);        }        //_param.url =  _param.url;        _param.success = function (data) {            $.util.isLoading(true);            $(".datagrid-mask,.datagrid-mask-msg").remove();            if (!data.IsSuccess && data.ResultCode == 500) {              /*  $.messager.alert("提示", data.Message,"error",function() {                    location.href = "/default.aspx?method=LogOut";                });*/            } else {                param.success(data);               // $(".loading").hide();            }        };        $.ajax(_param);    };    util.partialRefresh=function(dom){    //局部刷新        var domList=[];          if(dom.length>1){   //多个tab页面的处理              domList=dom;              dom=[];              domList.each(function (index,node) {                  debugger;                  if(!$(this).is("hidden")){                      dom=$(this);                      return false;                  }              })          }        window.dom=dom;  //如果在内部调用该函数,且必须是在ajax之前。        if(dom.length>0&&dom.parents(".datagrid-view").length>0&&$(".datagrid-body").length>0&&$(".datagrid-body").find(".loading").length==0&&$(".datagrid-body").html().length>0) {            var _701 = dom.datagrid("getPanel");            if (!_701.children("div.datagrid-mask").length) {                $("<div class=\"datagrid-mask\" style=\"display:block\"></div>").appendTo(_701);                var msg = $("<div class=\"datagrid-mask-msg\" style=\"display:block;left:50%\"></div>").appendTo(_701);                msg._outerHeight(40);                msg.css({marginLeft: (-msg.outerWidth() / 2), lineHeight: (msg.height() + "px")});            }        }else{              //dom.html('<div class="loading Refresh" > <span><img src="../static/images/loading.gif"></span> </div>');        }    };    util.toNewUrlPath=function(urlPath){            var childMenuID =window.mid;            var parentMenu_Id =window.PMenuID; //this.getUrlParam("PMenuID");            var MMenuID =window.MMenuID;            var result = urlPath.indexOf("?");            var newUrl = result != -1 ? (urlPath + "&mid=" + childMenuID) : (urlPath + "?mid=" + childMenuID );            location.href = newUrl;    };    util.setPageParam=function(option){        var array=[];        $("["+option.domFlag+"]").each(function(i,j){            var $t=$(this);            var obj={};                obj.attrs=[];            if(j.tagName=="INPUT"){                obj.type="INPUT";                obj.value=$t.val();            }else{                obj.type=j.tagName;                obj.value=$t.text();            }            //取出来该元素的属性标识            if(option.attrs&&option.attrs instanceof Array&&option.attrs.length){                for(var k=0,klength=option.attrs.length;k<klength;k++){                    var attrObj={};                    attrObj.attr=option.attrs[k];   //attr属性                    attrObj.value=$t.attr(attrObj.attr);//对应的attr属性的value                    obj.attrs.push(attrObj);                }                      }                        array.push(obj);        });        option.arr=array;        location.hash="_saveData_="+encodeURIComponent(JSON.stringify(option));    };        /*        @param option   //参数注释        {            domFlag:selector,      //jquery选择器              trigger:[{                obj:jqueryObj,                  //要触发的事件操作                eventType:"click"               //触发的事件类型            }],            callback:function(){                //回调函数            }        }    */    util.setDomValue=function(option){        var sear=location.hash;        sear=decodeURIComponent(sear);        var result=sear.replace("#_saveData_=","");        try{            result=JSON.parse(result);            //进行还原数据            if(option.domFlag==result.domFlag){                $("["+option.domFlag+"]").each(function(i,j){                    var $t=$(this);                    //dom的数据还原                    var jitem=result.arr[i];               //每个dom                    //判断是否是input                    if(jitem.type==="INPUT"){  //input   //数据还原                        $t.val(jitem.value);                    }else{                        $t.text(jitem.value||"");                    }                    //dom  属性还原                    for(var atr=0,atrlen=jitem.attrs.length;atr<atrlen;atr++){                        var attrItem=jitem.attrs[atr];  //每个属性                        $t.attr(attrItem["attr"],attrItem["value"]);                    }                           });                //事件触发                if(option.trigger&&option.trigger instanceof Array){                    for(var ii=0,iilen=option.trigger.length;ii<iilen;ii++){                        var iitem=option.trigger[ii];                         $(iitem["obj"]).trigger(iitem.eventType);  //进行事件触发                    }                }                //回调函数                if(option.callback&&typeof option.callback=="function"){                    option.callback(result);                }                return true;            }        }catch(ex){            return false;        }    };    //组织默认事件    util.stopBubble=function (e) {        if (e && e.stopPropagation) {            //因此它支持W3C的stopPropagation()方法             e.stopPropagation();        }        else {            //否则,我们需要使用IE的方式来取消事件冒泡             window.event.cancelBubble = true;        }        if(e && e.stopPropagation){e.preventDefault();}    };    //模拟的选择事件    util.selectEvent=function(selector){        //点击空白区域让指定的内容隐藏        var that = this;        $("body").bind("click",function(e){            var target  = $(e.target);            if(target.closest(".selectList").length == 0){                $(".selectList").hide();            }           if(target.closest(".ztree").length == 0){                $(".ztree").hide();           }         });        //模拟下拉框的点击事件        $(selector).delegate(".selectBox span", "click", function (e) {            //获得当前元素jquery对象            var $t=$(this);            var selList=$t.parent().find(".selectList");            //判断下拉列表是否是显示状态            if(selList.is(":hidden")){                $(".selectBox") .find(".selectList").hide();                selList.show();            $t.parent().css("position","relative");            }else{                selList.hide();            $t.parent().css("position","");            }            util.stopBubble(e);                 }).delegate(".selectBox p", "click", function (e) {  //下拉列表的点击事件            //获得当前元素jquery对象            var $t=$(this);            //获得选择内容的id            var optionId = $t.attr("optionid");            //改变显示的内容  及设置id            $t.parent().parent().find(".text").html($t.html());            $t.parent().parent().find(".text").attr("optionid", optionId);            //统一值属性命名   edit by Willie Yan            var valId = $t.attr("data-val");            $t.parent().parent().find(".text").attr("data-val", valId);            $t.parent().hide();        }).delegate(".selectList","mouseleave",function(e){    //鼠标从下拉内容移出的事件            $(this).hide();            util.stopBubble(e);        }).delegate(".selectList","mouseenter",function(e){    //鼠标从下拉内容 移入事件            $(this).show();            clearTimeout(util.the_timeout);            util.stopBubble(e);        }).delegate(".selectBox span","mouseleave",function(e){    //鼠标从下拉控件输入框移出的事件            var selList=$(this).parent().find(".selectList");            util.the_timeout = setTimeout(function(){                selList.hide();            },1600);            util.stopBubble(e);        });    };   util.setCookie=function(name,value){      var Days = 365;      var exp = new Date();      exp.setTime(exp.getTime() + Days*24*60*60*1000);      document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();   };   util.getCookie=function(name){      var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");      if(arr=document.cookie.match(reg))      return unescape(arr[2]);      else      return null;   };   util.delCookie=function(name){      var that = this,         exp = new Date();      exp.setTime(exp.getTime() - 1);      var cval=util.getCookie(name);      if(cval!=null)      document.cookie= name + "="+cval+";expires="+exp.toGMTString();   };    util.decode =function(json) {        return eval("(" + json + ")")    };    util.groupSeparator=function(num){   //分格符号        num  =  num+"";        var  re=/(-?\d+)(\d{3})/;        while(re.test(num)){            num=num.replace(re,"$1,$2")        }        return  num;    };   util.dialogBox=function(){      var that=this,         htmlDialogBox = '<div style="display:none">\            <div id="winDialogBox" class="easyui-window" data-options="modal:true,shadow:false,collapsible:false,draggable:false,minimizable:false,maximizable:false,closed:true,closable:true">\               <div class="easyui-layout" data-options="fit:true" id="panlconent">\                  <div data-options="region:center" style="overflow:hidden">\                       <div class="affirmArea">\                        <p class="lineText"><img src="/module/static/images/img_privilege.png"></p>\                       </div>\                  </div>\                  <div class="btnWrap" id="btnWrap" data-options="region:south" style="height:80px;text-align:center;padding:22px 0 0;">\                     <a class="easyui-linkbutton commonBtn saveBtn" href="javascript:$.util.applyForUpdateVer();">立即申请</a>\                  </div>\               </div>\            </div>\         </div>';      $('body').append(htmlDialogBox);         $('#winDialogBox').window({         title:"提示",         width:490,         height:365,         left:($(window).width() - 490) * 0.5,         top:($(window).height()-365) * 0.5      });      //改变弹框内容,调用百度模板显示不同内容      //var html=bd.template('tpl_Info');      //var html='<div>我们已收到您的申请,产品顾问会尽快联系您。</div>';      //$('#winDialogBox #panlconent').layout('remove','center');      //var options = {         //region: 'center',         //content:html      //};      //$('#winDialogBox #panlconent').layout('add',options);      //$('#panlconent').html(html);      $('#winDialogBox').parents('.window').css('position','fixed');      $('#winDialogBox').window('open');   };      util.promptBox=function(){      var that=this,         htmlPromptBox = '<div style="display:none">\            <div id="winPromptBox" class="easyui-window" data-options="modal:true,shadow:false,collapsible:false,draggable:false,minimizable:false,maximizable:false,closed:true,closable:true">\               <div class="easyui-layout" data-options="fit:true" id="panlconent">\                  <div data-options="region:center" style="overflow:hidden">\                       <div class="affirmArea">\                        <p class="lineText">我们已收到您的申请,产品顾问会尽快联系您。</p>\                       </div>\                  </div>\                  <div class="btnWrap" id="btnWrap" data-options="region:south" style="height:80px;text-align:center;padding:22px 0 0;">\                     <a class="easyui-linkbutton commonBtn saveBtn" href=javascript:$("#winPromptBox").window("close");>确定</a>\                  </div>\               </div>\            </div>\         </div>';      $('body').append(htmlPromptBox);         $('#winPromptBox').window({         title:"提示",         width:422,         height:250,         left:($(window).width() - 422) * 0.5,         top:($(window).height()-250) * 0.5      });      //改变弹框内容,调用百度模板显示不同内容      //var html=bd.template('tpl_Info');      //var html='<div>我们已收到您的申请,产品顾问会尽快联系您。</div>';      //$('#winDialogBox #panlconent').layout('remove','center');      //var options = {         //region: 'center',         //content:html      //};      //$('#winDialogBox #panlconent').layout('add',options);      //$('#panlconent').html(html);      $('#winPromptBox').parents('.window').css('position','fixed');      $('#winPromptBox').window('open');   };   util.applyForUpdateVer=function(){      util.isLoading(false);      util.ajax({         url: "/ApplicationInterface/Gateway.ashx",         data: {            'action': 'Basic.Customer.ApplyForUpdateVersions'          },         success: function (data) {            if (data.IsSuccess && data.ResultCode == 0) {               util.isLoading(true);               $('#winDialogBox').window('close');               util.promptBox();            } else {               util.isLoading(true);               $.messager.alert('提示', data.Message);            }         }      })   };   util.getVersion=function(callback){      util.ajax({         url: "/ApplicationInterface/Gateway.ashx",         //async: false,         data: {            action: 'Basic.Customer.GetVersion'         },         success: function (data) {            if (data.IsSuccess && data.ResultCode == 0) {               $.util.version=data.Data.VersionId;               if(data.Data.VersionId==3){                  $('.safetyOutBtn[data-menucode="fstz"]').hide();               }               if(callback){                  callback(data.Data.VersionId);               }            }else{               alert(data.Message);            }         }      });   };    $.util=util;})(jQuery);
微信端


var JitCfg = {   'baseUrl':'../../../',   'ajaxUrl':'', //http://182.254.156.57 http://api.dev.chainclouds.com   'shareIco':'',   'statisticsCode':''};String.prototype.colorRgb = function(){   var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;   var sColor = this.toLowerCase();   if(sColor && reg.test(sColor)){      if(sColor.length === 4){         var sColorNew = "#";         for(var i=1; i<4; i+=1){            sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));         }         sColor = sColorNew;      }      //处理六位的颜色值      var sColorChange = [];      for(var i=1; i<7; i+=2){         sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));      }      return "rgba(" + sColorChange.join(",") + ",0.6)";   }else{      return sColor;   }};(function(global){   function trim(str){      return str.replace(/(\s)|(\r\n)|(\r)|(\n)/gi, "");   }   function strToJson(jsonStr){      jsonStr = trim(jsonStr);      return eval( '(' + jsonStr + ')' );   }   function getOffsetPos(obj){       var _top=obj.offsetTop,         _left=obj.offsetLeft;       if(obj.offsetParent!=null){          var opos = getOffsetPos(obj.offsetParent);          _top += opos.top;          _left += opos.left;       }       return {'top':_top,'left':_left};   }   /*    #随机数函数    parameter:      (number)section 随机区间      (number)start 随机起步值    return:      (int)    @memberOf gc.fn    */   function random(section,start){      if(start != null){         return Math.floor(Math.random()*section) + 1 + start;      }else{         return Math.floor(Math.random()*section) + 1;      }   }    /**     * 随机数函数(值>=start&&值<=end)     * @param start 起始值     * @param end 结束值     * @returns {*}     */    function randomTo(start,end){        var max=end-start+1;        return Math.floor(Math.random()*max) + start;    }   function bind(func, scope){      return function(){         return func.apply(scope, arguments);      }   }      function loadFiles(urls,callback){      var _file,         _Head = document.getElementsByTagName("HEAD").item(0);       function createElement(tag){         var element = document.createElement(tag == 'script' ? 'script' : 'link');         if(tag == 'script'){            element.setAttribute('type','text/javascript');         }else{            element.setAttribute('rel','stylesheet');            element.setAttribute('type','text/css');         }         return element;      }      if(typeof urls == 'string'){         urls = [urls];      }      var hasloadfilescount = 0,         needloadfilescount = urls.length;      for(var i in urls){         if(urls[i].indexOf('.js')!=-1){            _file = createElement('script');            _Head.appendChild(_file);            _file.src = urls[i];         }         if(urls[i].indexOf('.css')!=-1){            _file = createElement('link');            _Head.appendChild(_file);            _file.href = urls[i];         }         if(typeof callback == 'function'){            _file.onload = function(){               hasloadfilescount++;               if(hasloadfilescount>=needloadfilescount){                  callback();               }            };            _file.onerror = function(){               hasloadfilescount++;               if(hasloadfilescount>=needloadfilescount){                  callback();               }            }         }      }   }      function deviceType() {        var sUserAgent= navigator.userAgent.toLowerCase();        var bIsIpad= sUserAgent.match(/ipad/i) == "ipad";        var bIsIphoneOs= sUserAgent.match(/iphone os/i) == "iphone os";        var bIsMidp= sUserAgent.match(/midp/i) == "midp";        var bIsUc7= sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";        var bIsUc= sUserAgent.match(/ucweb/i) == "ucweb";        var bIsAndroid= sUserAgent.match(/android/i) == "android";        var bIsCE= sUserAgent.match(/windows ce/i) == "windows ce";        var bIsWM= sUserAgent.match(/windows mobile/i) == "windows mobile";        if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {           return 'mobile';      } else {         return 'pc';      }     }      var logmsg = [],_dtype = deviceType();   function log(str,type){      var cfg = Jit.AM.getAppVersion();      if(cfg.APP_DEBUG_PANEL){         if(logmsg.length>=200){            logmsg = logmsg.splice(1,logmsg.length-1);         }         logmsg.push('-> '+str);         var logstr = '';         for(var i=0;i<logmsg.length;i++){            logstr += logmsg[i]+'<br>';         }         $('.jit-debug-panel').html(logstr);      }else{         console.log(str);      }   };      function setCookie(name,value,expires,path){      var expdate=new Date();      expdate.setTime(expdate.getTime()+(expires*1000));      document.cookie = name+"="+escape(value)                  + ";expires="+expdate.toGMTString()                  + ( path ? ";path=" + path : "" )   }   function getCookie(name){       var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");       if(arr=document.cookie.match(reg)){           return unescape(arr[2]);        }else{           return null;        }   }    function deleteCookie(name){           var exp = new Date();        exp.setTime(exp.getTime() - 1);        var cval=this.GetCookie(name);        if(cval!=null){          document.cookie= name + "="+cval+";expires="+exp.toGMTString();       }   }   var cookie = {      set:function(key,val){         if(!appManage.CUSTOMER_ID){            alert('cookie 操作出错,需要customerId');            return;         }         var appcookie = getCookie('jit_'+appManage.CUSTOMER_ID);         try{            if(appcookie){               appcookie = JSON.parse(appcookie);            }else{               appcookie = {};            }         }catch(e){            appcookie = {};         }         if(val!=null){            appcookie[key] = val;         }else{            delete appcookie[key];         }         appcookie = JSON.stringify(appcookie);         setCookie('jit_'+appManage.CUSTOMER_ID,appcookie,3600*24*7);      },      get:function(key){         if(!appManage.CUSTOMER_ID){            alert('cookie 操作出错,需要customerId');            return;         }         var appcookie = getCookie('jit_'+appManage.CUSTOMER_ID);         if(appcookie == '' || appcookie == null){            return null;         }         appcookie = JSON.parse(appcookie);         return (appcookie[key]==undefined?null:appcookie[key]);      },      getAuth:function(name){         var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");            if (arr = document.cookie.match(reg))                return unescape(arr[2]);            else                return null;      },      del:function(name){         document.cookie = name+"=;expires="+(new Date(0)).toGMTString();         // var exp = new Date();        //    exp.setTime(exp.getTime() - 1);        //    var cval=getCookie(name);        //    if(cval!=null){       //        document.cookie= name + "="+cval+";expires="+exp.toGMTString();       //    }      }   };      var locStorage = {      set:function(key,val){         if(key){            if(val){               localStorage.setItem(key,val);            }else{               localStorage.removeItem(key);            }         }else{            log('set localStorage Error:key is null','error');         }      },      get:function(key){         return localStorage.getItem(key);      }   };      var store = function(){      var args = arguments;      if(args.length == 1){         return locStorage.get(args[0]);      }else if(args.length == 2){         locStorage.set(args[0],args[1]);      }   };      var sesStorage = {      set:function(key,val){         if(key){            sessionStorage.setItem(key,val);         }else{            log('set sessionStorage Error:key is null','error');         }      },      get:function(key){         return sessionStorage.getItem(key);      }   };      var session = function(){      var args = arguments;      if(args.length == 1){         return sesStorage.get(args[0]);      }else if(args.length == 2){         if(args[1] == null){            sessionStorage.removeItem(args[0]);         }else{            sesStorage.set(args[0],args[1]);         }      }   };      var validator = {      IsEmail : function(str){         var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;         return reg.test(str)      },      isPhoneNumber : function (str){         var regAee  = /^(13\d[1]{0,9}|14\d[1]{0,9}|15\d[1]{0,9}|18\d[1]{0,9})\d{8}$/;         return regAee.test(str);      }   };   var fn = {      random : random,      trim : trim,      strToJson : strToJson,      loadFiles : loadFiles,      log : log,      store : store,      valid : validator,      cookie : cookie,      getPostion : getOffsetPos   };   /*   @@页面管模块   appManage = {      //设置应用的配置信息      setAppVersion(配置信息),      //获取应用的配置信息      getAppVersion(),      //设置应用交互时ajax 携带的基本信息      setBaseAjaxParam(json object),      //获取应用交互时ajax 携带的基本信息      getBaseAjaxParam(),      //设置页面之间通信的数据信息      setPageParam(key , value [object | string] ),      //获取页面之间通信的数据信息      getPageParam(key)   }   */   var appManage = {      'APP_CODE':'',      //获得url上的参数      getUrlParam:function(key){         var value = "",itemarr = [],            urlstr = window.location.href.split("?");         if (urlstr[1]) {            var item = urlstr[1].split("&"),rst={};            for (i = 0; i < item.length; i++) {               itemarr = item[i].split("=");               rst[itemarr[0]] = itemarr[1];            }         }else{            return null;         }         if(key){            return rst[key];         }else{            return rst;         }      },      buildUserId:function() {         var guid = '';         for (var i = 1; i <= 32; i++){            var n = Math.floor(Math.random()*16.0).toString(16);            guid += n;         }         return guid;      },      setAppVersion:function(cfg){         var me = this;         if(!me.CUSTOMER_ID){            me.CUSTOMER_ID = me.getUrlParam('customerId');         }         if(!me.CUSTOMER_ID){            log('Error: customer Id 丢失');            return;         }         var ver = me.getAppVersion();         if(ver){            for(var key in cfg){               ver[key] = cfg[key];            }         }else{            ver = cfg;         }         if(!me.APP_CODE){            for(var key in ver){               if(key = 'APP_CODE'){                  me.APP_CODE = cfg[key];                  break;               }            }         }         store(me.CUSTOMER_ID,JSON.stringify(ver));      },      getAppVersion:function(){         var me = this;         if(!me.CUSTOMER_ID){            me.CUSTOMER_ID = me.getUrlParam('customerId');         }         if(!me.CUSTOMER_ID){            return null;         }         var rst = store(me.CUSTOMER_ID);         if(rst){            rst = eval('(' + rst + ')');            return rst;         }else{            return null;         }      },      /*      设置ajax交互时的基本数据 (需要和config.js 中的AJAX_PARAMS 相匹配)      @param : {         'openId':'xxx',         'userId':'xxx',         'locale':'xxx',         'customerId':''      }      */      setBaseAjaxParam:function(param,oncookie){         var me = this,            appcfg = me.getAppVersion(),            ajaxKeys = appcfg['AJAX_PARAMS'].split(',');         if(oncookie){            for(var i in ajaxKeys){               param[ajaxKeys[i]] = param[ajaxKeys[i]]?param[ajaxKeys[i]]:null;            }            cookie.set('baseInfo',param);         }else{            for(var i in ajaxKeys){               store(this.APP_CODE+'_AJAX_PARAM_'+ajaxKeys[i] , param[ajaxKeys[i]]);            }         }      },      getBaseAjaxParam:function(){         var me = this,            appcfg = me.getAppVersion(),            ajaxKeys = appcfg['AJAX_PARAMS'].split(','),            param = {},            baseInfo = cookie.get('baseInfo');         if(baseInfo){            return baseInfo;         }         for(var i in ajaxKeys){            param[ajaxKeys[i]] = store(this.APP_CODE+'_AJAX_PARAM_'+ajaxKeys[i]);         }         return param;      },      setAppParam:function(type,key,val){         var rkey = this.APP_CODE + '_' + type + '_' + key;         if(val == null){            store(rkey , null );         }else if((typeof val) == 'object'){            store(rkey , 'o_' + JSON.stringify(val) );         }else{            store(rkey , 's_' + val );         }      },      getAppParam:function(type,key){         var rkey = this.APP_CODE + '_' + type + '_' + key,            val = store(rkey);         if(!val){            return null;         }         var dtype = val.substr(0,1),            rval = val.substring(2,val.length);         if(dtype == 's'){            return rval;         }else if(dtype == 'o'){            return eval('(' + rval + ')');         }      },      setAppSession:function(type,key,val){         var rkey = this.APP_CODE + '_' + type + '_' + key;         if(val == null){            session(rkey , null );         }else if((typeof val) == 'object'){            session(rkey , 'o_' + JSON.stringify(val) );         }else{            session(rkey , 's_' + val );         }      },      getAppSession:function(type,key){         var rkey = this.APP_CODE + '_' + type + '_' + key,            val = session(rkey);         if(!val){            return null;         }         var dtype = val.substr(0,1),            rval = val.substring(2,val.length);         if(dtype == 's'){            return rval;         }else if(dtype == 'o'){            return eval('(' + rval + ')');         }      },      setPageParam:function(key,val){         this.setAppParam('PageParam',key,val);      },      getPageParam:function(key){         return this.getAppParam('PageParam',key);      },      setPageHashParam:function(key,val){         this.setAppSession('PageParam',key,val);      },      getPageHashParam:function(key){         return this.getAppSession('PageParam',key);      },      checkAppPageConfig:function(_needReLoad){         var cfg = this.getAppVersion(),            pcfg = this.getAppPageConfig();         if(!pcfg || _needReLoad){            var isGloble = Jit.AM.getAppParam('isGloble'),               _cfgname = (isGloble=='true'?'_globle':this.CUSTOMER_ID),               rst = $.ajax({                  url: '/HtmlApps/config/'+_cfgname+'.js',                  async:false,                  cache:false               }),               vcfg = Jit.strToJson(rst.responseText);            Jit.AM.setAppPageConfig(vcfg);         }      },      setAppPageConfig:function(cfg){         this.setAppParam('PageCfg','',cfg);      },      getAppPageConfig:function(){         return this.getAppParam('PageCfg','');      },      pageHistoryPush:function(pagename){         var history = this.getAppSession('PageHistory','');         if(history){            var list = history.split(',');            if(list.length>=12){               list.splice(0,1);            }            list.push(pagename);            this.setAppSession('PageHistory','',list.join(','));         }else{            this.setAppSession('PageHistory','',pagename);         }      },      pageHistoryPop:function(){         var history = this.getAppSession('PageHistory','');         if(history){            var list = history.split(',');            list.pop();            this.setAppSession('PageHistory','',list.join(','));         }      },      pageHistoryClear:function(){         this.setAppSession('PageHistory','',null);      },      hasHistory:function(){         var history = this.getAppSession('PageHistory','');         if(history){            var list = history.split(',');            if(list.length >= 2){               return true;            }         }         return false;      },      pageBack:function(){         var history = this.getAppSession('PageHistory','');         if(history){            var list = history.split(',');            if(list.length >= 2){               log('返回上一页');               list.pop();               var tarpage = list.pop(),                  pages = tarpage.split(':');               this.setAppSession('PageHistory','',list.join(','));               if(pages.length >1){                  this.toPage(pages[0],pages[1]);               }else{                  this.toPage(pages[0]);               }            }         }      },      toPage:function(pagename,param){         var pagecfg = this.getAppPageConfig(),            page = pagecfg[pagename];         var htmlpath = page.path.replace(/%(\S*)%/,function(str){            return pagecfg['Config']['Shorthand'][str.substring(1,str.length-1)];         });         if(page){            /*            if(param){               this.pageHistoryPush(pagename+':'+param);            }else{               this.pageHistoryPush(pagename);            }            */            var cfg = Jit.AM.getAppVersion(),               version = (cfg.APP_CACHE?cfg.APP_VERSION:((new Date()).getTime()));            location.href = '/HtmlApps/html/'+htmlpath+'?customerId='+Jit.AM.CUSTOMER_ID+(param?('&'+param):'')+'&version='+version;         }      },      getPageUrl:function(pageName,param){         var url = location.host+'/WXOAuth/NoAuthGoto.aspx?'            + 'customerId='+Jit.AM.CUSTOMER_ID            + '&pageName='+pageName+'&'+param            + 'Url=api.dev.chainclouds.com/HtmlApps/html/_pageName_';         return url;      },      toPageWithParam:function(pagename,param){         var value = "",            itemarr = [],            params = {},            urlstr = window.location.href.split("?");         if (urlstr[1]) {            var items = urlstr[1].split("&");            for (i = 0; i < items.length; i++) {               itemarr = items[i].split("=");               params[itemarr[0]] = itemarr[1];            }         }         if(param){            var temps = param.split("&"),tempparam;            for(var i in temps){               tempparam = temps[i].split('=');               params[tempparam[0]] = tempparam[1];            }         }         delete params['customerId'];         var paramslist = [];         for(var key in params){            paramslist.push(key + '=' + params[key]);         }         this.toPage(pagename,paramslist.join('&'));      },      buildAjaxParams:function(param){         var _param = {            type: "post",            dataType: "json",            url: "",            data: null,            beforeSend: function () {               //UI.Loading('SHOW');            },            success: null,            error: function (XMLHttpRequest, textStatus, errorThrown){               //UI.Loading("CLOSE");            }         };         $.extend(_param,param);         var baseInfo = this.getBaseAjaxParam(),            baseInfoCustomerId = this.getUrlParam("customerId"),            baseInfoOpenId = Jit.cookie.getAuth('openId_'+baseInfoCustomerId),            baseInfoUserId = Jit.cookie.getAuth('userId_'+baseInfoCustomerId);         var hostName = location.host;         if(hostName=='api.dev.chainclouds.cn' || hostName=='api.dev.chainclouds.com'){            location.hash = '&openId='+baseInfoOpenId+'&userId='+baseInfoUserId;         }         //通过浏览器地址栏把内容填充         if((!baseInfo.customerId)&&baseInfoCustomerId){            baseInfo.customerId=baseInfoCustomerId;         }         if((!baseInfo.userId)||baseInfoUserId){            baseInfo.userId=baseInfoUserId;         }         if((!baseInfo.openId)||baseInfoOpenId){            baseInfo.openId=baseInfoOpenId;         }         if(!baseInfo.ChannelID){//2代表            if($('#channelIdSize').val() == 6){               baseInfo.ChannelID="6";               appManage.ChannelID="6";            }else if($('#channelIdSize').val() == 7){               baseInfo.ChannelID="7";               appManage.ChannelID="7";            }else if($('#channelIdSize').val() == 11){               baseInfo.ChannelID="11";               appManage.ChannelID="11";            }else{               baseInfo.ChannelID="2";            }         }         //TODO:delete         /*            var isALD=Jit.AM.getPageParam("_aldfrom_")==1?1:0;            if(!baseInfo.isALD){                baseInfo.isALD=isALD;            }            */         baseInfo.userId="4b64c75236e54a3d91f965851b607649";     //test         baseInfo.userId="c62cf47abb2448c7a8fce21764db0406";    //dev         //baseInfo.userId="254b6c9082ff4a9f8abe71b8127a5aae"  //uat         var _data = {            'action':param.data.action,            'ReqContent':JSON.stringify({               'common':(param.data.common?$.extend(baseInfo,param.data.common):baseInfo),               'special':(param.data.special?param.data.special:param.data)            })         };         _param.data = _data;         return _param;      },      buildNewAjaxParams:function(param){         var _param = {            type: "post",            dataType: "json",            url: "",            data: null,            beforeSend: function () {            },            success: null,            error: function (XMLHttpRequest, textStatus, errorThrown){            }         };         $.extend(_param,param);         var baseInfo = this.getBaseAjaxParam(),            baseInfoCustomerId = this.getUrlParam("customerId"),            baseInfoOpenId = Jit.cookie.getAuth('openId_'+baseInfoCustomerId),            baseInfoUserId = Jit.cookie.getAuth('userId_'+baseInfoCustomerId);         var hostName = location.host;         if(hostName=='api.dev.chainclouds.cn' || hostName=='api.dev.chainclouds.com'){            location.hash = '&openId='+baseInfoOpenId+'&userId='+baseInfoUserId;         }         //通过浏览器地址栏把内容填充         if((!baseInfo.customerId)&&baseInfoCustomerId){            baseInfo.customerId=baseInfoCustomerId;         }         if((!baseInfo.userId)||baseInfoUserId){            baseInfo.userId=baseInfoUserId;         }         if((!baseInfo.openId)||baseInfoOpenId){            baseInfo.openId=baseInfoOpenId;         }         if(!baseInfo.ChannelID){            if($('#channelIdSize').val() == 6){               baseInfo.ChannelID="6";               appManage.ChannelID = '6';            }else if($('#channelIdSize').val() == 7){               baseInfo.ChannelID="7";               appManage.ChannelID="7";            }else if($('#channelIdSize').val() == 11){               baseInfo.ChannelID="11";               appManage.ChannelID="11";            }else{               baseInfo.ChannelID="2";            }         }         //TODO:delete         /*            var  isALD=Jit.AM.getPageParam("_aldfrom_")==1?1:0;            if(!baseInfo.isALD){                baseInfo.isALD=isALD;            }            */         baseInfo.userId="254b6c9082ff4a9f8abe71b8127a5aae";         baseInfo.userId="c62cf47abb2448c7a8fce21764db0406";         var action = param.data.action,            interfaceType = param.interfaceType||'Product',            _req = {               'Locale':baseInfo.locale,               'CustomerID':baseInfo.customerId,               'UserID':baseInfo.userId,               'OpenID':baseInfo.openId,               'ChannelID':baseInfo.ChannelID,                    'isALD': baseInfo.isALD,               'Token':null,               'Parameters':param.data            };         delete param.data.action;         var _data = {            'req':JSON.stringify(_req)         };         debugger         _param.data = _data;         _param.url = _param.url+'?type='+interfaceType+'&action='+action;         return _param;      },      ajax:function(param){         var action = param.data.action,            _param;         if(param.url.indexOf('Gateway.ashx')!=-1 || param.url.indexOf('Getway.ashx')!=-1 || param['interfaceMode'] == 'V2.0'){            _param = this.buildNewAjaxParams(param);         }else{            _param = this.buildAjaxParams(param);         }         _param.url = JitCfg.ajaxUrl + _param.url;         _param.beforeSend = function(){            if(param.beforeSend){               param.beforeSend();            }            global.timer = new Date().getTime();         };         _param.complete = function(){            if(param.complete){               param.complete();            }            console.log(               "\r\n"+               "页面名称:"+Jit.AM.getAppPageConfig()[$("title").attr("name")].title+"|"+$("title").attr("name")               +"\r\n"+               "请求地址:"+_param.url               +"\r\n"+               "请求方法:"+action               +"\r\n"+               "请求耗时:"+(new Date().getTime()- global.timer)+"毫秒"+"\r\n"            );         };         $.ajax(_param);      },      isPageNeedLog:function(){         var cfg = Jit.AM.getAppVersion(),            htmlname = $('title').attr('name');         if(htmlname && cfg['LOG_PAGE'] && cfg['LOG_PAGE'].indexOf(htmlname) != -1){            return true;         }         return false;      },      logToServer:function(type){         if(type == 'browser' || type == 'forward' || type == 'browserForward'){            var _param = this.buildAjaxParams({               url: '/Module/BrowserRecord.ashx',               data: {                  'action': type,                  'webPage':$('title').attr('name')               },               success: function(){}            });            $.ajax(_param);         }      },      openShareFunction:function(urlParams,onVisitCallBack){         /*设置页面分享时的推荐链接*/         var urls = [];         urls.push(location.host+'/HtmlApps/Auth.html?pageName='+$('title').attr('name'));         if(urlParams && urlParams.length>0){            for(var i in urlParams){               var val = Jit.AM.getUrlParam(urlParams[i]);               if(val){                  urls.push('&'+urlParams[i]+'='+val);               }            }         }         urls.push('&customerId='+Jit.AM.CUSTOMER_ID);         urls.push('&recommender=1&recommenderId='+Jit.AM.getBaseAjaxParam().userId);         var url = urls.join('');         Jit.WX.shareFriends("好友推荐",'',url,null);         /*设置浏览分享页面时的行为逻辑*/         if(Jit.AM.getUrlParam('recommender') == 1 && typeof onVisitCallBack == 'function'){            onVisitCallBack(Jit.AM.getUrlParam('recommenderId'));         }      },      //分享给微信好友和朋友圈      initShareEvent:function(shareInfo){         Jit.WX.shareFriends(shareInfo);           Jit.WX.shareTimeline(shareInfo);      },            defindPage:function(page){         window.scrollTo(0, 0);         if(!page.initWithParam){            page.initWithParam = function(){};         }         page.getBaseInfo = bind(this.getBaseAjaxParam,this);         page.setParams = bind(this.setPageParam,this);         //页面默认支持分享到微信和朋友圈         page.initShareEvent=bind(this.initShareEvent,this);         page.getParams = bind(this.getPageParam,this);         page.setHashParam = bind(this.setPageHashParam,this);         page.getHashParam = bind(this.getPageHashParam,this);         page.getUrlParam = bind(this.getUrlParam,this);         page.pageBack = bind(this.pageBack,this);         page.toPage = bind(this.toPage,this);         page.ajax = bind(this.ajax,this);         page.buildAjaxParams = bind(this.buildAjaxParams,this);         page.toPageWithParam = bind(this.toPageWithParam,this);         page.openShareFunction = bind(this.openShareFunction,this);         page.weiXinOptionMenu = bind(this.weiXinOptionMenu,this);         page.weiXinToolBar = bind(this.weiXinToolBar,this);         page._initShare = function(){            var me = this;            var param = this.pageParam;            if(param && param['WX_TITLE']){               var shareInfo = {                        'title':(param['WX_TITLE']||'好友推荐'),                        'desc':(param['WX_DES']||'大奖等你抢!'),                        'link':location.href,                        'imgUrl':(param['WX_ICO'])                    }                    Jit.WX.shareFriends(shareInfo);            }         }         Jit.AM.onLoad = function(){            //获取页面配置的参数(页面订制化)            var pagecfg = Jit.AM.getAppPageConfig()[$('title').attr('name')]            if(pagecfg && pagecfg['param']){               page.pageParam=pagecfg['param'];               page.initWithParam(pagecfg['param']);            }            //初始化分享功能            page._initShare();            //初始化事件            page.eventType=Jit.deviceType()=="mobile"?"tap":"click";            //初始化页面            page.onPageLoad();                        //            debugger;            Jit.AM.piwikScript();         }         window.JitPage = page;      },      checkHasContact:function(){         if(JitCfg.CheckOAuth == 'unAttention'){            return false;         }         return true;      },      piwikScript:function () {             //             var _d = window.document,                    _script,                    _scriptFist,                    //_url = (("https:" == document.location.protocol) ? "https" : "http") + "://127.0.0.1:3456/piwik/",               //_url = (("https:" == document.location.protocol) ? "https" : "http") + "://tj.chainclouds.cn/",               _url,                    //_piwikUrl = _url + 'piwik.php',               _piwikUrl,                    //_siteId = '2',               _siteId ,                    //_pageGoal,               //_pageHost = (("https:" == document.location.protocol) ? "https" : "http") + '://192.168.14.1:1234/HtmlApps/html/',               _pageHost = (("https:" == document.location.protocol) ? "https" : "http") + '://api.test.chainclouds.cn/HtmlApps/html/',                    _pageTile,                    _pageUrl,               _hostStr,                    _pageClass;             //             function _piwikInit() {               if(_hostStr == 'api.test.chainclouds.cn' || _hostStr == 'api.test.chainclouds.com'                   || _hostStr == 'api.dev.chainclouds.cn' || _hostStr == 'api.dev.chainclouds.com'                  || _hostStr == 'api.uat.chainclouds.cn' || _hostStr == 'api.uat.chainclouds.com'){                  _url = (("https:" == document.location.protocol) ? "https" : "http") + "://tjtest.chainclouds.com/";                  _siteId = '4';               } else if(_hostStr == 'api.chainclouds.cn' || _hostStr == 'api.chainclouds.com'){                  _url = (("https:" == document.location.protocol) ? "https" : "http") + "://tj.chainclouds.cn/";                  _siteId = '2';               }               _piwikUrl = _url + 'piwik.php',                                window._paq = window._paq || [];                 _paq.push(['setTrackerUrl', _piwikUrl]);                 _paq.push(['setSiteId', _siteId]);                 _paq.push(['setDocumentTitle', _pageTile]);                 //_paq.push(['setCustomUrl', _pageHost + _pageUrl]);               _paq.push(['setCustomUrl', _pageUrl]);                 _paq.push(['setIgnoreClasses', _pageClass]);                 _paq.push(['enableLinkTracking', true]);                 _paq.push(['trackPageView']);             }             //             var init = function() {               debugger;                 _pageTile = Jit.AM.getAppPageConfig()[$('title').attr('name')].title || "";                 //_pageUrl = (Jit.AM.getAppPageConfig()[$('title').attr('name')].path || "") + "{&vipid&}" + Jit.AM.getBaseAjaxParam().userId;               _pageUrl = window.location.href + "{&vipid&}" + Jit.AM.getBaseAjaxParam().userId;               _hostStr=window.location.hostname;                 _pageClass = "";                 _piwikInit();                 _script = _d.createElement('script');                 _script.type = 'text/javascript';                 _script.async = true;                 _script.defer = true;                 _script.src = _url + 'piwik.js';                 _scriptFist = _d.getElementsByTagName('script')[0];                 _scriptFist.parentNode.insertBefore(_script, _scriptFist);             };                        return  init();      },      piwik:function(){         $('body').append(JitCfg.statisticsCode);      }   };      var WeiXin = {      shareInfo:{},      OptionMenu:function(flag){         if(typeof WeixinJSBridge == 'object'){            WeixinJSBridge.call(flag?'showOptionMenu':'hideOptionMenu');         }else{            document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {               WeixinJSBridge.call(flag?'showOptionMenu':'hideOptionMenu');            });         }      },      ToolBar:function(flag){         if(typeof WeixinJSBridge == 'object'){            WeixinJSBridge.call(flag?'showToolbar':'hideToolbar');         }else{            document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {               WeixinJSBridge.call(flag?'showToolbar':'hideToolbar');            });         }      },      fnShare:function(o){         var map = {            'Friends':{               'mKey':'appmessage',               'invoke':'sendAppMessage'            }         };         function share(title, desc, link, imgUrl, isAuth, Authparam) {            var customerId=Jit.AM.getUrlParam("customerId"),               applicationId=Jit.AM.getUrlParam("applicationId");            if(!!!customerId){               customerId=Jit.AM.getBaseAjaxParam().customerId;            }            var applicationId=Jit.AM.getUrlParam("applicationId");            if(!!!applicationId){               applicationId=Jit.AM.getBaseAjaxParam().applicationId;            }            //是否需要高级auth认证            if(isAuth) {               var info = Jit.AM.getBaseAjaxParam(),                  shareUrl = link.replace('userId=' + info.userId, ''),                  shareUrl = shareUrl.replace('openId=' + info.openId, ''),                  shareUrl = shareUrl.replace('customerId=' + info.customerId, ''),               /*shareUrl = shareUrl.replace('applicationId='+info.applicationId,''),                shareUrl = shareUrl.replace('weixinId='+info.weixinId,''),*/                  linkUrl = shareUrl + '&sender=' + info.userId;                //个性化auth页面参数集合               var Authparamstr = "";               if (Authparam && Authparam.length > 0) {                   $.each(Authparam, function (index, self) {                       if (self.paramname != null) {                           Authparamstr += "&" + self.paramname + "=" + self.paramvalue;                       }                   });               }               var shareType="",ObjectID="";            /* CTW:创意仓库               Coupon:优惠券               SetoffPoster:集客海报               Goods:商品*/               switch ($("title").attr("name")){                  case "GoodsDetail": shareType="&objectType=Goods"; break;  //商品                  case "GCCoupon": shareType="&objectType=Coupon"; break;  //优惠券                  case "poster": shareType="&objectType=SetoffPoster"; break;  //商品                  case "RedPacket":   //红包                     shareType="&objectType=CTW"; break;  //               }               var SourceId=3;               if(Jit.AM.getUrlParam('pushType')=='IsSuperRetail'){                  SourceId=4;               }               if(applicationId){                   link = location.host + '/WXOAuth/AuthUniversal.aspx?scope=snsapi_userinfo&SourceId='+ SourceId+ Authparamstr + '&ShareVipID=' + info.userId+shareType+ '&customerId=' + customerId + '&applicationId=' + applicationId + '&goUrl=' + encodeURIComponent(linkUrl);               }else{                   link = location.host + '/WXOAuth/AuthUniversal.aspx?scope=snsapi_userinfo&SourceId='+SourceId + Authparamstr + '&ShareVipID=' + info.userId+shareType + '&customerId=' + customerId + '&goUrl=' + encodeURIComponent(linkUrl);               }            }            if(typeof WeixinJSBridge == 'object'){               WeixinJSBridge.on('menu:share:appmessage', function(argv){                  WeixinJSBridge.invoke('sendAppMessage',{                     //"appid":appId,                     "img_url":imgUrl||('http://'+location.host+'/HtmlApps/images/common/icon_timeline.png'),                     //"img_width":"320",                     //"img_height":"320",                     "link":link,                     "desc":desc,                     "title":title                  }, function(res) {                     //分享成功                     if(res.err_msg.indexOf('ok')!=-1||res.err_msg.indexOf('confirm')!=-1){                        //转发给好友统计                        if(window._paq){                           var baseInfo = appManage.getBaseAjaxParam();                                    var title =document.title?document.title+'---转发到好友':'转发到好友';                           _paq.push(['trackEvent', title,baseInfo.customerId]);                        }                     }                     if(res.err_msg.indexOf('ok')!=-1 && Jit.AM.isPageNeedLog()){                        Jit.AM.logToServer('forward');                     }                  })               });               WeixinJSBridge.on('menu:share:timeline', function(argv){                  WeixinJSBridge.invoke('shareTimeline',{                     //"appid":appId,                     "img_url":imgUrl||('http://'+location.host+'/HtmlApps/images/common/icon_timeline.png'),                     //"img_width":"320",                     //"img_height":"320",                     "link":link,                     "desc":desc,                     "title":title                  }, function(res) {                     //分享成功                            if(res.err_msg.indexOf('ok')!=-1||res.err_msg.indexOf('confirm')!=-1){                        //转发到朋友圈统计                        if(window._paq){                           var baseInfo = appManage.getBaseAjaxParam(),                              title =document.title?document.title+'---转发到朋友圈':'转发到朋友圈';                           _paq.push(['trackEvent', title,baseInfo.customerId]);                        }                     }                     if(res.err_msg.indexOf('ok')!=-1 && Jit.AM.isPageNeedLog()){                        Jit.AM.logToServer('forward');                     }                  })               });               return true;            }else{               return false;            }         }         var runCount = 20;         function dofn(o,count){            return (function(){                if (share(o.title, o.desc, o.link, o.imgUrl, o.isAuth, o.Authparam) || count <= 0) {                  clearInterval(window.WX_Share_timer);                  window.WX_Share_timer = null;               }               count--;            });         };         var hashdo = dofn(o,20);         if(window.WX_Share_timer){            clearInterval(window.WX_Share_timer);         }         window.WX_Share_timer = setInterval(hashdo,300);      },      initShare : function(){         var me = this,            version = Jit.AM.getAppVersion(),            isAuth=false;         if($("title").attr("name")=="IndexShopApp"){            isAuth=true;         }         if(version['APP_WX_TITLE']){            me.fnShare({               'link':location.href,               'title':version['APP_WX_TITLE'],               'desc':version['APP_WX_DES'],               'imgUrl':version['APP_WX_ICO'],               'isAuth':isAuth  //默认不需要高级auth认证            });         }else{            me.fnShare({               'link':location.href,               'title':"商城首页",               'desc':"发现一个很不错的商城",               'imgUrl':$("img").eq(0).attr("src"),               'isAuth':isAuth  //默认不需要高级auth认证            });         }      },      //分享到朋友圈      shareTimeline: function (title, desc, link, imgUrl, isAuth, Authparam) {         var me = this;         if(arguments.length==4){            me.fnShare({               'title':title,               'desc':desc,               'link':link,               'imgUrl':imgUrl,               'isAuth': isAuth ? isAuth : false,    //是否需要高级auth认证  默认false                    'Authparam': Authparam            });         }else if(typeof arguments[0] == 'object'){            me.fnShare(arguments[0]);         }      },      //发送给好友      shareFriends: function (title, desc, link, imgUrl, isAuth, Authparam) {         var me = this;         if(arguments.length==4){            me.fnShare({               'title':title,               'desc':desc,               'link':link,               'imgUrl':imgUrl,               'isAuth': isAuth ? isAuth : false,    //是否需要高级auth认证  默认false                    'Authparam': Authparam            });         }else if(typeof arguments[0] == 'object'){            me.fnShare(arguments[0]);         }      },      //添加关注      addContact : function(name,callback){         if(typeof WeixinJSBridge == 'object'){            WeixinJSBridge.invoke('addContact', {webtype: '1',username: name}, function(e) {               WeixinJSBridge.log(e.err_msg);               //e.err_msg:add_contact:added 已经添加               //e.err_msg:add_contact:cancel 取消添加               //e.err_msg:add_contact:ok 添加成功               if(e.err_msg == 'add_contact:added' || e.err_msg == 'add_contact:ok'){                  //关注成功,或者已经关注过                  callback(true);               }            })         }      },      /**       * 调起微信Native的图片播放组件。       * 这里必须对参数进行强检测,如果参数不合法,直接会导致微信客户端crash       *       * @param {String} curSrc 当前播放的图片地址       * @param {Array} srcList 图片地址列表       */      imagePreview:function (curSrc, srcList) {         if (!curSrc || !srcList || srcList.length == 0) {            return;         }         if(typeof WeixinJSBridge == 'object'){            WeixinJSBridge.invoke('imagePreview', {               'current' : curSrc,               'urls' : srcList            });         }      }   };   var UI = {      Prompt:function(params){         if(typeof params != 'object'){            return false;         }         var htmlStr = '<div class="ui-mask" style="display:block;">\            <div class="ui-prompt-area">\               <p class="ui-title">'+params.title+'</p>\               <div class="ui-des">'+params.des+'</div>\               <div class="ui-btn-box">'+params.html+'</div>\            </div>\         </div>';         $('body').prepend(htmlStr);         $('.ui-prompt-area .cancelBtn').bind('click',function(){            $('.ui-mask').remove();            if(params.callback){               params.callback();            }         });      },      ReachBottom: function(inHeight, target) {         var nDivHight, nScrollHight, scrollTop;         if (target && $(target).length > 0) {            target = $(target);            nDivHight = target[0].clientHeight;            nScrollTop = target[0].scrollTop;            nScrollHight = target[0].scrollHeight;         } else {            var doc = document.documentElement,               body = document.body,               flag = (doc.scrollTop == 0);            nDivHight = self.innerHeight || doc && doc.clientHeight || body.clientHeight;            nScrollTop = flag ? body.scrollTop : doc.scrollTop;            nScrollHight = flag ? body.scrollHeight : doc.scrollHeight;         }         if ((nScrollTop + nDivHight) >= nScrollHight - (inHeight || 0)) {            return true;         }         return false;      },      //提示框方法      Dialog:function(cfg){         if(cfg == 'CLOSE'){            var panel = $('.jit-ui-panel');            if(panel){               (panel.parent()).remove();            }         }else{            cfg.LabelOk = cfg.LabelOk?cfg.LabelOk:'确定';            cfg.LabelCancel = cfg.LabelOk?cfg.LabelCancel:'取消';            var panel,btnstr;            if(cfg.type == 'Alert' || cfg.type == 'Confirm'){                btnstr = (cfg.type == 'Alert') ? '<a id="jit_btn_ok">' + cfg.LabelOk + '</a>' : '<a id="jit_btn_cancel" style="width:50%;">' + cfg.LabelCancel + '</a><a id="jit_btn_ok"  style="width:50%;">' + cfg.LabelOk + '</a>';                if(cfg.isDpi===1){                   panel = $('<div id="dialog_div" class="isDpiBoxAlert"><div class="jit-ui-panel"></div><div name="jitdialog" id="isDpiBoxAlert" class="popup br-5"><div class="dislog__top"><em class="dislog__close"></em></div>'                    + '<p class="ac" id="dialog__content">'+cfg.content+'</p><div class="popup_btn">'                    + btnstr + '</div></div></div>');                }else{                   panel = $('<div id="dialog_div"><div class="jit-ui-panel"></div><div name="jitdialog" style="margin-top:120px" class="popup br-5"><div class="dislog__top"><em class="dislog__close"></em></div>'                    + '<p class="ac" id="dialog__content">'+cfg.content+'</p><div class="popup_btn">'                    + btnstr + '</div></div></div>');                }            }else if(cfg.type == 'Dialog'){               if(cfg.isAppend){  //追加内容                  if($("#dialog__content").length){                     $("#dialog__content").append("<br/>"+cfg.content);                  }else{                     panel = $('<div id="dialog_div"><div class="jit-ui-panel"></div><div style="margin-top:120px" class="popup br-5"><div class="dislog__top"><em class="dislog__close"></em></div><p class="ac" id="dialog__content">'+cfg.content+'</p></div></div>');                  }               }else if(cfg.isDpi===1){                  panel = $('<div id="dialog_div"><div class="jit-ui-panel"></div><div id="isDpiBox" class="popup br-5"><p class="ac" id="dialog__content">'+cfg.content+'</p></div></div>');               }else if(cfg.isDpi===2){                  panel = $('<div id="dialog_div"><div class="jit-ui-panel"></div><div id="unDpiBox" class="popup br-5"><p class="ac" id="dialog__content">'+cfg.content+'</p></div></div>');               }else{                  panel = $('<div id="dialog_div"><div class="jit-ui-panel"></div><div style="margin-top:120px" class="popup br-5"><div class="dislog__top"><em class="dislog__close"></em></div><p class="ac" id="dialog__content">'+cfg.content+'</p></div></div>');               }               if(cfg.times){                  setTimeout(function(){                     $("#dialog_div").hide();                  },cfg.times);               }            }            if(panel){               panel.css({                  'position':'fixed',                  'left':'10px',                  'right':'10px',                  'top':'0',                  'bottom':'0',                  'z-index':'99999'               });               if($("#dialog_div").length){                  $("#dialog_div").remove();               }               panel.appendTo($('body'));               (function(panel,cfg){                  setTimeout(function(){                     $(panel.find('.dislog__close')).bind('click',function(){Jit.UI.Dialog('CLOSE');});                     if(cfg.CallBackOk){                        $(panel.find('#jit_btn_ok')).bind('click',cfg.CallBackOk);                     }                     if(cfg.CallBackCancel){                        $(panel.find('#jit_btn_cancel')).bind('click',cfg.CallBackCancel);                     }else{                        $(panel.find('#jit_btn_cancel')).bind('click',function(){Jit.UI.Dialog('CLOSE');});                     }                  },16);               })(panel,cfg);            }            /*            var dialogdom =$('[name=jitdialog]');            dialogdom.css({               'left':(Jit.winSize.width-dialogdom.width())/2,               'top':(Jit.winSize.height-dialogdom.height())/2,            });            */         }      },        Masklayer:{            show:function(){         alert($('#masklayer').length);            if($('#masklayer').length<=0){               var mask = $('<div id="masklayer" style="position:fixed;background-color:#ECECEC;width:100%;height:100%;line-height:100%;z-index:9999;top:0;left:0;text-align:center"><img src="../../../images/common/loading.gif" style="margin:30px auto;" alt="" /></div>');               mask.appendTo('body');            }            $('#masklayer').css({'opacity':'0.6'}).show();            },            hide:function(){                $('#masklayer').hide();            }        },        Loading:function(display,msg){           if(display||arguments.length==0){              msg = msg || '正在加载...';              var _html = '<div id="wxloading" class="wx_loading">'                      +    '<div class="wx_loading_inner">'                      +       '<i class="wx_loading_icon"></i>'                      +       '<span>'+ msg +'</span>'                      +       '</div>'                      +    '</div>'              $('body').append(_html);           }else{              $('#wxloading').remove();           }        },        AjaxTips:{           //显示ajax加载数据的时候   出现加载图标           Loading:function(flag){              if(flag||arguments.length==0){                 //显示loading                 UI.Loading(true);              }else{                 //隐藏loading                 UI.Loading(false);              }           },           //加载数据           Tips:function(options){              var left="50%",                 top="50%";              if(options.left){                 left=options.left;              }              if(options.top){                 top=options.top;              }              if(options.show){//显示tips               if($("#ajax__tips").length>0){                    $("#ajax__tips").remove();                 }                 var style="position:fixed;top:"+top+";  left:"+left+";  width:100px;  height:100px;margin-top:-50px;margin-left:-50px;text-align: center;line-height100px;";                 var $div=$("<div id='ajax__tips' style='"+style+"'>"+(options.tips?options.tips:"暂无数据")+"</div>");                 $("body").append($div);                               }else{  //隐藏tips               $("#ajax__tips").hide();              }           }        },      Image:{         getSize:function(src,size){            return src;            if(!src){               return '/HtmlApps/images/common/misspic.png';            }            var _src = src.replace(/(.png)|(.jpg)/,function(s){               return '_'+size+s;            });            return _src;         }      },      showPicture:function(className){         if (!className || className.length == 0    || $("img."+className).length ==0) {            return;         }         var imgList = [];         for(var i=0,idata;i<$("img."+className).length;i++){            idata = $("img."+className)[i];            if(idata.src.length){               imgList.push(idata.src);            }         }         $("body").delegate("img."+className,JitPage.eventType,function(){            WeiXin.imagePreview(this.src,imgList);         });      },      'Nav':{         init:function(){            var items = $('#topNav li'),               cfg = Jit.AM.getAppPageConfig(),               navcfg = null;            //是否显示顶部导航            if(cfg.Config && cfg.Config.Navigation){               navcfg = cfg.Config.Navigation;            }            if(!navcfg){               return;            }            //动态配置导航信息            if(items.length != navcfg.count){               var htmls = '';               for(var i=0;i<navcfg.count;i++){                  htmls += "<li><a href=\""+(navcfg.href[i]||'')+"\"></a></li>";               }               $('#topNav ul').html(htmls);            }else{               for(var i in navcfg.href){                  $(items.eq(i).find('a')).attr('href',(navcfg.href[i]||''));               }            }         },         setItemHref:function(idx,href){            var items = $('#topNav li');            $(items.get(idx)).attr('href',href);         },         showItemTips:function(idx,msg){            var item = $('#topNav a').eq(idx);            item.html('<span style="display: inline;">'+msg+'</span>');         },         displayItem:function(idx,display){            if(display){               $('#topNav li').eq(idx).show();            }else{               $('#topNav li').eq(idx).hide();            }         }      }   };      global.Jit = (function(){      var _jit = new Function();      _jit.prototype = fn;      _jit = new _jit();      _jit.fn = fn;      _jit.appManage = appManage;      _jit.AM = appManage;      _jit.WX = WeiXin;      _jit.UI = UI;      _jit.deviceType = deviceType;      return _jit;   })();})(window,undefined);(function(){   /***************************      添加加减乘除操作,解决js浮点运算的bug  ---begin    ***************************/   //除法函数,用来得到精确的除法结果   //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。   //调用:accDiv(arg1,arg2)   //返回值:arg1除以arg2的精确结果   function accDiv(arg1, arg2) {      var t1 = 0, t2 = 0, r1, r2;      try {         t1 = arg1.toString().split(".")[1].length;      } catch(e) {      }      try {         t2 = arg2.toString().split(".")[1].length;      } catch(e) {      }      with (Math) {         r1 = Number(arg1.toString().replace(".", ""));         r2 = Number(arg2.toString().replace(".", ""));         return (r1 / r2) * pow(10, t2 - t1);      }   }   //乘法函数,用来得到精确的乘法结果   //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。   //调用:accMul(arg1,arg2)   //返回值:arg1乘以arg2的精确结果   function accMul(arg1, arg2) {      var m = 0,         s1 = arg1.toString(),         s2 = arg2.toString();      try {         m += s1.split(".")[1].length;      } catch(e) {      }      try {         m += s2.split(".")[1].length;      } catch(e) {      }      return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);   }   //加法函数,用来得到精确的加法结果   //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。   //调用:accAdd(arg1,arg2)   //返回值:arg1加上arg2的精确结果   function accAdd(arg1, arg2) {      var r1, r2, m;      try {         r1 = arg1.toString().split(".")[1].length;      } catch(e) {         r1 = 0;      }      try {         r2 = arg2.toString().split(".")[1].length;      } catch(e) {         r2 = 0;      }      m = Math.pow(10, Math.max(r1, r2));      return (arg1 * m + arg2 * m) / m;   }   //减法函数,用来得到精确的减法结果   //说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。   //调用:accSubtr(arg1,arg2)   //返回值:arg1减去arg2的精确结果   function accSubtr(arg1, arg2) {      var r1, r2, m, n;      try {         r1 = arg1.toString().split(".")[1].length;      } catch(e) {         r1 = 0;      }      try {         r2 = arg2.toString().split(".")[1].length;      } catch(e) {         r2 = 0;      }      m = Math.pow(10, Math.max(r1, r2));      //动态控制精度长度      n = (r1 >= r2) ? r1 : r2;      return ((arg1 * m - arg2 * m) / m).toFixed(n);   }   /*   给基本类型添加原型方法添加不上。      //给Number类型增加一个div方法,调用起来更加方便。   Number.prototype.div = Number.prototype.divided = function(arg) {      return accDiv(this, arg);   };   //给Number类型增加一个mul方法,调用起来更加方便。   Number.prototype.mul =Number.prototype.multiplied = function(arg) {      return accMul(arg, this);   };   //给Number类型增加一个add方法,调用起来更加方便。   Number.prototype.add = function(arg) {      return accAdd(arg, this);   };   //给Number类型增加一个subtr 方法,调用起来更加方便。   Number.prototype.subtr = Number.prototype.subtract = function(arg) {      return accSubtr(arg, this);   };   */   Math.div = Math.divided = accDiv;   Math.mul = Math.multiplied = accMul;   Math.add = accAdd;   Math.subtr = accSubtr;   /***************************      添加加减乘除操作,解决js浮点运算的bug  ---end    ***************************/})(window);




0 0
原创粉丝点击