mine.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. define(['$', 'template', 'IScroll', 'user', 'native', 'config', 'address', 'product', 'review'], function ($, template, IScroll, user, native, config, address, product, review) {
  2. function back(event) {
  3. event.preventDefault();
  4. $(document).trigger('spa:navigate', {
  5. hash: '',
  6. pushData: {
  7. dontNeedReload: true
  8. }
  9. });
  10. }
  11. /*
  12. * 模块结构:5部分。
  13. * title:题目。
  14. * content:不知道是什么,似乎从没用过。
  15. * 以下可以当作生命周期回调,虽然并不清楚是什么时候回调的……
  16. * init:根据上一个页面传来的pageData初始化本页数据,生成页面,绑定事件。
  17. * beforeopen:接收上一个页面传来的数据、有需要的话重置数据
  18. * afteropen:做一些网络请求。
  19. * beforeclose:
  20. */
  21. return {
  22. title: '我的',
  23. body: '',
  24. init: function (pageData, dtd) {
  25. /* this是什么? */
  26. var $view = this;
  27. var $doc = $(document);
  28. /* 定义按钮事件。
  29. * 为什么不是$(selector).onclick(function)呢?
  30. */
  31. // 返回
  32. $view.on('swipeRight', function (event) {
  33. back.call(this, event);
  34. });
  35. $.newTouch('.back-button', function (event) {
  36. back.call(this, event);
  37. }, $view);
  38. $view.on('tapBackButton', function (event) {
  39. back.call(this, event);
  40. });
  41. // 我的订单
  42. $.newTouch('.btn-my-order', function (event) {
  43. event.preventDefault();
  44. $doc.trigger('spa:navigate', {
  45. hash: 'myOrder/1',
  46. pushData: {
  47. needReload: true,
  48. backHash:'mine'
  49. }
  50. });
  51. }, $view);
  52. // 我的余额
  53. $.newTouch('.btn-recharge', function (event) {
  54. event.preventDefault();
  55. $doc.trigger('spa:navigate', {
  56. hash: 'balanceLog',
  57. pushData: {
  58. needReload: true,
  59. backHash: 'mine'
  60. }
  61. });
  62. }, $view);
  63. // 常用地址
  64. $.newTouch('.btn-address-list', function (event) {
  65. event.preventDefault();
  66. $doc.trigger('spa:navigate', {
  67. hash: 'addressList',
  68. pushData: {
  69. backHash: 'mine'
  70. },
  71. callback: {
  72. /* 在addressList页面挑选之后,回到这个页面时执行的回调。 */
  73. onSelect: function (address, station) {
  74. var addressStr = '';
  75. if (address.address.poi) {
  76. addressStr = address.address.city + address.address.area + address.address.poi.name + address.address.detail
  77. } else {
  78. addressStr = address.address.province + address.address.city + address.address.area + address.address.detail
  79. }
  80. $('#default-address', $view).text(addressStr);
  81. }
  82. }
  83. });
  84. }, $view);
  85. // // 充值卡
  86. // $.newTouch('.btn-recharge', function (event) {
  87. // event.preventDefault();
  88. // $doc.trigger('spa:navigate', {
  89. // hash: 'recharge',
  90. // pushData: {
  91. // needReload: true,
  92. // backHash:'mine'
  93. //
  94. // }
  95. // });
  96. // }, $view);
  97. // 代金券
  98. $.newTouch('.btn-coupon', function (event) {
  99. event.preventDefault();
  100. user.checkLogin(function () {
  101. $doc.trigger('spa:navigate', {
  102. hash: 'myCoupon'
  103. });
  104. });
  105. }, $view);
  106. // 帮助中心
  107. $.newTouch('.btn-helper', function () {
  108. event.preventDefault();
  109. $doc.trigger('spa:navigate', {
  110. hash: 'help'
  111. });
  112. }, $view);
  113. // 关于
  114. $.newTouch('.btn-about', function () {
  115. event.preventDefault();
  116. $doc.trigger('spa:navigate', {
  117. hash: 'about'
  118. });
  119. }, $view);
  120. //首页
  121. $.newTouch('.btn-action-my-order', function () {
  122. event.preventDefault();
  123. $doc.trigger('spa:navigate', {
  124. hash: ''
  125. });
  126. }, $view);
  127. // im
  128. $.newTouch('.btn-action-logo', function (event) {
  129. event.preventDefault();
  130. window.location.href = '/index.php?r=o2o/advisory/im';
  131. }, $view);
  132. /* 定义按钮事件结束。*/
  133. /* 不知道什么意思。*/
  134. dtd.resolve();
  135. },
  136. beforeopen: function (pageData, dtd) {
  137. dtd.resolve();
  138. },
  139. afteropen: function (pageData, dtd) {
  140. var $view = this;
  141. var $doc = $(document);
  142. if (pageData.pushData && pageData.pushData.needReset) {
  143. var addressStr = '';
  144. var defaultAddress = address.defaultAddress;
  145. if (defaultAddress && defaultAddress.address && defaultAddress.address.poi) {
  146. addressStr = defaultAddress.address.city + defaultAddress.address.area + defaultAddress.address.poi.name + defaultAddress.address.detail
  147. } else if (defaultAddress && defaultAddress.address) {
  148. addressStr = defaultAddress.address.province + defaultAddress.address.city + defaultAddress.address.area + defaultAddress.address.detail
  149. }
  150. var tpl = template('mine/index', {
  151. showNavBar: !config.isWX,
  152. userName: user.name == '' ? '未登录' : user.name,
  153. userBalance: user.balance,
  154. userAvatar:user.avatar,
  155. defaultAddress: addressStr
  156. });
  157. $('.spa-page-body', $view).html(tpl);
  158. setTimeout(function () {
  159. pageData.scroll = new IScroll('#mineScroll');
  160. }, 500);
  161. }
  162. /* 又是这个。不知道什么玩意…… */
  163. dtd.resolve();
  164. },
  165. beforeclose: function (pageData, dtd) {
  166. dtd.resolve();
  167. }
  168. }
  169. })