secondary.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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. /*活动入口*/
  43. $.newTouch('.Long-term-set', function (event) {
  44. event.preventDefault();
  45. $doc.trigger('spa:navigate', {
  46. hash: 'activity-day',
  47. pushData: {
  48. needReset: true,
  49. backHash: 'secondary'
  50. }
  51. });
  52. }, $view);
  53. /* 点击产品列表的某一项 */
  54. $.newTouch('.btn-product', function (event) {
  55. event.preventDefault();
  56. var type = parseInt($(this).attr('data-product-type'));
  57. /*
  58. * 这个写法是SPA路由框架规定的。
  59. * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
  60. */
  61. $doc.trigger('spa:navigate', {
  62. hash: 'placeOrder',
  63. pushData: {
  64. product: product.allList[type - 1],
  65. needReset: true,
  66. backHash: 'secondary'
  67. }
  68. });
  69. }, $view);
  70. // im
  71. $.newTouch('.btn-action-logo', function (event) {
  72. event.preventDefault();
  73. window.location.href = '/index.php?r=o2o/advisory/im';
  74. }, $view);
  75. /*首页*/
  76. $.newTouch('.btn-action-my-order', function () {
  77. event.preventDefault();
  78. $doc.trigger('spa:navigate', {
  79. hash: '',
  80. pushData: {
  81. needReset: true
  82. }
  83. });
  84. }, $view);
  85. /*个人中心*/
  86. $.newTouch('.btn-action-coupon', function (event) {
  87. event.preventDefault();
  88. user.checkLogin(function () {
  89. $doc.trigger('spa:navigate', {
  90. hash: 'mine',
  91. pushData: {
  92. needReset: true
  93. }
  94. });
  95. });
  96. }, $view);
  97. /* 不知道什么意思。*/
  98. dtd.resolve();
  99. },
  100. beforeopen: function (pageData, dtd) {
  101. /*获取上一页跳转的路由名称*/
  102. var pushData = pageData.pushData;
  103. backHash = pushData.backHash ? pushData.backHash : '';
  104. dtd.resolve();
  105. },
  106. afteropen: function (pageData, dtd) {
  107. var $view = this;
  108. var $doc = $(document);
  109. if (pageData.pushData && pageData.pushData.needReset) {
  110. /*var tpl = template('secondary/index', {
  111. showNavBar: !config.isWX,
  112. userName: user.name == '' ? '未登录' : user.name,
  113. userBalance: user.balance,
  114. defaultAddress: addressStr
  115. });*/
  116. var tpl = template('secondary/index', {showNavBar: !config.isWX});
  117. $('.spa-page-body', $view).html(tpl);
  118. setTimeout(function () {
  119. pageData.scroll = new IScroll('#secondaryScroll');
  120. }, 500);
  121. setTimeout(function () {
  122. /*设置页面高度-开始*/
  123. $('#list0').height(($('.btn-product').height() * 3) + $('.prevent-scroll').height());//设置ul高度;
  124. /*设置页面高度-结束*/
  125. }, 200);
  126. }
  127. /* 又是这个。不知道什么玩意…… */
  128. dtd.resolve();
  129. },
  130. beforeclose: function (pageData, dtd) {
  131. dtd.resolve();
  132. }
  133. }
  134. })