cart.js 4.68 KB
/**
 * 购物车页面操作
 * @author: feng.chen<feng.chen@yoho.cn>
 * @date: 2016/12/29
 */

'use strict';

let $ = require('yoho-jquery'),
    tip = require('../../plugin/tip'),
    dialog = require('../../plugin/dialog');

let cartObj = {
    init(handle) {
        let self = this;
        let cartType = window.cookie('cartType') || 'ordinary';

        self.handle = handle;

        $('.cart-nav').on('click', 'li', function() {
            let type = $(this).data('type');

            window.setCookie('cartType', type);
            self.handle.refreshPage('');
        });
        $('.more-box>.down-arrow').on('click', function() {
            $(this).parent().toggleClass('down');
        });
        $('.btn-balance').on('click', function() {
            self.toBalance();
        });
        $('.promo-item').on('click', function() {
            let promotionId = $(this).data('id');
            let promotionType = $(this).data('type');
            let promotionTitle = encodeURIComponent($(this).data('title'));
            let title = '促销商品';

            if (promotionType === 'Gift') {
                if ($(this).data('status') === 30) {
                    window.location.href = `/cart/index/new/gift?promotion_id=${promotionId}&title=${title}&intro_text=${promotionTitle}&cartType=${cartType}&edit=1`;
                } else {
                    window.location.href = `/cart/index/new/gift?promotion_id=${promotionId}&title=${title}&intro_text=${promotionTitle}&cartType=${cartType}`;
                }

            } else if (promotionType === 'Needpaygift') {
                if ($(this).data('status') === 30) {
                    window.location.href = `/cart/index/new/advanceBuy?promotion_id=${promotionId}&title=${title}&intro_text=${promotionTitle}&cartType=${cartType}&edit=1`;
                } else {
                    window.location.href = `/cart/index/new/advanceBuy?promotion_id=${promotionId}&title=${title}&intro_text=${promotionTitle}&cartType=${cartType}`;
                }

            } else {
                window.location.href = `/product/index/index?promotion_id=${promotionId}&title=${title}&intro_text=${promotionTitle}&cartType=${cartType}`;
            }

        });
        $('.all-gift-box').on('click', '.gift-item', (e) => {
            if ($(e.currentTarget).hasClass('advanceBuy')) {
                window.location.href = '/cart/index/new/advanceBuy?cartType=' + cartType;
            } else {
                window.location.href = '/cart/index/new/gift?cartType=' + cartType;
            }
        });
        if (typeof window.cookie === 'function' && window.cookie('_hasShowCartPresellTip') === 'y') {
            $('#presell-tip').removeClass('show').addClass('hide');
        } else {
            $('#presell-tip').removeClass('hide').addClass('show');
            setTimeout(function() {
                $('#presell-tip').removeClass('show').addClass('hide');
                window.setCookie('_hasShowCartPresellTip', 'y');
            }, 3000);
        }
    },
    toBalance() {
        let cartType = window.cookie('cartType') || 'ordinary';


        if (window._yas && window._yas.sendCustomInfo) {
            var productId = Array.from($('.good-item.is-checked').map((i, e) => $(e).data('id')));

            setTimeout(function() {
                if (window._yas && window._yas.sendCustomInfo) {
                    window._yas.sendCustomInfo({
                        op: 'YB_SC_TOBUY_CLICK',
                        param: JSON.stringify({
                            C_ID: window.C_ID,
                            PRD_ID: productId.join(','),
                        })
                    }, true);
                }
            }, 200);
        }
        let lowStocks = $('.good-item.low-stocks.is-checked').length;

        if (lowStocks > 0) {
            tip.show(`所选商品中有${lowStocks}种库存不足的商品`);
            return false;
        }
        if ($('.all-gift-box>.freebie').length) {
            dialog.showDialog({
                dialogText: '您还未选择赠品,是否去选择赠品',
                hasFooter: {
                    leftBtnText: '我不要赠品',
                    rightBtnText: '去选择'
                }
            }, function() {
                window.location.href = '/cart/index/new/gift?cartType=' + cartType;
            }, function() {
                window.location.href = '/cart/index/orderEnsure?cartType=' + cartType;
            });
            return false;
        }
        if (!$('.good-item.is-checked').length) {
            tip.show('请先勾选商品');
            return false;
        }
        window.location.href = '/cart/index/orderEnsure?cartType=' + cartType;
    }
};

module.exports = cartObj;