Add.js 50 KB

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