123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /**
- * 评价模型
- */
- 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();
- })
|