cart.js 2.33 KB
/**
 * 购物车Logic
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/20
 */

var $ = require('jquery'),
    lazyLoad = require('yoho.lazyload'),
    Hammer = require('yoho.hammer');

var chosePanel = require('./chose-panel'),
    tip = require('../plugin/tip');

var $cartContent = $('.cart-content');

var navHammer,
    cartType = $('#cartType').val();

var hasChecked = $('.cart-goods .icon-cb-checked').length > 0 ? true : false; //是否有选中商品

require('./good');

lazyLoad($('img.lazy'));

if ('advance' === cartType) {
    $cartContent.toggleClass('hide');
}

if ($('.cart-nav').length > 0) {
    navHammer = new Hammer(document.getElementsByClassName('cart-nav')[0]);
    navHammer.on('tap', function(e) {
        var $this = $(e.target).closest('li');

        if ($this.hasClass('active')) {
            return;
        }

        if (cartType === 'ordinary') {
            cartType = 'advance';
        } else {
            cartType = 'ordinary';
        }

        $this.siblings('.active').removeClass('active');
        $this.addClass('active');

        //切换普通商品和预售商品购物车显示
        $cartContent.toggleClass('hide');

        //trigger lazyload
        $(window).trigger('scroll');
    });

    setTimeout(function() {
        $('#presell-tip').addClass('hide');
    }, 3000);
}

$('.advance-buy').on('touchend', function() {
    window.location.href = '/cart/index/advanceBuy?cartType=' + cartType;
});

$('.freebie').on('touchend', function() {
    window.location.href = '/cart/index/gift?cartType=' + cartType;
});

$('.btn-balance').on('touchend', function() {
    if ($('.low-stocks').length > 0) {
        tip.show('库存不足无法结算');
        return false;
    }

    if (hasChecked) {
        window.location.href = '/cart/index/orderEnsure?cartType=' + cartType;
    } else {
        tip.show('请先勾选商品');
    }
});

$('.chose').on('touchend', function() {

    //var id = $(this).closest('.gift-advance-good').data('id');
    chosePanel.show();
});

if ($('.cart-zero').length > 0) {
    require('../product/recommend-for-you');
}

function notAllowScroll() {
    var docH = $(document).height(),
        winH = $(window).height();

    if (docH - winH <= 10) {
        $('body').css('overflow', 'hidden');
    }
}

notAllowScroll();

//提前触发lazyload
$(window).scrollTop(1).scrollTop(0);