MWF.xApplication.AppMarketV2.Application.Comment = new Class({ Implements: [Options, Events], options: { "view": "applicationComment.html" }, initialize: function(app, container, options){ this.setOptions(options); this.app = app; this.appdata = this.app.appdata; this.container = container; this.viewPath = this.app.path+this.app.options.style+"/"+this.options.view; this.iconPath = this.app.path+this.app.options.style+"/icon/"; this.actions = MWF.Actions.load("x_program_center"); this.load(); }, load: function(){ this.container.loadHtml(this.viewPath, {"bind": {"lp": this.app.lp}, "module": this}, function(){ this.loadApplication(function(){ this.fireEvent("load"); }.bind(this)); }.bind(this)); }, loadApplication: function(callback){ if (!this.isLoading){ if (!this.applicationsContentV){ this.applicationsContentV = new MWF.xApplication.AppMarketV2.Application.Comment.ViewPage(this, { "onLoad": function(){ if (callback) callback(); } }); }else{ this.applicationsContentV.load(); } } } }); MWF.xApplication.AppMarketV2.Application.Comment.ViewPage= new Class({ Implements: [Options, Events], options: { "type": "commentViewPage" }, initialize: function(content, options){ this.setOptions(options); this.content = content; this.app = this.content.app; this.appdata = this.content.appdata; this.actions = this.app.actions; this.container = this.content.container; this.page = 1; this.pageSize = 100; this.querydata = {}; this.load(); }, load: function(){ if (this.app.collectToken=="" || this.app.collectUrl==""){ //先登录collcect this.actions.CollectAction.login(//平台封装好的方法 function( json ){ //服务调用成功的回调函数, json为服务传回的数据 if (json.type && json.type=="success"){ data = json.data; //为变量data赋值 this.app.collectUrl = data.collectUrl; this.app.collectToken = data.collectToken; this.loadCommentsGrade(this,this.commentsGrade.bind(this)); this.loadCommentPower(this,this.commentsPower.bind(this)); this.loadCommentsList(this,this.commentsView.bind(this)); } }.bind(this),null,false //同步执行 ); }else{ this.loadCommentsGrade(this,this.commentsGrade.bind(this)); this.loadCommentPower(this,this.commentsPower.bind(this)); this.loadCommentsList(this,this.commentsView.bind(this)); } }, loadCommentsGrade: function(content,callback){ var json = null; var commenturl = content.app.collectUrl +'/o2_collect_assemble/jaxrs/comment/stat/grade/app/'+content.appdata.id+'?time='+(new Date()).getMilliseconds(); var res = new Request.JSON({ url: commenturl, headers : {'x-debugger' : true,'Authorization':content.app.collectToken,'c-token':content.app.collectToken}, secure: false, method: "get", async: true, withCredentials: true, contentType : 'application/json', crossDomain : true, onSuccess: function(responseJSON, responseText){ json = responseJSON; if (typeOf(callback).toLowerCase() == 'function'){ callback(responseJSON); }else{ o2.runCallback(callback, "success", [responseJSON, responseText]); } }.bind(this), onFailure: function(xhr){ o2.runCallback(callback, "requestFailure", [xhr]); }.bind(this), onError: function(text, error){ o2.runCallback(callback, "error", [text, error]); }.bind(this) }); res.send(); }, loadCommentPower: function(content,callback){ var json = null; var commenturl = content.app.collectUrl +'/o2_collect_assemble/jaxrs/comment/app/'+content.appdata.id+'/available?time='+(new Date()).getMilliseconds(); var res = new Request.JSON({ url: commenturl, headers : {'x-debugger' : true,'Authorization':content.app.collectToken,'c-token':content.app.collectToken}, secure: false, method: "get", async: true, withCredentials: true, contentType : 'application/json', crossDomain : true, onSuccess: function(responseJSON, responseText){ json = responseJSON; if (typeOf(callback).toLowerCase() == 'function'){ callback(responseJSON); }else{ o2.runCallback(callback, "success", [responseJSON, responseText]); } }.bind(this), onFailure: function(xhr){ o2.runCallback(callback, "requestFailure", [xhr]); }.bind(this), onError: function(text, error){ o2.runCallback(callback, "error", [text, error]); }.bind(this) }); res.send(); }, loadCommentsList:function(content,callback){ var json = null; var commenturl = content.app.collectUrl +'/o2_collect_assemble/jaxrs/comment/list/app/'+content.appdata.id+'?time='+(new Date()).getMilliseconds(); var res = new Request.JSON({ url: commenturl, headers : {'x-debugger' : true,'Authorization':content.app.collectToken,'c-token':content.app.collectToken}, secure: false, method: "get", async: true, withCredentials: true, contentType : 'application/json', crossDomain : true, onSuccess: function(responseJSON, responseText){ json = responseJSON; if (typeOf(callback).toLowerCase() == 'function'){ callback(responseJSON); }else{ o2.runCallback(callback, "success", [responseJSON, responseText]); } }.bind(this), onFailure: function(xhr){ o2.runCallback(callback, "requestFailure", [xhr]); }.bind(this), onError: function(text, error){ o2.runCallback(callback, "error", [text, error]); }.bind(this) }); res.send(); }, commentsGrade:function(commentdata){ debugger; var commentcount = 0; var grade = 0; var totalgrade = 0; var commentratiolist = commentdata.data; var gradeList = ["0","0","0","0","0"]; commentratiolist.each(function(pergrade){ gradeList[parseInt(pergrade.grade)-1]=pergrade.count; commentcount +=parseInt(pergrade.count) }.bind(this)); gradeList.each(function(pergrade,index){ totalgrade += parseInt(pergrade)*(index+1) }) if (commentcount>0){ grade = this.numberFix(totalgrade/commentcount,1) } debugger; this.content.applicationcommenttopgrade.set("text",grade+""); var intgrade = parseInt(grade); var dotgrade = grade - intgrade; for (var tmpnum=0;tmpnum=0.5){ new Element("img",{"src":this.content.iconPath+"halffiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(this.content.applicationcommenttopangular); intgrade++; } for (var tmpnum=0;tmpnum<5-intgrade;tmpnum++){ new Element("img",{"src":this.content.iconPath+"whitefiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(this.content.applicationcommenttopangular); } new Element("span",{"class":"o2_appmarket_application_introduce_memo_remark_inner_text","text":"共"+commentcount+"个评分"}).inject(this.content.applicationcommenttopangular); //5星 new Element("div",{"text":"5","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightfive); gradeangular = new Element("div",{"class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightfive); new Element("img",{"src":this.content.iconPath+"blackfiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(gradeangular) graderatiodiv = new Element("div",{"class":"o2_appmarket_application_comment_gradetotal"}).inject(this.content.applicationcommentrightfive); blackratiodiv = new Element("div",{"class":"o2_appmarket_application_comment_graderatio"}).inject(graderatiodiv); graderratiodivwidth = graderatiodiv.clientWidth; if (commentcount==0){ blackratio = 0; blackratiodiv.setStyle("width","0px"); }else{ blackratio = parseInt(gradeList[4])/commentcount; blackratiowidth = blackratio*graderratiodivwidth; blackratiodiv.setStyle("width",blackratiowidth+"px"); } new Element("div",{"text":this.numberFix(blackratio*100,1)+"%","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightfive); debugger; //4星 new Element("div",{"text":"4","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightfour); gradeangular = new Element("div",{"class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightfour); new Element("img",{"src":this.content.iconPath+"blackfiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(gradeangular) graderatiodiv = new Element("div",{"class":"o2_appmarket_application_comment_gradetotal"}).inject(this.content.applicationcommentrightfour); blackratiodiv = new Element("div",{"class":"o2_appmarket_application_comment_graderatio"}).inject(graderatiodiv); graderratiodivwidth = graderatiodiv.clientWidth; if (commentcount==0){ blackratio = 0; blackratiodiv.setStyle("width","0px"); }else{ blackratio = parseInt(gradeList[3])/commentcount; blackratiowidth = blackratio*graderratiodivwidth; blackratiodiv.setStyle("width",blackratiowidth+"px"); } new Element("div",{"text":this.numberFix(blackratio*100,1)+"%","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightfour); //3星 new Element("div",{"text":"3","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightthree); gradeangular = new Element("div",{"class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightthree); new Element("img",{"src":this.content.iconPath+"blackfiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(gradeangular) graderatiodiv = new Element("div",{"class":"o2_appmarket_application_comment_gradetotal"}).inject(this.content.applicationcommentrightthree); blackratiodiv = new Element("div",{"class":"o2_appmarket_application_comment_graderatio"}).inject(graderatiodiv); graderratiodivwidth = graderatiodiv.clientWidth; if (commentcount==0){ blackratio = 0; blackratiodiv.setStyle("width","0px"); }else{ blackratio = (parseInt(gradeList[2])/commentcount).toFixed(4); blackratiowidth = blackratio*graderratiodivwidth; blackratiodiv.setStyle("width",blackratiowidth+"px"); } new Element("div",{"text":this.numberFix(blackratio*100,1)+"%","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightthree); //2星 new Element("div",{"text":"2","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrighttwo); gradeangular = new Element("div",{"class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrighttwo); new Element("img",{"src":this.content.iconPath+"blackfiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(gradeangular) graderatiodiv = new Element("div",{"class":"o2_appmarket_application_comment_gradetotal"}).inject(this.content.applicationcommentrighttwo); blackratiodiv = new Element("div",{"class":"o2_appmarket_application_comment_graderatio"}).inject(graderatiodiv); graderratiodivwidth = graderatiodiv.clientWidth; if (commentcount==0){ blackratio = 0; blackratiodiv.setStyle("width","0px"); }else{ blackratio = (parseInt(gradeList[1])/commentcount).toFixed(4); blackratiowidth = blackratio*graderratiodivwidth; blackratiodiv.setStyle("width",blackratiowidth+"px"); } new Element("div",{"text":this.numberFix(blackratio*100,1)+"%","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrighttwo); //1星 new Element("div",{"text":"1","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightone); gradeangular = new Element("div",{"class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightone); new Element("img",{"src":this.content.iconPath+"blackfiveangular.png","class":"o2_appmarket_application_introduce_memo_remark_inner_pic"}).inject(gradeangular) graderatiodiv = new Element("div",{"class":"o2_appmarket_application_comment_gradetotal"}).inject(this.content.applicationcommentrightone); blackratiodiv = new Element("div",{"class":"o2_appmarket_application_comment_graderatio"}).inject(graderatiodiv); graderratiodivwidth = graderatiodiv.clientWidth; if (commentcount==0){ blackratio = 0; blackratiodiv.setStyle("width","0px"); }else{ blackratio = (parseInt(gradeList[0])/commentcount).toFixed(4); blackratiowidth = blackratio*graderratiodivwidth; blackratiodiv.setStyle("width",blackratiowidth+"px"); } new Element("div",{"text":this.numberFix(blackratio*100,1)+"%","class":"o2_appmarket_application_comment_top_right_graderatioItem"}).inject(this.content.applicationcommentrightone); }, commentsPower:function(commentdata){ var commentText = ""; if (commentdata.type && commentdata.type=="success"){ if (commentdata.data.value){ commentText = "您已评论过该应用!" } } if (this.appdata.installedVersion==""){ commentText = "由于您还未安装本应用,因此无法对其进行评分及评论!" } if (commentText == ""){ var commentbuttondiv = new Element("div",{"class":"o2_appmarket_application_comment_middle_commentbutton"}).inject(this.content.applicationcommentmiddle); new Element("span",{"class":"o2_appmarket_application_comment_middle_commentbutton_InnerSpan","text":"我要评分及评论"}).inject(commentbuttondiv); var _self = this; commentbuttondiv.addEvents({ "click": function(e){ _self.createComment(e); } }) }else{ new Element("div",{"class":"o2_appmarket_application_comment_middle_tip","text":commentText}).inject(this.content.applicationcommentmiddle); } }, commentsView:function(commentdata){ var commentsList = commentdata.data; commentsList.each(function(percomment){ var commentcontentdiv = new Element("div",{"class":"o2_appmarket_application_comment_content"}).inject(this.content.applicationcommentbottom); var commentcontentleft = new Element("div",{"class":"o2_appmarket_application_comment_content_left"}).inject(commentcontentdiv); var iconpersondiv = new Element("div",{"class":"o2_appmarket_application_comment_content_left_icon"}).inject(commentcontentleft); new Element("img",{"src":this.content.iconPath+"icon_men.png"}).inject(iconpersondiv); new Element("div",{"class":"o2_appmarket_application_comment_content_left_name","text":percomment.person}).inject(commentcontentleft); var commentcontentright = new Element("div",{"class":"o2_appmarket_application_comment_content_right"}).inject(commentcontentdiv); var commentangulardiv = new Element("div").inject(commentcontentright); for (var tmpi=0;tmpi 1) { if (d[1].length < n) { value = value.toString() + "0"; } return value; } } })