U.F.R.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. Namespace.register("U.F.R"); //好友和群窗口区域命名空间
  2. //#region 右键菜单
  3. /**
  4. * 右键功能 显示[移动至][删除]窗体
  5. * 参数说明 0 当前元素 1 用户信息
  6. * @param {element} 右键好友的区域
  7. * @param {object} 好友信息
  8. */
  9. U.F.R.FriendsRightClickMenu = function (el, friendinfo) {
  10. var _friendmenuel = $('#UD_F_R_Div')[0], //右键的菜单
  11. _child = $(_friendmenuel).Child(); //子菜单
  12. //显示菜单,定位
  13. $(_friendmenuel).css({ "display": "block", "zIndex": "999" });
  14. U.M.RLocate(_friendmenuel); //右键菜单定位
  15. //按钮功能赋值
  16. _child[0].onclick = U.M.apply(_child[0], [[U.F.W.PopupFriendsForm, [friendinfo]]]); //发送消息
  17. _child[1].onclick = U.M.apply(_child[1], [[U.U.I.ViewOtherUserInfo, [friendinfo]]]); //查看个人资料
  18. _child[2].onmouseover = U.M.apply(_child[2], [[U.F.R.MoveFriendForm, [friendinfo, el, _child[2]]]]); //移动联系人至
  19. _child[3].onclick = U.M.apply(_child[3], [[U.F.R.DeleteFriendForm, [friendinfo]]]); //删除
  20. }
  21. /**
  22. * 鼠标移动到 联系人移动至制定的好友分组弹框
  23. * @param {object} 好友信息
  24. * @param {element} 右键好友的区域
  25. * @param {element} onmouseover出发的按钮
  26. */
  27. U.F.R.MoveFriendForm = function (friendinfo, el, menubootom) {
  28. var i,
  29. _friendclassel = $(menubootom).parentg().Child()[4], //获取好友分组打印的元素
  30. _friendclassinfo = US.Friend[0]; //获取用户所有的好友分组
  31. _friendclassel.innerText = ""; //清空之前打印的好友分组
  32. //如果有好友分组可以移动的情况
  33. if (_friendclassinfo.length > 1) {
  34. //循环打印好友分组
  35. for (i = 0; i < _friendclassinfo.length; i++) {
  36. //如果是当前用户所在的好友分组不打印,否则都打印
  37. if (_friendclassinfo[i].FriendsGroupID != friendinfo.FriendsGroupID) {
  38. //创建好友分组元素
  39. $$("div", { "class": "UD_F_R_Div_Children_A", "innerText": _friendclassinfo[i]["FriendsGroupName"],
  40. "onclick": [[U.F.R.AssignMoveFriend, [friendinfo, _friendclassinfo[i], el]]]
  41. }, _friendclassel);
  42. }
  43. }
  44. _friendclassel.style.display = "block";
  45. }
  46. }
  47. /**
  48. * 触发移动好友
  49. *
  50. * @param {object} 好友信息
  51. * @param {object} 群信息
  52. * @param {element} 好友元素
  53. */
  54. U.F.R.AssignMoveFriend = function (friendinfo, groupinfo, el) {
  55. //只有选择移动了触发
  56. if (friendinfo) {
  57. $('#UD_F_R_Div')[0].style.display = "none"; //点击后隐藏右键
  58. $(".UD_F_R_Div_Children")[0].style.display = "none"; //隐藏右键后好友分组选择的菜单
  59. //数据库设置移动好友信息
  60. U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "MoveFriendToOtherClass", friendinfo.FriendsID, groupinfo["FriendsGroupID"]],
  61. U.F.R.AsynAssignMoveFriend, ["", friendinfo, groupinfo, el]);
  62. U.Alert('修改成功');
  63. }
  64. }
  65. /**
  66. * 把相应的好友移动到指定的群组里
  67. */
  68. U.F.R.AsynAssignMoveFriend = function (r) {
  69. var _child, //好友分组元素
  70. _context = r.context, //异步传参
  71. _friendinfo = _context[1], //移动好友实体
  72. _groupinfo = _context[2], //好友分组字体
  73. _el = _context[3], //移动的元素
  74. _friendgroupel = $("#g" + _groupinfo.FriendsGroupID)[0], //移动到的好友分组
  75. _previousgroupinfo = _$(US.Friend[0]).Select({ "FriendsGroupID": _friendinfo.FriendsGroupID })[0], //修改前的好友分组
  76. _friendnum = _$(US.Friend[1]).Select({ "FriendsGroupID": _friendinfo.FriendsGroupID }).length - 1 //好友分组的数量
  77. ;
  78. //设置好友原本所在的分组信息
  79. $(_el).parentg(2).Child()[0].innerHTML = _previousgroupinfo.FriendsGroupName + "(" + _friendnum + ")"; //移动好友出去后需改数量显示
  80. //好友实体的id变化FriendsGroupID
  81. _friendinfo.FriendsGroupID = _groupinfo.FriendsGroupID;
  82. //判断分组是否显示
  83. if (_friendgroupel) {
  84. _child = $(_friendgroupel).Child();
  85. _friendnum = _$(US.Friend[1]).Select({ "FriendsGroupID": _friendinfo.FriendsGroupID }).length;
  86. _child[0].innerHTML = _groupinfo["FriendsGroupName"] + "(" + _friendnum + ")"; //新好友分组
  87. _child[1].appendChild(_el); //添加移动的元素
  88. }
  89. }
  90. /**
  91. * 鼠标从 联系人移动至 移开
  92. * 隐藏现有的好友分组 Jude
  93. */
  94. U.F.R.MoveFriendOver = function (isdisplay, friendgroupmenu, el) {
  95. //判断是否是冒泡上来的,如果是冒泡的则不处理
  96. if (!U.M.onmouseout(el)) {
  97. //根据传参设置是否显示隐藏
  98. friendgroupmenu.style.isdisplay = isdisplay ? "none" : "block";
  99. }
  100. }
  101. /**
  102. * 弹出移动好友分组
  103. * 参数说明 0 要移动的对象的信息集合 1 右键区域
  104. * @param {element} 点击移动至区域
  105. */
  106. U.F.R.TopMoveFriendForm = function (el, friendinfo) {
  107. var i, //循环
  108. _tempel,
  109. _friendclassel = $$("div", { "className": "UD_F_R_Y_D" }), //弹出框内容区域
  110. _friendclassinfo = US.Friend[0], //好友分组信息
  111. _friendclassform = U.UI.Confirm("移动设置", { "width": "300px", "height": "auto" }, [], [U.F.R.AssignMoveFriend], _friendclassel); //好友分组弹框
  112. $$("div", { "innerText": "选择好友移动至", "className": "UD_F_R_Y_DT" }, _friendclassel);
  113. _tempel = $$("div", { "className": "UD_F_R_Y_DS" }, _friendclassel);
  114. //循环所有可以移动的分组
  115. for (i = 0; i < _friendclassinfo.length; i++) {
  116. $$("div", { "innerHTML": _friendclassinfo[i].FriendsGroupName,
  117. "className": "UD_F_R_Div_Q" + (friendinfo.FriendsGroupID == _friendclassinfo[i].FriendsGroupID ? " UD_F_R_Div_QO" : ""),
  118. "onclick": [[U.F.R.TopMoveFriendFormSwitch, ["this", friendinfo, _friendclassinfo[i], _friendclassform, el]]]
  119. }, _tempel);
  120. }
  121. }
  122. /**
  123. * 右键功能 显示[移动至][删除]窗体
  124. *
  125. * @param {element} 选中变化的元素
  126. * @param {object} 好友信息
  127. * @param {object} 群信息
  128. * @param {array} 对话框
  129. ------------[0] 对话框
  130. * @param {element} 好友元素
  131. */
  132. U.F.R.TopMoveFriendFormSwitch = function (groupel, friendinfo, friendclassinfo, friendclassform, el) {
  133. var i, //用于循环
  134. _child = $(el).parentg().Child(); //获取
  135. //设置点击的效果
  136. for (i = 0; i < _child.length; i++) {
  137. _child[i].className = "UD_F_R_Div_Q" + (el == _child[i] ? " UD_F_R_Div_QO" : "");
  138. }
  139. //设置确定按钮的事件,这里要结合窗体的api
  140. friendclassform.AddEvent({ Yes: [U.F.R.AssignMoveFriend, [friendinfo, friendclassinfo, el]] });
  141. }
  142. //#endregion
  143. //#region 好友分组
  144. /**
  145. * 右键群显示
  146. * @param object 右键元素的信息集合
  147. */
  148. U.F.R.FriendClassRightClickMenu = function (friendgroupinfo, el) {
  149. var _el = $('#UD_F_R_Qun')[0], //右键的菜单
  150. _child = $(_el).Child(); //子菜单
  151. $(_el).css({ "display": "block", "zIndex": "999" }); //显示右键菜单
  152. U.M.RLocate(_el); //右键菜单定位
  153. //修改分组名字的点击处理
  154. _child[0].onclick = U.M.apply(_child[0], [[U.F.R.PopupUpdateFriendsClassForm, [friendgroupinfo, el]]]);
  155. }
  156. /**
  157. * 修改分组昵称 弹框
  158. * @param object 分组信息集合
  159. * @param object 当前的el
  160. */
  161. U.F.R.PopupUpdateFriendsClassForm = function (friendgroupinfo, el) {
  162. var _tempel,
  163. _temponeel,
  164. _temptwoel
  165. ;
  166. if (friendgroupinfo) {
  167. //创建好友分组的样式
  168. _tempel = $$("div", { "className": "UD_SYSSZS UD_SYATNL UD_SYSOU" });
  169. _temponeel = $$("div", {}, _tempel)
  170. _temptwoel = $$("input", { "value": friendgroupinfo.FriendsGroupName, "onfocus": [[U.MR.InputTip, ["this", [friendgroupinfo.FriendsGroupName, ""]]]], "onblur": [[U.MR.InputTip, ["this", "", friendgroupinfo.FriendsGroupName]]] }, _temponeel);
  171. //弹出好友对话框
  172. U.UI.Confirm("分组名字", { "max-width": "500px", "width": "auto", "height": "auto" },
  173. null, U.M.apply(null, [[U.F.R.AssignUpdateFriendsClass, [friendgroupinfo, _temptwoel, el]]]), _tempel, $("#UD_SY")[0]); //创建一个对话框
  174. }
  175. else {
  176. U.Alert("暂无群信息");
  177. }
  178. }
  179. /**
  180. *
  181. * 参数说明 0 群消息集合 1 更改的分组名称 3对应修改的el
  182. * @param {object} 群信息
  183. * @param {element} 输入框
  184. * @param {object} 对应的el
  185. */
  186. U.F.R.AssignUpdateFriendsClass = function (friendgroupinfo, formel, el) {
  187. U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "UpdateClassNameAndDescription", friendgroupinfo["FriendsGroupID"], formel.value, ""],
  188. function () {
  189. $(el)[0].innerText = formel.value;
  190. U.Alert("修改成功");
  191. }, []);
  192. U.Alert("正在修改中");
  193. }
  194. //#endregion
  195. /**
  196. * 删除确定
  197. * 参数说明 0 要删除的对象ID 1右键的区域
  198. * @param {element} 右键好友的区域
  199. */
  200. U.F.R.DeleteFriendForm = function (friendinfo) {
  201. var _el,
  202. _tempel,
  203. _temponeel
  204. ;
  205. //创建删除好友的信息样式
  206. _el = $$("div", { "class": "UD_F_R_D" });
  207. _tempel = $$("div", { "class": "UD_F_R_D_A" }, _el);
  208. _temponeel = $$("div", { "class": "UD_F_R_D_AL", "onclick": [[U.U.I.ViewOtherUserInfo, [friendinfo.UaweId]]] }, _tempel);
  209. $$("img", { "src": "http://fs.1473.cn/" + friendinfo["UserImageHead"], "onerror": U.M.ImgError }, _temponeel); //用户头像
  210. _temponeel = $$("div", { "class": "UD_F_R_D_AR" }, _tempel)
  211. $$("div", { "class": "UD_F_R_DelP1", "innerText": friendinfo["UserNickName"] }, _temponeel);
  212. $$("div", { "class": "UD_F_R_DelP2", "innerText": friendinfo["UserIndividualitysignature"] == "" ? "暂时没有填写个人介绍" : friendinfo["UserIndividualitysignature"] }, _temponeel); //个性签名
  213. $$("div", { "class": "UD_F_R_DelSpan", "innerText": "删除后你将从对方列表消失,且以后不再接受此人的会话消息。" }, _el);
  214. //弹出删除好友的框
  215. U.UI.Confirm("删除好友", { "width": "330px", "height": "auto" }, null, [U.F.M.DeleteFriend, [friendinfo]], _el);
  216. }
  217. /**
  218. * 右上角设置
  219. * 参数说明 friendinfo对应的好友信息集合
  220. * @param object 好友信息
  221. *
  222. */
  223. U.F.R.PopupRightCornerMenu = function (friendinfo, el) {
  224. var _tempel,
  225. _friendclassinfo,
  226. _isaddfriend,
  227. _menuel = $(el).Child()[0];
  228. //如果菜单存在则删除
  229. if (_menuel) {
  230. $(_menuel).remove();
  231. }
  232. //好友查看
  233. if (friendinfo.UserId) {
  234. _isaddfriend = _$(US.Friend[1]).FindOne({ "UserId": friendinfo.UserId }); //判断用户是否在好友列表里
  235. //判断用户是否是自己的好友,是的话则操作好友信息
  236. if (_isaddfriend) {
  237. //获取好友分组信息
  238. _friendclassinfo = $("#g" + _isaddfriend.FriendsGroupID).find("[tid=" + _isaddfriend.UserId + "]")[0]; //好友分组信息
  239. //创建菜单
  240. _tempel = $$("div", { "class": "UD_SYFT_B", style: {} }, el);
  241. $$("div", { "innerText": "修改备注姓名", "onclick": [[U.F.R.UpdateFriendDescriptForm, [_isaddfriend]]] }, _tempel);
  242. $$("div", { "innerText": "修改好友分组", "onclick": [[U.F.R.TopMoveFriendForm, [_friendclassinfo, _isaddfriend]]] }, _tempel);
  243. $$("div", { "innerText": "删除好友", "onclick": [[U.F.R.DeleteFriendForm, [_isaddfriend]]] }, _tempel);
  244. }
  245. //如果好友不是自己的好友,则菜单为添加好友
  246. else {
  247. $$("div", { "innerText": "添加该好友" }, _tempel);
  248. }
  249. }
  250. //群菜单查看
  251. else {
  252. U.F.J.GroupInfoForm(friendinfo); //查看群 操作
  253. }
  254. }
  255. /**
  256. * 修改好友备注
  257. * 参数说明 UGE对应的好友信息集合
  258. * @param object
  259. */
  260. U.F.R.UpdateFriendDescriptForm = function (_friendinfo) {
  261. var _tempel,
  262. _temponeel,
  263. _temptwoel,
  264. _descript;
  265. _descript = _friendinfo.FriendsDescript || _friendinfo.UserNickName; //修改的好友昵称
  266. //创建好友分组的样式
  267. _tempel = $$("div", { "className": "UD_SYSSZS UD_SYATNL UD_SYSOU" });
  268. _temponeel = $$("div", {}, _tempel)
  269. _temptwoel = $$("input", { "value": _descript, "onfocus": [[U.MR.InputTip, ["this", [_descript, ""]]]],
  270. "onblur": [[U.MR.InputTip, ["this", ["", _descript]]]]
  271. }, _temponeel);
  272. //弹出好友对话框
  273. U.UI.Confirm("好友昵称", { "width": "300px" }, null, U.M.apply(null, [[U.F.R.UpdateFriendDescript, [_friendinfo, _temptwoel]]]), _tempel, $("#UD_SY")[0]); //创建一个对话框
  274. }
  275. /**
  276. * 确认修改备注
  277. * 参数说明 0 对应好友信息集合 1对应的el 用于静态改变当前的备注
  278. * @param{object}群信息
  279. * @{element}对应el
  280. */
  281. U.F.R.UpdateFriendDescript = function (friendinfo, el) {
  282. U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "UpdateFriendDescription", friendinfo['FriendsID'], el.value],
  283. U.F.R.AsynUpdateFriendDescript, [null, friendinfo, el.value]);
  284. }
  285. /**
  286. * 好友备注修改异步
  287. * @param{object} 异步服务器返回的信息
  288. */
  289. U.F.R.AsynUpdateFriendDescript = function (r) {
  290. var context = r.context,
  291. _friendinfo = context[1],
  292. _descript = context[2],
  293. _el = $("#g" + _friendinfo.FriendsGroupID).find("[tid=" + _friendinfo["UserId"] + "]")[0];
  294. _friendinfo.FriendsDescript = _descript; //在好友信息集合里修改用户描述
  295. //在好友列表中修改好友
  296. if (_el) {
  297. $("div", _el)[2].innerText = context[2];
  298. }
  299. }