Comment.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. Namespace.register("U.MD.D.CM"); //评论模块
  2. U.MD.D.CM.RP = {}; //用户回复
  3. U.MD.D.CM.Num = 20; //每页显示的评论数量
  4. //#region 评论使用
  5. //弹出评论
  6. U.MD.D.CM.CKPLXS = function (UFID, fun) {
  7. var _UDTD;
  8. var _UDOD = $("#UD_SYPL");
  9. var _UDAD = _UDOD.childs();
  10. U.UI.Form({ onresize: U.UF.Mapply(null, function () { U.MD.D.CM.Size(_UDAD[0]); }), title: "<div class='UD_SYF_STI'>" + fun + "</div>", content: (_UDOD = _UDOD[0]), style: { width: "720px", "maxHeight": "90%", "height": "650px" }, hst: { style: { padding: "0"}} }).form;
  11. U.MD.D.CM.Size(_UDAD[0]);
  12. U.MD.D.CM.CMSS(UFID, 1, (_UDTD = _UDAD.addAttrArray({ "scrollTop": 0 }, 0)[0])); //初始化数据
  13. $(".UD_SYPCLRCDO", _UDAD[1])[0].onclick = U.UF.Mapply(this, function () { U.MD.D.CM.TJCKPLXS(UFID, $("div", _UDAD[1])[3]); }); //添加回复按钮
  14. _UDTD.onscroll = U.UF.MSSCH({ "AF": U.UF.Mapply(null, function () { U.MD.D.CM.GDCKPLXS(UFID, _UDTD); }) }).SCH(); //设置滚动加载
  15. }
  16. //弹出评论
  17. U.MD.D.CM.CKPLXS = function (UFID, fun) {//U.DK.DI.js,U.DK.RE.js使用了,但被注释了 UM1.js uformd.js使用了, 没有地方明显使用,无法调试
  18. var _UDTD;
  19. var _UDOD = $("#UD_SYPL");
  20. var _UDAD = _UDOD.childs();
  21. U.UI.Form({ onresize: U.UF.Mapply(null, function () { U.MD.D.CM.Size(_UDAD[0]); }), title: "<div class='UD_SYF_STI'>" + fun + "</div>", content: (_UDOD = _UDOD[0]), style: { width: "720px", "maxHeight": "90%", "height": "650px" }, hst: { style: { padding: "0"}} }).form;
  22. U.MD.D.CM.Size(_UDAD[0]);
  23. U.MD.D.CM.CMSS(UFID, 1, (_UDTD = _UDAD.addAttrArray({ "scrollTop": 0 }, 0)[0])); //初始化数据
  24. $(".UD_SYPCLRCDO", _UDAD[1])[0].onclick = U.UF.Mapply(this, function () { U.MD.D.CM.TJCKPLXS(UFID, $("div", _UDAD[1])[3]); }); //添加回复按钮
  25. _UDTD.onscroll = U.UF.MSSCH({ "AF": U.UF.Mapply(null, function () { U.MD.D.CM.GDCKPLXS(UFID, _UDTD); }) }).SCH(); //设置滚动加载
  26. }
  27. //大小变化设置
  28. U.MD.D.CM.Size = function (UDOD) {//只被同一文件下的 U.MD.D.CM.CKPLXS 使用了??
  29. var _UDPD = $(UDOD).parentElement(2);
  30. var _UDAD = $(UDOD).parentElement().Child();
  31. $(UDOD).css("height", _UDPD[0].offsetHeight - _UDAD[_UDAD.length - 1].offsetHeight - 15 + "px"); //改变高度?
  32. }
  33. //添加回复
  34. U.MD.D.CM.TJCKPLXS = function (UFID, UDOD) {
  35. U.MD.D.CM.MR(UFID, UDOD, 1);
  36. }
  37. //获取回复评论,参数1为回复id,参数2为页数。
  38. U.MD.D.CM.CMSS = function (UFID, UP, UDOD, UTF) {
  39. UDOD = UDOD || $("div");
  40. var _UCE,
  41. _UM = U.MD.D.CM.Num, _UE = UP * _UM,
  42. _US = _UE - _UM,
  43. _UDE = U.MD.D.CM.RP[UFID];
  44. if (_UDE) { _UCE = _UDE.slice(_US, _UE) }; if (UP == 1) { UDOD.innerText = "" };
  45. if (UTF || _UCE) {
  46. if (_UCE.length) { U.MD.D.CM.SetRPSS(_UCE, UDOD); }
  47. else if (UP == 1) { U.MD.D.CM.WSJDY(UDOD); }
  48. } //打印数据
  49. else {
  50. U.A.Request("Reply.SelectData", ["SelectData", UFID, _US, 100], U.MD.D.CM.CMSG, [UP == 1 ? [UDOD, true] : null, UFID, UP, UDOD]);
  51. } //获取数据
  52. }
  53. //滚动加载
  54. U.MD.D.CM.GDCKPLXS = function (UFID, UDOD) {
  55. U.MD.D.CM.CMSS(UFID, this.P + 2, UDOD);
  56. }
  57. //回复和回复的回复区分
  58. U.MD.D.CM.QFOTP = function (UDE) {
  59. var i, j, _UCE;
  60. for (i = 0; i < UDE[1].length; i++) {
  61. _UCE = U.Json.select(UDE[0], { "ReplyID": UDE[1][i]["ReplyBindingID"] })[0];
  62. if (_UCE) {
  63. if (!_UCE["NextP"]) { _UCE["NextP"] = [] };
  64. _UCE["NextP"].push(UDE[1][i]);
  65. for (j = (i + 1); j < UDE[1].length; j++) {
  66. if (UDE[1][j]["ReplyBindingID"] == _UCE["ReplyID"]) {
  67. _UCE["NextP"].push(UDE[1].splice(j, 1)[0]);
  68. }
  69. }
  70. }
  71. }
  72. return UDE[0];
  73. }
  74. //数据打印处理
  75. U.MD.D.CM.SetRPSS = function (UDE, UDOD) {
  76. var i, j, _UCE, _UKE, _UDTD,
  77. UDFD = $$("frag");
  78. for (i = 0; i < UDE.length; i++) {
  79. _UCE = UDE[i];
  80. _UDTD = $("div", U.MD.D.CM.UOSS(UDE[i], UDFD));
  81. _UDTD = _UDTD[_UDTD.length - 1];
  82. for (j = 0; j < (_UCE["NextP"] || { "length": 0 }).length; j++) {
  83. _UKE = _UCE["NextP"][j];
  84. U.MD.D.CM.UTSS(_UKE, _UCE, _UDTD);
  85. } //用户回复的回复聊天
  86. }
  87. UDOD.appendChild(UDFD);
  88. }
  89. //无数据的打印
  90. U.MD.D.CM.WSJDY = function (UDOD) {
  91. $$("div", {"className": "UD_SYSXZBECCT UD_SYSXZBECCTS","innerHTML": "暂无评论哦~"}, UDOD); //创建暂无评论div
  92. }
  93. //回复打印
  94. U.MD.D.CM.UOSS = function (UDE, UDFD) {//动态创建
  95. var _UDOD, _UDTD, _UDSD, _UDGD, _UDND, _UDUD;
  96. _UDOD = $$("div",{"className": "UD_CM_HFPL"}, UDFD);
  97. _UDTD = $$("div",{"className": "UD_CM_HFPLO"}, _UDOD);
  98. $$("img",
  99. {
  100. "onerror": [U.UF.MImgError,
  101. ["retElement"]],
  102. "className": "UD_CM_HFPLLImg",
  103. "onclick": function () {
  104. U.MD.U.V.ViewOtherUserInfo(UDE.UserID);
  105. },
  106. "src": U.UF.MGetImgU(UDE.ReplyUserThumbnailImageHead),
  107. "alt": "点击查看资料"
  108. }, _UDTD)
  109. $$("div",{"className": "UDK_L_DiskGE UD_CM_HFPLL"}, _UDOD);
  110. _UDSD = $$("div", {"className": "UD_CM_HFPLR "}, _UDOD);
  111. $$("div",
  112. {
  113. "title": "查看该用户",
  114. "className": "UD_CM_HFPLRUs",
  115. "innerHTML": UDE.UserName,
  116. "onclick": function () {
  117. parent.U.MD.U.V.POUW(UDE.ReplyAddUserID);
  118. }
  119. }, _UDSD);
  120. $$("div",{"className": "UD_CM_HFPLRVa","innerHTML": " 发表評論:"}, _UDSD);
  121. $$("div",
  122. {
  123. "innerHTML": UDE.ReplyContent,
  124. "className": "UD_CM_OCT UC_TF",
  125. "onselectstart": "U.UF.MStopBubble();return true;"
  126. }, _UDSD);
  127. _UDGD = $$("div",{"className": "UD_CM_OCRT"}, _UDSD);
  128. $$("div",{"className": "UD_CM_OCRTT","innerHTML": U.MT.formatDateToArray(UDE.ReplyAddTime)}, _UDGD);
  129. $$("div",{"className": "UD_CM_OCRTTX","innerHTML": "來自" + (UDE.UserName)}, _UDGD);
  130. $$("div",
  131. {
  132. "className": "UD_CM_OCRTTB",
  133. "style":
  134. {
  135. "color": "#3863dc"
  136. },
  137. "onclick": function () {
  138. U.MD.D.CM.UTTP(UDE, _UDSD);
  139. },
  140. "innerHTML": "回复"
  141. }, _UDGD);
  142. $$("div",{"className": "UD_CM_URFV"}, _UDSD);
  143. return _UDOD;
  144. }
  145. //下级回复
  146. U.MD.D.CM.UTSS = function (UDE, UPE, UDFD) {//动态创建
  147. var _UOOD, _UOTD, _UOSD, _UOFD, _UOSD;
  148. _UOOD = $$("div",{"className": "UD_CM_HFPL"}, UDFD);
  149. _UOTD = $$("div",{"className": "UD_CM_HFPLR UD_CM_HFPLRO","style":{"marginLeft": "0"}}, _UOOD);
  150. $$("div",
  151. {
  152. "className": "UD_CM_HFPLRUs",
  153. "onclick": function () {
  154. U.UF.MStopBubble();
  155. U.MD.U.V.ViewOtherUserInfo(UDE.UserID);
  156. },
  157. "innerHTML": UDE.UserName
  158. }, _UOTD);
  159. $$("div",{"className": "UD_CM_OCTE","innerHTML": "回复了"}, _UOTD);
  160. $$("div",
  161. {
  162. "className": "UD_CM_HFPLRUs",
  163. "onclick": function () {
  164. U.UF.MStopBubble();
  165. U.MD.U.V.ViewOtherUserInfo(UDE.ReplyParentID);
  166. },
  167. "innerHTML": '@' + UDE.ReplyParentNickname
  168. }, _UOTD); //
  169. $$("div",{"className": "UD_CM_OCT","innerHTML": UDE.ReplyContent}, _UOTD);
  170. _UDGD = $$("div",{"className": "UD_CM_OCRT"}, _UOTD);
  171. $$("div",{"className": "UD_CM_OCRTT","innerHTML": U.MT.formatDateToArray(UDE.ReplyAddTime)}, _UDGD);
  172. $$("div",{"className": "UD_CM_OCRTTX","innerHTML": "來自" + (UDE.UserName)}, _UDGD);
  173. $$("div",
  174. {
  175. "className": "UD_CM_OCRTTB",
  176. "onclick": function () { U.MD.D.CM.UTTP(UDE, _UOOD, true); },
  177. "innerHTML": "回复" + "<br />"
  178. }, _UDGD);
  179. $$("div",{"className": "UDK_L_DiskGE UD_CM_HFPLLR"}, _UOOD);
  180. $$("img",
  181. {
  182. "onerror": [U.UF.MImgError, [this]],
  183. "className": "UD_CM_HFPLLImg",
  184. "onclick": function () {
  185. U.MD.U.V.ViewOtherUserInfo(UDE.UserID);
  186. },
  187. "src": U.UF.MGetImgU(UDE.ReplyUserThumbnailImageHead),
  188. "style":
  189. {
  190. "marginLeft": "10px"
  191. }
  192. }, _UOOD);
  193. return _UOOD;
  194. }
  195. //子回复的回复框
  196. U.MD.D.CM.UTTP = function (UDE, UDOD, UTF) {
  197. var _UDMD,
  198. _UDSD = $("#UD_SYPLDT")[0],
  199. _UDTD = UTF ? $(UDOD).Parent() : UDOD;
  200. if (_UDSD) {
  201. $(_UDTD).append(_UDSD, 0, UTF ? UDOD.nextSibling : null);
  202. _UDSD.style.display = "block";
  203. _UDMD = $(_UDSD).find("div");
  204. }
  205. else {
  206. _UDMD = $(UDOD).parentElement("UD_SYPL");
  207. _UDMD = $(_UDMD).childs()[2];
  208. _UDMD = $(_UDMD).childs()[0];
  209. var _el = $(_UDMD).clone(true);
  210. _el.addAttrArray({ "className": "UD_SYPLDC UD_SYPLDCO", "id": "UD_SYPLDT", "style": { "display": "block"} });
  211. _el.appendTo(_UDTD, 0, UDOD.nextSibling);
  212. }
  213. _UDMD[_UDMD.length - 1].onclick = U.UF.Mapply(this, function ()
  214. { U.MD.D.CM.MR(UDE.FileID, _UDMD[2], 2, (UDE["ReplyBindingID"] || UDE["ReplyID"]), UDE["UserID"], UDE["UserName"]); }); //点击发表评论
  215. // _UDMD[2].onfocus = U.UF.Mapply(_UDMD[2],function(){U.MD.D.SY.KBJJQ( [_UDMD[2]("发表评论...", "<div></div>", _UDMD[4], { "GS": "M", "getData": U.MD.D.SY.ATGBL, "UDOD": _UDMD[1], "URL": "http://main.1473.cn/USUpfile.ashx?typename=UseStudioEditor", "ID": "UD_SYPLDCO"}]);}); //上传按钮
  216. _UDMD[2].focus();
  217. return _UDMD;
  218. }
  219. //发送回复隐藏
  220. U.MD.D.CM.BNPE = function (UDOD) {
  221. UDOD.innerHTML = "发表评论...";
  222. $(UDOD).Parent(3).style.display = "none";
  223. }
  224. ////#endregion
  225. //-------------------------------------------------------------------------------------添加回复-------------------------------------------------------------
  226. //回复实体
  227. U.MD.D.CM.TCM = function (UDE) {
  228. U.UF.C.AddObj(this, {
  229. "FileID": UDE[0],
  230. "UserID": UDE[1],
  231. "UserName": UDE[2],
  232. "ReplyID": UDE[3],
  233. "ReplyContent": UDE[4],
  234. "ReplyAddTime": UDE[5],
  235. "ReplyIP": UDE[6],
  236. "ReplyAddress": UDE[7],
  237. "ReplyDeep": UDE[8],
  238. "ReplyUserThumbnailImageHead": UDE[9],
  239. "ReplyBindingID": UDE[10],
  240. "ReplyParentID": UDE[11],
  241. "ReplyParentNickname": UDE[12]
  242. });
  243. }
  244. //添加回复
  245. U.MD.D.CM.MR = function (UFID, UDOD, UD, UPID, userid, UN, cb) {
  246. if (!U.MD.U.L.isLogin()) {//登录用户允许发表
  247. var _UCE = [],
  248. _UIH = UDOD.innerHTML; //回复的内容
  249. if (!UDOD.innerText) { U.Alert("请输入内容"); }
  250. else {
  251. var _UDE = new U.MD.D.CM.TCM((_UCE = [UFID, US.userInfo.userid, US.userInfo.UserNickName, Guid.newGuid(), _UIH, new Date(), US.userInfo.LoginIP || "", US.userInfo.LoginAddress || "", UD, US.userInfo.UserThumbnailImageHead || "", UPID || "", userid || "", UN || ""]));
  252. UDOD.innerText = "";
  253. UDOD.focus();
  254. UDOD.blur();
  255. _UCE.splice(5, 1);
  256. _UCE.unshift("InsertData");
  257. U.A.Request("Reply.InsertData", (_UCE), U.MD.D.CM.AsynMR, ["", _UDE, UDOD, cb]); //插入数据库
  258. }
  259. }
  260. }
  261. //添加回复的回调
  262. U.MD.D.CM.AsynMR = function (r) {
  263. var _UCE, _UDOD, _UDTD,
  264. _UGE = U.MD.D.CM.RP,
  265. _context = r.context,
  266. _UDE = _context[1],
  267. _UDMD = _context[2],
  268. _UCB = _context[3],
  269. _UFID = _UDE["FileID"];
  270. r = r.value;
  271. if (r !== false) {
  272. if (_UDE["ReplyBindingID"]) {
  273. _UCE = U.Json.select(_UGE[_UFID], { "ReplyID": _UDE["ReplyBindingID"] })[0];
  274. if (!_UCE["NextP"]) { _UCE["NextP"] = [] }; _UCE["NextP"].unshift(_UDE);
  275. } //回复的回复
  276. else {
  277. if (!_UGE[_UFID]) { _UGE[_UFID] = [] }; _UDE["NextP"] = [];
  278. _UGE[_UFID].unshift(_UDE);
  279. } //回复
  280. if (_UCB) { _UCB(_UDE); }
  281. else {
  282. if (_UDE["ReplyBindingID"]) {
  283. U.MD.D.CM.BNPE(_UDMD);
  284. _UDTD = $(_UDMD).Parent(4);
  285. if (_UDTD.className != "UD_CM_URFV") { _UDTD = $(_UDTD).find(".UD_CM_URFV")[0] }; _UDOD = U.MD.D.CM.UTSS(_UDE, _UCE);
  286. }
  287. else {
  288. _UDTD = $("#UD_SYPL").Child()[0];
  289. if (_UGE[_UFID].length == 1) { _UDTD.innerText = "" };
  290. _UDOD = U.MD.D.CM.UOSS(_UDE);
  291. }
  292. _UDTD.insertBefore(_UDOD, _UDTD.firstChild);
  293. U.UF.MSCT(0, $("#UD_SYPLC")[0]);
  294. }
  295. }
  296. }
  297. //排序数据,分类数据
  298. U.MD.D.CM.CMSG = function (r) {//标签有别的js使用
  299. var _context = r.context,
  300. _UDE = U.MD.D.CM.RP,
  301. _UFID = _context[1],
  302. _UP = _context[2],
  303. _UDOD = _context[3],
  304. _UDND = _context[4],
  305. _UTF = _context[5];
  306. r = r.value;
  307. if (r) {
  308. if (r[0].length == 0) {
  309. _context[3].onscroll = null;
  310. }
  311. else {
  312. if (!_UDE[_UFID]) { _UDE[_UFID] = [] };
  313. _UDE[_UFID] = _UDE[_UFID].concat(U.MD.D.CM.QFOTP(r));
  314. if (!_UTF) { U.MD.D.CM.CMSS(_UFID, _UP, _UDOD, true) };
  315. return true;
  316. }
  317. }
  318. else { U.Alert("服务器繁忙"); }
  319. }