append.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. define(['$', 'template', 'product', 'order', 'cart', 'native', 'helper', 'user', 'api', 'config', 'address', 'IScroll'], function ($, template, product, order, cart ,native, helper, user, api, config, address, IScroll) {
  2. function back(event) {
  3. event.preventDefault();
  4. $(document).trigger('spa:navigate', {
  5. hash: 'myOrder/1',
  6. pushData: {
  7. dontNeedReload: true
  8. }
  9. });
  10. }
  11. var cachePageData = {
  12. extraCost: 0
  13. }; //page内部的数据传递
  14. return {
  15. title: '壹管家上门服务',
  16. body: '',
  17. init: function (pageData, dtd) {
  18. var $view = this;
  19. var $doc = $(document);
  20. //返回
  21. $.newTouch('.back-button', function (event) {
  22. back.call(this, event);
  23. }, $view);
  24. $view.on('tapBackButton', function (event) {
  25. back.call(this, event);
  26. });
  27. // 选择附加服务
  28. $.newTouch('.item-checkbox', function (event) {
  29. event.preventDefault();
  30. var select = $(this).data('select'),
  31. id = $(this).data('id'),
  32. index = $(this).parent().index(),
  33. price = $(this).data('price');
  34. if (!$(this).hasClass('checked')) {
  35. $(this).addClass('checked');
  36. cachePageData.extraCost += parseFloat(price);
  37. } else {
  38. $(this).removeClass('checked');
  39. cachePageData.extraCost -= parseFloat(price);
  40. }
  41. $('.order-cost', $view).html('¥' + cachePageData.extraCost);
  42. }, $view);
  43. // 提交订单
  44. $.newTouch('.btn-place', function (event) {
  45. event.preventDefault();
  46. if (!$('.extra-service-list', $view).find('a').hasClass('checked')) {
  47. $doc.trigger('spa:openpanel', ['simpleAlert', {
  48. message: '您还没有选择服务'
  49. }]);
  50. return;
  51. }
  52. $doc.trigger('spa:openloader');
  53. var extraSeivce = [];
  54. $('.extra-service-list', $view).find('a').each(function(index, el) {
  55. if ($(el).hasClass('checked')) {
  56. var id = $(el).attr('data-id');
  57. var param = {
  58. product_id: id,
  59. count: 1
  60. }
  61. extraSeivce.push(param);
  62. }
  63. });
  64. order.appendOrder(
  65. cachePageData.orderID,
  66. user.id,
  67. JSON.stringify(extraSeivce)
  68. , function(res){
  69. $doc.trigger('spa:closeloader');
  70. if (res.success) {
  71. user.appendOrder = res.data;
  72. $doc.trigger('spa:navigate', {
  73. hash: 'append-pay',
  74. pushData: {
  75. appendID: res.data.id,
  76. orderID: cachePageData.orderID
  77. }
  78. });
  79. }
  80. })
  81. }, $view);
  82. dtd.resolve();
  83. },
  84. beforeopen: function (pageData, dtd) {
  85. var $view = this;
  86. var $doc = $(document);
  87. var pushData = pageData.pushData;
  88. var appendType = pushData.appendType;
  89. var orderID = pushData.orderID;
  90. var petName = pushData.petName;
  91. var index = pushData["index"];
  92. cachePageData.appendType = appendType;
  93. cachePageData.orderID = orderID;
  94. cachePageData.petName = petName;
  95. cachePageData.extraCost = 0;
  96. var temp = [];
  97. var temparray = [];
  98. var appendOrder = user.orders[1].data[index].append_orders; // 追加订单的服务
  99. var order = user.orders[1].data[index].products; // 下单时的服务
  100. if (order.length) {
  101. order.forEach(function(el, index) {
  102. if (el.is_extra) {
  103. temp[el.id] = true;
  104. }
  105. });
  106. }
  107. if (appendOrder.length) {
  108. appendOrder.forEach(function(el, index) {
  109. el['products'].forEach(function(e, i) {
  110. temp[e.id] = true;
  111. })
  112. });
  113. }
  114. var extraService = product.getExtraServiceList(appendType, petName);
  115. extraService.forEach(function(e, i) {
  116. if (!temp[e.id]) {
  117. temparray.push(e);
  118. }
  119. });
  120. var extraService = product.getExtraServiceList(appendType, petName);
  121. // 设置订单优惠券
  122. var tmpData = {
  123. extraService: temparray,
  124. showNavBar: !config.isWX && !config.isChubao
  125. };
  126. var tpl = template('placeOrder/append', tmpData);
  127. $view.find('.spa-page-body').html(tpl);
  128. dtd.resolve();
  129. },
  130. afteropen: function(pageData, dtd){
  131. native.registerEvent(true);
  132. dtd.resolve();
  133. },
  134. afterclose: function(pageData){
  135. native.registerEvent(false);
  136. }
  137. }
  138. })