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

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

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

 var total;

 function showCountPlus($el) {
     var $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() {
     var queryStr = window.location.search.substring(1);

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

 if (goodsConsultsHammer) {

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

         var $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('网络断开连接了~');
             });

         }
     });
 }