fav.js 2.03 KB
/**
 *  商品详情咨询页  --点赞和帮助功能
 * @author: Lynnic
 * @date: 2015/12/09
 */

let $ = require('yoho-jquery'),
    Hammer = require('yoho-hammer'),
    tip = require('js/plugin/tip');

let goodsConsultsEle = $('#goods-consults')[0],
    goodsConsultsHammer = goodsConsultsEle && new Hammer(goodsConsultsEle);

let total;

function showCountPlus($el) {
    let $count = $el.find('.animate-count');

    $count.css('display', 'inline');
    $count.animate({
        opacity: 0.25,
        fontSize: '0.7rem',
        right: '-=5'
    }, 300, function() {
        $count.css('display', 'none');
    });
}

(function() {
    let queryStr = window.location.search.substring(1);

    total = queryStr.split('&')[1] ? queryStr.split('&')[1].split('=')[1] : null;
}());

if (goodsConsultsHammer) {

    goodsConsultsHammer.on('tap', function(e) {

        let $this = $(e.target).closest('li'),
            id = $this.closest('.consult-item').data('id'),
            count = $this.find('.count').html() - 0,
            url;

        if (!$this.hasClass('highlight')) {

            if ($this.hasClass('fav')) {
                url = '/product/detail/consultupvote';
            } else if ($this.hasClass('useful')) {
                url = '/product/detail/consultuseful';
            } else {
                return;
            }

            $.ajax({
                method: 'post',
                url: url,
                data: {
                    id: id,
                    productId: window.queryString.product_id,
                    total: total
                }
            }).done(function(data) {
                if (data.code === 200) {
                    showCountPlus($this);
                    $this.addClass('highlight');
                    $this.find('.count').html(count + 1);
                } else if (data.code === 401) {
                    location.href = data.data;// 未登录跳转登录页
                }
            }).fail(function() {
                tip.show('网络断开连接了~');
            });

        }
    });
}