portal html css js resource

answerLeaveW.js 9.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. (function(window) {
  2. function ajaxRequist(url, obj, type, fn) {
  3. $.ajax({
  4. url:url,
  5. data: obj,
  6. dataType: 'json', //服务器返回json格式数据
  7. type: type, //支持'GET'和'POST'
  8. traditional: true,
  9. success: function(data) {
  10. if(data.success) {
  11. fn(data.data)
  12. }
  13. },
  14. error: function(xhr, type, errorThrown) {
  15. $.MsgBox.Alert('提示', '服务器请求失败');
  16. }
  17. });
  18. }
  19. var LeaveWord = function() {
  20. var self = this;
  21. self.addHtml();
  22. self.bindEvent();
  23. }
  24. function lgin() {
  25. if($.cookie('userid') !="null") {
  26. return true;
  27. }
  28. quickLog();
  29. operatTab();
  30. closeLog();
  31. return false;
  32. }
  33. LeaveWord.prototype.addHtml=function() {
  34. $("body").append('<textarea class="txtArea" id="tt" style="position:absolute;top:0;left:-999px;"></textarea>')
  35. }
  36. LeaveWord.prototype.init = function(selecter,obj) {
  37. obj.rows=5;
  38. var self = this;
  39. ajaxRequist("/ajax/leavemsg/subject",obj, "GET", function(data) {
  40. if(!obj.id) {
  41. var strer='<div class="ifLogin">' +
  42. '<form class="ifLoginOn clearfix">' +
  43. '<div class="msgContbox">' +
  44. '<textarea class="msgCont" placeholder="请输入您的留言内容..." maxlength="200"></textarea>' +
  45. '<span class="msgconNum"><em>0</em>/200</span>'+
  46. '</div>'+
  47. '<input type="button" class="frmconbtn btnModel floatR" disabled="" value="留言">' +
  48. '</form>' +
  49. '</div>' +
  50. '<div class="form-item commentsArea">'+
  51. '<ul class="commentList">' +
  52. '</ul>' +
  53. '<button class="frmconbtn btnCancel displayNone">查看更多留言</button>' +
  54. '</div>'
  55. var $strer=$(strer);
  56. selecter.append($strer);
  57. $strer.find("input").data("ouse",obj);
  58. //self.LwordTotal()
  59. (data.length>4)?$strer.find(".btnCancel").removeClass("displayNone").data("obj",{
  60. sid:obj.sid,
  61. sType:4,
  62. time:data[data.length-1].createTime,
  63. id:data[data.length-1].id
  64. }):"";
  65. }else{
  66. (data.length>4)?selecter.siblings("button").removeClass("displayNone").data("obj",{
  67. sid:obj.sid,
  68. sType:4,
  69. time:data[data.length-1].createTime,
  70. id:data[data.length-1].id
  71. }):selecter.siblings("button").addClass("displayNone");
  72. }
  73. if(data.length == 0) {
  74. return;
  75. }
  76. if(selecter[0].className!="commentList") {
  77. self.topHtml($strer.find("ul"),data);
  78. }else{
  79. self.topHtml(selecter,data);
  80. }
  81. })
  82. }
  83. LeaveWord.prototype.topHtml=function(selector,data) {
  84. var id = $.cookie('userid');
  85. var self = this;
  86. for(var i = 0; i < data.length; i++) {
  87. var reply="";
  88. if(data[i].reciver) {
  89. reply = '<span style="margin:0px 10px;font-size:16px;">回复 </span><a href="userInforShow.html?professorId='+data[i].reciver+'" class="userhref"><span class="h1Font messageName">张某某</span></a><em class="authiconNew" title="科袖认证专家"></em>'
  90. }
  91. var itemlist = '<li class="flexCenter">';
  92. itemlist += '<a href class="userhref"> <div class="madiaHead useHead useHeadMsg"></div></a>';
  93. itemlist += '<div class="madiaInfo">';
  94. itemlist += '<p><a href="userInforShow.html?professorId='+data[i].sender+'" class="userhref"><span class="h1Font messageName">张某某</span></a><em class="authiconNew" title="科袖认证专家"></em>'+reply+'<span class="commenttime" style="float:right;">'+commenTime(data[i].createTime)+'</span></p>';
  95. itemlist += '<p class="h2Font messageContent">'+data[i].cnt+'</p>';
  96. itemlist += '<div class="operateSpan"><em class="noMy"><span class="dzthumb"></span><span class="thNum">赞0</span><span class="callBack">回复</span></em><span class="messageDel displayNone">删除</span></div>';
  97. itemlist += '<div class="displayNone replyLeword"><textarea class="txtArea" style="font-size:12px"></textarea><p class="pTxt"><span class="qCancel">取消</span><button class="hReply btnModel" disabled style="font-size:12px">回复</button></p></div></div></li>';
  98. $itemlist = $(itemlist);
  99. selector.append($itemlist);
  100. $itemlist.attr('data-obj',JSON.stringify(data[i]));
  101. if(id == data[i].sender) {
  102. $itemlist.find(".messageDel").removeClass("displayNone").end().find(".noMy").hide();
  103. }
  104. if(data[i].reciver) {
  105. self.userInfo(data[i].sender, $itemlist, 0);
  106. self.userInfo(data[i].reciver, $itemlist, 1)
  107. } else {
  108. self.userInfo(data[i].sender, $itemlist, 0);
  109. }
  110. if(data[i].agreeCount)
  111. self.referThup(data[i].id, $itemlist, data[i].agreeCount);
  112. }
  113. }
  114. LeaveWord.prototype.userInfo = function(uId, li, parNum) {
  115. ajaxRequist("/ajax/professor/editBaseInfo/" + uId, {}, "GET", function($data) {
  116. if(parNum == 0) {
  117. if($data.hasHeadImage == 1) {
  118. li.find(".useHead")[0].style.backgroundImage = "url(../images/head/" + $data.id + "_l.jpg" + ")";
  119. }
  120. li.find("textarea").attr("placeholder","回复 "+$data.name+":")
  121. }
  122. var userType = autho($data.authType, $data.orgAuth, $data.authStatus);
  123. li.find(".messageName").eq(parNum).html($data.name).end().end().find(".authiconNew").eq(parNum).addClass(userType.sty).attr("title",userType.title);
  124. })
  125. }
  126. LeaveWord.prototype.size = function() {
  127. if(this.val().length > 200) {
  128. $.MsgBox.Alert('提示', '留言不得超过200个字');
  129. return false;
  130. }
  131. return true;
  132. }
  133. LeaveWord.prototype.topLw = function($this) {
  134. var self = this;
  135. if(!self.size.call($($this).siblings(".msgContbox").find("textarea")) ){
  136. return;
  137. }
  138. ajaxRequist("/ajax/leavemsg", {
  139. cnt: $($this).siblings(".msgContbox").find("textarea").val(),
  140. refId: $($this).data("ouse").sid,
  141. refType: $($this).data("ouse").stype,
  142. sender: $.cookie('userid'),
  143. uname: $.cookie('userName')
  144. }, "POST", function(data) {
  145. $($this).siblings(".msgContbox").find("textarea").val("").siblings(".msgconNum").find("em").text(0);
  146. ajaxRequist("/ajax/leavemsg/qo", {id:data},"GET",function(data) {
  147. self.topHtml($($this).parents(".ifLogin").siblings(".commentsArea").find("ul"),[data])
  148. })
  149. })
  150. }
  151. LeaveWord.prototype.autoGrow=function(){
  152. document.getElementById("tt").style.width=this.scrollWidth+"px";
  153. document.getElementById("tt").value=this.value;
  154. this.style.height=document.getElementById("tt").scrollHeight+"px";
  155. }
  156. LeaveWord.prototype.bindEvent = function() {
  157. var self = this;
  158. $(".list-hold-list").on('click',".ifLogin input",function() {
  159. if(!lgin()) {
  160. return;
  161. }
  162. self.topLw(this);
  163. });
  164. $(".list-hold-list").on("click", ".commentList li", function(e) {
  165. if(!lgin()) {
  166. return;
  167. }
  168. var obj=JSON.parse($(this).attr("data-obj")),
  169. target=e.target;
  170. switch (target.className){
  171. case "dzthumb":self.thub.call(target, obj.id,obj.agreeCount);
  172. break;
  173. case "callBack":$(target).parents(".operateSpan").addClass("displayNone").siblings(".replyLeword").removeClass("displayNone");
  174. break;
  175. case "messageDel":self.LwordDel(target, obj);
  176. break;
  177. case "hReply btnModel":self.replyLword(target,obj)
  178. break;
  179. case "qCancel": $(target).parent().siblings("textarea").val("").parents(".replyLeword").addClass("displayNone").siblings(".operateSpan").removeClass("displayNone")
  180. break;
  181. }
  182. });
  183. $(".list-hold-list").on("click", ".answerWord .btnCancel", function(e) {
  184. var $obj=$(this).data('obj');
  185. self.init($(this).siblings("ul"),{sid: $obj.sid,stype: $obj.sType,time: $obj.time,id: $obj.id});
  186. })
  187. $(".list-hold-list").on("input",".ifLogin textarea",function(){
  188. if($.trim($(this).val()).length>0) {
  189. $(this).siblings(".msgconNum").find("em").text($(this).val().length).parents(".msgContbox").siblings("input").removeAttr("disabled");
  190. }else{
  191. $(this).parents(".msgContbox").siblings("input").attr("disabled","disabled");
  192. }
  193. })
  194. $(".list-hold-list").on("input", ".commentList textarea", function(e) {
  195. if($.trim($(this).val()).length>0) {
  196. $(this).siblings().find(".btnModel").removeAttr("disabled");
  197. self.autoGrow.call(this);
  198. }else{
  199. $(this).siblings().find(".btnModel").attr("disabled","disabled");
  200. }
  201. })
  202. }
  203. LeaveWord.prototype.referThup = function(lid, li, num) {
  204. ajaxRequist("/ajax/leavemsg/agree", {
  205. id: lid,
  206. uid: $.cookie('userid')
  207. }, "GET", function(data) {
  208. if(data) {
  209. li.find(".thNum").html("已赞" + num).end().find(".dzthumb").addClass("dzthumbed").css("cursor","auto");
  210. }
  211. })
  212. }
  213. LeaveWord.prototype.thub = function(lid,num) {
  214. var self = this;
  215. ajaxRequist("/ajax/leavemsg/agree", {
  216. id: lid,
  217. uid: $.cookie('userid'),
  218. uname: $.cookie('userName')
  219. }, "POST", function(data) {
  220. $(self).addClass('dzthumbed').siblings(".thNum").html("已赞"+(num+1))// + (Number(self.getAttribute("data-num")) + 1);
  221. })
  222. }
  223. LeaveWord.prototype.replyLword = function( $th,lid) {
  224. var self = this;
  225. if(!self.size.call($($th).parents(".pTxt").siblings("textarea")) ){
  226. return;
  227. }
  228. ajaxRequist("/ajax/leavemsg/reply", {
  229. cnt: $($th).parents(".pTxt").siblings("textarea").val(),
  230. id: lid.id,
  231. uid: $.cookie('userid'),
  232. uname: $.cookie('userName')
  233. }, "POST", function(data) {
  234. $($th).parents(".pTxt").siblings("textarea").val("").parents(".replyLeword").addClass("displayNone").siblings(".operateSpan").removeClass("displayNone")
  235. ajaxRequist("/ajax/leavemsg/qo", {id:data},"GET",function(data) {
  236. self.topHtml($($th).parents(".commentList"),[data])
  237. })
  238. self.LwordTotal($th,lid);
  239. })
  240. }
  241. LeaveWord.prototype.LwordDel = function($this, lid) {
  242. var self = this;
  243. ajaxRequist("/ajax/leavemsg/del", {
  244. id: lid.id
  245. }, "GET", function(data) {
  246. $($this).parents(".flexCenter").remove();
  247. self.LwordTotal($this,lid);
  248. })
  249. }
  250. LeaveWord.prototype.LwordTotal = function($th,lid) {
  251. var self = this;
  252. ajaxRequist("/ajax/leavemsg/count", {
  253. sid: lid.sid,
  254. stype: lid.stype
  255. }, "get", function($data) {
  256. $($th).parents(".list-qa").find(".leaveMsgCount").text($data);
  257. })
  258. }
  259. var module = {
  260. lWord: new LeaveWord()
  261. }
  262. window.module = module;
  263. })(window)