secondary.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. define(['$', 'template', 'IScroll', 'user', 'product', 'native', 'config', 'address'], function ($, template, IScroll, user, product, native, config, address) {
  2. var backHash;
  3. function back(event) {
  4. event.preventDefault();
  5. $(document).trigger('spa:navigate', {
  6. hash: backHash,
  7. pushData: {
  8. dontNeedReload: true
  9. }
  10. });
  11. }
  12. /*
  13. * 模块结构:5部分。
  14. * title:题目。
  15. * content:不知道是什么,似乎从没用过。
  16. * 以下可以当作生命周期回调,虽然并不清楚是什么时候回调的……
  17. * init:根据上一个页面传来的pageData初始化本页数据,生成页面,绑定事件。
  18. * beforeopen:接收上一个页面传来的数据、有需要的话重置数据
  19. * afteropen:做一些网络请求。
  20. * beforeclose:
  21. */
  22. return {
  23. title: '家庭保洁',
  24. body: '',
  25. init: function (pageData, dtd) {
  26. /* this是什么? */
  27. var $view = this;
  28. var $doc = $(document);
  29. /* 定义按钮事件。
  30. * 为什么不是$(selector).onclick(function)呢?
  31. */
  32. // 返回
  33. $view.on('swipeRight', function (event) {
  34. back.call(this, event);
  35. });
  36. $.newTouch('.back-button', function (event) {
  37. back.call(this, event);
  38. }, $view);
  39. $view.on('tapBackButton', function (event) {
  40. back.call(this, event);
  41. });
  42. /*长期订入口-。.secondary-img/*/
  43. $.newTouch('.secondary-img', function (event) {
  44. event.preventDefault();
  45. $doc.trigger('spa:navigate', {
  46. hash: 'longOrder',
  47. pushData: {
  48. needReset: true,
  49. backHash: 'secondary'
  50. }
  51. });
  52. }, $view);
  53. /*活动入口*/
  54. $.newTouch('.Long-term-set', function (event) {
  55. event.preventDefault();
  56. $doc.trigger('spa:navigate', {
  57. hash: 'activity-day',
  58. pushData: {
  59. needReset: true,
  60. backHash: 'secondary'
  61. }
  62. });
  63. }, $view);
  64. /* 点击产品列表的某一项 */
  65. $.newTouch('.btn-product', function (event) {
  66. event.preventDefault();
  67. var type = parseInt($(this).attr('data-product-type'));
  68. /*
  69. * 这个写法是SPA路由框架规定的。
  70. * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
  71. */
  72. $doc.trigger('spa:navigate', {
  73. hash: 'placeOrder',
  74. pushData: {
  75. product: product.allList[type - 1],
  76. needReset: true,
  77. backHash: 'secondary'
  78. }
  79. });
  80. }, $view);
  81. // im
  82. $.newTouch('.btn-action-logo', function (event) {
  83. event.preventDefault();
  84. window.location.href = '/index.php?r=o2o/advisory/im';
  85. }, $view);
  86. /*首页*/
  87. $.newTouch('.btn-action-my-order', function () {
  88. event.preventDefault();
  89. $doc.trigger('spa:navigate', {
  90. hash: '',
  91. pushData: {
  92. needReset: true
  93. }
  94. });
  95. }, $view);
  96. /*个人中心*/
  97. $.newTouch('.btn-action-coupon', function (event) {
  98. event.preventDefault();
  99. user.checkLogin(function () {
  100. $doc.trigger('spa:navigate', {
  101. hash: 'mine',
  102. pushData: {
  103. needReset: true
  104. }
  105. });
  106. });
  107. }, $view);
  108. /* 不知道什么意思。*/
  109. dtd.resolve();
  110. },
  111. beforeopen: function (pageData, dtd) {
  112. /*获取上一页跳转的路由名称*/
  113. var pushData = pageData.pushData;
  114. backHash = pushData.backHash ? pushData.backHash : '';
  115. dtd.resolve();
  116. },
  117. afteropen: function (pageData, dtd) {
  118. var $view = this;
  119. var $doc = $(document);
  120. if (pageData.pushData && pageData.pushData.needReset) {
  121. /*var tpl = template('secondary/index', {
  122. showNavBar: !config.isWX,
  123. userName: user.name == '' ? '未登录' : user.name,
  124. userBalance: user.balance,
  125. defaultAddress: addressStr
  126. });*/
  127. var tpl = template('secondary/index', {showNavBar: !config.isWX});
  128. $('.spa-page-body', $view).html(tpl);
  129. setTimeout(function () {
  130. pageData.scroll = new IScroll('#secondaryScroll');
  131. }, 500);
  132. setTimeout(function () {
  133. /*设置页面高度-开始*/
  134. $('#list0').height(($('.btn-product').height() * 4) + $('.prevent-scroll').height());//设置ul高度;
  135. /*设置页面高度-结束*/
  136. }, 200);
  137. }
  138. /* 又是这个。不知道什么玩意…… */
  139. dtd.resolve();
  140. },
  141. beforeclose: function (pageData, dtd) {
  142. dtd.resolve();
  143. }
  144. }
  145. })