picker.js 4.4 KB

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