addressAdd.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. define(['$', 'template', 'native', 'config', 'address', 'api', 'user'], function ($, template, native, config, address, api, user) {
  2. function back(event) {
  3. event.preventDefault();
  4. $(document).trigger('spa:navigate', {
  5. hash: 'addressList'
  6. });
  7. }
  8. var cachePageData = {}; //page内部的数据传递
  9. return {
  10. title: '地址详情',
  11. body: '',
  12. init: function (pageData, dtd) {
  13. var $view = this;
  14. var $doc = $(document);
  15. var pushData = pageData.pushData;
  16. //返回
  17. $.newTouch('.back-button', function (event) {
  18. back.call(this, event);
  19. }, $view);
  20. $view.on('tapBackButton', function (event) {
  21. back.call(this, event);
  22. });
  23. $view.on('swipeRight', function (event) {
  24. back.call(this, event);
  25. });
  26. // 定位
  27. $.newTouch('.select-poi', function (event) {
  28. var searchText = $(this).data('poi-name');
  29. var searchProvince = $(this).data('province');
  30. $doc.trigger('spa:navigate', {
  31. hash: 'addressPoisiton',
  32. pushData: {
  33. needReload: true,
  34. searchText: '',
  35. searchProvince: '',
  36. backHash: 'addressAdd'
  37. },
  38. callback: {
  39. onSelect: function (name, place, address_position, address_detail) {
  40. $('.select-poi', $view).text(name);
  41. $('.select-poi', $view).data('poi-name', address_detail.poi.name);
  42. $('.select-poi', $view).data('province', address_detail.province);
  43. cachePageData.address_position = address_position;
  44. cachePageData.address_detail = address_detail;
  45. }
  46. }
  47. });
  48. }, $view);
  49. //确认地址
  50. $.newTouch('.btn-save', function (event) {
  51. event.preventDefault();
  52. var name = $('.address-name', $view).val(),
  53. mobile = $('.address-mobile', $view).val(),
  54. detail = $('.address-detail', $view).val();
  55. if (name == '') {
  56. $doc.trigger('spa:openpanel', ['simpleAlert', {
  57. message: '请输入您的名字'
  58. }]);
  59. return;
  60. }
  61. if (mobile.length !== 11) {
  62. $doc.trigger('spa:openpanel', ['simpleAlert', {
  63. message: '请输入正确的手机号'
  64. }]);
  65. return;
  66. }
  67. if (detail == '') {
  68. $doc.trigger('spa:openpanel', ['simpleAlert', {
  69. message: '请输入您的详细地址'
  70. }]);
  71. return;
  72. }
  73. if (!cachePageData.address_position || !cachePageData.address_detail) {
  74. $doc.trigger('spa:openpanel', ['simpleAlert', {
  75. message: '请定位您的小区或者街道'
  76. }]);
  77. return;
  78. }
  79. // 更新地址
  80. cachePageData.address_detail.detail = detail;
  81. var address_position = JSON.stringify(cachePageData.address_position);
  82. var addressStr = JSON.stringify(cachePageData.address_detail);
  83. var param = {
  84. request_from: 'weixin',
  85. name: name,
  86. mobile: mobile,
  87. user_id: user.id,
  88. address_position: address_position,
  89. address: addressStr
  90. };
  91. address.addAddress(param, function (res) {
  92. $doc.trigger('spa:closeloader');
  93. if (res.success) {
  94. address.getList({
  95. request_from: 'weixin',
  96. user_id: user.id,
  97. }, function (resA) {
  98. if (resA.success) {
  99. $doc.trigger('spa:navigate', {
  100. hash: 'addressList',
  101. pushData: {
  102. needReload: true
  103. },
  104. callback: cachePageData.callback
  105. });
  106. }
  107. });
  108. } else {
  109. $doc.trigger('spa:openpanel', ['simpleAlert', {
  110. message: res.message
  111. }]);
  112. }
  113. });
  114. /*if (cachePageData.callback && $.isFunction(cachePageData.callback.onSelect)) {
  115. cachePageData.callback.onSelect(cachePageData.addressID);
  116. }*/
  117. }, $view);
  118. dtd.resolve();
  119. },
  120. beforeopen: function (pageData, dtd) {
  121. var $view = this;
  122. var $doc = $(document);
  123. var pushData = pageData.pushData;
  124. cachePageData.callback = pageData.callback;
  125. cachePageData.needReload = pushData.needReload;
  126. if (cachePageData.needReload) {
  127. pushData.needReload = false;
  128. var tpl = template('address/detail/index', {
  129. showNavBar: !config.isWX && !config.isChubao,
  130. title: '新增地址',
  131. add: true
  132. });
  133. $('.spa-page-body', $view).html(tpl);
  134. if (cachePageData.scroll) {
  135. cachePageData.scroll.destroy();
  136. cachePageData.scroll = null;
  137. }
  138. setTimeout(function () {
  139. cachePageData.scroll = new IScroll('#addressListScroll');
  140. }, 10);
  141. }
  142. dtd.resolve();
  143. }
  144. };
  145. })