/** * 评价模型 */ define(['base', '$', 'api'], function (base, $, api) { var Review = function () { if (typeof Review.instance === 'object') { return Review.instance; } Review.instance = this; this.storagePrefix = 'review_'; this.reviewDatas = {}; this.techCommentData = {}; } var defultReviewData = { page: 0, list: [], refreshTime: 0, hasMore: true }; Review.prototype = new base(); Review.prototype.getReviewData = function(type) { if (!this.reviewDatas.hasOwnProperty(type)) { this.reviewDatas[type] = $.extend(true, {}, defultReviewData); } return this.reviewDatas[type]; }; Review.prototype.getTechCommentData = function(techID) { if (!this.techCommentData.hasOwnProperty(techID)) { this.techCommentData[techID] = $.extend(true, {}, defultReviewData); } return this.techCommentData[techID]; }; Review.prototype.getList = function (type, callback, reset) { var that = this; var reviewData = this.getReviewData(type); var page = reviewData.page + 1; if (reset) { page = 1; } api.getReviewList({ type: type, page: page }, function (res) { if (res.success) { if (res.current_page >= res.sum_page) { res.current_page = res.sum_page; reviewData.hasMore = false; } else { reviewData.hasMore = true; } reviewData.page = res.current_page; reviewData.refreshTime = new Date().getTime(); if (reset) { reviewData.list = res.data.comments; } else { reviewData.list = reviewData.list.concat(res.data.comments); } } if (typeof (callback) == 'function') { callback(res); } }); }; Review.prototype.getTechComment = function (techID, callback, reset) { var that = this; var techData = this.getTechCommentData(techID); var page = techData.page + 1; if (reset) { page = 1; } api.techComment({ tech_id: techID, page: page }, function (res) { if (res.success) { if (res.current_page >= res.sum_page) { res.current_page = res.sum_page; techData.hasMore = false; } else { techData.hasMore = true; } techData.page = res.current_page; techData.refreshTime = new Date().getTime(); if (reset) { techData.list = res.data.comments; } else { techData.list = techData.list.concat(res.data.comments); } } if (typeof (callback) == 'function') { callback(res); } }); }; return new Review(); })