chose-panel.js 2.97 KB
/**
 * 购物车选择尺寸、颜色和数量面板
 * 显示时构造当前商品信息的HTML插入yoho-page;消失则是直接清除HTML
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/21
 */

var $ = require('jquery');

//    Handlebars = require('yoho.handlebars');

// var $page = $('.yoho-page');

var $num;

// var tpl;

//读取partials
// $.ajax({
//     type: 'GET',
//     url: '/shoppingCart/tpl',
//     success: function(data) {
//         tpl = Handlebars.compile(data);
//     }
// });


//显示
// function show(data) {
//     // var html = tpl(data);
//     $('.chose-panel').show();
//     // $page.append(html);
//     $('.chose-panel')
//     $num = $('#good-num');
// }

function show() {
    $('.chose-panel').show();
    $('body').css('overflow', 'hidden');
    $num = $('#good-num');
}

//移除当前Panel
function remove() {
    $('.chose-panel').hide();
    $('body').css('overflow', 'auto');
}

$('.yoho-page').on('touchstart', '.chose-panel', function(e) {
    var $cur = $(e.target);

    if ($cur.closest('.main').length > 0) {
        return;
    }

    //点击蒙版消失
    remove();
}).on('touchstart', '#chose-btn-sure', function() {

    //确定
}).on('touchstart', '.block', function(e) {

    //尺寸颜色点选
    var $this = $(this),
        $that = $(e.target).closest('.chose-items'),
        numArray,
        index;

    if ($this.hasClass('chosed')) {
        $this.parent().find('.block').removeClass('chosed');
        $that.find('.num .left-num').html('');
    } else if ($this.hasClass('disable')) {
        $this.css('background-color', '#000');
        return;
    } else if (!$this.hasClass('chosed')) {
        $this.siblings('.chosed').removeClass('chosed');
        $this.addClass('chosed');
        index = $this.index();


        //根据颜色切换图片
        if ($this.closest('.block-list').hasClass('color-list')) {
            $('.chose-panel .basic-info').find('.thumb').addClass('hide').eq(index).removeClass('hide');
        }

        //剩余的商品数
        if ($that.find('.color-list ul>li').hasClass('chosed') && $that.find('.size-list ul>li').hasClass('chosed')) {
            numArray = $this.closest('.block-list').siblings(':first').find('.chosed').data('numstr').split('/');
            $that.find('.num .left-num').html('剩余' + numArray[index] + '件');
        } else {
            $that.find('.num .left-num').html('');
        }

        //点击切换
    }

}).on('touchstart', '.btn-minus', function() {
    var num = +$num.val();

    //若颜色和尺码没有被同时选中,则不能点击
    if ($('.block-list>ul>li.chosed').length < 2) {
        return;
    }

    if (num === 0) {
        return;
    }

    $num.val(num - 1);
}).on('touchstart', '.btn-plus', function() {
    var num = +$num.val();

    //若颜色和尺码没有被同时选中,则不能点击
    if ($('.block-list>ul>li.chosed').length < 2) {
        return;
    }

    //TODO:库存数验证
    $num.val(num + 1);
});


exports.show = show;