• js


    $(function () {


    //事件处理
    var portal = {
    baseUrl: sysConfig.ucenterUrl,
    user: {
    userCode: "",
    userName: "",
    neo4jId: null,
    graphicUrl: "",
    sessionId: ""
    },
    ready: false
    };

    //显示登录框
    portal.showLogin = function () {
    $('form[name="loginForm"]')[0].reset();
    $("#loginModal").show();
    };
    //显示
    portal.setCurrentAppModule = function (appId) {
    $("#appModule li>a").removeClass('cur');
    $("#appModule li>a[data-appid='" + appId + "']").addClass('cur');
    };

    /**
    * 用户登录
    * @param loginName
    * @param pw
    */
    portal.login = function (loginName, pw, rememberMe, CallBack) {
    $.ajax({
    url: this.baseUrl + "/sys/login",
    data: JSON.stringify({ "loginName": loginName, "password": pw, "rememberMe": rememberMe }),
    type: "POST",
    async: false,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function (data, textStatus) {
    if (data.success) {
    portal.user.userCode = data.loginUser.code;
    portal.user.userName = data.loginUser.name;
    portal.user.graphicUrl = data.loginUser.graphicUrl;
    portal.user.neo4jId = data.loginUser.neo4jId;
    portal.user.sessionId = data.loginUser.sessionId;
    portal.writeCookie();
    }
    CallBack(data, textStatus);
    },
    error: function (data) {
    console.log(data);
    }
    });
    };


    /**
    * 显示用户
    */
    portal.showUser = function () {
    if (portal.user.userCode) {
    $(".user-nologin").hide();
    $(".user-login.header-userinfo span span:first").html(portal.user.userName);
    $(".user-login").show();
    $("#ulogout").show();
    } else {
    $(".user-login").hide();
    $("#ulogout").hide();
    $(".user-nologin").show();
    }
    };
    /**
    * 登录成功后将信息写入Cookie
    */
    portal.writeCookie = function () {
    $.cookie("web.session.id", portal.user.sessionId, { path: '/' });
    $.cookie("sessionId", portal.user.sessionId, { path: '/' });
    $.cookie("user", JSON.stringify(portal.user), { path: '/' });
    };

    /**
    * 清理Cookie
    */
    portal.clearCookie = function () {
    $.cookie("web.session.id", "", { expires: -1 })
    $.cookie("sessionId", "", { expires: -1 })
    $.cookie("user", "", { expires: -1 })
    };

    //获取门户列表
    portal.getPortals = function (userCode, CallBack) {
    $.ajax({
    url: this.baseUrl + "/exgroup/getGroupsByUser?userCode=" + userCode,
    type: "GET",
    dataType: 'json',
    async: false,
    contentType: "application/json; charset=utf-8",
    success: function (data) {
    if (data.success) {
    $("#org").attr("title", '科技北斗');
    $("#org").children('option').remove();

    var checkeCode = false;
    //获取企业编号
    var eCode = location.href.getUrlParam('enterpriseCode');
    if (eCode == '1' || eCode == "" || eCode == undefined)
    {
    $("#org").append('<option data-logo="images/logo.png" selected="selected" value = "1">科技北斗</option>');
    checkeCode = true;
    }
    else
    {
    $("#org").append('<option data-logo="images/logo.png" value = "1">科技北斗</option>');
    }
    var groupBaseList = data.groupBaseList;
    for (var i = 0; i < groupBaseList.length; i++)
    {
    var orgItem = groupBaseList[i];
    if (checkeCode) {
    $("#org").append('<option data-ustate="' + orgItem.admin + '" data-logo="' + orgItem.head + '"title="' + orgItem.name + '" value = "' + orgItem.id + '">' + orgItem.name + '</option>');
    }
    else
    {
    if (eCode == orgItem.id)
    {
    $("#org").append('<option selected="selected" data-ustate="' + orgItem.admin + '" data-logo="' + orgItem.head + '"title="' + orgItem.name + '" value = "' + orgItem.id + '">' + orgItem.name + '</option>');
    checkeCode = true;
    }
    }
    }
    }
    CallBack(data);
    }
    });
    };

    /**
    * 获取当前用户信息,包含所在的门户,所在的应用
    */
    portal.getCurrentUser = function () {
    var currentUser = {};
    currentUser.user = portal.user;

    currentUser.portal = {};
    currentUser.portal.groupId = $("#org").val();
    currentUser.portal.groupName = $("#org").text().trim();

    currentUser.appModule = {};
    currentUser.appModule.moduleId = $("#appModule li>a.cur").attr("data");
    currentUser.appModule.moduleName = $("#appModule li>a.cur").text().trim();

    return currentUser;
    };

    /**
    * 获取模块列表
    * @param orgId
    */
    portal.getAppModules = function (orgId, CallBack) {
    $.ajax({
    url: this.baseUrl + "/app/queryGroupApps?enterpriseCode=" + orgId,
    type: "GET",
    dataType: 'json',
    async: false,
    contentType: "application/json; charset=utf-8",
    success: function (data) {
    console.log("ucenter::getAppModulees::" + data.success);
    if (data.success) {
    $("#appModule").children('li').remove();
    $("#searchModule").children('option').remove();
    var appList = data.appSelectList;
    for (var i = 0; i < appList.length; i++) {
    var appItem = appList[i];
    // 选中模块
    if (CurrentModule == appItem.appId)
    {
    $("#appModule").append('<li><a class="cur" data-appid="' + appItem.appId + '" href="' + appItem.url + '?enterpriseCode=' + orgId + '" target="_blank">' + appItem.appName + '</a></li>');
    $("#searchModule").append('<option selected="selected" data-searchurl="' + appItem.searchUrl + '?enterpriseCode=' + orgId + '" value = "' + appItem.appId + '">' + appItem.appName + '</option>');
    } else {
    $("#appModule").append('<li><a data-appid="' + appItem.appId + '" href="' + appItem.url + '?enterpriseCode=' + orgId + '" target="_blank">' + appItem.appName + '</a></li>');
    $("#searchModule").append('<option data-searchurl="' + appItem.searchUrl + '?enterpriseCode=' + orgId + '" value = "' + appItem.appId + '">' + appItem.appName + '</option>');
    }


    //if ("true" == $("#org").find("option:selected").attr("data-ustate")) {
    // $("#searchModuleAdd").show();
    //} else {
    // $("#searchModuleAdd").hide();
    //}
    }

    //// 选择企业
    //var currentOrgId = window.location.href.getUrlParam("orgId");
    //if (currentOrgId) {
    // $("#org").val(currentOrgId);
    //}

    // 事件触发
    //if (appList.length > 0) {
    // console.log("ucenter::getAppModulees::trigger::1");
    // $.event.trigger({
    // type: "HeaderCompleteEvent",
    // message: {
    // orgId: $("#org").val(),
    // appModule: appList[0].appId
    // }
    // });
    //} else {
    // console.log("ucenter::getAppModulees::trigger::undefined");
    // $.event.trigger({
    // type: "HeaderCompleteEvent",
    // message: {
    // orgId: $("#org").val(),
    // appModule: undefined
    // }
    // });
    //}
    CallBack(data);
    }
    }
    });
    };

    /**
    * 是否active
    */
    portal.isActive = function (CallBack) {
    $.ajax({
    url: this.baseUrl + "/sys/isActive",
    type: "GET",
    async: false,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: CallBack
    });
    };

    /**
    * 从Cookie中获取用户信息
    */
    portal.readCookie = function () {
    if ($.cookie("user"))
    portal.user = JSON.parse($.cookie("user"));
    };

    /**
    * 用户登出
    */
    portal.logout = function (CallBack) {
    $.ajax({
    url: this.baseUrl + "/sys/logout",
    type: "GET",
    async: false,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function (data) {
    portal.clearCookie();
    portal.user = {};
    window.location.href = "/index.html";
    CallBack(data)
    }
    });
    };


    portal.init = function () {
    portal.isActive(function (data) {
    if (data.success) {
    console.log("用户依然在线");
    //$("#loginBtndiv").hide();
    //$("#showNamediv").show();
    } else {
    console.log("用户离线,清除用户信息");
    portal.clearCookie();
    portal.user.userCode = "";
    //$("#showNamediv").hide();
    //$("#loginBtndiv").show();
    }
    // 如果cookie中有值,尝试从cookie中读取用户信息。
    portal.readCookie();
    // 初始化登录信息
    portal.showUser();

    //if(portal.user.userCode){
    // 获取用户门户
    portal.getPortals(portal.user.userCode, function (data) {
    if (data.success) {
    console.log("ucenter::init::getPortals");

    //// 选中当前企业
    //var eCode = location.href.getUrlParam('enterpriseCode');
    //if (eCode) {
    // $('#org').val(eCode);
    //}
    // 获取门户应用模块
    portal.getAppModules($("#org").val(), function () {
    portal.ready = true;
    });


    }
    });
    //}
    });

    };
    //验证是否登录
    portal.checkLogin = function () {
    var result = false;
    portal.isActive(function (data) {
    if (data.success) {
    result=true;
    }
    else
    {
    portal.showLogin();
    result=false;
    }
    })
    return result;
    }


    portal.init();
    window.portal = portal;

    // 绑定登录事件
    $("#ulogin").click(portal.showLogin);

    // 关闭
    $("#loginModal .close").click(close);
    function close() {
    $("#loginModal").hide();
    }

    // 登录事件
    $("#loginBtn").click(
    function(){
    login();
    });

    //登录内部方法
    function login() {
    var loginName = $("#loginName").val();
    var password = $("#password").val();
    var rememberMe = $("#rememberMe").val();
    portal.login(loginName, password, rememberMe, function (data) {
    if (data.success) {
    portal.showUser();
    $("#loginModal").hide();

    // 获取用户门户
    portal.getPortals(portal.user.userCode, function (data) {
    if (data.success) {
    console.log("ucenter::login::getPortals");
    // 获取门户应用模块
    portal.getAppModules(portal.getCurrentUser().portal.groupId, function () {
    console.log("ucenter::login::success");
    $.event.trigger({
    type: "LoginEvent",
    message: {
    }
    });
    }, function () { });
    }
    });
    } else {
    $("#errorMsg .error").html(data.error);
    $("#errorMsg").show();
    }
    });
    };


    //更改url参数
    function changeURLPar(destiny, par, par_value) {
    var pattern = par + '=([^&]*)';
    var replaceText = par + '=' + par_value;
    if (destiny.match(pattern)) {
    var tmp = '/\' + par + '=[^&]*/';
    tmp = destiny.replace(eval(tmp), replaceText);
    return (tmp);
    }
    else {
    if (destiny.match('[?]')) {
    return destiny + '&' + replaceText;
    }
    else {
    return destiny + '?' + replaceText;
    }
    }
    return destiny + ' ' + par + ' ' + par_value;
    }

    // 门户选择时
    $("#org").change(function () {
    //$(".nlogo img").attr("src", $("#org").find("option:selected").attr("data-logo"));
    //$("#org").attr("title", $("#org").text().trim());

    var url = "http://" + window.location.host + indexUrl;
    if ($("#org").val())
    {
    window.location.href = changeURLPar(url, "enterpriseCode", $("#org").val());
    }
    else {
    window.location.href = changeURLPar(url, "enterpriseCode", "1");
    }

    });


    // 登出事件
    $("#ulogout").click(function () {
    portal.logout(function () {
    console.log("ucenter::logout::success");
    $.event.trigger({
    type: "LogOutEvent",
    message: {
    }
    });
    });
    });

    // 注册跳转
    $("#uregister").click(showRegister);
    function showRegister() {
    window.location.href = "/reg.html#/cell";
    };


    // 手机二维码浮动
    $(".nwarp .phone").hover(function () {
    $('.nwarp .phone div').css('display', 'block');
    },
    function () {
    $('.nwarp .phone div').css('display', 'none');
    });
    //个人信息
    $("#uinfo").click(function () {
    window.location.href = "/userInfo.html#/base";
    });
    $("#uattention").click(function () {
    window.location.href = "userInfo.html#/attention/1";
    });
    $("#ucollection").click(function () {
    window.location.href = "userInfo.html#/collection";
    });

    // input变动
    $("#loginModal input").change(loginInfoChange);
    function loginInfoChange() {
    $("#errorMsg").hide();
    };

    // 头像菜单下拉
    $("#userInfoSpan").hover(function () {
    $('#menu').css('display', 'block');
    },function () {
    $('#menu').css('display', 'none');
    });


    // 搜索功能
    $('#searchInput').bind('keypress', function (event) {
    if (event.keyCode == "13") {
    search();
    }
    });
    $('form[name="searchForm"] .ninput-group button').click(search);
    function search() {
    var query = $("#searchInput").val();
    if (query) {
    return;
    }
    var searchUrl = $("#searchModule").find("option:selected").attr("data-searchurl");
    var app = $("#searchModule").val();
    window.open(portal.baseUrl + searchUrl + "&query=" + query);
    };


    })

  • 相关阅读:
    JavaScript 预解析
    JavaScript 作用域
    JavaScript 函数
    SlidesJS
    1. Skippr
    HTML5 模拟现实物理效果
    实现各种 CSS3 文本动画效果
    表单填写进度提示效果
    HTML5 WebGL 实现逼真的云朵效果
    【原创】bootstrap框架的学习 第八课 -[bootstrap表单]
  • 原文地址:https://www.cnblogs.com/hf-0712/p/5780787.html
Copyright © 2020-2023  润新知