Authored by htoooth

add

@@ -124,7 +124,8 @@ @@ -124,7 +124,8 @@
124 </div> 124 </div>
125 {{/if}} 125 {{/if}}
126 126
127 - {{#if size}}<div class="description-material-tab info-block getnav" id="sizeMessage" data-id="1"> 127 + {{#if size.tbody}}<div class="description-material-tab info-block getnav" id="sizeMessage" data-id="1">
  128 +
128 <p class="block-title" id="sizeTitle"> 129 <p class="block-title" id="sizeTitle">
129 <span class="title-head"> <span class="title cur">尺码信息</span> </span> 130 <span class="title-head"> <span class="title cur">尺码信息</span> </span>
130 </p> 131 </p>
@@ -23,6 +23,7 @@ var bindEvent = $.Callbacks(); // eslint-disable-line @@ -23,6 +23,7 @@ var bindEvent = $.Callbacks(); // eslint-disable-line
23 var cartEvent = new EventProxy(); 23 var cartEvent = new EventProxy();
24 24
25 var Dialog = require('../common/dialog').Dialog; 25 var Dialog = require('../common/dialog').Dialog;
  26 +var Alert = require('../common/dialog').Alert;
26 var yasAtHead = require('./yas-head'); 27 var yasAtHead = require('./yas-head');
27 var yasAtBottom = require('./yas-bottom'); 28 var yasAtBottom = require('./yas-bottom');
28 var $main = $('.main'), 29 var $main = $('.main'),
@@ -83,21 +84,76 @@ function isEmpty(el) { @@ -83,21 +84,76 @@ function isEmpty(el) {
83 function showSellOut() { 84 function showSellOut() {
84 $shoppingCarBtn.addClass('disable') 85 $shoppingCarBtn.addClass('disable')
85 .find('i').html('&#xe61c;').end() 86 .find('i').html('&#xe61c;').end()
  87 + .data('gocart', 0)
86 .find('span').html('已售罄'); 88 .find('span').html('已售罄');
87 } 89 }
88 90
89 function showAddCart() { 91 function showAddCart() {
90 $shoppingCarBtn.removeClass('disable') 92 $shoppingCarBtn.removeClass('disable')
  93 + .data('gocart', 0)
91 .find('i').html('&#xe600;').end() 94 .find('i').html('&#xe600;').end()
92 .find('span').html('加入购物车'); 95 .find('span').html('加入购物车');
93 } 96 }
94 97
  98 +function showHasAddCart() {
  99 + $shoppingCarBtn.removeClass('disable')
  100 + .data('gocart', 1)
  101 + .find('i').html('&#xe600;').end()
  102 + .find('span').html('去购物车结算');
  103 +}
  104 +
95 cartEvent.on('selling', showAddCart); 105 cartEvent.on('selling', showAddCart);
96 cartEvent.on('sellout', showSellOut); 106 cartEvent.on('sellout', showSellOut);
  107 +cartEvent.on('gocart', showHasAddCart);
97 108
98 require('../plugins/slider'); 109 require('../plugins/slider');
99 require('../common/center-slider'); 110 require('../common/center-slider');
100 111
  112 +// 获取当前选择的商品数目
  113 +function getNum() {
  114 + return +$('#num').text();
  115 +}
  116 +
  117 +function getSku() {
  118 + return $('.size:not(.hide) li.focus').data('sku');
  119 +}
  120 +
  121 +function addCart() {
  122 + return $.ajax({
  123 + type: 'POST',
  124 + url: '/cart/index/add',
  125 + data: {
  126 + productSku: getSku(),
  127 + buyNumber: getNum()
  128 + }
  129 + }).then(function(data) {
  130 + var code = data.code;
  131 + var alert;
  132 +
  133 + if (code === 200) {
  134 + $('#type-chose').slideUp(SLIDETIME);
  135 + $('#balance').slideDown(SLIDETIME);
  136 +
  137 + $('#cart-num').text(data.data.goods_count); // 更新数目
  138 +
  139 + return $.Deferred().resolve().promise();
  140 + } else if (code === 500) {
  141 + if (deposit) {
  142 + alert = new Alert('定金预售商品只能在APP端购买');
  143 + alert.show();
  144 + }
  145 +
  146 + if (secKill) {
  147 + alert = new Alert('秒杀商品只能在APP端购买');
  148 + alert.show();
  149 + }
  150 + }
  151 +
  152 + return $.Deferred().reject().promise();
  153 + });
  154 +}
  155 +
  156 +
101 bindEvent.add(function() { 157 bindEvent.add(function() {
102 var $imgShow = $('#img-show'), 158 var $imgShow = $('#img-show'),
103 $thumbs = $('#thumbs > .thumb-wrap'); 159 $thumbs = $('#thumbs > .thumb-wrap');
@@ -128,8 +184,6 @@ bindEvent.add(function() { @@ -128,8 +184,6 @@ bindEvent.add(function() {
128 184
129 var brandDomain = $('.home').attr('href'); 185 var brandDomain = $('.home').attr('href');
130 186
131 - var Alert = require('../common/dialog').Alert;  
132 -  
133 /** 优惠券开始 **/ 187 /** 优惠券开始 **/
134 var $moreCoupon = $('.more-coupon'), 188 var $moreCoupon = $('.more-coupon'),
135 $couponItem = $('.coupon-item'); 189 $couponItem = $('.coupon-item');
@@ -235,10 +289,6 @@ bindEvent.add(function() { @@ -235,10 +289,6 @@ bindEvent.add(function() {
235 289
236 /** 优惠券结束 **/ 290 /** 优惠券结束 **/
237 291
238 - function getSku() {  
239 - return $('.size:not(.hide) li.focus').data('sku');  
240 - }  
241 -  
242 function imgShow(src) { 292 function imgShow(src) {
243 $imgShow.attr('src', src); 293 $imgShow.attr('src', src);
244 } 294 }
@@ -328,11 +378,6 @@ bindEvent.add(function() { @@ -328,11 +378,6 @@ bindEvent.add(function() {
328 } 378 }
329 }); 379 });
330 380
331 - // 获取当前选择的商品数目  
332 - function getNum() {  
333 - return +$num.text();  
334 - }  
335 -  
336 // 是否能:量贩购买,量贩小于库存才能购买 381 // 是否能:量贩购买,量贩小于库存才能购买
337 function canBundleBuy() { 382 function canBundleBuy() {
338 return goodsBaseNum < maxStock; 383 return goodsBaseNum < maxStock;
@@ -407,9 +452,11 @@ bindEvent.add(function() { @@ -407,9 +452,11 @@ bindEvent.add(function() {
407 if (sellout()) { 452 if (sellout()) {
408 $itemBuy.addClass('hide'); 453 $itemBuy.addClass('hide');
409 $soldOut.removeClass('hide'); 454 $soldOut.removeClass('hide');
  455 + cartEvent.emit('sellout');
410 } else { 456 } else {
411 $itemBuy.removeClass('hide'); 457 $itemBuy.removeClass('hide');
412 $soldOut.addClass('hide'); 458 $soldOut.addClass('hide');
  459 + cartEvent.emit('selling');
413 } 460 }
414 461
415 // 尺码选中的状态 462 // 尺码选中的状态
@@ -417,9 +464,11 @@ bindEvent.add(function() { @@ -417,9 +464,11 @@ bindEvent.add(function() {
417 if (canBundleBuy()) { 464 if (canBundleBuy()) {
418 $itemBuy.removeClass('hide'); 465 $itemBuy.removeClass('hide');
419 $soldOut.addClass('hide'); 466 $soldOut.addClass('hide');
  467 + cartEvent.emit('gocart');
420 } else { 468 } else {
421 $itemBuy.addClass('hide'); 469 $itemBuy.addClass('hide');
422 $soldOut.removeClass('hide'); 470 $soldOut.removeClass('hide');
  471 + cartEvent.emit('sellout');
423 } 472 }
424 } 473 }
425 474
@@ -431,10 +480,17 @@ bindEvent.add(function() { @@ -431,10 +480,17 @@ bindEvent.add(function() {
431 if (maxStock === 0 || ($color && ~~$color.data('total') === 0)) { 480 if (maxStock === 0 || ($color && ~~$color.data('total') === 0)) {
432 $itemBuy.addClass('hide'); // 隐藏加入购物车、即将开售、立即购买等相同位置的按钮 481 $itemBuy.addClass('hide'); // 隐藏加入购物车、即将开售、立即购买等相同位置的按钮
433 $soldOut.removeClass('hide'); 482 $soldOut.removeClass('hide');
  483 + cartEvent.emit('sellout');
434 } else { 484 } else {
435 // 包括默认的-1情况下 485 // 包括默认的-1情况下
436 $itemBuy.removeClass('hide'); 486 $itemBuy.removeClass('hide');
437 $soldOut.addClass('hide'); 487 $soldOut.addClass('hide');
  488 +
  489 + if (maxStock === -1) {
  490 + cartEvent.emit('selling');
  491 + } else {
  492 + cartEvent.emit('gocart');
  493 + }
438 } 494 }
439 } 495 }
440 496
@@ -773,34 +829,7 @@ bindEvent.add(function() { @@ -773,34 +829,7 @@ bindEvent.add(function() {
773 PRD_SKU: getSku() 829 PRD_SKU: getSku()
774 }); 830 });
775 831
776 - $.ajax({  
777 - type: 'POST',  
778 - url: '/cart/index/add',  
779 - data: {  
780 - productSku: getSku(),  
781 - buyNumber: getNum()  
782 - }  
783 - }).then(function(data) {  
784 - var code = data.code;  
785 - var alert;  
786 -  
787 - if (code === 200) {  
788 - $('#type-chose').slideUp(SLIDETIME);  
789 - $('#balance').slideDown(SLIDETIME);  
790 -  
791 - $('#cart-num').text(data.data.goods_count); // 更新数目  
792 - } else if (code === 500) {  
793 - if (deposit) {  
794 - alert = new Alert('定金预售商品只能在APP端购买');  
795 - alert.show();  
796 - }  
797 -  
798 - if (secKill) {  
799 - alert = new Alert('秒杀商品只能在APP端购买');  
800 - alert.show();  
801 - }  
802 - }  
803 - }); 832 + addCart();
804 }); 833 });
805 834
806 // 收藏 835 // 收藏
@@ -1832,8 +1861,23 @@ $('.shoppingCar').on('click', '.option', function(e) { @@ -1832,8 +1861,23 @@ $('.shoppingCar').on('click', '.option', function(e) {
1832 }); 1861 });
1833 1862
1834 $('.shoppingCar-btn').on('click', function() { 1863 $('.shoppingCar-btn').on('click', function() {
  1864 + var $this = $(this);
  1865 +
  1866 + if ($this.hasClass('disable')) {
  1867 + return;
  1868 + }
  1869 +
  1870 + if ($this.data('gocart') === 1) {
  1871 + addCart().then(function() {
  1872 + window.jumpUrl($('.go-cart').attr('href'));
  1873 + });
  1874 +
  1875 + return;
  1876 + }
  1877 +
1835 var $addToCart = $('#add-to-cart'); 1878 var $addToCart = $('#add-to-cart');
1836 var sc = $(document); 1879 var sc = $(document);
  1880 +
1837 sc.scrollTop(200); 1881 sc.scrollTop(200);
1838 1882
1839 if (maxStock === -1) { 1883 if (maxStock === -1) {