review.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /**
  2. * 评价模型
  3. */
  4. define(['base', '$', 'api'], function (base, $, api) {
  5. var Review = function () {
  6. if (typeof Review.instance === 'object') {
  7. return Review.instance;
  8. }
  9. Review.instance = this;
  10. this.storagePrefix = 'review_';//存储前缀
  11. this.reviewDatas = {};//审查数据
  12. this.techCommentData = {};//评论数据
  13. }
  14. var defultReviewData = {//默认评论数据
  15. page: 0,
  16. list: [],
  17. refreshTime: 0,//刷新时间
  18. hasMore: true
  19. };
  20. Review.prototype = new base();
  21. //得到评论的数据
  22. Review.prototype.getReviewData = function(type) {
  23. if (!this.reviewDatas.hasOwnProperty(type)) {
  24. this.reviewDatas[type] = $.extend(true, {}, defultReviewData);
  25. }
  26. return this.reviewDatas[type];
  27. };
  28. //获取保洁师评论数据
  29. Review.prototype.getTechCommentData = function(techID) {
  30. if (!this.techCommentData.hasOwnProperty(techID)) {//有自己的属性
  31. this.techCommentData[techID] = $.extend(true, {}, defultReviewData);
  32. }
  33. return this.techCommentData[techID];
  34. };
  35. //获取列表
  36. Review.prototype.getList = function (type, callback, reset) {//reset-重置
  37. var that = this;
  38. var reviewData = this.getReviewData(type);//审查数据
  39. var page = reviewData.page + 1;//
  40. if (reset) {
  41. page = 1;
  42. }
  43. //获取评论列表
  44. api.getReviewList({
  45. type: type,
  46. page: page
  47. }, function (res) {
  48. if (res.success) {
  49. if (res.current_page >= res.sum_page) {
  50. res.current_page = res.sum_page;
  51. reviewData.hasMore = false;
  52. } else {
  53. reviewData.hasMore = true;
  54. }
  55. reviewData.page = res.current_page;//当前页
  56. reviewData.refreshTime = new Date().getTime();
  57. if (reset) {
  58. reviewData.list = res.data.comments;
  59. } else {
  60. reviewData.list = reviewData.list.concat(res.data.comments);
  61. }
  62. }
  63. if (typeof (callback) == 'function') {
  64. callback(res);
  65. }
  66. });
  67. };
  68. //获得保洁师评论
  69. Review.prototype.getTechComment = function (techID, callback, reset) {
  70. var that = this;
  71. var techData = this.getTechCommentData(techID);
  72. var page = techData.page + 1;
  73. if (reset) {
  74. page = 1;
  75. }
  76. api.techComment({
  77. tech_id: techID,
  78. page: page
  79. }, function (res) {
  80. if (res.success) {
  81. if (res.current_page >= res.sum_page) {//如果当前页数大于等于总页数.则其值等于总页数
  82. res.current_page = res.sum_page;
  83. techData.hasMore = false;//到了这里,基本上没有个多的页数了
  84. } else {
  85. techData.hasMore = true;//否则还有更多的页数
  86. }
  87. techData.page = res.current_page;
  88. techData.refreshTime = new Date().getTime();//刷新时间
  89. if (reset) {
  90. techData.list = res.data.comments;//评论列表
  91. } else {
  92. techData.list = techData.list.concat(res.data.comments);//concat 2个数组
  93. }
  94. }
  95. if (typeof (callback) == 'function') {
  96. callback(res);//回调res
  97. }
  98. });
  99. };
  100. return new Review();
  101. })