You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

246 lines
10 KiB

  1. /*
  2. * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
  3. * Copyright (c) 2013-2018 北京泉江科技有限公司
  4. * 创建人:陈彬彬
  5. * 日 期:2017.04.18
  6. * 描 述:成员添加
  7. */
  8. var objectId = request('objectId');
  9. //var category = request('category');
  10. var companyId = request('companyId');
  11. var departmentId = request('departmentId');
  12. var acceptClick;
  13. var bootstrap = function ($, learun) {
  14. "use strict";
  15. var userlist = {};
  16. var userlistselected = [];
  17. var userlistselectedobj = {};
  18. // 渲染用户列表
  19. function renderUserlist(list) {
  20. var $warp = $('<div></div>');
  21. for (var i = 0, l = list.length; i < l; i++) {
  22. var item = list[i];
  23. var active = "";
  24. var imgName = "UserCard02.png";
  25. if (item.F_Gender == 0) {
  26. imgName = "UserCard01.png";
  27. }
  28. if (userlistselected.indexOf(item.F_UserId) != -1) {
  29. active = "active";
  30. }
  31. var _cardbox = "";
  32. _cardbox += '<div class="card-box ' + active + '" data-value="' + item.F_UserId + '" >';
  33. _cardbox += ' <div class="card-box-img">';
  34. _cardbox += ' <img src="' + top.$.rootUrl + '/Content/images/' + imgName + '" />';
  35. _cardbox += ' </div>';
  36. _cardbox += ' <div class="card-box-content">';
  37. _cardbox += ' <p>账户:' + item.F_Account + '</p>';
  38. _cardbox += ' <p>姓名:' + item.F_RealName + '</p>';
  39. _cardbox += ' <p>部门:<span data-id="' + item.F_DepartmentId + '"></span></p>';
  40. _cardbox += ' </div>';
  41. _cardbox += '</div>';
  42. var $cardbox = $(_cardbox);
  43. $cardbox[0].userinfo = item;
  44. $warp.append($cardbox);
  45. learun.clientdata.getAsync('department', {
  46. key: item.F_DepartmentId,
  47. callback: function (_data, op) {
  48. $warp.find('[data-id="' + op.key + '"]').text(_data.name);
  49. }
  50. });
  51. }
  52. $warp.find('.card-box').on('click', function () {
  53. var $this = $(this);
  54. var userid = $this.attr('data-value');
  55. if ($this.hasClass('active')) {
  56. $this.removeClass('active');
  57. removeUser(userid);
  58. userlistselected.splice(userlistselected.indexOf(userid), 1);
  59. }
  60. else {
  61. $this.addClass('active');
  62. userlistselectedobj[userid] = $this[0].userinfo;
  63. userlistselected.push(userid);
  64. addUser($this[0].userinfo);
  65. }
  66. });
  67. $('#user_list').html($warp);
  68. };
  69. function addUser(useritem) {
  70. var $warp = $('#selected_user_list');
  71. var _html = '<div class="user-selected-box" data-value="' + useritem.F_UserId + '" >';
  72. _html += '<p><span data-id="' + useritem.F_CompanyId + '"></span></p>';
  73. _html += '<p><span data-id="' + useritem.F_DepartmentId + '"></span>【' + useritem.F_RealName + '】</p>';
  74. _html += '<span class="user-reomve" title="移除选中人员"></span>';
  75. _html += '</div>';
  76. $warp.append(_html);
  77. learun.clientdata.getAsync('department', {
  78. key: useritem.F_DepartmentId,
  79. callback: function (_data, op) {
  80. $warp.find('[data-id="' + op.key + '"]').text(_data.name);
  81. }
  82. });
  83. learun.clientdata.getAsync('company', {
  84. key: useritem.F_CompanyId,
  85. callback: function (_data, op) {
  86. $warp.find('[data-id="' + op.key + '"]').text(_data.name);
  87. }
  88. });
  89. };
  90. function removeUser(userid) {
  91. var $warp = $('#selected_user_list');
  92. $warp.find('[data-value="' + userid + '"]').remove();
  93. };
  94. var page = {
  95. init: function () {
  96. page.bind();
  97. page.initData();
  98. },
  99. bind: function () {
  100. // 部门
  101. $('#department_tree').lrtree({
  102. nodeClick: function (item) {
  103. departmentId = item.id;
  104. if (!!userlist[item.id]) {
  105. renderUserlist(userlist[item.id]);
  106. }
  107. else {
  108. learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/User/GetList', { companyId: companyId, departmentId: departmentId }, function (data) {
  109. userlist[item.id] = data || [];
  110. renderUserlist(userlist[item.id]);
  111. });
  112. }
  113. }
  114. });
  115. // 公司
  116. $('#company_select').lrCompanySelect({ isLocal: true }).bind('change', function () {
  117. companyId = $(this).lrselectGet();
  118. $('#department_tree').lrtreeSet('refresh', {
  119. url: top.$.rootUrl + '/LR_OrganizationModule/Department/GetTree',
  120. // 访问数据接口参数
  121. param: { companyId: companyId },
  122. });
  123. });
  124. // 已选人员按钮
  125. $('#user_selected_btn').on('click', function () {
  126. $('#form_warp_right').animate({ right: '0px' }, 300);
  127. });
  128. $('#user_selected_btn_close').on('click', function () {
  129. $('#form_warp_right').animate({ right: '-180px' }, 300);
  130. });
  131. // 搜索
  132. $("#txt_keyword").keydown(function (event) {
  133. if (event.keyCode == 13) {
  134. var keyword = $(this).val();
  135. if (keyword != "") {
  136. learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/User/GetList', { companyId: companyId, keyword: keyword }, function (data) {
  137. renderUserlist(data || []);
  138. });
  139. }
  140. else {
  141. var data = userlist[departmentId] || [];
  142. renderUserlist(data);
  143. }
  144. }
  145. });
  146. // 搜索
  147. $(".input-query").click(function () {
  148. var keyword = $("#txt_keyword").val();
  149. if (keyword != "") {
  150. learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/User/GetList', { companyId: companyId, keyword: keyword }, function (data) {
  151. renderUserlist(data || []);
  152. });
  153. }
  154. else {
  155. var data = userlist[departmentId] || [];
  156. renderUserlist(data);
  157. }
  158. })
  159. // 选中人员按钮点击事件
  160. $('#selected_user_list').on('click', function (e) {
  161. var et = e.target || e.srcElement;
  162. var $et = $(et);
  163. if ($et.hasClass('user-reomve')) {
  164. var userid = $et.parent().attr('data-value');
  165. removeUser(userid);
  166. userlistselected.splice(userlistselected.indexOf(userid), 1);
  167. $('#user_list').find('[data-value="' + userid + '"]').removeClass('active');
  168. }
  169. });
  170. // 滚动条
  171. $('#user_list_warp').lrscroll();
  172. $('#selected_user_list_warp').lrscroll();
  173. },
  174. initData: function () {
  175. if (!!companyId) {
  176. $('#company_select').lrselectSet(companyId);
  177. }
  178. if (!!departmentId) {
  179. $('#department_tree').lrtreeSet('setValue', departmentId);
  180. }
  181. $.lrSetForm(top.$.rootUrl + '/LR_AuthorizeModule/UserRelation/GetUserIdList?objectId=' + objectId, function (data) {
  182. if (data.userIds == "") {
  183. return false;
  184. }
  185. var $warp = $('#selected_user_list');
  186. $.each(data.userInfoList, function (id, item) {
  187. if (item) {
  188. userlistselectedobj[item.F_UserId] = item;
  189. }
  190. });
  191. var userList = data.userIds.split(',');
  192. for (var i = 0, l = userList.length; i < l; i++) {
  193. var userId = userList[i];
  194. var item = userlistselectedobj[userId];
  195. if (!!item) {
  196. if (userlistselected.indexOf(userId) == -1) {
  197. userlistselected.push(userId);
  198. }
  199. var _html = '<div class="user-selected-box" data-value="' + item.F_UserId + '" >';
  200. _html += '<p><span data-id="' + item.F_CompanyId + '"></span></p>';
  201. _html += '<p><span data-id="' + item.F_DepartmentId + '"></span>【' + item.F_RealName + '】</p>';
  202. _html += '<span class="user-reomve" title="移除选中人员"></span>';
  203. _html += '</div>';
  204. $warp.append($(_html));
  205. learun.clientdata.getAsync('department', {
  206. key: item.F_DepartmentId,
  207. callback: function (_data, op) {
  208. $warp.find('[data-id="' + op.key + '"]').text(_data.name);
  209. }
  210. });
  211. learun.clientdata.getAsync('company', {
  212. key: item.F_CompanyId,
  213. callback: function (_data, op) {
  214. $warp.find('[data-id="' + op.key + '"]').text(_data.name);
  215. }
  216. });
  217. $('#user_list').find('[data-value="' + item.F_UserId + '"]').addClass('active');
  218. }
  219. }
  220. });
  221. }
  222. };
  223. // 保存数据
  224. acceptClick = function () {
  225. $.lrSaveForm(top.$.rootUrl + '/EducationalAdministration/Dispatch/SetRead', {
  226. objectId: objectId,
  227. //category: category,
  228. userIds: String(userlistselected)
  229. }, function (res) { });
  230. return true;
  231. };
  232. page.init();
  233. }