like.js 2.2 KB
/**
 *  商品详情 --添加收藏
 * @author: Lynnic
 * @date: 2015/11/24
 */


var $ = require('jquery'),
     Hammer = require('yoho.hammer'),
     tip = require('../../plugin/tip'),
     chosePanel = require('../../cart/chose-panel');

var likeEle = document.getElementById('likeBtn'),
    likeHammer = likeEle && new Hammer(likeEle);

var addToCartEle = document.getElementById('addtoCart'),
    addToCartHammer = addToCartEle && new Hammer(addToCartEle),
    productId = $('#productId').val();

if (likeHammer) {
    likeHammer.on('tap', function(e) {
        var opt,
            favorite;

        var $this = $(e.target);

        if ($this.hasClass('liked')) {
            opt = 'cancel';
            favorite = 0;
        } else {
            opt = 'ok';
            favorite = 1;
        }

        $.ajax({
            type: 'POST',
            url: '/product/opt/favoriteProduct',
            data: {
                id: productId,
                opt: opt
            },
            success: function(data) {
                if (data.code === 200) {
                    $this.toggleClass('liked');

                    if ('cancel' === opt) {
                        tip.show('取消收藏成功');
                    } else if ('ok' === opt) {
                        tip.show('收藏成功');
                    }
                } else if (data.code === 400) {
                    location.href = data.data;//未登录跳转登录页
                } else {
                    tip.show(data.message);
                }
            },
            error: function() {
                tip.show('网络断开连接了~');
            }
        });

        // 统计代码:用于统计用户加入或取消商品收藏的动作
        if (window._yas) {
            window._yas.sendCustomInfo({
                pd: productId,
                fa: favorite
            }, true);
        }
    });
}

if (addToCartHammer) {
    addToCartHammer.on('tap', function(e) {
        chosePanel.show();

        //统计代码:用于统计用户加入购物车的动作
        if (window._yas) {
            window._yas.sendCustomInfo({
                 pd: productId,
                 by: 1
             }, true);
        }

    });
}