var path = ""; var configData = {}; var portal = null; var usedTime = 0; var projectName = ""; var processInterval = null; var isDebug = true; var $webUtil = null; 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,taskOid){ loadJs(sessionInfo,taskOid);//获取配置后,判断是否登录-没有登录跳转到登录页,登录后初始化页面 }); }); }); function getConfig(callback){ $.getJSON(projectName + "config.json?v=" + (new Date()).getTime(),function(data){ configData = data; $webUtil = new vciWebUtil(); webUtil = $webUtil; if(configData.isDebug == "true" || configData.isDebug == true){ jQuery.support.cors = true; path = configData.backPath; }else{ path = projectName; if(configData.compatibility) { if (pathName.indexOf("/") > -1) { 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"; } if (!configData.sessionInfoUrl) { configData.sessionInfoUrl = "framework/loginController/getSessionInfo"; } if (!configData.logoutUrl) { configData.logoutUrl = "framework/loginController/logout"; } if (!configData.objectServicePath) { configData.objectServicePath = path + "objectService/"; } if (!configData.frameworkPath) { configData.frameworkPath = path + "framework/"; } } function getUrlParam() { //获取连接地址 var url = document.location.toString(); //分隔开连接,用?把传的值取出来 var arrObj = url.split("?"); var param = {}; //判断连接里面是不是有值,如果有则执行下面操作 if (arrObj.length > 1) { //取出所有传的值 var arrPara = arrObj[1].split("&"); var arr; for (var i = 0; i < arrPara.length; i++) { arr = arrPara[i].split("="); //把第二个值赋值给第一个值 param[arr[0]] = arr[1]; } } return param; } function checkIsLogin(callback){ //增加单点登录的内容 var param = getUrlParam(); var token= readCookie(TOKEN_KEY); var taskOid = param['taskOid']; var msg = readCookie("msg"); if(msg && $webUtil.isNotNull(msg)){ $webUtil.showErrorMsg(msg); return false; } if($webUtil.isNull(token)){ //兼容IE6 token = readCookie(TOKEN_KEY); if($webUtil.isNull(token)) { doNoLogin(); return false; } } var param = {}; param[TOKEN_KEY] = token; $webUtil.post(configData.sessionInfoUrl,param,function(result){ //如果在线,那直接提示用户是否要继续 if(result.success){ $webUtil.deptOid = result.obj.deptOid; // 保存用户部门Oid if(callback){ callback(result.obj,taskOid); } }else{ doNoLogin(); } },function(xhr,error){ alert(error); doNoLogin(); }); } function doNoLogin(){//未登录的处理方式 $("#noLogin").show(); $("#noLoginInfo").html("您没有登录,将在5秒后自动跳转到登录页面"); processInterval = window.setInterval(function(){ usedTime ++; if(usedTime == 5){ window.clearInterval(processInterval); window.location.href = projectName + "index.html"; }else{ $("#noLoginInfo").html("您没有登录,将在" + (5-usedTime) + "秒后自动跳转到登录页面"); } },1000); } function loadJs(sessionInfo,taskOid){ 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,taskOid); } function readCookie(name) { var value = $.cookie(name); if($webUtil.isNull(value)) { 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) } } }else{ return value; } return false; } function initData(sessionInfo,taskOid){ 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 }); layui.isDebug = isDebug; //初始化主页 layui.use(['vciAlias'],function(){ var alias = layui.vciAlias; alias.configAlias(); if($webUtil.isNotNull(taskOid)){ //只显示待办任务 layui.use(['view/process/vciWebProExecuteTask'], function () { var executeTask = layui['view/process/vciWebProExecuteTask']; executeTask.init(); $webUtil.post("/webProcessDefineController/getTaskByOid",{taskOid:taskOid},function(result){ if(result.success && result.obj && result.obj.length > 0){ var taskInfo = []; taskInfo.push({ taskOid:result.obj[0].oid, taskName:result.obj[0].name, executionId:result.obj[0].executionid }); executeTask.showExecuteWindow(taskInfo,{ full:true, fullScreen:true },function(finish){ }); }else{ $webUtil.showErrorMsg(result.msg); } },function(xhr,error){ $webUtil.showErrorMsg("查看流程任务出错"); },path); }); }else { layui.use(['vciWebPortalDojoUI'], function () { portal = layui.vciWebPortalDojoUI; portal.sessionInfo = mySessionInfo; portal.themeName = themeName; portal.loginUrl = configData.loginUrl; if (!$webUtil.isSso() && (portal.sessionInfo.mustChangePassword == "true" || portal.sessionInfo.mustChangePassword == true)) { if ($webUtil.isNotNull(portal.sessionInfo.passwordInfo)) { //说明需要显示密码信息 $webUtil.showErrorMsg(portal.sessionInfo.passwordInfo, function () { portal.sessionInfo.passwordInfo = ""; portal.changepdw(true, function () { initPortal(); portal.sessionInfo.mustChangePassword = false; }); }); } else { portal.changepdw(true, function () { initPortal(); portal.sessionInfo.mustChangePassword = false; }); } } else { initPortal(); portal.sessionInfo.mustChangePassword = false; } }); } // layui.use(['vciWebSocket','layer'],function(){ // var socket = layui.vciWebSocket; // socket.config = { // onopen: function(){ // //握手成功 // //console.log("服务连接成功"); // }, // onmessage:function(data){ // //console.log(data);layer.alert(data.data) // //top.layer.alert(data); // //收到消息 // } // }; // socket.init() // }) }); } function initPortal(){ portal.init();//初始化 if ($.cookie("isLockWindow") == "true") { portal.lockWindow(); } if($webUtil.isNotNull(portal.sessionInfo.passwordInfo) && !$webUtil.isSso()){ //说明需要显示密码信息 $webUtil.showErrorMsg(portal.sessionInfo.passwordInfo); } }