SelectForm.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. /*
  2. * 描 述:成员添加
  3. */
  4. var objectno = request('objectno');
  5. var objecttype = request('objecttype');
  6. var acceptClick;
  7. var bootstrap = function ($, learun) {
  8. "use strict";
  9. var userlist = {};
  10. var userlistselected = [];
  11. var userlistselectedobj = {};
  12. // 渲染用户列表
  13. function renderUserlist(list) {
  14. var $warp = $('<div></div>');
  15. for (var i = 0, l = list.length; i < l; i++) {
  16. var item = list[i];
  17. var active = "";
  18. var imgName = "UserCard02.png";
  19. if (item.SexNum == 2) {
  20. imgName = "UserCard01.png";
  21. }
  22. if (userlistselected.indexOf(item.Id) != -1) {
  23. active = "active";
  24. }
  25. var _cardbox = "";
  26. _cardbox += '<div class="card-box ' + active + '" data-value="' + item.Id + '" >';
  27. _cardbox += ' <div class="card-box-img">';
  28. _cardbox += ' <img src="' + top.$.rootUrl + '/Content/images/' + imgName + '" />';
  29. _cardbox += ' </div>';
  30. _cardbox += ' <div class="card-box-content">';
  31. _cardbox += ' <p>账户:' + item.Code + '</p>';
  32. _cardbox += ' <p>姓名:' + item.Name + '</p>';
  33. _cardbox += ' <p>部门:<span data-id="' + item.DeptId + '"></span></p>';
  34. _cardbox += ' </div>';
  35. _cardbox += '</div>';
  36. var $cardbox = $(_cardbox);
  37. $cardbox[0].userinfo = item;
  38. $warp.append($cardbox);
  39. learun.clientdata.getAsync('userdepartment', {
  40. key: item.DeptId,
  41. callback: function (_data, op) {
  42. $warp.find('[data-id="' + op.key + '"]').text(_data.Name);
  43. }
  44. });
  45. }
  46. $warp.find('.card-box').on('click', function () {
  47. var $this = $(this);
  48. var userid = $this.attr('data-value');
  49. if ($this.hasClass('active')) {
  50. $this.removeClass('active');
  51. removeUser(userid);
  52. userlistselected.splice(userlistselected.indexOf(userid), 1);
  53. }
  54. else {
  55. $this.addClass('active');
  56. userlistselectedobj[userid] = $this[0].userinfo;
  57. userlistselected.push(userid);
  58. addUser($this[0].userinfo);
  59. }
  60. });
  61. $('#user_list').html($warp);
  62. };
  63. function addUser(useritem) {
  64. var $warp = $('#selected_user_list');
  65. var _html = '<div class="user-selected-box" data-value="' + useritem.Id + '" >';
  66. _html += '<p><span data-id="' + useritem.DeptId + '"></span>【' + useritem.Name + '】</p>';
  67. _html += '<span class="user-reomve" title="移除选中人员"></span>';
  68. _html += '</div>';
  69. $warp.append(_html);
  70. learun.clientdata.getAsync('userdepartment', {
  71. key: useritem.DeptId,
  72. callback: function (_data,op) {
  73. $warp.find('[data-id="' + op.key + '"]').text(_data.name);
  74. }
  75. });
  76. };
  77. function removeUser(userid) {
  78. var $warp = $('#selected_user_list');
  79. $warp.find('[data-value="' + userid + '"]').remove();
  80. };
  81. var page = {
  82. init: function () {
  83. page.bind();
  84. page.initData();
  85. },
  86. bind: function () {
  87. // 已选人员按钮
  88. $('#user_selected_btn').on('click', function () {
  89. $('#form_warp_right').animate({ right: '0px' }, 300);
  90. });
  91. $('#user_selected_btn_close').on('click', function () {
  92. $('#form_warp_right').animate({ right: '-180px' }, 300);
  93. });
  94. // 搜索
  95. $("#txt_keyword").keydown(function (event) {
  96. if (event.keyCode == 13) {
  97. var keyword = $(this).val();
  98. learun.httpAsync('GET', top.$.rootUrl + '/UserCenterManager/UserInfo/GetList', { keyword: keyword }, function (res) {
  99. if (res.code > 0) {
  100. renderUserlist(res.data || []);
  101. }
  102. });
  103. }
  104. });
  105. // 选中人员按钮点击事件
  106. $('#selected_user_list').on('click', function (e) {
  107. var et = e.target || e.srcElement;
  108. var $et = $(et);
  109. if ($et.hasClass('user-reomve')) {
  110. var userid = $et.parent().attr('data-value');
  111. removeUser(userid);
  112. userlistselected.splice(userlistselected.indexOf(userid), 1);
  113. $('#user_list').find('[data-value="' + userid + '"]').removeClass('active');
  114. }
  115. });
  116. // 滚动条
  117. $('#user_list_warp').lrscroll();
  118. $('#selected_user_list_warp').lrscroll();
  119. },
  120. initData: function () {
  121. learun.httpAsync('GET', top.$.rootUrl + '/UserCenterManager/UserInfo/GetList', { keyword: "" }, function (res) {
  122. if (res.code > 0) {
  123. renderUserlist(res.data || []);
  124. }
  125. });
  126. $.lrSetForm(top.$.rootUrl + '/UserCenterManager/UserRelation/GetUserIdList?objectno=' + objectno + "&objecttype=" + objecttype, function (data) {
  127. if (data.usernos == "") {
  128. return false;
  129. }
  130. var $warp = $('#selected_user_list');
  131. $.each(data.userInfoList, function (id, item) {
  132. if (item) {
  133. userlistselectedobj[item.Id] = item;
  134. }
  135. });
  136. var userList = data.usernos.split(',');
  137. for (var i = 0, l = userList.length; i < l; i++) {
  138. var userId = userList[i];
  139. var item = userlistselectedobj[userId];
  140. if (!!item) {
  141. if (userlistselected.indexOf(userId) == -1) {
  142. userlistselected.push(userId);
  143. }
  144. var _html = '<div class="user-selected-box" data-value="' + item.Id + '" >';
  145. _html += '<p><span data-id="' + item.DeptId + '"></span>【' + item.Name + '】</p>';
  146. _html += '<span class="user-reomve" title="移除选中人员"></span>';
  147. _html += '</div>';
  148. $warp.append($(_html));
  149. learun.clientdata.getAsync('userdepartment', {
  150. key: item.DeptId,
  151. callback: function (_data,op) {
  152. $warp.find('[data-id="' + op.key + '"]').text(_data.Name);
  153. }
  154. });
  155. $('#user_list').find('[data-value="' + item.Id + '"]').addClass('active');
  156. }
  157. }
  158. });
  159. }
  160. };
  161. // 保存数据
  162. acceptClick = function () {
  163. $.lrSaveForm(top.$.rootUrl + '/UserCenterManager/UserRelation/SaveForm', { objectno: objectno, objecttype: objecttype, usernos: userlistselected }, function (res) { });
  164. return true;
  165. };
  166. page.init();
  167. }