var path = "";
var configData = {};
var portal = null;
var usedTime = 0;
var projectName = "";
var processInterval = null;
var isDebug = true;
var $webUtil = null;
var pathName = "";
var themeName = "";
var TOKEN_KEY = "AuthorizationToken";
var emptyFunction = function(){};
var mySessionInfo = {};
$(document).ready(function(){
$.ajaxSetup({
cache:false,
xhr: function() {
if (window.ActiveXObject) {
return new window.ActiveXObject("Microsoft.XMLHTTP");
} else {
return new window.XMLHttpRequest();
}
}
});
pathName = window.document.location.pathname;
projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1) + "/";
getConfig(function(){
initDefaultConfig();
checkIsLogin(function(sessionInfo){
loadJs(sessionInfo);//获取配置后,判断是否登录-没有登录跳转到登录页,登录后初始化页面
});
});
});
function getConfig(callback){
$.getJSON(projectName + "config.json?v=" + (new Date()).getTime(),function(data){
configData = data;
$webUtil = new vciWebUtil();
if(configData.isDebug == "true" || configData.isDebug == true){
path = configData.backPath;
}else{
path = projectName;
if(configData.compatibility) {
if (pathName.indexOf("/") > -1) {
if(""!=configData.unCorsPath){
path = path.substring(0, path.lastIndexOf("/")) + "/" + configData.unCorsPath + "/";
}else{
path = path.substring(0, path.lastIndexOf("/")) + "/";
}
}
}
}
isDebug = configData.isDebug;
if(callback){
callback();
}
});
}
function initDefaultConfig() {
if (!configData.backgroundimg) {
configData.backgroundimg = "style/images/index/login/background-gray.png";
}
if (!configData.defaultPhoto) {
configData.defaultPhoto = "style/images/index/login/userphotoman.png";
}
if (!configData.loginUrl) {
configData.loginUrl = "framework/loginController/login";
}
configData.sessionInfoUrl = "loginForAdmin/getSessionInfo";
if (!configData.logoutUrl) {
configData.logoutUrl = "framework/loginController/logout";
}
if (!configData.objectServicePath) {
configData.objectServicePath = path + "objectService/";
}
if (!configData.frameworkPath) {
configData.frameworkPath = path + "framework/";
}
}
function checkIsLogin(callback){
var token =$.cookie(TOKEN_KEY);
if($webUtil.isNull(token)){
//兼容IE6
token = readCookie(TOKEN_KEY);
if($webUtil.isNull(token)) {
doNoLogin();
return false;
}
}
jQuery.support.cors = true;
$webUtil.post('loginForAdmin/getSessionInfo2',{},function(result){
//如果在线,那直接提示用户是否要继续
if(result.success){
if(callback){
callback(result.obj);
}
}else{
doNoLogin();
}
},function(xhr,error){
alert(error);
//doNoLogin();
},(configData.isDebug == "true" || configData.isDebug == true)?configData.adminServicePath:path);
}
function doNoLogin(){//未登录的处理方式
$("#noLogin").show();
$("#noLoginInfo").html("您没有登录,将在5秒后自动跳转到登录页面");
processInterval = window.setInterval(function(){
usedTime ++;
if(usedTime == 5){
window.clearInterval(processInterval);
window.location.href = projectName + "indexAdmin.html";
}else{
$("#noLoginInfo").html("您没有登录,将在" + (5-usedTime) + "秒后自动跳转到登录页面");
}
},1000);
}
function loadJs(sessionInfo){
for(var cssName in configData.loadCss){
if("gaodeMapCss" != cssName || configData.isOpenMap || ("gaodeMapCss" == cssName && configData.isOpenMap)){
$("head").append('');//添加css引用
}
}
//加载js文件
for(var jsName in configData.loadJs){
if("gaodeMapjs" != jsName || configData.isOpenMap || ("gaodeMapjs" == jsName && configData.isOpenMap)){
var jsUrl = projectName + configData.loadJs[jsName];
if("gaodeMapjs" == jsName){
jsUrl = jsUrl + "&key=" + configData.gaodeMapKey;
}
$("head").append('');
}
}
initData(sessionInfo);
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' '){
c = c.substring(1,c.length);
}
if (c.indexOf(nameEQ) == 0) {
return c.substring(nameEQ.length,c.length)
}
}
return false;
}
function initData(sessionInfo){
document.title = configData.title;//设置标题--不能使用jquery里的attr方法
//获取主题
themeName = $.cookie('vciWebThemeName');
if(themeName == null || themeName == "" || themeName =="null"){
themeName = "black";
}
$.cookie('userphotocookie',sessionInfo.photoUrl);
mySessionInfo = sessionInfo;
if($webUtil.isNotNull(sessionInfo.photoUrl)){
configData.vciWebPortal.mainConfig.userCenterSrc = sessionInfo.photoUrl
}
//导入配置
layui.config({
base:projectName +configData.webJsLib,
version:configData.jsversion
});
layui.isDebug = isDebug;
configData.mesPath = configData.mes182Path;
//初始化主页
layui.use(['vciAlias'],function(){
var alias = layui.vciAlias;
alias.configAlias();
layui.use(['platform/monitor/VciMonitorMain','vciWebPortal'], function () {
portal = layui.vciWebPortal;
portal.sessionInfo = mySessionInfo;
portal.themeName = themeName;
portal.loginUrl = configData.loginUrl;
if(!configData.isDebug && configData.compatibility){
configData.adminServicePath = path;
}
configData.logoutUrl = configData.adminServicePath + "loginForAdmin/logout";
var webMenu = layui.vciWebMenu;
webMenu.menuUlId = 'portal_menu_tree';
webMenu.backPath = configData.adminServicePath;
webMenu.menuClickListener = function (id, menuObject, isFav) {
portal.showTabByMenu(id, menuObject);
};
webMenu.init();
portal.webMenu = webMenu;
portal.element = layui.element;
webMenu.buildAllListener();
$(".vciWebMenuLeaf").eq(0).trigger('click')
portal.element.init();//刷新所有的元素
portal.element.on('tabDelete(' + portal.tabPanelFilter + ')',function(data){
var id = $(this).parent().attr("lay-id");
if(portal.allAddedTab && portal.allAddedTab[id] && portal.allAddedTab[id].instanceObject){//调用销毁事件
try{
portal.allAddedTab[id].instanceObject.destory();
}catch(e){
}
}
delete portal.allAddedTab[id];
});
layui.use('portal/vciAdminMain', function () {
var index = layui['portal/vciAdminMain'];
$("#vciPortalIndexContent").html(index.getContent());
index.init();
});
});
});
$(".outLogin").on("click",function() {
$webUtil.showConfirmMsg('您确定要退出系统吗', function (index) {
$webUtil.post(configData.logoutUrl, {}, function (result) {
//无论成功与否都需要跳转了
$.removeCookie('AuthorizationToken',{path:"/"});
window.location.href = projectName + "indexAdmin.html";
},function (err,xhr) {
$.removeCookie('AuthorizationToken',{path:"/"});
window.location.href = projectName + "indexAdmin.html";
});
});
});
}