ForumReply.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. Namespace.register("U.MD.D.PB.Re"); //pb回复处理
  2. //#region 回复
  3. /*
  4. * 获取回复内容
  5. *
  6. * @param {object} 帖子信息
  7. * @param {number} 目录信息
  8. * @param {string} 显示当前回复内容很的回复ID
  9. * @param {element} 帖子内容区域
  10. * @returns {Object}
  11. */
  12. U.MD.D.PB.Re.RPMHBK = function (UDE, UP, URID) {
  13. var _UDOD = $("#UD_SYPCLRR")[0], //回复打印的内容
  14. _UCE = U.MD.D.D.FYGBL(UDE.Reply, UP, [10, 100]); //获取当前页回复数据
  15. if (UP == 1) { _UDOD.innerText = "" }; //第一页打印处理
  16. if (_UCE[0]) {
  17. if (_UCE[0].length) {
  18. U.MD.D.PB.Re.PRPMHBK(_UCE[0], _UDOD, UDE, URID); //打印回复的内容
  19. }
  20. return true;
  21. }
  22. else {
  23. U.A.Request(US.CD, [US.DB, "UseStudio_Blog", "UB_P_S_SelectArticleAllReply", UDE.ArticleID, (_UCE[1] - 1) * 100, _UCE[1] * 100]), U.MD.D.PB.Re.AsynRPMHBK, ["", UDE, UP, _UCE[1], URID]; //获取回复
  24. // U.A.Request(US.AUTH,"pb.ReplyList", [UDE.ArticleID, (_UCE[1] - 1) * 100, _UCE[1] * 100]), U.MD.D.PB.Re.AsynRPMHBK, ["", UDE, UP, _UCE[1], URID]; //获取回复
  25. }
  26. }
  27. //分页滚动加载
  28. U.MD.D.PB.Re.FGRPMHBK = function () {
  29. U.MD.D.PB.Re.RPMHBK(U.MD.D.H.ET["NT"]["PB"]["DWZ"], this.P + 2); //滚动加载监听出发
  30. }
  31. //获取回复异步
  32. U.MD.D.PB.Re.AsynRPMHBK = function (r) {
  33. var i,
  34. _context = r.context,
  35. _UDE = _context[1]; //帖子信息
  36. r = r.value;
  37. if (_UDE.Reply == null) { _UDE.Reply = [] }; _UDE.Reply[_context[2]] = []; //给回复添加实体
  38. for (i = 0; i < r.length; i++) { //生成回复分类
  39. if (!r[i].ReplyParentID) {
  40. _UDE.Reply[_context[2]].push(r[i]); //回复添加到回复实体里
  41. r[i]["RR"] = U.Json.select(r, { "ReplyParentID": r[i].ReplyID }); //设置回复的回复
  42. }
  43. }
  44. U.MD.D.PB.Re.RPMHBK(_UDE, _context[2], _context[4]); //获取回复成功 同时打印回复
  45. }
  46. /*
  47. * 获取回复内容
  48. *
  49. * @param {object} 回复信息
  50. * @param {element} 元素
  51. * @param {object} 帖子信息
  52. * @param {string} 当前回复信息的位置id
  53. * @returns {Object}
  54. */
  55. U.MD.D.PB.Re.PRPMHBK = function (UDE, UDOD, UAE, URID) {
  56. var i, j, _UCE, _UDBD, _UDTD, _UDSD, _UDND, _UDID, _UDKD, _UDLD, _UDMD, _UIMG,
  57. _UIF = US.userInfo,
  58. _UDFD = $$("frag");
  59. /*
  60. 此处为样式打印输出
  61. */
  62. for (i = 0; i < UDE.length; i++) {
  63. _UCE = UDE[i]["RR"] || [];
  64. _UDTD = $$("div",{"className": "UD_SYPCLRRO"}, _UDFD);
  65. if (URID == UDE[i].ReplyID) { _UDBD = _UDTD };
  66. _UDSD = $$("div",{"className": "UD_SYPCLRROS"}, _UDTD);
  67. _UDND = $$("div",{"className": "UD_SYPCLRROSA"}, _UDSD);
  68. _UDID = $$("div",{"className": "UD_SYPCLRROL"}, _UDND);
  69. $$("img",
  70. {
  71. "onerror": U.MD.C.imgError,
  72. "alt": UDE[i].UserNickName,
  73. "onclick": function () {
  74. U.MD.U.V.ViewOtherUserInfo(UDE[i].ReplyAddUserID);
  75. },
  76. "src": U.MD.C.getHeadImage(UDE[i].UserThumbnailImageHead)
  77. }, _UDID);
  78. _UDID = $$("div",{"className": "UD_SYPCLRROR"}, _UDND);
  79. _UDKD = $$("div",{"className": "UD_SYPCLRRORS"}, _UDID);
  80. $$("div",{"className": "UD_SYPCLRRORSN UTDF","innerHTML": UDE[i].UserNickName}, _UDKD);
  81. $$("div",{"className": "UD_SYPCLRRORST","innerHTML": U.UF.D.getDateInterval(UDE[i].ReplyAddTime)}, _UDKD);
  82. _UDKD = $$("div",{"className": "UD_SYPCLRRORX"}, _UDID);
  83. _UDLD = $$("div",{"className": "UD_SYPCLRRORXC"}, _UDKD);
  84. _UDMD = $$("div",{"className": "UD_SYPCLRRORXCO","innerHTML": UDE[i].ReplyContent}, _UDLD);
  85. $("a", _UDMD).addAttrArray({ "target": "_blank" });
  86. _UDMD = $("img", _UDMD);
  87. _UIMG = [];
  88. for (j = 0; j < _UDMD.length; j++) {
  89. _UIMG.push({ "Time": UDE.ArticleAddTime,
  90. "Thm": _UDMD[j].src,
  91. "Img": _UDMD[j].alt.indexOf(US.FILESYSTEMURL) > -1 ? _UDMD[j].alt : _UDMD[j].src
  92. });
  93. _UDMD.addAttrArray({ "style": { "cssText": "" },
  94. "onclick": function () {
  95. U.UF.EV.stopBubble();
  96. U.MD.I.Img(_UIF, _UIMG, j);
  97. }
  98. }, j);
  99. }
  100. _UDID = $$("div",{"className": "UD_SYPCLRROM"}, _UDND);
  101. _UDID = $$("div",{"className": "UD_SYPCLRROMO"}, _UDID);
  102. $$("div",
  103. {
  104. "className": "UD_SYPCLRROMA",
  105. "innerHTML": "回复" + (_UCE.length > 0 ? "(" + _UCE.length + ")" : ""),
  106. "onclick": function () {
  107. U.MD.D.PB.Re.XPRPMHBK(_UDSD, UDE[i], UAE);
  108. }
  109. }, _UDID);
  110. if (UDE[i].ReplyAddUserID == US.userInfo.userid) {
  111. $$("div",
  112. {
  113. "className": "UD_SYBFOZTK UD_SYBFOZTKO",
  114. "style":
  115. {
  116. "margin": "0 0 0 5px"
  117. },
  118. "title": "删除",
  119. "innerHTML": "删除",
  120. "onclick": function () {
  121. U.UF.UI.Confirm("是否撤销评论", function () { U.MD.D.Blog.R.SCPHFRGBL(UDE, UDE[i], UAE, _UDTD) });
  122. }
  123. }, _UDID);
  124. }
  125. _UDSD = $$("div",{"className": "UD_SYPCLRROX"}, _UDTD);
  126. for (j = 0; (_UCE && j < _UCE.length); j++) {
  127. _UDID = $$("div",{"className": "UD_SYPCLRROXO"}, _UDSD);
  128. if (URID == _UCE[j].ReplyID) { _UDBD = _UDID };
  129. _UDKD = $$("div",{"className": "UD_SYPCLRROL"}, _UDID);
  130. $$("img",
  131. {
  132. "onerror": U.MD.C.imgError,
  133. "alt": _UCE[j].UserNickName,
  134. "onclick": function () {
  135. U.MD.U.V.ViewOtherUserInfo(_UCE[j].ReplyAddUserID);
  136. },
  137. "src": U.MD.C.getHeadImage(_UCE[j].UserThumbnailImageHead)
  138. }, _UDKD);
  139. _UDKD = $$("div",{"className": "UD_SYPCLRROXOR"}, _UDID);
  140. _UDLD = $$("div",{"className": "UD_SYPCLRROXORS"}, _UDKD);
  141. $$("div",{"className": "UD_SYPCLRROXORSO","innerHTML": _UCE[j].UserNickName}, _UDLD);
  142. $$("span",{"className": "UD_SYPCLRROXORSS","innerHTML": "回复"}, _UDLD);
  143. $$("div",{"className": "UD_SYPCLRROXORSO","innerHTML": _UCE[j].ParentUserNickName,"style":{"marginLeft": "5px"}}, _UDLD);
  144. _UDLD = $$("div",{"className": "UD_SYPCLRRORX"}, _UDKD);
  145. _UDMD = $$("div",{"className": "UD_SYPCLRRORXC"}, _UDLD);
  146. $$("div",{"className": "UD_SYPCLRRORXCO","innerHTML": _UCE[j].ReplyContent}, _UDMD);
  147. _UDKD = $$("div",{"className": "UD_SYPCLRROM"}, _UDID);
  148. _UDKD = $$("div",{"className": "UD_SYPCLRROMO"
  149. }, _UDKD);
  150. $$("div",
  151. {
  152. "className": "UD_SYPCLRROMA",
  153. "innerHTML": "回复",
  154. "onclick": function () {
  155. U.MD.D.PB.Re.XPRPMHBK(_UDID, _UCE[j], UAE, UDE[i]);
  156. }
  157. }, _UDKD);
  158. if (_UCE[j].ReplyAddUserID == US.userInfo.userid) {
  159. $$("div",
  160. {
  161. "className": "UD_SYBFOZTK UD_SYBFOZTKO",
  162. "style": {
  163. "margin": "0 0 0 5px"
  164. },
  165. "title": "删除",
  166. "innerHTML": "删除",
  167. "onclick": function () {
  168. U.UF.UI.Confirm("是否撤销评论", function () { U.MD.D.Blog.R.SCPHFRGBL(_UCE, _UCE[j], UAE, _UDID) });
  169. }
  170. }, _UDKD);
  171. }
  172. }
  173. }
  174. UDOD.appendChild(_UDFD);
  175. if (_UDBD) { _UDBD.scrollIntoView(false), $(UDOD).Parent(2).scrollLeft = 0 }; //默认滚动到指定的回复位置
  176. }
  177. //#region 功能区域
  178. //添加回复显示
  179. U.MD.D.PB.Re.XPRPMHBK = function (UDOD, UDE, UAE, UPE) {
  180. if (!U.MD.U.L.isLogin()) {
  181. var _UDAD, _UDKD,
  182. _UDED = $("#UD_SYPCLRCL")[0],
  183. _UDAD = $(UDOD).Child();
  184. if (_UDAD[_UDAD.length - 1].className != "UD_SYPCLRC") {
  185. if (_UDED == null) { _UDED = $("#UD_SYPCLRC")[0].cloneNode(true), $(_UDED).addAttrArray({ "id": "UD_SYPCLRCL" }) };
  186. _UDKD = $($($(_UDED).Child()[0]).Child()[0]).addAttrArray({ "innerText": "发表评论...", "id": "" })[0]; //清理评论框
  187. (_UDAD = $("div", _UDED))[_UDAD.length - 1].onclick = function () {
  188. U.MD.D.PB.Re.APRPMHBK(UDE, _UDKD, UAE, UPE || UDE);
  189. };
  190. UDOD.appendChild(_UDED); _UDKD.focus(); //添加回复框
  191. }
  192. else { $(_UDAD[_UDAD.length - 1]).remove(); }
  193. }
  194. }
  195. //添加回复
  196. U.MD.D.PB.Re.APRPMHBK = function (UDE, UDOD, UAE, UPE) {
  197. var _UTH = UDOD.innerHTML, _UTF = "请先登录", _URID = UDE ? (UDE.ReplyParentID || UDE.ReplyID) : "";
  198. if (US.userInfo.userid) { //发表帖子
  199. _UTF = "回复的内容部能为空";
  200. if (UDOD.innerText.trim().length > 0 && _UTH != "发表评论...") {
  201. _UTF = "正在回帖请稍等";
  202. U.A.Request(US.AUTH, ["ReportReply", UAE.ArticleID, UDOD.innerHTML, _URID, UDE ? UDE.ReplyAddUserID : ""]), U.MD.D.PB.Re.AsynAPRPMHBK, ["", UDE, UAE, UDOD.innerHTML, UPE]; UDOD.innerHTML = "";
  203. }
  204. }
  205. U.Alert(_UTF);
  206. }
  207. //添加回复异步
  208. U.MD.D.PB.Re.AsynAPRPMHBK = function (r) {
  209. var i, _URE,
  210. _UST = "服务器繁忙",
  211. _context = r.context,
  212. _UDE = _context[1],
  213. _UAID = _context[3],
  214. _UAE = _context[4] || _context[2];
  215. r = r.value;
  216. if (r) {
  217. (_UDE ? _UAE["RR"] : _UAE["Reply"][1]).unshift((_URE = new U.MD.D.PB.Re.TPRPMHBK[_UDE ? _UDE.UserNickName : "", U.UF.D.toTimeStamp(new Date()), US.userInfo.userid, _UAID, r, _UDE ? (_UDE.ReplyParentID || _UDE.ReplyID) : "", _UDE ? _UDE.ReplyAddUserID : "", US.userInfo.UserNickName, US.userInfo.UserThumbnailImageHead]));
  218. $("#UD_SYPCLCD div")[4].innerHTML = (_UAE.ArticleReplayNumber++) + 1; U.MD.D.PB.Re.RPMHBK(_context[2], 1); _UST = "发表回复成功";
  219. }
  220. U.Alert(_UST);
  221. }
  222. //回复的实体
  223. U.MD.D.PB.Re.TPRPMHBK = function (UDE) {
  224. this.ParentUserNickName = UDE[0];
  225. this.ReplyAddTime = UDE[1];
  226. this.ReplyAddUserID = UDE[2];
  227. this.ReplyContent = UDE[3];
  228. this.ReplyID = UDE[4];
  229. this.ReplyParentID = UDE[5];
  230. this.ReplyVerifyUserID = UDE[6];
  231. this.UserNickName = UDE[7];
  232. this.UserThumbnailImageHead = UDE[8];
  233. this.RR = [];
  234. }
  235. //#endregion
  236. //#endregion