order-ensure.js 2.43 KB
/**
 * 订单确认
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/11/12
 */

var $ = require('jquery'),
    lazyLoad = require('yoho.lazyload'),
    Hammer = require('yoho.hammer'),
    orderInfo = require('./order-info').orderInfo;

var dispatchModeHammer,
    dispatchTimeHammer,
    $invoice = $('.invoice');

lazyLoad();

function dispacthTapEvt(e) {
    var $cur = $(e.target).closest('li');

    if ($cur.length === 0 || $cur.hasClass('chosed')) {
        return;
    }

    $cur.siblings('li.chosed').removeClass('chosed');
    $cur.addClass('chosed');
}

dispatchModeHammer = new Hammer(document.getElementsByClassName('dispatch-mode')[0]);
dispatchModeHammer.on('tap', dispacthTapEvt);

dispatchTimeHammer = new Hammer(document.getElementsByClassName('dispatch-time')[0]);
dispatchTimeHammer.on('tap', dispacthTapEvt);

$('.checkbox').on('touchstart', function() {
    var $this = $(this);

    if ($this.hasClass('icon-cb-checked')) {
        $this.removeClass('icon-cb-checked').addClass('icon-checkbox');
        return;
    }
    if ($this.hasClass('icon-checkbox')) {
        $this.removeClass('icon-checkbox').addClass('icon-cb-checked');
    }
});

$('.invoice').on('touchend', '.checkbox', function() {
    var $this = $(this);

    if ($this.hasClass('icon-cb-checked')) {
        $('.invoice').addClass('focus');
    }
    if ($this.hasClass('icon-checkbox')) {
        $('.invoice').removeClass('focus');
    }
});

// 界面点击,状态存 cookie
$('.dispatch-mode').on('touchend', 'li', function() {
    orderInfo('deliveryId', $(this).data('id'));
});

$('.dispatch-time').on('touchend', 'li', function() {
    orderInfo('deliveryTimeId', $(this).data('id'));
});

$('.coin').on('touchend', function() {
    var $this = $(this);

    if ($this.find('.checkbox').hasClass('icon-cb-checked')) {
        orderInfo('yohoCoin', $this.data('yoho-coin'));
    } else {
        orderInfo('yohoCoin', 0);
    }
});

$invoice.on('touchend', function() {
    var $this = $(this);

    orderInfo('invoice', $this.find('.checkbox').hasClass('icon-cb-checked'));
});

$invoice.find('[name="invoice-title"]').on('blur', function() {
    orderInfo('invoiceText', $(this).val());
}).end().find('.invoice-type').on('change', function() {
    orderInfo('invoiceType', $(this).val());
});

$('#msg').find('input').on('blur', function() {
    orderInfo('msg', $(this).val());
});

$('.pay-mode').on('click', 'li', function() {
    orderInfo('paymentTypeId', $(this).data('pay-id'));
});