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


var $ = require('jquery'),
     Hammer = require('yoho.hammer'),
     tip = require('../../plugin/tip');

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);
                }

                // 统计代码:用于统计用户加入或取消商品收藏的动作
                if (window._yas) {
                    window._yas.sendCustomInfo({
                        pd: productId,
                        fa: favorite
                    });
                }
            },
            error: function() {
                tip.show('网络断开连接了~');
            }
        });
    });
}

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

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