picker.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. define(['$', 'template', 'order', 'config', 'user', 'api'], function ($, template, order, config, user, api) {
  2. function back(backHash) {
  3. $(document).trigger('spa:navigate', {
  4. hash: backHash
  5. });
  6. }
  7. var cachePageData = {};
  8. return {
  9. title: '壹管家上门服务',
  10. body: '',
  11. init: function (pageData, dtd) {
  12. var $view = this;
  13. var $doc = $(document);
  14. //返回
  15. $.newTouch('.back-button', function (event) {
  16. event.preventDefault();
  17. var pushData = pageData.pushData;
  18. back.call(this, pushData['backHash']);
  19. }, $view);
  20. $view.on('tapBackButton', function(event) {
  21. event.preventDefault();
  22. var pushData = pageData.pushData;
  23. back.call(this, pushData['backHash']);
  24. });
  25. $.newTouch('.picker-option', function () {
  26. event.preventDefault();
  27. if ($(this).hasClass('unable')) return;
  28. var pushData = pageData.pushData;
  29. $doc.trigger('spa:navigate', {
  30. hash: pushData.backHash
  31. });
  32. if (pageData.callback && $.isFunction(pageData.callback.onSelect)) {
  33. pageData.callback.onSelect($(this).data('value'));
  34. }
  35. }, $view);
  36. // 兑换
  37. $.newTouch('.btn-coupon', function(event) {
  38. event.preventDefault();
  39. var pushData = pageData.pushData;
  40. var val = $('#coupon-code', $view).val();
  41. if (val.length < 8) {
  42. $doc.trigger('spa:openpanel', ['simpleAlert', {
  43. message: '请输入有效的兑换码'
  44. }]);
  45. return;
  46. } else {
  47. $(this).val('');
  48. user.exchangeCoupon(val, function (res) {
  49. $doc.trigger('spa:openloader');
  50. if (res.success) {
  51. api.getCouponList({
  52. products: pushData.products,
  53. type: pushData.type,
  54. user_id: user.id
  55. }, function (res) {
  56. $doc.trigger('spa:closeloader');
  57. $doc.trigger('spa:openpanel', ['simpleAlert', {
  58. message: res.message
  59. }]);
  60. if (res.success) {
  61. user.orderCoupons = res.data;
  62. var tpl = template('picker/cell', {
  63. options: res.data
  64. });
  65. $view.find('.card-list').html(tpl);
  66. }
  67. })
  68. } else {
  69. $doc.trigger('spa:closeloader');
  70. $doc.trigger('spa:openpanel', ['simpleAlert', {
  71. message: res.message
  72. }]);
  73. }
  74. })
  75. }
  76. }, $view);
  77. dtd.resolve();
  78. },
  79. beforeopen: function (pageData, dtd) {
  80. var $view = this;
  81. var pushData = pageData.pushData;
  82. if (pushData.needReload) {
  83. pushData.needReload = false;
  84. var pickerTemp = pushData.temp ? pushData.temp : 'picker/index';
  85. var tpl = template(pickerTemp, {
  86. options: pushData['options'],
  87. unuseables: pushData['unuseables'],
  88. title: pushData['title'],
  89. showNavBar: !config.isWX && !config.isChubao
  90. });
  91. $view.find('.spa-page-body').html(tpl);
  92. if (pageData.scroll) {
  93. pageData.scroll.destroy();
  94. pageData.scroll = null;
  95. }
  96. setTimeout(function() {
  97. pageData.scroll = new IScroll('#pickerScroll');
  98. }, 10);
  99. };
  100. dtd.resolve();
  101. }
  102. }
  103. })