addressList.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. define(['$', 'template', 'native', 'config', 'address', 'user', 'api', 'order'], function ($, template, native, config, address, user, api, order) {
  2. /* 返回上一级 */
  3. function back(event, backHash) {
  4. event.preventDefault();
  5. $(document).trigger('spa:navigate', {
  6. hash: backHash
  7. });
  8. }
  9. var hash;
  10. var cachePageData = {}; //page内部的数据传递
  11. return {
  12. title: '壹管家上门服务',
  13. body: '',
  14. init: function (pageData, dtd) {
  15. var $view = this;
  16. var $doc = $(document);
  17. /* 三个返回操作 */
  18. $.newTouch('.back-button', function (event) {
  19. back.call(this, event, hash);
  20. }, $view);
  21. $view.on('tapBackButton', function (event) {
  22. back.call(this, event, hash);
  23. });
  24. $view.on('swipeRight', function (event) {
  25. back.call(this, event, hash);
  26. });
  27. /* 点击一条地址 */
  28. $.newTouch('.address-item', function (event) {
  29. var addressID = $(this).data('id'),
  30. addressIndex = $(this).data('index');
  31. /* 检查用户的地址是否在服务站内 */
  32. api.checkAddress({
  33. address_id: addressID,
  34. user_id: user.id
  35. }, function (res) {
  36. if (res.success) {
  37. /* 如果在,应该返回placeOrder页面,把数据更新的回调写在placeOrder */
  38. $view.trigger('tapBackButton');
  39. if (pageData.callback && $.isFunction(pageData.callback.onSelect)) {
  40. pageData.callback.onSelect(address.list[addressIndex], res.data.station);
  41. }
  42. } else {
  43. /* 如果不在,弹出一个对话框。 */
  44. $doc.trigger('spa:openpanel', ['simpleAlert', {
  45. message: res.message
  46. }]);
  47. }
  48. });
  49. }, $view);
  50. // 新增地址
  51. $.newTouch('.btn-add', function (event) {
  52. $doc.trigger('spa:navigate', {
  53. hash: 'addressAdd',
  54. pushData: {
  55. needReload: true
  56. },
  57. callback: cachePageData.callback
  58. });
  59. }, $view);
  60. // 修改地址
  61. $.newTouch('.btn-edit', function (event) {
  62. var $addressItem = $(this),
  63. addressID = $(this).data('id'),
  64. addressIndex = $(this).data('index');
  65. $doc.trigger('spa:navigate', {
  66. hash: 'addressDetail',
  67. pushData: {
  68. addressIndex: addressIndex,
  69. addressID: addressID,
  70. needReload: true
  71. },
  72. callback: {
  73. onSelect: function (addressID) {
  74. }
  75. }
  76. });
  77. }, $view);
  78. dtd.resolve();
  79. },
  80. beforeopen: function (pageData, dtd) {
  81. var $view = this;
  82. var $doc = $(document);
  83. var pushData = pageData.pushData;
  84. hash = pushData.backHash;
  85. if (hash !== 'mine') {
  86. hash = 'placeOrder';
  87. }
  88. cachePageData.needReload = pushData.hasOwnProperty('needReload') ? pushData.needReload : false;
  89. // if (cachePageData.needReload) {
  90. cachePageData.callback = pageData.callback;
  91. address.getList({
  92. request_from: 'weixin',
  93. user_id: user.id
  94. }, function (res) {
  95. if (res.success) {
  96. var tpl = template('address/list/index', {
  97. showNavBar: !config.isWX && !config.isChubao,
  98. addText: '添加地址',
  99. addresses: address.list
  100. });
  101. $('.spa-page-body', $view).html(tpl);
  102. if (cachePageData.scroll) {
  103. cachePageData.scroll.destroy();
  104. cachePageData.scroll = null;
  105. }
  106. setTimeout(function () {
  107. cachePageData.scroll = new IScroll('#addressListScroll');
  108. }, 10);
  109. }
  110. ;
  111. });
  112. // }
  113. dtd.resolve();
  114. },
  115. afteropen: function (pageData, dtd) {
  116. dtd.resolve();
  117. }
  118. };
  119. })