您的位置:首页 > Web前端 > JavaScript

js局部刷新

2017-01-16 09:54 134 查看
(function(){ 
_tools = {
initPage : function(options){
   if(this.notIsCompatible()){
      this.showErrorPage();
      return false;
   }
   $.history.init(this.loadPage);
   this.initHomePage(options);
   this.initMenuList();
   this.getLoginCount(options.loginName, "loginCount");
   this.initIdentity(options.showIdentity, options.loginName, options.positionId, "identityPage", options.currentIdentity);
},
currentTimeMillis : function(){
return new Date().Format("yyyy-MM-dd hh:mm:ss");
},
appendParams : function (url, param){
return url + ((url && url.indexOf("?") > -1) ? "&" : "?") + param;
},
replaceChar : function(url, char, jionChar){
   if(url && url != null){
      while(url.indexOf(char) > -1){
          url = url.replace(char, jionChar);
      }
   }
   return url;
},
hasElement : function(id){
return document.getElementById(id) != null;
},
notIsCompatible : function(){
   return (Pa.util.browser.msie && Pa.util.browser.version < 8);
},
showErrorPage : function(){
   $("body").empty().load("/ecpub/bond/index/erro_ie.html");
},
initHomePage : function(options){
   if((options.urltarget != null && options.urltarget.length > 0)){
      options.urltarget = this.replaceChar(options.urltarget, "$", "&");
      this.openPage(options.urltarget, "", undefined, this.findMenuName(options.urltarget));
   }else if(options.showPage){
      $("#homePage").find("a")[0].click();
   }
},
initMenuList : function(){
try{
var _self = this;
   $("#menuList li[event='Y'] a").click(function(){
    if("_BLANK" == $(this).attr("openType")){
    _self.openWindow($(this).attr('url').replace(/^.*#/, ''));
   }else if(window.location.href.indexOf($(this).attr('href')) > -1){
    _self.loadPage($(this).attr('href').replace(/^.*#/, ''));
   }else if($(this).attr('eventName') == "click"){
    _self.loadPage($(this).attr('url').replace(/^.*#/, ''));
   }
   });
   $("#menuList a[parentMenu='Y']").each(function(i, menuItem){
    var menuSubItem = $(this).parent().find("div a[menuName^='menuItem_']");
    var url = menuSubItem.attr("url");
    if(url != null && url != ""){
    if("_BLANK" == menuSubItem.attr("openType")){
    $(menuItem).attr("href", "javascript:void(0)").attr("url", url);
    }else{
    $(menuItem).attr("href", "#" + url);
    }
    }
   });
}catch(e){}
},
findMenuName : function(url){
   return this.findMapByKey(url, "menuName");
},
findMapByKey : function(url, name){
if(url.indexOf(name) > -1){
      url = url.substring(url.indexOf(name));
      if(url.indexOf("&") != -1){
      return url.substring(name.length + 1, url.indexOf("&"));
      }else if(url.indexOf("?") != -1){
      return url.substring(name.length + 1, url.indexOf("?"));
      }else{
      return url.substring(name.length + 1);
      }
   }
   return undefined;
},
findContainer : function(url){
var container = this.findMapByKey(url, "container");
if(container)
return container;
else
return this.getMainFrame().attr("id");
},
selectedMenu : function($this){
   if($this){
    $("#menuList").find(".selected").removeClass("selected");
      $($this).addClass("selected");
   }
},
homePage : function(viewName, $this){
this.selectedMenu($this);
var _self = this;
   Pa.util.asyncRequest({
    url : "/ecpub/bond/index/main-"+viewName+"-content.jsp",
    beforeSend : function(){
          Pa.util.showProcesser(_self.getMainFrame().attr("id"));
       },
       callback: function(data){
      _self.getMainFrame().html(data);
          Pa.util.asyncLoad();
      },
      error : function(){
      _self.getMainFrame().html("加载数据出错");
      }
   });
},
getMainFrame : function (){
   return $("#mainFrame");
},
changeIdentity : function(){
   this.chooseIdentity('', $("#identityPage").html(), 500, 200, 0, 0);
},
chooseIdentity : function(title, html, width, height, sw, sh){
   var iWidth = document.documentElement.clientWidth; 
   var iHeight = document.documentElement.clientHeight; 
   var gdtTop = document.documentElement.scrollTop;
   var bgObj = document.getElementById("BgDiv"); 
   bgObj.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=40);opacity:0.3;z-index:1001;background-color:#424242"; 
   bgObj.style.display = "block";
   var msgObj=document.getElementById("MsgDiv"); 
   msgObj.style.cssText = "position:absolute;font-size:12px;top:"+(gdtTop+((iHeight-height-sh)/2))+"px;left:"+(iWidth-width-sw)/2+"px;width:"+width+"px;height:"+height+"px;padding:1px;line-height:22px;z-index:1002;"; 
   msgObj.style.display = "block";

   msgObj.onmousedown = function(){
      var e = getEvent();
      var deltaX=e.clientX-parseInt(msgObj.style.left);
      var deltaY=e.clientY-parseInt(msgObj.style.top);
      var drag=true;
      if(e.preventDefault){
          e.preventDefault();
      }
   }
   msgObj.innerHTML = html; 
  function getEvent() { 
      return window.event || arguments.callee.caller.arguments[0]; 
  }
},
initIdentity : function(showIdentity, loginName, positionId, id, currentIdentity){
var _self = this;
   if(showIdentity == "Y"){
      Pa.util.asyncRequest({
          url  : "queryIdentify.do",
          data : "loginName=" + loginName,
          callback : function(data){
             var result = eval("("+data+")");
             if(result.error != undefined){
                 alert(result.message);
             }else{
           
 _self.loadIdentity(result.identityList, positionId, id, currentIdentity);
             }
          }
      });
   }
},
loadIdentity : function(identitys, positionId, id, currentIdentity){
   if(identitys && identitys.length > 1){
      var htmlContent = "<div class=\"changeUserBox\" id=\"changeUserBox\" width=\"500px;\">";
      htmlContent += "<a href=\"javascript:void(0);\" class=\"a_close_changeuser\" id=\"a_close_changeuser\" onclick=\"Pa.tools.closeIdentity()\"></a>";
      htmlContent += "<div class=\"changeUserContent\">";
      htmlContent += "<h1 class=\"changeUserTitle\"><span class=\"ico_changeuser2\"></span> <strong class=\"font14\">切换身份</strong>";
      htmlContent += "当前身份:<strong class=\"orange\">"+currentIdentity+"</strong></h1>";
      htmlContent += "<ul class=\"ulchangeUser\" id=\"ulchangeUser\">";
      for(var i = 0; i < identitys.length; i++){
          htmlContent += "<li "
          if(identitys[i].postnId == positionId){
             htmlContent += "class='orange' ";
          }
          htmlContent += "><input type='radio' name='radio_postnId' value='"+identitys[i].postnId+"'";
          if(identitys[i].postnId == positionId){
             htmlContent += " checked='checked'";
          }
          var organizationName = identitys[i].organizationName;
          var channelName = identitys[i].channelName;
          if (organizationName == null || organizationName == '') {
             organizationName = "无机构";
          }
          if (channelName == null || channelName == '') {
          channelName = "无渠道";
          }
          htmlContent += "/>"+organizationName+"--"+channelName+"</li>";
      }
      htmlContent += "<p class=\"pchangeUser\"><button class=\"btnOrange\" onclick=\"Pa.tools.saveIdentity()\">保 存 <span class=\"tl\">";
      htmlContent += "</span><span class=\"tr\"></span><span class=\"bl\"></span><span class=\"br\"></span> </button>";
      htmlContent += "</p></div></div><div id=\"chanage_\"></div>";
      $("#"+id).html(htmlContent);
   }
},
saveIdentity : function(){
   var positionId = $("#ulchangeUser input[type='radio']:checked").attr("value");
   var _self = this;
   Pa.util.asyncRequest({
   url : "changeIdentity.do?positionId="+positionId, 
    callback: function(data){
      _self.closeIdentity();
          window.location.href="/login.do";
      },
      error : function(){
          alert("切换身份出错!");
      }
   });
},
closeIdentity : function(){
   $("#BgDiv").hide();
   $("#MsgDiv").hide();
},
getLoginCount : function(loginName, id){
   var param = {"service" : "activityService", "method" : "commonFunctionObject", "statement" : "queryUserLoginCountByUM", "loginName" :loginName };
   Pa.util.asyncRequest({
   url : "asynVerifyRequest.do?json="+JSON.stringify(param), 
    callback: function(req){
          var result = eval("(" + req + ")"); 
          $("#"+id).html(result.result);
      },
      error : function(){
          $("#"+id).html("加载积分出错");
      }
   });
},
execute : function(url, id, menuName, data, type, callback){
if(url != null && url != ""){
      id = id || this.getMainFrame().attr("id");
      Pa.util.handlePage(url, id, true, data, type, callback);
      if(menuName){
      this.selectedMenu($("#"+menuName));
  }
      if($("#menuList li.selected").find("i").attr("class") != "home"){
$("#mainFrame").addClass("contain");
      }
      this.callback(Pa.tools.findMapByKey(url, "callFunction"), url);
   }
},
loadPage : function(url){
if(url != null && $.trim(url) != ""){
var parameter = Pa.tools.getParameter(decodeURIComponent(url));
Pa.tools.execute(parameter.url, parameter.container, parameter.menuName);
}
},
getParameter : function(url){
url = this.replaceChar(url, "$", "&");
var container = this.findContainer(url);
var parameter = {};
if(this.hasElement(container)){
parameter.container = container;
parameter.url = this.builderURI(url);
}else{
parameter.container = this.getMainFrame().attr("id");
var parentUrl = this.builderURI($("#"+this.findMapByKey(url, "parentId")).find("a:first").attr('url').replace(/^.*#/, ''));
parameter.url = this.appendParams(parentUrl, "urltarget="+this.builderURI(url));
}
parameter.menuName = this.findMenuName(url);
return parameter;
},
builderURI : function(url){
if(url.indexOf("?") == -1)
return url;
var uri = url.substring(0, url.indexOf("?") + 1);
url = url.substring(url.indexOf("?") + 1);
var parameters = url.split("&");
for(var i = 0; i < parameters.length; i++){
if(i > 0)
uri += "&";
var param = parameters[i].split("=");
uri += param[0] + "=" + encodeURIComponent(param[1]);
}
return uri;
},
jsonToURL : function(parameter){
var url = "";
if(parameter){
for(var key in parameter){
var val = parameter[key];
if(url.length > 0)
url +="&";
           url += key + "=" + val;
}
}
return url;
},
logout : function(){
   window.location.href="/team_logoff.jsp";
},
gotoPage : function(url){
window.location.href="bond-studio.do#"+url;
},
openPage : function (url, data, id, menuName, openType, type, callback){
if("_BLANK" == openType) {
this.openWindow(url);
} else {
this.execute(url, id , menuName, data, type, callback);
}
},
openWindow : function (url){
   window.open(url);
},
callFunction : function(method, args){
try{
eval(method+"(\""+args+"\")");
}catch(e){}
},
callback : function(method, args){
if(method && method != null && method != ""){
this.callFunction(method, args);
}
},
backToPage : function(options){
if(options.backPage)
this.gotoPage(options.url);
else
this.openPage(options.url, options.data, options.id, options.menuName, options.openType);
}
};
if(typeof window.Pa != "object") 
window.Pa = {};
window.Pa.tools = _tools;

})();

function initLinkRef(){
var hrefs = $("a[autoRef]");
var props = "";
var url = "";
var linkObj;
for(var i = 0; i < hrefs.length; i++){

linkObj = $(hrefs[i]);
linkObj.attr("href", createRef(linkObj));
}

}

function createRef(link){
var props = link.attr("autoRef").split(",");
var url = "#"+link.attr("ref")+"?";
for(var j = 0; j < props.length; j++){
if(j > 0)
url+="&";
props[j] = props[j].replace(/^\s+|\s+$/g,"");
url += props[j] + "=" + link.attr(props[j]);
}
return url + "&randomDate="+Pa.tools.currentTimeMillis();

}

function openPage(url, data, id, menuName, openType, type, callback){
Pa.tools.openPage(url, data, id, menuName, openType, type, callback);

}

function gotoPage(url){
Pa.tools.gotoPage(url);

}

function openWindow(url){
Pa.tools.openWindow(url);

}

/**验证 时间格式

* @param $this

* @return

*/

function validate($this){
if($.trim($this.val()) != "" && Pa.util.validDate($.trim($this.val())) == false){
alert("请输入正确的时间,格式:yyyy-mm-dd");
$this.focus();
return true;
}
return false;

}

/**验证 2个时间的大小

* @param $begin

* @param $end

* @return

*/

function validateTwoDate($begin, $end){
if($.trim($begin.val()) != "" &&
$.trim($end.val()) != "" &&
Pa.util.compareDate($begin.val(), $end.val()) == '>'){
$end.focus();
$end.val("");
alert("结束时间不能早于开始时间。");
return true;
}
return false;

}

/**验证用户是否输入数字

* @param $this

* @return

*/

function validateNumber($this,descText){
if($($this).val() != "" && !Pa.util.isDemical($($this).val())){
alert(descText+"请输入数字。");
$($this).val("");
$($this).focus("");
return true;
}
return false;

}

/**

* 打开新的页面(包括(菜单)框架)

* 传入的URL不需要转码,内部自动转码,取值时需要自己解码

* @param url 页面url,必填,一般是.do结尾,形如:bond-createAccount.do

* @param menuName 主框架中选中的菜单,如客户菜单名为:menuItem_client

* @param params url后面带的参数,对象格式,形如:{"action":"create"}

* @param target 如果为空或者非"_blank","_self","_top","_parent",则默认为"_blank"

*/

function openNewWindow(url, menuName, params, target){
var urltarget = url;
var reqParams = {"url":url};
if(isNotNull(url)){
if(urltarget.indexOf("/") == -1){
urltarget = "/" + urltarget;
}
if(isNotNull(menuName)){
urltarget += "?menuName="+menuName;
}
if(isNotNull(params)){
var concat = "&";
var index = 0;
for(var key in params){
var val = params[key];
if (isNotNull(key)) {

                    if (index == 0) {

                        if (urltarget.indexOf("?") == -1) {

                            concat = "?";

                        } else {

                            concat = "&";

                        }

                    } else {

                        concat = "&";

                    }

                    urltarget += concat + key + "=" + val;

                    index++;

                }
}
}
}else{
alert("请求的url不能为空!");
return;
}

var reqTarget = "_blank";
if(isNotNull(target)){
if("_blank" == target || "_self" == target || "_top" == target || "_parent" == target){
reqTarget = target;
}
}

window.open("bond-studio.do#" + urltarget, reqTarget);
return;

}

/**

 * 判断是否为空

 * @param exp 输入

 * @returns {Boolean}

 */

function isNotNull(exp){
if(exp == undefined || exp == null || exp == ''){
return false;
}
return true;

}

 /**

  * 

  * 项目管理员5个页面 成员下拉框

  * @param buId    区域/事业部

  * @param busId  分公司/部门团队

  * @param checkval  

  */

function queryPManUserOption(buId,busId,checkval) {

    if(!buId && !busId)

    {

        return "";

    }

    

    var result = asynRequestFunction({

        "service": "commonServiceEcpub",

        "method": "queryForList",

        "sqlId": "queryUserInfoByBuId",

        "buId": buId,

        "busId": busId

    }).result;

    var returnstr="";

    for (var i = 0; i < result.length; i++) {

    if(checkval == result[i].USERID)

        {

         returnstr = returnstr + "<option selected='selected' value='" + result[i].USERID + "' title='" + result[i].USER_NAME + "'>" + result[i].USER_NAME + "</option>";

        }

        else

        {

        returnstr = returnstr + "<option value='" + result[i].USERID + "' title='" + result[i].USER_NAME + "'>" + result[i].USER_NAME + "</option>";

        }

    }

    return returnstr;

}

function doPcVisitRecord(requestUrl, currentWindowUrl, objId, objType, objRange,operationName, skip){
var paramData = new Object();
paramData['requestTime'] = Pa.tools.currentTimeMillis();
paramData['requestUrl'] = requestUrl;
paramData['currentWindowUrl'] = currentWindowUrl;
paramData['platForm'] = 'PC';
paramData['platFormVersion'] = '0';
paramData['platFormVersionDate'] = '2000-01-01';
paramData['objId'] = objId;
paramData['objType'] = objType;
paramData['objRange'] = objRange;
paramData['operationName'] = operationName;
// skip参数用来在statisticFilter内区分哪些是需要做记录的请求
if( skip == undefined  ){
paramData['skipStatisticFilter'] = 'YES'; // 跳过filter,直接由statisticController处理
}else{
paramData['skipStatisticFilter'] = 'NO';
}
$.ajax({
type: "POST", 
async : true,
data:  paramData,
url    : '/statisticController.do?'
});

}

function getCurrentWindowUrl(menuName){
var url = window.location.href;
if( menuName == 'client' ){
if( url.indexOf('bond-AccountMain') != -1 ){
url = 'bond-accountManager.do?accountMenu=myStandardAccount';
}else if( url.indexOf('bond-accountDetail') != -1 ){
url = 'bond-accountDetail.do';
}else{
url = url.substring((url.indexOf("#") +1), url.indexOf("&parentId") );
}
}else if( menuName == 'opty' ){ 
url = url.substring((url.indexOf("#") + 1), url.indexOf("?") );
}else{
url = url.substring((url.indexOf("#") + 1), url.indexOf("?") );
}

if( url[0] == '/' ){
url = url.substring(1);
}
return url;

}

function accountClicked(thisObj){
var requestUrl = $(thisObj).attr('href');
// 10 is the length of "accountId"
var accountId = requestUrl.substring((requestUrl.indexOf("accountId") + 10), (requestUrl.indexOf("&accountName")));
var objType = 'psClient';
if( requestUrl.indexOf('personalFlag') == -1 ){
objType = 'orgClient';
}
requestUrl= requestUrl.substring((requestUrl.indexOf("#") + 1), (requestUrl.indexOf("?")));
var currentWindowUrl = getCurrentWindowUrl('client');

doPcVisitRecord(requestUrl, currentWindowUrl, accountId, 'orgClient', 'single', 'browse');
}

调用方式

openPage("bond-accountContactprivateList.do?accountId="+$("#accountId").val(),null,"bondAccountPrivateContactListBody");

openPage("bond-accntQuarterlyFinancIndex.do?"+$("#bondAccountFinancIndexForm").serialize(),null,"accountDetailMid_div");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: