コード例 #1
0
ファイル: sign-modal.js プロジェクト: Hughdw/xuehaidaohang
      $(eModal).on('hidden.bs.modal', function (eve) {
        eve.preventDefault();
        // 窗口关闭后,判断是否登录成功
        // 登录成功后,登录窗口会把token传递到调用登录窗口的页面(当前页面),通过globalModule获取token
        var sToken = globalModule.getToken();
        // 获取URL的路径部分,作为跳转的判断
        var sPathname = window.location.pathname;

        if (sToken) {
          mAuth.login(sToken);
        } else if (!mAuth.isLogined() && sPathname === '/personal-center.html') {
          // 当登录状态失效,同时页面处在用户中心时,关闭登录窗口强制页面自动跳转到首页
          window.location.href = mUtil.getSkipUrl('/index.html');
        }
      });
コード例 #2
0
  $(function () {
   // ************************************
   // 声明
   // ************************************
    // 共用的用户信息
    var oUserData;

   // ************************************
   // 通用
   // ************************************
    // 向 auth 模块中加入导航的 登录/登出 的状态更新。
    mAuth.addNoticeList(
      function () {
        loadSidebar();
      },
      function () {
        window.location.href = mUtil.getSkipUrl('/index.html');
      }
    );

    // 添加alert模块需要的HTML
    $('body').prepend(tplAlert);

    // 移除 侧导航 和 内容区域 的DOM
    function removeSidebarAndMain () {
      $('#sidebar').empty();
      $('#mainbar').empty();
    }

    // 加载侧导航
    function loadSidebar () {
      var sHash = location.hash;
      var sToken = mSession.getToken();
      // 获取用户信息,加载侧导航
      mApi.getAuthUser(sToken)
      .done(function (success) {
        oUserData = success.data[0].user;
        // 重新组织列表的数据
        var sideData = mRegroupData.sidebar(oUserData, sHash);
        // 渲染侧导航
        document.getElementById('sidebar').innerHTML = tplSidebar(sideData);

        // 侧导航切换主区域内容,同时更新URL中的Hash
        $('.menu-list').on('click', '.menu-list-link', function (event) {
          event.preventDefault();
          $('.menu-list').find('a').removeClass('active');
          var sHref = $(this).addClass('active').attr('href');
          var sRoute = location.hash = mUtil.getHash(sHref);
          // 侧导航按钮切换主内容
          loadMain(oUserData, sRoute);
        });
        // 加载完侧导航,加载主内容
        loadMain(oUserData, sHash);
      })
      .fail(function () {
        // 登录状态下,登录失效
        // 1.注销登录
        // 2.消除DOM
        // 3.弹出对话框
        mSession.destroyUser();
        removeSidebarAndMain();
        mSignModal.showModal();
      });
    }
    // 加载内容区域
    function loadMain (userData, route) {
      console.log(route);
      var sToken = mSession.getToken();
      // 渲染个人中心不同页面的数据
      switch (route) {
        case '#account':
          // 加载用户资料的内容
          mAccountMain(userData, sToken);
          break;
        case '#progress':
          // 加载学习进度的内容
          mProgressMain(sToken);
          break;
        case '#recharge-records':
          // 加载充值记录
          mRechargeMain(userData, sToken);
          break;
        case '#purchase-records':
          // 加载购买记录
          mPurchaseMain(userData, sToken);
          break;
        case '#preferential':
          // 加载优惠信息
          mPreferentialMain(userData, sToken);
          break;
        default:
          mAccountMain(oUserData, sToken);
      }
    }

   // ************************************
   // 功能
   // ************************************
    // 页面载入,未登录状态,并弹出登录对话框。
    // mAuth.isLogined()返回false,代表Cookie中的token已经被注销,所以只需要弹出对话框即可。
    mAuth.isLogined() || mSignModal.showModal();
  });
コード例 #3
0
  $(function () {
   // ************************************
   // 声明
   // ************************************
    // 视频的标题
    var sTit, sSubtit;

   // ************************************
   // 通用
   // ************************************
    // 向auth模块中加入视频的登录和登出方法。
    mAuth.addNoticeList(
      function () {
        var sToken = mSession.getToken();
        mApi.getAuthUser(sToken)
        .done(function (success) {
          oLoadVideo.logined(success.data[0].user.id, sToken);
        })
        .fail(function (error) {
          alert(error);
        });
      },
      function () {
        $('#firstBt').off().hide();
        oLoadVideo.notLogin();
      }
    );

    // 加载视频信息
    var oLoadVideo = {
      // 已登录加载视频详情
      logined: function (uid, token) {
        var nPid = mUtil.getQueryString('pid');
        // 获取视频详情
        mApi.getProductDetails(nPid, uid)
          .done(function (success) {
            loadContent(success.data[0]);
            // 初始化播放器
            mVideoPlay('play-box', success.data[0], token);
          })
          .fail(function (error) {
            alert(error);
          });
      },
      // 未登录加载视频详情
      notLogin: function () {
        var nPid = mUtil.getQueryString('pid');
        // 获取视频详情
        mApi.getProductDetails(nPid)
          .done(function (success) {
            loadContent(success.data[0]);
            // 初始化播放器
            mVideoPlay('play-box', success.data[0]);
          })
          .fail(function (error) {
            alert(error);
          });
      }
    };

    // 渲染模板和绑定事件
    function loadContent (data) {
      // 渲染标题的模板
      document.getElementById('title').innerHTML = tplTitle(data);
      sTit = data.num;
      sSubtit = data.title;
      // 渲染侧栏的模板
      document.getElementById('tab-content').innerHTML = tplSidebar(data);

      var jqTmList = $('#tm-list');
      var jqTmBtn = $('#tm-btn');
      // 为PC端设置按钮和下拉列表相同的宽度。
      var nTmListWidth = jqTmList.innerWidth();
      var nTmBtnWidth = jqTmBtn.innerWidth();
      if (mUtil.isPC) {
        if (nTmListWidth > nTmBtnWidth) {
          jqTmBtn.css('width', '100%');
        } else {
          jqTmList.css('width', '100%');
        }
      }

      // 下拉列表,切换课程
      jqTmList.delegate('a.tm-panel-item', 'click', function (event) {
        event.preventDefault();
        var nID = $(this).data('id');
        var sSearch = window.location.search.replace(/[^=]+$/, nID);
        window.location.search = sSearch;
      });
      mDropdownMenu('#tm-btn', '.tit-master');
    }

    // 添加alert模块需要的HTML
    $('body').prepend(tplAlert);

   // ************************************
   // 功能
   // ************************************
    // 未登录时,加载视频
    mAuth.isLogined() || oLoadVideo.notLogin();

    // 加载购物车
    mShoppingOperation.loadMiniCart(function () {
      // 绑定按钮事件
      mDropdownMenu.handle('#sc-btn', '.shopping-car');
      mShoppingOperation.switchEmptyBg();
    });

    // 加载 加入购物车(目前接口没有返回价格,价格暂时是常量)
    // 渲染 加入购物车
    document.getElementById('buy-content').innerHTML = tplBuy();
    $('#add-to-cart').on('click', function (event) {
      event.preventDefault();
      var jqSelf = $(this).button('loading');
      var nPid = mUtil.getQueryString('pid');
      mShoppingOperation.add(nPid, sTit, sSubtit, function () {
        mAlert.success('加入成功');
        jqSelf.button('reset');
      });
    });

    // 侧导航TAB切换。
    $('#sidebar-tabs').on('click', '.sidebar-tab', function (event) {
      event.preventDefault();
      $(this).tab('show');
    });
  });