cart.js 3.08 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,
    advanceBuyHammer,
    freebieHammer,
    cartType = $('#cartType').val();

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

require('./good');

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

if ('advance' === cartType) {
    $cartContent.toggleClass('hide');
    $('presell-cart-nav').addClass('active');
    $('common-cart-nav').removeClass('active');
}

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';
            $('#cartType').val('advance');
        } else {
            cartType = 'ordinary';
            $('#cartType').val('ordinary');
        }

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

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

        hasChecked = $('.cart-content:not(.hide) .icon-cb-checked').length > 0 ? true : false;

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

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

if ($('.advance-buy').length > 0) {
    advanceBuyHammer = new Hammer(document.getElementsByClassName('advance-buy')[0]);
    advanceBuyHammer.on('tap', function(e) {
        window.location.href = '/cart/index/advanceBuy?cartType=' + cartType;
    });
}

if ($('.freebie').length > 0) {
    freebieHammer = new Hammer(document.getElementsByClassName('freebie')[0]);
    freebieHammer.on('tap', function(e) {
        window.location.href = '/cart/index/gift?cartType=' + cartType;
    });
}

//$('.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() {
    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);