portal html css js resource

leaveWord.js 9.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  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.sid = module.sid;
  22. self.stype = module.stype;
  23. self.init( {
  24. sid: self.sid,
  25. stype: self.stype,
  26. rows: 5
  27. });
  28. self.bindEvent();
  29. self.LwordTotal();
  30. self.addHtml();
  31. }
  32. function lgin() {
  33. if($.cookie('userid') !="null") {
  34. return true;
  35. }
  36. quickLog();
  37. operatTab();
  38. closeLog();
  39. return false;
  40. }
  41. LeaveWord.prototype.addHtml=function() {
  42. $("body").append('<textarea class="txtArea" id="tt" style="position:absolute;top:0;left:-999px;"></textarea>')
  43. }
  44. LeaveWord.prototype.init = function(obj) {
  45. var id = $.cookie('userid');
  46. var self = this;
  47. ajaxRequist("/ajax/leavemsg/subject",obj, "GET", function(data) {
  48. (data.length>4)?$(".js-load-more").removeClass("displayNone"):$(".js-load-more").addClass("displayNone");
  49. if(!self.id) {
  50. $(".commentList").html("").append("<div class='con-kong displayNone'>暂无留言</div>");
  51. }
  52. if(data.length == 0) {
  53. return;
  54. }
  55. for(var i = 0; i < data.length; i++) {
  56. var reply="";
  57. if(data[i].reciver) {
  58. reply = '<span class="huifu">回复 </span><a href="userInforShow.html?professorId='+data[i].reciver+'" class="userhref"><span class="h2Font messageName">张某某</span><em class="authiconNew" title="科袖认证专家"></em></a>'
  59. }
  60. var itemlist = '<li class="li-item">';
  61. itemlist += '<a href class="userhref"> <div class="madiaHead useHead useHeadMsg"></div></a>';
  62. itemlist += '<div class="madiaInfo">';
  63. itemlist += '<p><a href="userInforShow.html?professorId='+data[i].sender+'" class="userhref"><span class="h2Font messageName">张某某</span><em class="authiconNew" title="科袖认证专家"></em></a>'+reply+'<span class="commenttime" style="float:right;">'+commenTime(data[i].createTime)+'</span></p>';
  64. itemlist += '<p class="h2Font messageContent">'+data[i].cnt+'</p>';
  65. itemlist += '<div class="operateSpan">'
  66. itemlist += '<span class="dzthumb dzthumbCan"><em class="hold-icon icon-zan"></em><em class="agreeCount" style="margin-left: 6px;">'+data[i].agreeCount+'</em></span>'
  67. itemlist += '<span class="callBack">回复</span>'
  68. itemlist += '<span class="messageDel displayNone">删除</span></div>';
  69. itemlist += '<div class="displayNone replyLeword"><textarea class="txtArea"></textarea><p class="pTxt"><span class="qCancel">取消</span><button class="hReply btnModel" disabled>回复</button></p></div></div></li>';
  70. $itemlist = $(itemlist);
  71. $(".commentList").append($itemlist);
  72. $itemlist.attr('data-obj',JSON.stringify(data[i]));
  73. if(id == data[i].sender) {
  74. $itemlist.find(".dzthumb").removeClass("dzthumbCan");
  75. $itemlist.find(".messageDel").removeClass("displayNone").end().find(".callBack").hide();
  76. }
  77. if(data[i].reciver) {
  78. self.userInfo(data[i].sender, $itemlist, 0);
  79. self.userInfo(data[i].reciver, $itemlist, 1)
  80. } else {
  81. self.userInfo(data[i].sender, $itemlist, 0);
  82. }
  83. if(data[i].agreeCount)
  84. self.referThup(data[i].id, $itemlist);
  85. }
  86. self.time=data[data.length-1].createTime;
  87. self.id=data[data.length-1].id;
  88. })
  89. }
  90. LeaveWord.prototype.userInfo = function(uId, li, parNum) {
  91. ajaxRequist("/ajax/professor/editBaseInfo/" + uId, {}, "GET", function($data) {
  92. if(parNum == 0) {
  93. if($data.hasHeadImage == 1) {
  94. li.find(".useHead")[0].style.backgroundImage = "url(/images/head/" + $data.id + "_l.jpg" + ")";
  95. }
  96. li.find("textarea").attr("placeholder","回复 "+$data.name+":")
  97. }
  98. var userType = autho($data.authType, $data.orgAuth, $data.authStatus);
  99. li.find(".messageName").eq(parNum).html($data.name).end().end().find(".authiconNew").eq(parNum).addClass(userType.sty).attr("title",userType.title);
  100. })
  101. }
  102. LeaveWord.prototype.size = function() {
  103. if(this.val().length > 200) {
  104. $.MsgBox.Alert('提示', '留言不得超过200个字');
  105. return false;
  106. }
  107. return true;
  108. }
  109. LeaveWord.prototype.topLw = function() {
  110. var self = this;
  111. if(!self.size.call($(".msgCont")) ){
  112. return;
  113. }
  114. $.ajax({
  115. url:"/ajax/leavemsg",
  116. data: {
  117. cnt: $(".msgCont").val(),
  118. refId: self.sid,
  119. refType: self.stype,
  120. sender: $.cookie('userid'),
  121. uname: $.cookie('userName')
  122. },
  123. dataType: 'json',
  124. type: "POST",
  125. beforeSend: function() {
  126. $(".commentList").parent().siblings(".ifLogin").find(" .ifLoginOn input").attr("disabled","true");
  127. },
  128. traditional: true,
  129. success: function (data) {
  130. if (data.success) {
  131. $(".msgCont").val("");
  132. if (self.id) {
  133. delete self.id;
  134. delete self.time;
  135. }
  136. self.init({
  137. sid: self.sid,
  138. stype: self.stype,
  139. rows: 5
  140. });
  141. }
  142. }
  143. });
  144. }
  145. LeaveWord.prototype.autoGrow=function(){
  146. document.getElementById("tt").style.width=this.scrollWidth+"px";
  147. document.getElementById("tt").value=this.value;
  148. this.style.height=this.scrollHeight+"px";
  149. }
  150. LeaveWord.prototype.bindEvent = function() {
  151. var self = this;
  152. $("#meSendtt").click(function() {
  153. if(!lgin()) {
  154. return;
  155. }
  156. self.topLw();
  157. });
  158. $(".commentList").on("click", "li", function(e) {
  159. if(!lgin()) {
  160. return;
  161. }
  162. var obj=JSON.parse($(this).attr("data-obj")),
  163. target=e.target;
  164. switch (target.className){
  165. case "dzthumb dzthumbCan":self.thub.call(target, obj.id,obj.agreeCount);
  166. break;
  167. case "callBack":self.LwordBack(target, obj);
  168. break;
  169. case "messageDel":self.LwordDel(target, obj.id);
  170. break;
  171. case "hReply btnModel":self.replyLword(target,obj.id)
  172. break;
  173. case "qCancel": $(target).parent().siblings("textarea").val("").parents(".replyLeword").addClass("displayNone").siblings(".operateSpan").removeClass("displayNone")
  174. break;
  175. }
  176. });
  177. $(".msgCont").on("input",function(){
  178. if($.trim($(this).val()).length>0) {
  179. $("#meSendtt").removeAttr("disabled");
  180. }else{
  181. $("#meSendtt").attr("disabled","disabled");
  182. }
  183. })
  184. $(".commentList").on("input", "textarea", function(e) {
  185. if($.trim($(this).val()).length>0) {
  186. $(this).siblings().find(".btnModel").removeAttr("disabled");
  187. self.autoGrow.call(this);
  188. }else{
  189. $(this).siblings().find(".btnModel").attr("disabled","disabled");
  190. }
  191. })
  192. $(".js-load-more").click(function(){
  193. self.init({
  194. sid: self.sid,
  195. stype: self.stype,
  196. time: self.time,
  197. id: self.id,
  198. rows: 5
  199. });
  200. })
  201. }
  202. LeaveWord.prototype.referThup = function(lid, li, num) {
  203. ajaxRequist("/ajax/leavemsg/agree", {
  204. id: lid,
  205. uid: $.cookie('userid')
  206. }, "GET", function(data) {
  207. if(data) {
  208. li.find(".dzthumbCan").addClass("dzthumbed");
  209. }
  210. })
  211. }
  212. LeaveWord.prototype.thub = function(lid,num) {
  213. var self = this;
  214. ajaxRequist("/ajax/leavemsg/agree", {
  215. id: lid,
  216. uid: $.cookie('userid'),
  217. uname: $.cookie('userName')
  218. }, "POST", function(data) {
  219. $(self).addClass('dzthumbed').find(".agreeCount").html(num+1)
  220. })
  221. }
  222. LeaveWord.prototype.replyLword = function( $th,lid) {
  223. var self = this;
  224. if(!self.size.call($($th).parents(".pTxt").siblings("textarea")) ){
  225. return;
  226. }
  227. ajaxRequist("/ajax/leavemsg/reply", {
  228. cnt: $($th).parents(".pTxt").siblings("textarea").val(),
  229. id: lid,
  230. uid: $.cookie('userid'),
  231. uname: $.cookie('userName')
  232. }, "POST", function(data) {
  233. $($th).parents(".pTxt").siblings("textarea").val("").parents(".replyLeword").addClass("displayNone").siblings(".operateSpan").removeClass("displayNone")
  234. if(self.id) {
  235. delete self.id;
  236. delete self.time;
  237. }
  238. self.init({
  239. sid: self.sid,
  240. stype: self.stype,
  241. rows: 5
  242. });
  243. self.LwordTotal();
  244. })
  245. }
  246. LeaveWord.prototype.LwordDel = function($this, lid) {
  247. var self = this;
  248. ajaxRequist("/ajax/leavemsg/del", {
  249. id: lid
  250. }, "GET", function(data) {
  251. $($this).parents(".li-item").remove();
  252. self.LwordTotal();
  253. })
  254. }
  255. LeaveWord.prototype.LwordBack = function($this, lid) {
  256. $(".replyLeword").each(function(item){
  257. $(".replyLeword").eq(item).addClass("displayNone").siblings(".operateSpan").removeClass("displayNone");
  258. })
  259. $($this).parents(".operateSpan").addClass("displayNone").siblings(".replyLeword").removeClass("displayNone")
  260. }
  261. LeaveWord.prototype.LwordTotal = function() {
  262. var self = this;
  263. ajaxRequist("/ajax/leavemsg/count", {
  264. sid: self.sid,
  265. stype: self.stype
  266. }, "get", function($data) {
  267. $(".message").text($data);
  268. if($data==0) {
  269. $(".con-kong").removeClass("displayNone")
  270. }else{
  271. $(".con-kong").addClass("displayNone");
  272. }
  273. })
  274. }
  275. var module = {
  276. lWord: function(sid, stype) {
  277. this.sid = sid;
  278. this.stype = stype;
  279. if(arguments[2]) {
  280. this.flag=arguments[2]
  281. }
  282. var lw = new LeaveWord();
  283. this.init = lw.init;
  284. }
  285. }
  286. window.module = module;
  287. })(window)