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);
}
}