gift-advance.js 2.04 KB
/**
 * 赠品/加价购
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/23
 */

var $ = require('yoho-jquery'),
    ellipsis = require('yoho-mlellipsis'),
    lazyLoad = require('yoho-jquery-lazyload'),
    Hammer = require('yoho-hammer'),
    tip = require('../plugin/tip'),
    loading = require('../plugin/loading'),
    chosePanel = require('./chose-panel');

var $page = $('.gift-advance-page'),
    queryString = $.queryString();

require('../common');

lazyLoad($('.lazy'));
ellipsis.init();

function getProductInfo(skn, promotionId) {
    loading.showLoadingMask();
    $.post('/cart/index/new/giftinfo', {
        skn: skn,
        promotionId: promotionId
    }).then(function(data) {

        if (!data) {
            tip.show('网络错误');
            return;
        }
        let html = require('common/chose-panel.hbs')(data);

        if (queryString.edit) {
            // 删掉页面上原有的pannel
            chosePanel.remove();

            $(html).appendTo('#chose-panel');


            chosePanel.init();
            chosePanel.setEditModeWithSknId(skn, true, true);
            chosePanel.disableNumEdit();
            chosePanel.show('', function() {
                window.location.href = '/cart/index/index?cartType=' + queryString.cartType;
            });
        } else {
            chosePanel.show(html, function() {
                window.location.href = '/cart/index/index?cartType=' + queryString.cartType;
            });
        }

    }, function() {
        tip.show('网络错误');
    }).always(function() {
        loading.hideLoadingMask();
    });
}

$page.find('.chose').each(function(i, elem) {
    var choseHammer = new Hammer(elem);

    choseHammer.on('tap', function(e) {
        var $this = $(e.target),
            id = $this.closest('.gift-advance-good').data('id'),
            promotionId = $this.closest('.advance-block').data('promotion-id');

        getProductInfo(id, promotionId);
    });
});

setTimeout(function() {
    $('.gift-advance-good .name').each(function() {
        this.mlellipsis(2);
    });
}, 0);