userCart.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. mui.init();
  2. /**
  3. *初始化、添加监听
  4. */
  5. var list=[];
  6. mui.ready(function(){
  7. getList();
  8. mobile.getCartNum();
  9. $('.mui-bar-tab').on('tap', 'a', function(e) {
  10. location.href=$(this).attr("href");
  11. });
  12. //跳转
  13. $('#segmentedControlContents').on('tap','li',function(){
  14. location.href=base+'/mobile/productDetail.jsp?id='+$(this).attr('data-id');
  15. });
  16. //修改数量
  17. $('.mui-table-view').on('tap','.mui-btn-numbox-minus',function(e){
  18. e.stopPropagation();
  19. var id = list[$(this).parents('li').index()].cart_id;
  20. var qty = $(this).parents('li').find('.mui-input-numbox').val();
  21. updateNum(id,qty);
  22. });
  23. //修改数量
  24. $('.mui-table-view').on('tap','.mui-btn-numbox-plus',function(e){
  25. e.stopPropagation();
  26. var id = list[$(this).parents('li').index()].cart_id;
  27. var qty = $(this).parents('li').find('.mui-input-numbox').val();
  28. updateNum(id,qty);
  29. });
  30. //选择
  31. $('.mui-table-view').on('change','input[name="product"]',function(e){
  32. changeNum();
  33. });
  34. //全选
  35. $('input[name="all"]').on('change',function(e){
  36. var list = $('input[name="product"]');
  37. if(e.target.checked){
  38. list.each(function(){
  39. this.checked = true;
  40. });
  41. changeNum();
  42. }else{
  43. list.each(function(){
  44. this.checked = false;
  45. });
  46. changeNum();
  47. }
  48. });
  49. //编辑
  50. $('.mui-btn-link').on('tap',function(){
  51. if($(this).html()=='编辑'){
  52. $(this).html('完成');
  53. $('#toOrder').html('删除');
  54. $('#toOrder').removeClass('main-bgcolor');
  55. $('#toOrder').addClass('bgcolor4');
  56. $('.item.mui-text-right.pr15').hide();
  57. }else{
  58. $(this).html('编辑');
  59. $('#toOrder').html('结算(<span id="sumNum">0</span>)');
  60. $('#toOrder').removeClass('bgcolor4');
  61. $('#toOrder').addClass('main-bgcolor');
  62. $('.item.mui-text-right.pr15').show();
  63. changeNum();
  64. }
  65. });
  66. //结算
  67. $('.mui-bar-tab').on('tap','#toOrder.main-bgcolor',function(){
  68. var ids=[];
  69. $('input[name="product"]').each(function(){
  70. if(this.checked){
  71. ids.push(list[$(this).parents('li').index()].id);
  72. }
  73. });
  74. if(ids.length>0){
  75. location.href=base+'/mobile/userOrderConfirm.jsp?productId='+ids.join(',');
  76. }else{
  77. layer.open({content:'请选择商品',time:3});
  78. }
  79. });
  80. //结算
  81. $('.mui-bar-tab').on('tap','#toOrder.bgcolor4',function(){
  82. var ids=[];
  83. $('input[name="product"]').each(function(){
  84. if(this.checked){
  85. ids.push(list[$(this).parents('li').index()].cart_id);
  86. }
  87. });
  88. if(ids.length>0){
  89. mobile.ajaxPost(base+'/userCart/delete',{id:ids.join(',')},function(json){
  90. getList();
  91. if(json.data!=0){
  92. $('.mui-bar-tab .icon-gouwuche .mui-badge').html(json.data);
  93. $('.mui-bar-tab .icon-gouwuche .mui-badge').removeClass('mui-hidden');
  94. }else{
  95. $('.mui-bar-tab .icon-gouwuche .mui-badge').addClass('mui-hidden');
  96. }
  97. });
  98. }else{
  99. layer.open({content:'请选择商品',time:3});
  100. }
  101. });
  102. });
  103. /**
  104. *获取列表
  105. */
  106. function getList(){
  107. mobile.ajaxPost(base+'/userCart/getList',{},function(json){
  108. $('.mui-table-view').empty();
  109. if(json.data&&json.data.length>0){
  110. list = json.data;
  111. var html= [];
  112. $.each(json.data,function(id,item){
  113. html.push('<li class="mui-table-view-cell items items-top">');
  114. html.push('<div class="mui-checkbox item-cb pr10">');
  115. html.push('<input name="product" type="checkbox">');
  116. html.push('</div>');
  117. html.push('<div class="product-img">');
  118. html.push('<img src="'+imgUrl+item.product_main_img+'">');
  119. html.push('</div>');
  120. html.push('<div class="mui-media-body item pl10">');
  121. html.push('<p class="product-title">'+item.product_name+'</p>');
  122. html.push('<p class="product-price lh30">');
  123. html.push('<em class="fs16"><b>¥</b>'+item.product_price+'</em>');
  124. html.push('<span class="mui-numbox mui-pull-right" data-numbox-min="1">');
  125. html.push('<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>');
  126. html.push('<input class="mui-input-numbox" type="number" readonly value="'+item.product_qty+'">');
  127. html.push('<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>');
  128. html.push('</span>');
  129. html.push('</p>');
  130. html.push('</div>');
  131. html.push('</li>');
  132. });
  133. $('.mui-table-view').html(html.join(''));
  134. mui('.mui-numbox').numbox();
  135. document.querySelector('input[name="all"]').checked=true;
  136. $('input[name="all"]').trigger("change");
  137. }else{
  138. mobile.tip('.mui-content','暂无商品');
  139. $('.mui-btn-link').hide();
  140. $('#toOrder').parents('.mui-bar-tab').hide();
  141. }
  142. changeNum();
  143. });
  144. }
  145. /**
  146. *修改数量
  147. */
  148. function updateNum(id,qty){
  149. mobile.ajaxPost(base+'/userCart/updateNum',{id:id,qty:qty},function(json){
  150. if(json.data){
  151. if(json.data!=0){
  152. $('.mui-bar-tab .icon-gouwuche .mui-badge').html(json.data);
  153. $('.mui-bar-tab .icon-gouwuche .mui-badge').removeClass('mui-hidden');
  154. }else{
  155. $('.mui-bar-tab .icon-gouwuche .mui-badge').addClass('mui-hidden');
  156. }
  157. changeNum();
  158. }
  159. });
  160. }
  161. function changeNum(){
  162. var sumPrice=0;
  163. var sumNum=0;
  164. var flag=false;
  165. $('input[name="product"]').each(function(){
  166. if(this.checked){
  167. var num = parseInt($(this).parents('li').find('.mui-input-numbox').val());
  168. var price = parseFloat(list[$(this).parents('li').index()].product_price);
  169. sumNum+=num;
  170. sumPrice+=num*price;
  171. flag=true;
  172. }else{
  173. flag=false;
  174. }
  175. });
  176. $('#sumNum').html(sumNum);
  177. $('.mui-bar-tab .product-price').html('<em class="fs16"><b>¥</b>'+mobile.toDecimal(sumPrice)+'</em>');
  178. var all=document.querySelector('input[name="all"]');
  179. if(flag){
  180. all.checked = true;
  181. }else{
  182. all.checked = false;
  183. }
  184. }