Add.js 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189
  1. Namespace.register("U.MD.F.J"); //好友加群加好友的命名空间
  2. //#region 创建群组
  3. //听见群用户的信息
  4. U.MD.F.J.selectUserInfo = {
  5. NeedUser: [], //需要添加的群用户
  6. SelectUser: [], //已经选择过的用户
  7. CallBack: null //添加后的回调
  8. };
  9. /**
  10. * 显示添加群窗口
  11. *
  12. * @param {object} 群信息
  13. * @param {element} 元素处理
  14. * @param {boolean}
  15. */
  16. U.MD.F.J.groupInfoForm = function (groupinfo, chatel) {
  17. var _formel, //窗体
  18. _groupuserinfo, //获取所有的群好友
  19. _determinebottom,
  20. _closebottom,
  21. _isgroupmain,
  22. _isdeletegroup,
  23. _groupinfoel = $("#U_MD_F_Add"), //添加群的窗体
  24. _addgroupuserel = $("#U_MD_F_RC_C")[0], //内容区域
  25. _groupinfochildsel = _groupinfoel.Child(), //群信息窗体子元素
  26. _inputel = $("input,textarea", _groupinfochildsel[0]); //内容输出
  27. //清空群用户
  28. U.MD.F.J.selectUserInfo.NeedUser.splice(0, U.MD.F.J.selectUserInfo.NeedUser.length);
  29. //设置该联系人进入群
  30. _groupinfochildsel[1].innerHTML = "";
  31. //如果群存在的处理
  32. if (groupinfo) {
  33. //是否是新建群或者是群主,
  34. if ($('.U_MD_F_Add_TNM_ADD2')[0]) {
  35. $('.U_MD_F_Add_TNM_ADD2')[0].style.display = "none";
  36. }
  37. if ($('.U_MD_F_Add_TNMO')[0]) {
  38. $('.U_MD_F_Add_TNMO')[0].style.display = "block";
  39. }
  40. if ($('.U_MD_F_Add_C_D')[0]) {
  41. $('.U_MD_F_Add_C_D')[0].style.display = "block";
  42. }
  43. if ($('.U_MD_F_Add_C')[0]) {
  44. $('.U_MD_F_Add_C')[0].style.display = "block";
  45. }
  46. if (groupinfo) {
  47. _isgroupmain = groupinfo.GroupManageCreateUserID == US.userInfo.userid; //群主
  48. } else {
  49. _isgroupmain = !groupinfo; //新建群
  50. }
  51. //判断是否是群主还是群成员
  52. if (_isgroupmain) {
  53. _isdeletegroup = "解散该群"; //群主
  54. } else {
  55. _isdeletegroup = "退出该群"; //群成员
  56. }
  57. //设置是否显示解散该群还是退出该群
  58. $(_groupinfoel[0]).Child()[2].style.display = "block";
  59. //设置群名,群描述等
  60. _inputel[0].value = groupinfo.GroupManageName;
  61. _inputel[1].value = groupinfo.GroupManageDescript;
  62. //获取群用户的信息
  63. _groupuserinfo = U.Json.select(US.friend.groupusers, { "GroupManageID": groupinfo.GroupManageID });
  64. //设置已经选择过的用户
  65. U.MD.F.J.selectUserInfo.SelectUser = _groupuserinfo;
  66. //打印当前群的用户
  67. U.MD.F.J.printGroupUserInfo(_groupinfochildsel[1], _groupuserinfo, groupinfo);
  68. //点击退出按钮事件设置
  69. $(_groupinfochildsel[2]).addAttrArray({
  70. "onclick": function () {
  71. U.MD.F.J.groupExit(groupinfo, U.Json.selectOne(_groupuserinfo, { "UserId": US.userInfo.userid }), _groupinfoel);
  72. },
  73. "innerHTML": _isdeletegroup
  74. });
  75. }
  76. //创建新群,清空数据
  77. else {
  78. //设置群名,群描述等
  79. _inputel[0].value = "";
  80. _inputel[1].value = "";
  81. $(_groupinfoel[0]).Child()[2].style.display = "none";
  82. $('.U_MD_F_Add_TNMO')[0].style.display = "none";
  83. $('.U_MD_F_Add_C_D')[0].style.display = "none";
  84. $('.U_MD_F_Add_C')[0].style.display = "none";
  85. $('.U_MD_F_Add_TNM_ADD2')[0].style.display = "block";
  86. }
  87. _groupinfoel[0].style.display = "block";
  88. //弹出窗体
  89. _formel = new U.UF.UI.form("群聊信息",
  90. _groupinfoel[0],
  91. {
  92. "id": "U_MD_F_Add_O",
  93. "style": {
  94. "width": "480px"
  95. }
  96. },
  97. {
  98. isnarrow: false,
  99. isenlarge: false
  100. }).form;
  101. U.UF.EV.scrollLoad(_formel, function () { U.MD.D.PB.Re.FGRPMHBK(_formel); })
  102. if (!groupinfo) {
  103. $($(_formel).Child()[2]).Child()[0].style.MaxHeight = "650px";
  104. $(_formel)[0].style.Maxheight = "650px";
  105. }
  106. //确定添加群处理
  107. _determinebottom = $(_groupinfochildsel[3]).Child()[0];
  108. _determinebottom.onclick = function () {
  109. U.MD.F.J.determineCreateGroupAndAddGroupUser(groupinfo ? groupinfo.GroupManageID : null, _groupinfochildsel[0], chatel);
  110. };
  111. //邀请好友处理
  112. _invitationbottom = $($(_groupinfochildsel[0]).Child()[1]).Child()[1];
  113. _invitationbottom.onclick = function () {
  114. U.MD.F.J.selectFriendForm(function () {
  115. U.MD.F.J.determineCreateGroupAndAddGroupUser(groupinfo ? groupinfo.GroupManageID : null, _groupinfochildsel[0], chatel, true);
  116. }, 'friend', "", 1);
  117. }
  118. $('#U_MD_F_Add_TNM_ADD2_add')[0].onclick = function () {
  119. U.MD.F.J.selectFriendForm(function () {
  120. U.MD.F.J.determineCreateGroupAndAddGroupUser(groupinfo ? groupinfo.GroupManageID : null, _groupinfochildsel[0], chatel, true);
  121. }, 'friend', "", 0);
  122. }
  123. //确定取消群处理
  124. _closebottom = $(_groupinfochildsel[3]).Child()[1];
  125. _closebottom.onclick = function () {
  126. U.UF.F.windowMinimize(_formel);
  127. }
  128. //添加新用户进去群的窗体显示了,那么则重新点击刷新
  129. // if (_addgroupuserel.style.display == "block") {
  130. // U.MD.F.J.selectFriendForm();
  131. // }
  132. return _formel;
  133. }
  134. /**
  135. * 显示添加群窗口
  136. *
  137. * @param {element} 添加进入的元素
  138. * @param {object} 添加的用户信息
  139. */
  140. U.MD.F.J.printGroupUserInfo = function (el, groupuserinfo, groupinfo) {
  141. var i,
  142. //临时元素变量
  143. _tempel,
  144. _temponeel,
  145. _temptwoel,
  146. _tempname,
  147. _frag = $$("frag"),
  148. _childsel = $(el).Child(),
  149. _isgroupmain;
  150. //判断是否是群主
  151. if (groupinfo) {
  152. _isgroupmain = groupinfo.GroupManageCreateUserID == US.userInfo.userid;
  153. } else {
  154. _isgroupmain = !groupuserinfo;
  155. }
  156. //获取不同的classname
  157. if (_isgroupmain) {
  158. _tempname = "U_MD_F_Add_R" + " U_MD_F_Add_RS"
  159. } else {
  160. _tempname = "U_MD_F_Add_R" + ""
  161. }
  162. //打印群用户显示的样式
  163. for (i = 0; i < groupuserinfo.length; i++) { //循环添加
  164. _tempel = $$("div", { "className": "U_MD_F_Add_CO" }, _frag);
  165. _tempell = $$("div", { "style": { "width": "32%", "height": "30px", "float": "left" } }, _tempel);
  166. $$("img", {
  167. "onerror": U.MD.C.imgError,
  168. "onerror": U.MD.C.imgError,
  169. "title": "点击查看",
  170. "src": U.MD.C.getHeadImage(groupuserinfo[i].UserThumbnailImageHead)
  171. },
  172. _tempell);
  173. $$("div", { "className": "U_MD_F_Add_COM U_MD_D_Text_Abbreviation", "innerHTML": groupuserinfo[i].UserName }, _tempell);
  174. _temponeel = $$("div", { "className": "U_MD_F_Add_COM U_MD_D_Text_Abbreviation UD_UserName", "style": { "width": "32%", "margin-left": "2%" }, "innerHTML": groupuserinfo[i].GroupUsersDescript || groupuserinfo[i].UserNickName || groupuserinfo[i].UserName }, _tempel);
  175. _temptwoel = $$("div",
  176. {
  177. "className": _tempname
  178. },
  179. _tempel);
  180. //这有已经新建的群
  181. if (groupinfo) {
  182. //只有本人或者群主才能修改群名片
  183. if (_isgroupmain || groupuserinfo[i].UserId == US.userInfo.userid) {
  184. $$("img",
  185. {
  186. "src": "/img/Edit1.png",
  187. "title": "修改群名片",
  188. "onclick": (function (i) {
  189. return U.UF.C.closure(U.MD.F.J.upateGroupUserDescriptForm, [groupuserinfo[i], _temponeel]);
  190. })(i)
  191. },
  192. _temptwoel);
  193. }
  194. $$("img",
  195. {
  196. "src": "/img/personalCard1.png", "title": "查看用户资料",
  197. "onclick": (function (i) {
  198. return U.UF.C.closure(U.MD.U.V.ViewOtherUserInfo, [groupuserinfo[i].UserId]);
  199. })(i)
  200. },
  201. _temptwoel);
  202. $$("img",
  203. {
  204. "src": "/img/Add1.png", "title": "添加好友",
  205. "onclick": (function (i) {
  206. return U.UF.C.closure(U.MD.F.M.addFriend, [groupuserinfo[i], null, _tempel]);
  207. })(i)
  208. },
  209. _temptwoel);
  210. }
  211. //如果是群主有移除权限
  212. if (_isgroupmain) {
  213. $$("img",
  214. {
  215. "src": "/img/exit1.png", "title": "移除",
  216. "onclick": (function (i) {
  217. return U.UF.C.closure(U.MD.F.J.groupExit, [groupinfo, groupuserinfo[i], _tempel]);
  218. })(i)
  219. },
  220. _temptwoel);
  221. }
  222. }
  223. //判断元素是否存在,如果存在则,追加元素,如果不存在则添加到最后面
  224. if (_childsel.length) {
  225. el.insertBefore(_frag, _childsel[_childsel.length - 1]);
  226. }
  227. else {
  228. el.appendChild(_frag);
  229. }
  230. }
  231. /**
  232. * 显示添加群窗口
  233. *
  234. * @param {object} 群好友信息
  235. */
  236. U.MD.F.J.upateGroupUserDescriptForm = function (groupuserinfo, el) {
  237. var _tempel,
  238. _temponeel,
  239. _temptwoel,
  240. _groupname = groupuserinfo.GroupUsersDescript || groupuserinfo.UserName
  241. ;
  242. if (groupuserinfo) {
  243. //创建好友分组的样式
  244. _tempel = $$("div", { "className": "U_MD_U_L_Box_I U_MD_F_Add_TNL U_MD_F_G" });
  245. _temponeel = $$("div", {}, _tempel)
  246. _temptwoel = $$("input",
  247. {
  248. "value": _groupname,
  249. "onfocus": function () {
  250. U.UF.MR.inputPlaceholder(this, _groupname, "");
  251. },
  252. "onblur": function () {
  253. U.UF.MR.inputPlaceholder(this, "", _groupname);
  254. }
  255. }, _temponeel);
  256. //弹出好友对话框
  257. U.UF.UI.confirm(_tempel, function () {
  258. U.MD.F.J.determineUpateGroupUserDescript(groupuserinfo, _temptwoel, el);
  259. });
  260. }
  261. else {
  262. U.alert("暂无群信息");
  263. }
  264. }
  265. /**
  266. * 弹出设置
  267. *
  268. * @param {object} 群好友信息
  269. */
  270. U.MD.F.J.determineUpateGroupUserDescript = function (groupuserinfo, inputel, el) {
  271. //判断用户是否输入正确的备注名
  272. if (inputel.value && U.UF.S.NickName.test(inputel.value)) {
  273. U.A.Request(US.FRIEND, ["UpdateGroupMemberInfo", US.userInfo.userid, groupuserinfo.GroupManageID, groupuserinfo.UserId, inputel.value],
  274. U.MD.F.J.asynDetermineUpateGroupUserDescript, [null, groupuserinfo, inputel.value, el]);
  275. }
  276. else {
  277. U.alert("备注名格式不对");
  278. return true;
  279. }
  280. }
  281. /**
  282. * 修改群备注
  283. *
  284. * @param {object} 群好友信息
  285. */
  286. U.MD.F.J.asynDetermineUpateGroupUserDescript = function (r) {
  287. var _context = r.context,
  288. _groupuserinfo = _context[1], //群用户信息
  289. _descriptname = _context[2], //修改后的备注名
  290. _el = _context[3]; //元素
  291. //修改groupuserinfo里面的用户备注的变量和修改显示给用户看到的备注
  292. _el.innerText = _groupuserinfo.GroupUsersDescript = _descriptname;
  293. U.alert("修改备注成功!");
  294. }
  295. /**
  296. * 退出或者踢人
  297. *
  298. * @param {object} 群信息
  299. * @param {object} 好友信息
  300. */
  301. U.MD.F.J.groupExit = function (groupinfo, userinfo, el) {
  302. var _userid = US.userInfo.userid, //用户id
  303. _isgroupmain = groupinfo.GroupManageCreateUserID == _userid //判断用户是否是群主
  304. ;
  305. //如果推出群的是群主处理
  306. if (_isgroupmain) {
  307. //如果群主自己推出,则解散群
  308. if (userInfo.userid == _userid) {
  309. U.UF.UI.confirm("是否解散该群", function () {
  310. U.MD.F.J.enterGroupExit(groupinfo, userinfo, true, el);
  311. }); //创建提示框 提示是否删除备份
  312. }
  313. //否则则移除群好友
  314. else {
  315. //创建提示框 提示是否删除备份
  316. U.UF.UI.confirm("是否移除该群用户", function () {
  317. U.MD.F.J.enterGroupExit(groupinfo, userinfo, false, el);
  318. });
  319. }
  320. }
  321. //不是群主的处理
  322. else {
  323. U.UF.UI.confirm("是否确定退出该群", function () { U.MD.F.J.enterGroupExit(groupinfo, userinfo, false, el); }); //创建提示框 提示是否删除备份
  324. }
  325. }
  326. /**
  327. * 移除群异步
  328. *
  329. * @param {object} 群信息
  330. * @param {object} 好友信息
  331. * @param {bool} 是否为删除群
  332. */
  333. U.MD.F.J.enterGroupExit = function (groupinfo, userinfo, isdelete, el) {
  334. if (isdelete === true) {
  335. U.A.Request(US.FRIEND,
  336. ["DeleteGroup", US.userInfo.userid, groupinfo.GroupManageID], U.MD.F.J.asynGroupExit, ["", groupinfo, userinfo, isdelete, el]); //解散群
  337. }
  338. else {
  339. U.A.Request(US.FRIEND, ["ExitGroup", US.userInfo.userid, groupinfo.GroupManageID, userInfo.userid], U.MD.F.J.asynGroupExit, ["", groupinfo, userinfo, isdelete, el]);
  340. }
  341. }
  342. /**
  343. * 群移除异步
  344. *
  345. * @param {object} 群信息
  346. * @param {object} 好友信息
  347. * @param {bool} 是否为删除群
  348. */
  349. U.MD.F.J.asynGroupExit = function (r) {
  350. var _context = r.context,
  351. _chatfrom,
  352. _groupinfo = _context[1], //群信息
  353. _friendinfo = _context[2], //自己在群里的信息
  354. _isdelete = _context[3], //是解散群还是退出(移除)群用户
  355. _el = _context[4], //弹出的群窗体
  356. _chatformel = $("#U_MD_F")[0]; //聊天框元素
  357. //删除群处理 或者退出群
  358. if (_isdelete) {
  359. //清空用户在群的数据
  360. U.Json.del(US.friend.group, { "GroupManageID": _friendinfo.GroupManageID }); //删除群
  361. U.Json.del(US.friend.groupusers, { "GroupManageID": _friendinfo.GroupManageID }); //删除群用户
  362. //用户面板里是否存在用户,存在删除
  363. $("#U_MD_F_H_ZLZ").find("[TID=\"" + _groupinfo.GroupManageID + "\"]").remove(); //删除群
  364. //判断好友是否出现在聊天框里,如果是则移除聊天框
  365. _chatfrom = U.MD.F.W.isCreateForm(_friendinfo.GroupManageID)[0]; //
  366. if (U.MD.F.W.isCreateForm(_friendinfo.GroupManageID)[0]) {
  367. U.MD.F.W.delteFriendChat(_friendinfo.GroupManageID, _chatformel);
  368. }
  369. //弹出群消息的弹窗
  370. if (_el) {
  371. _el = $(_el).Parent({ usform: "true" });
  372. _el.close();
  373. }
  374. U.alert('解散群成功');
  375. }
  376. //群主删除好友处理
  377. else if (_groupinfo.GroupManageUserID == US.userInfo.userid && _isdelete == false) {
  378. $(_el).remove(); //删除好友
  379. U.Json.del(US.friend.groupusers, { "GroupManageID": _friendinfo.GroupManageID, "UserId": _friendinfo.UserId }); //删除群指定的用户
  380. U.Json.del(U.MD.F.J.selectUserInfo.SelectUser, { "UserId": _friendinfo.UserId }); //删除群指定的用户
  381. U.alert('已将成员移除群聊');
  382. }
  383. //自己退出群处理
  384. else {
  385. //移除群好友
  386. U.MD.F.W.delteFriendChat(_friendinfo.GroupManageID, _chatformel);
  387. $("#U_MD_F_H_ZLZ").find("[TID=\"" + _groupinfo.GroupManageID + "\"]").remove(); //删除群
  388. U.Json.del(US.friend.group, { "GroupManageID": _friendinfo.GroupManageID, "UserId": _friendinfo.UserId }); //删除群指定的用户
  389. //弹出群消息的弹窗
  390. if (_el) {
  391. _el = $(_el).Parent({ usform: "true" });
  392. _el.close();
  393. }
  394. U.alert('已退出群聊');
  395. }
  396. }
  397. /**
  398. * 选择联系人弹框
  399. *
  400. * @param {object} 添加进入的元素
  401. * @param {function} 添加的用户信息
  402. * @param {number} 0 新创群 1邀请好友
  403. */
  404. U.MD.F.J.selectFriendForm = function (cb, type, fileinfo, group) {
  405. //添加好友弹框调用,用户必须登录和已经加载了好友数据
  406. if (!U.MD.U.L.isLogin() && US.friend.friends) {
  407. var i, //用于循环所有的是否在群里的人
  408. _formel, //用于存储创建群选择好友的弹框
  409. _gel = $("#U_MD_F_RC_G_C")[0], //获取组元素
  410. _fel = $("#U_MD_F_RC_F_C")[0], //获取好友元素
  411. _elparent = $("#U_MD_F_RC")[0], //获取存放该元素的父级元素
  412. _clone = _elparent.cloneNode(true), //克隆元素
  413. _allfriendinfo = U.Json.select(US.friend.friends.concat([])), //所有的联系人
  414. _addfriendinfo = U.MD.F.J.selectUserInfo, //选择用户的信息
  415. _selectfriend = _addfriendinfo.SelectUser, //添加好友信息
  416. _clickEl = $('#U_MD_F_RC_Friend')[0],
  417. _groupEl = $('#U_MD_F_RC_Group')[0],
  418. _joinEl = $('#U_MD_F_RC_Join')[0]
  419. if (group == 1) {
  420. //已经在群里的就不添加了
  421. for (i = 0; i < _selectfriend.length; i++) {
  422. U.Json.del(_allfriendinfo, { "UserId": _selectfriend[i].UserId }); //删除所有在群里的用户id
  423. }
  424. }
  425. //弹出创建群选择好友的框
  426. var _form = new U.UF.UI.form("选择联系人",
  427. _elparent,
  428. {
  429. "id": "U_MD_F_RC_O",
  430. "style": {
  431. "width": "480px",
  432. "height": "530px",
  433. "min-width": "480px"
  434. }
  435. },
  436. {
  437. isnarrow: false,
  438. isenlarge: false
  439. });
  440. //_formel = _form.form;
  441. _addfriendinfo.CallBack = cb; //回调函数
  442. if (US.friend.friends.length) {
  443. //打印可以选择的联系人
  444. if (!type || type == 'friend') {
  445. U.MD.F.J.printSelectFriend(_fel, _allfriendinfo, _elparent);
  446. _clickEl.onclick = function () {
  447. _clickEl = U.MD.F.J.alterNately($(_elparent).find('#U_MD_F_RC_F_C')[0], $(_elparent).find('#U_MD_F_RC_G_C')[0], _elparent, _clickEl, this)
  448. }
  449. }
  450. //打印可以选择的群
  451. if (!type || type == 'group') {
  452. U.MD.F.J.printSelectGroupUser(_gel, US.friend.group, _elparent);
  453. _groupEl.onclick = function () {
  454. _clickEl = U.MD.F.J.alterNately($(_elparent).find('#U_MD_F_RC_G_C')[0], $(_elparent).find('#U_MD_F_RC_F_C')[0], _elparent, _clickEl, this)
  455. }
  456. }
  457. if (type == 'friend' || type == 'group') {
  458. _clickEl.style.display = 'none';
  459. _groupEl.style.display = 'none';
  460. } else {
  461. _clickEl.style.display = 'block';
  462. _groupEl.style.display = 'block';
  463. }
  464. } else {
  465. _clickEl.style.display = 'none';
  466. _groupEl.style.display = 'none';
  467. _joinEl.style.display = 'block';
  468. $('.U_MD_F_RC_Join_btn')[0].onclick = function () {
  469. var _input = $$('input', {}, _joinEl),
  470. _fileType = fileinfo.UserDirectoryExtendType == 'uw' ? 'word' : 'execl';
  471. _input.value = "/" + _fileType + '/join/' + fileinfo.UserDirectoryID;
  472. _input.select();
  473. document.execCommand("Copy");
  474. $(_input).remove();
  475. U.Alert('复制成功,赶快分享给小伙伴吧!');
  476. }
  477. }
  478. _addfriendinfo.NeedUser = [];
  479. _elparent.parentNode.style.backgroundColor = "#f3f3f3"
  480. $(_elparent)[0].style.display = "block"; //显示出添加好友的信息
  481. $("#U_MD_Home")[0].appendChild(_clone); //把克隆的元素打印出来
  482. return _formel; //返回窗体元素
  483. }
  484. }
  485. /**
  486. * 打印可以添加的用户
  487. *
  488. * @param {object} 添加联系人的元素
  489. * @param {function} 选择的好友
  490. */
  491. U.MD.F.J.printSelectFriend = function (el, friendinfo, boxele) {
  492. var i, //用于循环所有联系人打印
  493. _tempel, //用于创建元素
  494. _temponeel, //用于创建元素
  495. _frag = $$("frag"); //创建新的元素
  496. //联系人打印,循环所有还有信息的长度
  497. for (i = 0; i < friendinfo.length; i++) {
  498. _tempel = $$("div",
  499. {
  500. "className": "U_MD_F_RC_CO",
  501. "FID": friendinfo[i].UserId,
  502. "onclick": U.UF.C.closure(function (firendinfo) {
  503. U.MD.F.J.clickSelectFriend(this, firendinfo); //选择后的点击事件
  504. U.MD.F.J.showChoose(firendinfo, $(this).find('.U_MD_F_RC_COC ')[0], boxele, 'friend')
  505. }, [friendinfo[i]])
  506. },
  507. _frag);
  508. $$("div", { "className": "U_MD_F_RC_COI U_Img" }, _tempel); //创建元素
  509. _temponeel = $$("div", { "className": "U_MD_F_RC_COC U_MD_D_Text_Abbreviation" }, _tempel); //创建元素
  510. $$("img",
  511. {
  512. "onerror": U.MD.C.imgError,
  513. "title": "点击查看",
  514. "onclick": function (n) {
  515. return function () {
  516. U.UF.EV.stopBubble(); //阻止冒泡时间
  517. U.MD.U.V.ViewOtherUserInfo(friendinfo[n].UserId); //打印个人用户信息
  518. }
  519. }(i),
  520. "src": U.MD.C.getHeadImage(friendinfo[i].UserThumbnailImageHead), //获取好友头像img
  521. "alt": friendinfo[i].FriendsDescript//获取好友描述
  522. },
  523. _temponeel);
  524. $$("div", { "className": "U_MD_F_RC_COCN", "innerHTML": friendinfo[i].UserNickName }, _temponeel); //创建元素,获取好友用户名
  525. }
  526. //显示到框
  527. el.innerHTML = ""; //清空数据
  528. el.appendChild(_frag); //获取所有的打印的用户到显示框内
  529. }
  530. /**
  531. * 打印可以添加的群用户
  532. *
  533. * @param {object} 添加联系人的元素
  534. * @param {function} 选择的好友
  535. */
  536. U.MD.F.J.printSelectGroupUser = function (el, groupinfo, boxele) {
  537. var i, //获取循环的元素
  538. _tempel, //创建元素
  539. _temponeel, //创建元素
  540. _frag = $$("frag"); //创建元素的父级元素
  541. //循环打印,循环所有群信息的长度
  542. for (i = 0; i < groupinfo.length; i++) {
  543. _tempel = $$("div",
  544. {
  545. "className": "U_MD_F_RC_CO",
  546. "FID": groupinfo[i].GroupManageID, //fid为群的群id
  547. "onclick": function (n) {
  548. return function () {
  549. U.MD.F.J.showChoose(firendinfo, $(this).find('.U_MD_F_RC_COC ')[0], boxele, 'group', this)
  550. U.MD.F.J.clickSelectGroup(this, groupinfo[n]); //选择群后的点击事件
  551. }
  552. }(i)
  553. }, _frag);
  554. $$("div", { "className": "U_MD_F_RC_COI U_Img" }, _tempel); //创建元素
  555. _temponeel = $$("div", { "className": "U_MD_F_RC_COC U_MD_D_Text_Abbreviation" }, _tempel); //创建元素
  556. $$("img",
  557. {
  558. "title": "点击查看",
  559. "onclick": function (n) {
  560. return function () {
  561. U.UF.EV.stopBubble(); //阻止冒泡事件
  562. U.MD.U.V.GroupInfo(groupinfo[n]); //打印群的所有信息
  563. }
  564. }(i),
  565. "src": "/img/chatgroup.png"//显示群的群头像
  566. }, _temponeel);
  567. $$("div", { "className": "U_MD_F_RC_COCN", "innerHTML": groupinfo[i].GroupManageName }, _temponeel); //获取群的群名
  568. }
  569. el.appendChild(_frag); //打印群信息
  570. }
  571. /**
  572. * 搜索联系人
  573. *
  574. * @param {object} 用户信息
  575. */
  576. U.MD.F.J.searchSelectFriend = function (groupinfo) {
  577. var _searchel = $("#U_MD_F_RC_C")[0],
  578. _UDTD = $("div@FID=" + groupinfo.UserId)[0]; //获取选中的添加的元素
  579. if (_UDTD) {
  580. _UDTD.onclick();
  581. U.UF.EV.scrollToPosition(_UDTD); //滚动到指定的位置
  582. }
  583. else { U.alert("好友已经添加到群组里~"); }
  584. }
  585. /**
  586. * 选择添加后的效果
  587. *
  588. * @param {element} 添加好友的元素
  589. * @param {object} 好友信息
  590. */
  591. U.MD.F.J.clickSelectFriend = function (el, friendinfo) {
  592. var _selectel = $("div", el)[0]; //选择的元素
  593. //如果元素没有给选择,那么点击选择
  594. if (_selectel.className == "U_MD_F_RC_COI U_Img") {
  595. _selectel.className += " U_MD_F_RC_COIO"; //设置点击后的效果样式
  596. U.MD.F.J.selectUserInfo.NeedUser.push(friendinfo); //最后需要添加的用户
  597. }
  598. //如果元素已经是选择的状态,那么点击后则取消选择
  599. else {
  600. _selectel.className = "U_MD_F_RC_COI U_Img"; //设置点击后的效果样式
  601. U.Json.del(U.MD.F.J.selectUserInfo.NeedUser, { "UserId": friendinfo.UserId }); //删除最后需要添加的用户
  602. }
  603. }
  604. /**
  605. * 选择添加群后的效果
  606. *
  607. * @param {element} 添加群的元素
  608. * @param {object} 群的信息 U.Json()
  609. */
  610. U.MD.F.J.clickSelectGroup = function (el, groupinfo) {
  611. var i,
  612. _selectel = $("div", el)[0], //点击的元素
  613. _needuser = U.MD.F.J.selectUserInfo.NeedUser, //最后需要添加的用户
  614. _groupuser = U.Json.select(US.friend.groupusers, { "GroupManageID": groupinfo.GroupManageID }); //选择群里所有的群用户
  615. //如果元素没有给选择,那么点击选择
  616. if (_selectel.className == "U_MD_F_RC_COI U_Img") {
  617. _selectel.className += " U_MD_F_RC_COIO"; //设置点击后的效果样式
  618. _needuser = _needuser.concat(_groupuser); //把群用户添加到需要添加的用户集合里
  619. }
  620. //如果元素已经是选择的状态,那么点击后则取消选择
  621. else { //添加删除效果
  622. _selectel.className = "U_MD_F_RC_COI U_Img"; //设置点击后的效果样式
  623. //移除群里的每一个用户
  624. for (i = 0; i < _groupuser.length; i++) {
  625. U.Json.del(_needuser, { "UserId": _groupuser[i].UserId });
  626. }
  627. }
  628. }
  629. /**
  630. * 创建群取消按钮
  631. *
  632. * @param {element} 添加好友窗体
  633. */
  634. U.MD.F.J.closeSelectFriendForm = function (el) {
  635. U.UF.F.closeWindow($(el).Parent({ usform: "true" }), "remove"); //移除创建群的弹窗
  636. }
  637. /**
  638. * 确定添加按钮
  639. *
  640. * @param {element} 添加好友窗体
  641. */
  642. U.MD.F.J.determineSelectFriend = function (el) {
  643. var _selectuserinfo = U.MD.F.J.selectUserInfo, //获取所有选择信息
  644. _groupid = $(el).find('.U_MD_F_RC_COIO')[0] && $(el).find('.U_MD_F_RC_COIO')[0].parentNode.getAttribute('fid');
  645. _groupid = U.Json.select(US.friend.group, { "GroupManageID": _groupid })[0] ? _groupid : false;
  646. //回调函数处理
  647. if (_selectuserinfo.CallBack) {
  648. _selectuserinfo.CallBack(_groupid);
  649. _selectuserinfo.CallBack = null;
  650. }
  651. U.UF.F.closeWindow(el, "remove"); //取消窗口
  652. }
  653. /**
  654. * 显示输入文档名对话框
  655. *
  656. */
  657. U.MD.F.J.inputDocName = function () {
  658. var _confirmEl = $('#U_UF_UI_confirm')
  659. U.UF.F.topWindow(_confirmEl[0])
  660. $(_confirmEl).find('#U_MD_DK_RE_localDoc')[0].click()
  661. }
  662. /**
  663. * 确定添加按钮
  664. * 点击好友添加确定按钮,去数据库创建一个群
  665. * @param {element} 添加好友窗体
  666. * @param {string} 群id
  667. * @param {boolean} 是否是新建
  668. */
  669. U.MD.F.J.determineCreateGroupAndAddGroupUser = function (groupid, el, chatel, update, groupname, groupdescript, cb) {
  670. var i,
  671. _groupinfo, //群信息
  672. _inputs = $("input,textarea", el), //输入的群信息
  673. _adduserinfo = U.MD.F.J.selectUserInfo.NeedUser, //需要添加用户的集合
  674. _userid = US.userInfo.userid, //用户的id
  675. _groupname = groupname == undefined ? _inputs[0].value : groupname, //创建的群名
  676. _groupdescript = groupdescript == undefined ? _inputs[1].value : groupdescript, //创建的群描述
  677. _groupuserids = U.Json.toKeyArray(_adduserinfo, "UserId").join(",") //添加进入群所有好友的id
  678. ;
  679. //如果群不存在则创建
  680. if (!groupid) {
  681. if (_groupname == "") {
  682. for (var i = 0; i < _adduserinfo.length; i++) {
  683. _groupname = _groupname + "、" + _adduserinfo[i].UserNickName;
  684. }
  685. _groupname = _groupname + "、" + US.userInfo.UserNickName;
  686. _groupname = _groupname.substr(1, _groupname.length);
  687. }
  688. groupid = Guid.newGuid(); //新建一个群id
  689. _groupinfo = new U.MD.F.T.groupEntity(groupid, _groupname, new Date(), _userid, _groupdescript, null); //添加群实体
  690. //获取创建群后,拉进群用户里包括自己
  691. _adduserinfo.push(US.userInfo);
  692. if (_groupuserids) {
  693. _groupuserids = _userid + "," + _groupuserids;
  694. } else {
  695. _groupuserids = _userid;
  696. }
  697. //关闭弹框
  698. U.UF.F.closeWindow($(el).Parent({ usform: "true" }), "remove");
  699. }
  700. //群存在操作
  701. else {
  702. _groupinfo = U.Json.select(US.friend.group, { "GroupManageID": groupid })[0]; //获取群
  703. }
  704. // _adduserinfo = _adduserinfo.splice(0, _adduserinfo.length); //移除全局变量,把需要添加的用户删除
  705. //创建群成员,给每个群成员发送一条建立群给拉入群的消息
  706. U.A.Request(US.FRIEND, ["CreateGroupAndAddUser", _userid, groupid, _groupname, _groupdescript, _groupuserids],
  707. U.MD.F.J.asynDetermineCreateGroupAndAddGroupUser, ["", _groupinfo, _adduserinfo, groupid, _groupname, _groupdescript, el, chatel, _groupuserids, update, cb]); //添加到数据库
  708. }
  709. /**
  710. * 异步创建群
  711. * @param {object} 服务器返回的值
  712. */
  713. U.MD.F.J.asynDetermineCreateGroupAndAddGroupUser = function (r) {
  714. var i,
  715. _alert,
  716. _context = r.context, //回调函数的值
  717. _directory,
  718. _groupuser,
  719. _userinfo = US.userInfo, //回调的用户信息
  720. _diskinfo = US.disk.Disks[_userinfo.UserId],
  721. _groupinfo = _context[1], //当前群信息
  722. _groupuserinfo = _context[2], //用户信息集合
  723. _groupid = _context[3], //群id
  724. _groupname = _context[4], //群名
  725. _groupdescript = _context[5], //群描述
  726. _el = _context[6],
  727. _chatel = _context[7],
  728. _groupuserids = _context[8].split(','),
  729. _update = _context[9],
  730. _cb = _context[10]
  731. ;
  732. r = r.value; //获取服务器的返回值
  733. //创建群或者修改群成功o
  734. if (r !== false) {
  735. //如果新建的群不存在全局变量中,则新建一个
  736. if (!U.Json.select(US.friend.group, { "GroupManageID": _groupid })[0]) {
  737. US.friend.group.unshift(_groupinfo); //把群插入全局变量中
  738. var _directory = new U.MD.DK.M.entity(_groupinfo.GroupManageID, 0, null, _groupinfo.GroupManageName, _groupinfo.GroupManageName,
  739. "folder", null, new Date(), U.MD.DK.C.getIcon("folder")[1], 1, null, null, 0, "", _groupinfo.GroupManageID);
  740. _diskinfo && U.MD.DK.RE.addFileOrFolder([_directory], _diskinfo, _diskinfo.directoryOrFiles[1]) //添加文件或者文件夹
  741. _alert = "群" + _groupname + "已创建成功";
  742. }
  743. //如果群已经存在了,那么修改群名和群描述
  744. else {
  745. var _rightname = $('.U_MD_F_H_ZLZOCO[tid="0d3a87bf-40a1-9a77-3d5f-152032a9ddf0"]').find('.U_MD_F_H_ZLZOCORN')[0];
  746. var _rightdesc = $('.U_MD_F_H_ZLZOCO[tid="0d3a87bf-40a1-9a77-3d5f-152032a9ddf0"]').find('.U_MD_F_H_ZLZOCORT')[0];
  747. var _headname = $(_chatel).find('.U_MD_F_HTN')[0];
  748. var _headdesc = $(_chatel).find('.U_MD_F_HTC')[0];
  749. if (_rightname) {
  750. _rightname.innerHTML = _groupname;
  751. _rightdesc.innerHTML = _groupdescript
  752. }
  753. if (_headname) {
  754. _headname.innerHTML = _groupname;
  755. $('.U_MD_F_TOT')[0].childNodes[1].innerHTML = _groupname;
  756. _headdesc.innerHTML = _groupdescript
  757. }
  758. _groupinfo.GroupManageName = _groupname; //群名
  759. _groupinfo.GroupManageDescript = _groupdescript; //群描述
  760. _alert = "群资料已修改成功";
  761. }
  762. //把群的用户添加到群用户数组里
  763. if (_groupuserinfo.length) {
  764. for (i = 0; i < _groupuserinfo.length; i++) {
  765. _groupuser = new U.MD.F.T.groupUserEntity(_groupuserinfo[i].UserId, U.MD.C.getHeadImage(_groupuserinfo[i].UserImageHead),
  766. _groupuserinfo[i].UserNickName || _groupuserinfo[i].UserName, _groupuserinfo[i].UserName, U.MD.C.getHeadImage(_groupuserinfo[i].UserThumbnailImageHead),
  767. _groupuserinfo[i].GroupUsersDescript || _groupuserinfo[i].UserNickName, _groupid, 1); //新建一个群用户
  768. US.friend.groupusers.push(_groupuser); //添加到群用户里
  769. U.MD.F.J.selectUserInfo.SelectUser.push(_groupuser);
  770. }
  771. _alert = "成功邀请" + _groupuserinfo.length + "名好友加入群聊";
  772. }
  773. //创建群成功后,直接点击查看群。
  774. // if (_update) {
  775. // var _userinfo, _userinfos = [];
  776. // for (i = 0; i < _groupuserids.length; i++) {
  777. // _userinfo = U.Json.select(US.friend.friends, { UserId: _groupuserids[i] })[0];
  778. // if (_userinfo) {
  779. // _userinfos.push(_userinfo);
  780. // }
  781. // }
  782. // U.MD.F.J.printGroupUserInfo($(_el).next()[0], _userinfos, _groupinfo); //打印选择好友
  783. // }
  784. if (_cb) {
  785. _cb(_groupid, r);
  786. }
  787. //切换群聊按钮
  788. $($("#U_MD_F_H_ZLTA").Child()[1]).Child()[0].onclick();
  789. //聊天界面自动切换新创群
  790. $("#U_MD_F_H_ZLZ").Child()[0].onclick();
  791. //自动弹出群聊信息
  792. $(".U_MD_F_TI.U_Img")[0].onclick();
  793. //提示语
  794. U.alert(_alert);
  795. }
  796. //创建失败的提示
  797. else {
  798. U.alert("服务器繁忙,请从新创建!!");
  799. }
  800. if (!_update && _el) {
  801. U.UF.F.closeWindow($(_el).Parent({ usform: "true" }), "remove");
  802. }
  803. // _groupuserinfo = _groupuserinfo.splice(0, _groupuserinfo.length); //移除全局变量,把需要添加的用户删除
  804. }
  805. /*
  806. * 弹框询问用户是否创建这个群
  807. * @param groupid 群的id
  808. * @param groupname 群名
  809. * @param groups 群的描述
  810. * @param fileid 文件id
  811. * @param cb 回调函数 点击确定后的回调函数
  812. */
  813. U.MD.F.J.isCreateGroup = function (groupid, groupname, groupds, fileid, cb) {
  814. _isgroup = U.Json.select(US.friend.group, { "GroupManageID": groupid })[0]; //判断群是否已经存在在列表中
  815. //判断是否存在这个群
  816. if (!_isgroup) {
  817. var _elparent = $$("div", {}); //创建父级元素
  818. var _elcontent = $$("div",
  819. {
  820. "className": "U_MD_F_A_T",
  821. "innerHTML": "您的文档将移至新建群里(" + groupds + "),是否新建群组?"
  822. }, //创建弹窗内容
  823. _elparent);
  824. var _elall = $$("div",
  825. {
  826. "className": "U_MD_F_A_T_All"
  827. }, //创建信息父级元素
  828. _elparent);
  829. var _elbutton = $$("div",
  830. {
  831. "className": "U_MD_F_A_T_OFF",
  832. "innerHTML": "取消"
  833. }, //取消按钮
  834. _elall);
  835. $$("div",
  836. {
  837. "className": "U_MD_F_A_T_OUT",
  838. "innerHTML": "确认",
  839. "onclick": function () {
  840. U.MD.F.J.changeInfo(groupid, groupname, groupds, fileid, cb); //点击确定后的点击事件
  841. }
  842. }, //确定按钮
  843. _elall);
  844. _elbutton.onclick = function () {
  845. $("#U_MD_D_emp_CK")[0].close()
  846. } //点击取消按钮后关闭窗口
  847. new U.UF.UI.form("提示",
  848. _elparent,
  849. {
  850. "id": "U_MD_D_emp_CK",
  851. "style": {
  852. "width": "250px",
  853. "height": "170px"
  854. }
  855. },
  856. {
  857. istop: true,
  858. isdrag: false,
  859. isnarrow: false,
  860. isenlarge: false
  861. }).form;
  862. } else {
  863. U.MD.F.J.changeInfo(groupid, groupname, groupds, fileid, cb)//判断群存在时,默认执行点击确定后的点击事件
  864. }
  865. }
  866. /*
  867. * 获取所选择的联系人,发送消息
  868. * @param groupid 群id
  869. * @param grouopname 群名
  870. * @param groupds 群描述
  871. * @param fileid 文件id
  872. * @param cb 回调函数
  873. */
  874. U.MD.F.J.changeInfo = function (groupid, groupname, groupds, fileid, cb) {
  875. var i, _isgroup,
  876. // _UCB = U.MD.F.J.asynDetermineCreateGroupAndAddGroupUser, //创建群异步回调
  877. _groupsign = 1, //判断是否已经创建。如果没有创建,就把_UTF的值设置为0,0在存储过程的传参作用是创建群, 1是不创建直接修改群名
  878. _userid = US.userInfo.userid, //当前用户id 也是群主id
  879. _groupinfo = [groupname, groupds], //群名和群描述的数组 [0]群名 [1]群描述
  880. _groupfriend = U.MD.F.J.selectUserInfo.NeedUser, //需要添加用户的集合(群用户)
  881. _grouparr = new Array(); //创建一个新的数组
  882. //循环所有需要添加用户的集合
  883. for (var i = 0; i < _groupfriend.length; i++) {
  884. var pd = 0;
  885. //循环群数组里是否有内容
  886. for (var u = 0; u < _grouparr.length; u++) {
  887. if (_grouparr[u].UserId == _groupfriend[i].UserId || _groupfriend[i].UserId == US.userInfo.userid) {//判断群数组是否存有需要添加到群的用户
  888. pd++
  889. }
  890. }
  891. if (pd == 0) {
  892. _grouparr.push(_groupfriend[i]); //把需要添加的用户信息存入数组中
  893. }
  894. }
  895. _frienduser = U.Json.toKeyArray(_grouparr, "UserId").join(","), //用,分割群用户的id 例: userid,userid
  896. _useridarr = U.Json.toKeyArray(_grouparr, "UserId").join(","); //用,分割群用户的id 例: userid,userid
  897. _isgroup = U.Json.select(US.friend.group, { "GroupManageID": groupid })[0]; //判断群是否已经存在在列表中
  898. if (!_isgroup) { //判断群是否存在
  899. _groupsign = 0;
  900. groupid = groupid || Guid.newGuid(); //没有群id创建一个群id
  901. //创建群的实体,主要是用于添加到US.friend[2]这个群集合里面
  902. _isgroup = new U.MD.F.T.groupEntity((groupid = groupid || Guid.newGuid()), _groupinfo[0], new Date(), _userid, _groupinfo[1], null); //拼接群用户id 把本人也添加到这个群里
  903. //判断是否有分割群用户的id,如果有,就拼接起来
  904. if (_useridarr) {
  905. _useridarr = _userid + "," + _useridarr
  906. } else { //如果没有,就直接添加
  907. _useridarr = _userid + "" + _useridarr
  908. }
  909. }
  910. // _groupfriend.splice(0, _groupfriend.length); //添加成功后移除用户
  911. //创建群成员,给每个群成员发送一条建立群给拉入群的消息
  912. U.A.Request(US.FRIEND, ["CreateGroupAndAddUser", _userid, groupid, _groupinfo[0], _groupinfo[1], _useridarr], U.MD.F.J.asynChangeInfo, ["", _isgroup, _grouparr.splice(0, _grouparr.length), groupid, _groupinfo[0], _groupinfo[1], cb, _frienduser, groupid, _groupinfo[0]]); //添加到数据库
  913. // U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "CreateGroupAndAddUser", _userid, _groupinfo[0], _groupinfo[1], groupid, _useridarr, _groupsign], U.MD.F.J.asynChangeInfo, ["", _isgroup, _grouparr.splice(0, _grouparr.length), groupid, _groupinfo[0], _groupinfo[1], cb, _frienduser, groupid, _groupinfo[0]]); //添加到数据库
  914. //给每个群成员发送一条有关于这个uw文件的消息
  915. // U.A.Request(US.CD, ([US.DB, "UseStudio_Friends", "SentMessageToFriend", US.userInfo.userid, _frienduser, US.userInfo.UserNickName || US.userInfo.username, '' + groupid + ',' + _groupinfo[0] + ',' + _isgroup.GroupManageCreateDate + ',' + fileid + ',' + _isgroup.GroupManageName + '.UW', 5, false]), function(){}, [""]);
  916. $("#U_MD_D_emp_CK").hide()//隐藏元素
  917. }
  918. /**
  919. * 确定添加按钮
  920. *点击好友添加确定按钮,去数据库创建一个群
  921. * @param {object} 添加好友窗体
  922. */
  923. U.MD.F.J.asynChangeInfo = function (r) {
  924. U.MD.F.J.asynDetermineCreateGroupAndAddGroupUser(r); //回调原本创建群的流程函数 这里地方不调用的话 会导致原本在好友聊天中创建群成员和群用不了
  925. var _context = r.context; //获取信息
  926. _context[6](_context[1], _context[7], _context[8], _context[9]); //回调群id
  927. }
  928. /**
  929. * 无认证直接加入群
  930. *
  931. * @param {object} 群信息
  932. * @param {function} 群id
  933. */
  934. U.MD.F.J.addUsersToGroup = function (groupinfo, cb) {
  935. if (!U.MD.U.L.isLogin()) {//判断是否登录
  936. var _userinfo = US.userInfo, //用户信息表
  937. _userid = _userinfo.UserId, //用户id
  938. _groups = US.friend.group, //用户群
  939. _group = U.Json.select(_groups, { "GroupManageID": groupinfo.GroupManageID })[0]; //用户群
  940. //判断用户是否已经加入群组
  941. if (!_group) {
  942. U.alert("正在加入,请稍等..");
  943. //加入群组处理
  944. U.A.Request(US.FRIEND, ["AddUsersToGroup", US.userInfo.userid, groupinfo.GroupManageID, _userid], U.MD.F.J.asynAddUsersToGroup, ["", { MessageContent: groupinfo.GroupManageID, MessageDescript: groupinfo.GroupManageName, UserId: groupinfo.UserId },]);
  945. }
  946. //否则直接查看群消息
  947. else {
  948. if (cb) {
  949. cb();
  950. }
  951. else { U.MD.F.W.viewFriend(_group); }
  952. }
  953. }
  954. }
  955. //用户直接进入群异步
  956. U.MD.F.J.asynAddUsersToGroup = function (r) {
  957. var _context = r.context,
  958. _cb = _context[2], //回调函数
  959. _userid = US.userInfo.userid, //用户id
  960. _diskinfo = US.disk.Disks[_userid], //网盘信息
  961. _groupinfo = U.MD.F.N.asynPulledIntoGroups(r); //添加群文件
  962. //回调函数处理
  963. if (_cb) {
  964. U.UF.C.apply(this, _cb)();
  965. }
  966. //查看用户信息
  967. else {
  968. U.MD.F.W.viewFriend(_groupinfo);
  969. }
  970. U.alert("成功加入该群");
  971. }
  972. //#endregion
  973. /**
  974. * 弹出好友添加使用
  975. *
  976. * @param {object} 群信息
  977. */
  978. U.MD.F.J.addPopup = function () {
  979. var _el;
  980. _el = $$("div", { "className": "U_MD_F_A" });
  981. $$("div", { "className": "U_MD_F_RA", "onclick": U.MD.F.M.createFriendGroupPopup, "innerHTML": "添加分组" }, _el); //添加分组按钮
  982. $$("div", { "className": "U_MD_F_RA_E", "onclick": "U.MD.F.S.popSearchFriendsOrGroupForm(0);", "innerHTML": "添加/<br>查找好友" }, _el); //查找好友
  983. $$("div", { "className": "U_MD_F_RA", "onclick": "U.MD.F.S.popSearchFriendsOrGroupForm(1)", "innerHTML": "加入群组" }, _el); //加入群聊 U.MD.F.S.popupsSearchGroups
  984. $$("div", { "className": "U_MD_F_RA", "onclick": "U.MD.F.J.groupInfoForm();", "innerHTML": "创建群组" }, _el); //创建群聊
  985. new U.UF.UI.form("添加好友/群聊", _el, { 'id': 'U_MD_F_addFriendorGroup', "style": { "width": "390px", "height": "220px" } }, { isenlarge: false, });
  986. };
  987. /**
  988. *
  989. * @param el 准备隐藏的元素
  990. * @param nel 准备显示的元素
  991. * @param elparent 准备隐藏的元素的父亲元素
  992. * @param clickel 上一次点击的元素
  993. * @param thisel 点击的元素
  994. * @returns {*} 返回这次点击的元素
  995. */
  996. U.MD.F.J.alterNately = function (el, nel, elparent, clickel, thisel) {
  997. if (thisel != clickel) {
  998. nel.style.display = 'none';
  999. nel.previousElementSibling.children[0].src = "/img/arrowR.png";
  1000. var con = $(nel).find('.U_MD_F_RC_COIO');
  1001. for (var i = 0; i < con.length; i++) {
  1002. con[i].className = "U_MD_F_RC_COI U_Img"
  1003. }
  1004. U.MD.F.J.selectUserInfo.NeedUser = [];
  1005. $(elparent).find('.U_MD_F_RC_C_C')[0].innerHTML = "";
  1006. $(elparent).find('.U_MD_F_RC_C_T')[0].innerText = 0;
  1007. }
  1008. if (el.style.display == 'none') {
  1009. el.style.display = 'block';
  1010. el.previousElementSibling.children[0].src = "/img/arrowB.png";
  1011. } else {
  1012. el.style.display = 'none';
  1013. el.previousElementSibling.children[0].src = "/img/arrowR.png";
  1014. }
  1015. return thisel
  1016. }
  1017. /**
  1018. * 选择联系人选择功能
  1019. * @param el 用户信息元素
  1020. * @param boxele 选择联系人大元素
  1021. * @param type 点击的类型 分为'group'和'friend'
  1022. * @param cthis 选中的元素
  1023. */
  1024. U.MD.F.J.showChoose = function (firendinfo, el, boxele, type, cthis) {
  1025. var _fel = $($(boxele).find('.U_MD_F_RC_C_C')[0]).find("div[fid='" + $(el.parentNode).attr('fid') + "']")[0],
  1026. _leftShowEl = $(boxele).find('.U_MD_F_RC_C_C')[0],
  1027. _cNam = cthis && $(cthis.parentNode).find('.U_MD_F_RC_COIO') || []
  1028. if (_cNam.length && _cNam[0].parentNode.getAttribute('fid') != $(cthis).attr('fid')) {
  1029. var _delElFid = $($(_cNam)[0].parentNode).attr('fid')
  1030. _cNam[0].className = _cNam[0].className.replace(' U_MD_F_RC_COIO', '');
  1031. $($(boxele).find("div[fid='" + _delElFid + "']")[1]).remove()
  1032. U.MD.F.J.selectUserInfo.NeedUser = []
  1033. }
  1034. if (!_fel) {
  1035. var addel = $$('div', { className: "U_MD_F_RC_C_C_A", fid: $(el.parentNode).attr('fid') });
  1036. $$('img', { "onerror": U.MD.C.imgError, src: el.firstElementChild.src }, addel);
  1037. $$('span', { innerText: el.lastElementChild.innerText }, addel)
  1038. addel.onclick = function () {
  1039. U.MD.F.J.clearDefaultStyle();
  1040. addel.className += " U_MD_F_A_AddNewGrouper";
  1041. $$("div", {
  1042. "id": "U_MD_F_A_XX",
  1043. "style": {
  1044. "width": "19px",
  1045. "height": "19px",
  1046. "background-image": "url('/img/YS2017.png')",
  1047. "display": "inline-block",
  1048. "background-repeat": "no-repeat",
  1049. "background-position": "-984px -407px",
  1050. "float": "right",
  1051. "margin": "12px",
  1052. "cursor": "pointer"
  1053. },
  1054. "onclick": function () {
  1055. U.MD.F.J.xxClick(this, firendinfo, boxele);
  1056. }
  1057. }, addel);
  1058. }
  1059. if (type == "friend") {
  1060. $(boxele).find('.U_MD_F_RC_C_C')[0].appendChild(addel);
  1061. } else if (type == "group") {
  1062. _leftShowEl.innerHTML = "";
  1063. if (!cthis.firstChild.className.match('U_MD_F_RC_COIO')) {
  1064. var _groupFid = $(el.parentNode).attr('fid'),
  1065. _groupFriends = U.Json.select(US.friend.groupusers, { "GroupManageID": _groupFid })
  1066. _newEl = $$('div');
  1067. for (var i = 0; i < _groupFriends.length; i++) {
  1068. var _cloneEl = addel.cloneNode(true);
  1069. _cloneEl.setAttribute('fid', _groupFriends[i].UserId)
  1070. _cloneEl.fid = _groupFriends[i].UserId;
  1071. _cloneEl.firstChild.src = U.MD.C.getHeadImage(_groupFriends[i].UserImageHead) || "/img/UserHead/UseHead.jpg";
  1072. _cloneEl.lastChild.innerText = _groupFriends[i].UserName;
  1073. _newEl.appendChild(_cloneEl);
  1074. }
  1075. _leftShowEl.appendChild(_newEl);
  1076. U.MD.F.J.selectUserInfo.NeedUser = _groupFriends;
  1077. }
  1078. $(boxele).find('.U_MD_F_RC_C_T')[0].innerText = _leftShowEl.children[0] ? _leftShowEl.children[0].children.length : 0;
  1079. return;
  1080. }
  1081. } else {
  1082. $(_fel).remove()
  1083. }
  1084. U.MD.F.J.clearDefaultStyle();
  1085. var _lastChild = $(".U_MD_F_RC_C_C.U_MD_F_RC_C")[1].lastChild;
  1086. _lastChild.className += " U_MD_F_A_AddNewGrouper";
  1087. $$("div", {
  1088. "id": "U_MD_F_A_XX",
  1089. "style": {
  1090. "width": "19px",
  1091. "height": "19px",
  1092. "background-image": "url('/img/YS2017.png')",
  1093. "display": "inline-block",
  1094. "background-repeat": "no-repeat",
  1095. "background-position": "-984px -407px",
  1096. "float": "right",
  1097. "margin": "12px"
  1098. },
  1099. "onclick": function () {
  1100. U.MD.F.J.xxClick(this, firendinfo, boxele);
  1101. }
  1102. }, _lastChild);
  1103. $(boxele).find('.U_MD_F_RC_C_T')[0].innerText = _leftShowEl.children.length;
  1104. }
  1105. U.MD.F.J.clearDefaultStyle = function () {
  1106. var targerList = $(".U_MD_F_RC_C_C.U_MD_F_RC_C")[1].children
  1107. for (var i = 0; i < targerList.length; i++) {
  1108. targerList[i].className = "U_MD_F_RC_C_C_A";
  1109. $("#U_MD_F_A_XX")[0] ? $("#U_MD_F_A_XX")[0].remove() : "";
  1110. };
  1111. }
  1112. U.MD.F.J.xxClick = function (div, firendinfo, boxele) {
  1113. window.event ? window.event.cancelBubble = true : e.stopPropagation();
  1114. var _fid = div.parentNode.fid;
  1115. U.Json.del(U.MD.F.J.selectUserInfo.NeedUser, { "UserId": firendinfo.UserId });
  1116. div.parentNode.remove();
  1117. $(boxele).find('.U_MD_F_RC_C_T')[0].innerText = $(boxele).find('.U_MD_F_RC_C_C')[0].children.length;
  1118. var _list = $(".U_MD_F_RC_CO");
  1119. for (var x = 0; x < _list.length; x++) {
  1120. if (_list[x].FID == _fid) {
  1121. _list[x].children[0].className = "U_MD_F_RC_COI U_Img";
  1122. }
  1123. }
  1124. }