Showing
2 changed files
with
85 additions
and
40 deletions
@@ -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('').end() | 86 | .find('i').html('').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('').end() | 94 | .find('i').html('').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('').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) { |
-
Please register or login to post a comment