beauticianDetail.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. // 选择保洁师
  2. define(['$', 'template', 'user', 'config', 'order', 'IScroll', 'review', 'native'], function ($, template, user, config, order, IScroll, review, native) {
  3. function back(event) {
  4. event.preventDefault();
  5. $(document).trigger('spa:navigate', {
  6. hash: 'beautician',
  7. pushData: {
  8. extraService: cachePageData.extraService
  9. }
  10. });
  11. }
  12. function renderCommentTemplate(comments, hasMore) {
  13. var tpl = template('beautician/comment', {
  14. comments: comments,
  15. imgW: parseInt((document.body.clientWidth - 30) / 3) - 5
  16. });
  17. $('#tech-comment').find('ul').append(tpl);
  18. if (hasMore) {
  19. $('#tech-comment .btn-more-container').removeClass('hide');
  20. } else {
  21. $('#tech-comment .btn-more-container').addClass('hide');
  22. }
  23. }
  24. var cachePageData = {};
  25. return {
  26. title: '壹管家上门服务',
  27. body: '',
  28. init: function (pageData, dtd) {
  29. // var productType = pageData.pushData.productType;
  30. var $view = this;
  31. var $doc = $(document);
  32. //返回
  33. $.newTouch('.back-button', function (event) {
  34. back.call(this, event);
  35. }, $view);
  36. $view.on('tapBackButton', function (event) {
  37. back.call(this, event);
  38. });
  39. $view.on('swipeRight', function (event) {
  40. back.call(this, event);
  41. });
  42. //加载更多
  43. $.newTouch('.btn-more-review', function(event) {
  44. $doc.trigger('spa:openloader');
  45. review.getTechComment(cachePageData.id, function(res){
  46. $doc.trigger('spa:closeloader');
  47. if (res.success) {
  48. var hasMore = true;
  49. if (res.current_page >= res.sum_page) {
  50. hasMore = false;
  51. }
  52. renderCommentTemplate(res.data.comments, hasMore);
  53. pageData.scroll.refresh();
  54. }
  55. }, false);
  56. }, $view);
  57. // 图片预览
  58. $.newTouch('.img-preview', function(event){
  59. var current = $(this).attr('data-src');
  60. var i = $(this).parents('.table-view-cell').index();
  61. var imgList = review['techCommentData'][cachePageData.id]['list'][i]['pics'];
  62. var imgLists = [];
  63. imgList.forEach(function(item, index){
  64. imgLists.push(item.url);
  65. });
  66. native.previewImage(imgLists, current);
  67. }, $view);
  68. // 点击用户头像 打开用户个人中心
  69. $.newTouch('.user-info-btn', function(event){
  70. var url = 'http://common.yiguanjia.me'
  71. if (config.test) {
  72. url = 'http://common.yiguanjia.me';
  73. }
  74. var id = $(this).attr('data-id');
  75. var param = {
  76. url: url + '/user/' + id
  77. };
  78. native.openURL(param);
  79. }, $view);
  80. dtd.resolve();
  81. },
  82. beforeopen: function (pageData, dtd) {
  83. var $view = this;
  84. var pushData = pageData.pushData;
  85. var $doc = $(document);
  86. cachePageData.extraService = pushData.extraService;
  87. var tmpData = {
  88. showNavBar: !config.isWX && !config.isChubao,
  89. name: pushData.name,
  90. desc: pushData.desc,
  91. favor: pushData.favor,
  92. avatar: pushData.avatar,
  93. recommend: pushData.recommend
  94. };
  95. var tpl = template('beautician/detail', tmpData);
  96. $view.find('.spa-page-body').html(tpl);
  97. setTimeout(function() {
  98. pageData.scroll = new IScroll('#beauticianDetailScroll');
  99. }, 500);
  100. dtd.resolve();
  101. },
  102. afteropen: function (pageData, dtd) {
  103. var $view = this;
  104. var pushData = pageData.pushData;
  105. var $doc = $(document);
  106. cachePageData.id = parseInt(pushData.id);
  107. $doc.trigger('spa:openloader');
  108. review.getTechComment(pushData.id, function(res) {
  109. $doc.trigger('spa:closeloader');
  110. if (res.success) {
  111. var hasMore = true;
  112. if (res.current_page >= res.sum_page) {
  113. hasMore = false;
  114. }
  115. $('#tech-comment').find('.extra-service-title').find('span').html('(' + res.sum_count + ')')
  116. if (res.data.comments.length) {
  117. $('#tech-comment').find('.btn-more-container').removeClass('hide');
  118. renderCommentTemplate(res.data.comments, hasMore);
  119. }
  120. if (pageData.scroll) {
  121. pageData.scroll.destroy();
  122. pageData.scroll = null;
  123. }
  124. setTimeout(function() {
  125. pageData.scroll = new IScroll('#beauticianDetailScroll');
  126. }, 500);
  127. }
  128. }, true);
  129. dtd.resolve();
  130. }
  131. }
  132. });