//处理登录页面的相关动作
|
//weidy@2013-08-01
|
|
var path = "";//后台路径
|
var configData = {};
|
var browserInfo = null;
|
var processStep = 0;
|
var processInterval = null;
|
var usedTime = 0;
|
var projectName = "";
|
var pathName = "";
|
$(document).ready(function() {
|
// 先判断浏览器版本
|
browserInfo = checkBrowser();
|
pathName = window.document.location.pathname;
|
projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1) + "/";
|
//处理页面的内容
|
getConfig(function(){
|
checkParamFromSso(function(username,params){
|
doSingleLogin(username,params);
|
});
|
});
|
});
|
function getConfig(callback){
|
$.getJSON(projectName + "config.json",function(data){
|
configData = data;
|
if(configData.isDebug == "true" || configData.isDebug == true){
|
path = configData.backPath;
|
}else{
|
path = pathName;
|
if(pathName.indexOf("/")>-1){
|
path = path.substring(0,path.lastIndexOf("/"));
|
}
|
}
|
if(callback){
|
callback();
|
}
|
});
|
}
|
|
|
function checkParamFromSso(callback){
|
$.ajax({
|
url:window.location,
|
type:'POST',
|
success:function(data,textStatus,jqXHR){
|
var userid = jqXHR.getResponseHeader('iv-user');
|
if(!userid || userid == null || userid == ''){
|
showError("没有获取到用户名,无法执行单点登录");
|
return false;
|
}
|
var params = new Object();
|
var url = window.location.search;
|
if (url.indexOf("?") != -1) {
|
var str = url.substr(1);
|
strs = str.split("&");
|
for(var i = 0; i < strs.length; i ++) {
|
params[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
|
}
|
}
|
if(callback){
|
callback(userid,params);
|
}
|
},
|
error:function(jqXHR,textStatus,errorThrown){
|
showError("出现了异常,无法单点登录," + textStatus);
|
}
|
});
|
}
|
|
function crosPost(url1,data,callback,errorCallback){
|
$.ajax({
|
type:'post',
|
// xhrFields: {
|
// withCredentials: true
|
// },
|
// crossDomain: configData.isDebug?(true == !(document.all)):false,
|
url:path + url1,
|
data:data,
|
success:function(data){
|
var result = eval("(" + data + ")");
|
if(callback){
|
callback(result);
|
}
|
},
|
error:function(xhr,error){
|
if(errorCallback){
|
errorCallback(xhr,error);
|
}
|
}
|
});
|
}
|
|
|
// 显示错误
|
function showError(text) {
|
$("#msg").html( text);
|
$("#errorMsg").show();
|
}
|
|
|
|
// 登录
|
function doSingleLogin(userid,params) {
|
showLoading();
|
var loginData = {
|
userid : userid,
|
password : "",
|
isForceLogin : true,
|
browser:browserInfo.browser,
|
browserversion:browserInfo.browserversion,
|
osversion: browserInfo.osversion
|
};
|
for(var key in params){
|
loginData[key] = params[key];
|
}
|
//因为每个项目,在登录后获取的内容可能会有不一样,所以登录的路径支持配置configData.loginUrl
|
crosPost(configData.singleLoginUrl,loginData,function(result){
|
hideLoading();
|
if(result == undefined || result == null){
|
showError("登录出现了错误!请查看服务器是否开启");
|
}
|
if (result.success){
|
window.location.href = projectName + "main.html";
|
}else {
|
showError(result.msg);
|
}
|
},function(xhr,error){
|
hideLoading();
|
showError(error);
|
});
|
}
|
|
function showLoading(){
|
$(".loadbg").show();
|
$(".processbar").show();
|
$(".loading").show();
|
var preWidth = $(".loading").css("width");
|
if(preWidth.indexOf("px")>-1){
|
preWidth = preWidth.replace("px","");
|
}
|
preWidth = preWidth*1/10;
|
processInterval = window.setInterval(function(){
|
$("#useTime").html(usedTime + 1);
|
$(".processbar").css("width",preWidth*(processStep+1));
|
usedTime ++;
|
processStep ++ ;
|
if(processStep == 10){
|
processStep = 0;
|
}
|
},1000);
|
}
|
function hideLoading(){
|
$(".loadbg").hide();
|
$(".processbar").hide();
|
$(".loading").hide();
|
processStep = 0;
|
usedTime =0;
|
if(processInterval != null){
|
window.clearInterval(processInterval);
|
}
|
}
|