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.
 
 
 
 
 
 

287 lines
12 KiB

  1. /*页面js模板,必须有init方法*/
  2. (function () {
  3. var companyMap;
  4. var departmentMap;
  5. var userMap;
  6. var userData = {};
  7. var getHeadImg = function (user) {
  8. var url = '';
  9. switch (user.img) {
  10. case '0':
  11. url += 'images/on-girl.jpg';
  12. break;
  13. case '1':
  14. url += 'images/on-boy.jpg';
  15. break;
  16. default:
  17. url += config.webapi + 'learun/adms/user/img?data=' + user.id;
  18. break;
  19. }
  20. return url;
  21. };
  22. var page = {
  23. isScroll: true,
  24. init: function ($page, param) {
  25. companyMap = {};
  26. departmentMap = {};
  27. userMap = {};
  28. // 人员列表数据初始化
  29. learun.clientdata.getAll('user', {
  30. callback: function (data) {
  31. userData = data;
  32. $.each(data, function (_id, _item) {
  33. _item.id = _id;
  34. if (_item.departmentId) {
  35. userMap[_item.departmentId] = userMap[_item.departmentId] || [];
  36. userMap[_item.departmentId].push(_item);
  37. }
  38. else if (_item.companyId) {
  39. userMap[_item.companyId] = userMap[_item.companyId] || [];
  40. userMap[_item.companyId].push(_item);
  41. }
  42. });
  43. var $list = $page.find('#lr_select_user_list');
  44. if (param.op.departmentId) {
  45. userData = {};
  46. // 加载人员
  47. $.each(userMap[param.op.departmentId] || [], function (_index, _item) {
  48. userData[_item.id] = _item;
  49. var _html = '\
  50. <div class="lr-list-item user lr-list-item-onlyuser" data-value="'+ _item.id + '" >\
  51. <img src="'+ getHeadImg(_item) + '" >\
  52. <span >' + _item.name + '</span>\
  53. </div>';
  54. $list.append(_html);
  55. });
  56. }
  57. else if (param.op.companyId) {
  58. userData = {};
  59. // 加载人员
  60. $.each(userMap[param.op.companyId] || [], function (_index, _item) {
  61. userData[_item.id] = _item;
  62. var _html = '\
  63. <div class="lr-list-item user lr-list-item-onlyuser" data-value="'+ _item.id + '" >\
  64. <img src="'+ getHeadImg(_item) + '" >\
  65. <span >' + _item.name + '</span>\
  66. </div>';
  67. $list.append(_html);
  68. });
  69. }
  70. else {
  71. // 公司列表数据初始化
  72. learun.clientdata.getAll('company', {
  73. callback: function (data) {
  74. $.each(data, function (_id, _item) {
  75. companyMap[_item.parentId] = companyMap[_item.parentId] || [];
  76. _item.id = _id;
  77. companyMap[_item.parentId].push(_item);
  78. });
  79. $.each(companyMap["0"], function (_index, _item) {
  80. var _html = '\
  81. <div class="lr-list-item" >\
  82. <a class="lr-nav-left company" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  83. </div>';
  84. $list.append(_html);
  85. });
  86. // 部门列表数据初始化
  87. learun.clientdata.getAll('department', {
  88. callback: function (data) {
  89. $.each(data, function (_id, _item) {
  90. _item.id = _id;
  91. if (_item.parentId === "0") {
  92. departmentMap[_item.companyId] = departmentMap[_item.companyId] || [];
  93. departmentMap[_item.companyId].push(_item);
  94. }
  95. else {
  96. departmentMap[_item.parentId] = departmentMap[_item.parentId] || [];
  97. departmentMap[_item.parentId].push(_item);
  98. }
  99. });
  100. }
  101. });
  102. }
  103. });
  104. }
  105. }
  106. });
  107. // 注册点击事件
  108. $('#lr_select_user_list').on('tap', function (e) {
  109. e = e || window.event;
  110. var et = e.target || e.srcElement;
  111. var $et = $(et);
  112. if (et.tagName === 'IMG' || et.tagName === 'SPAN') {
  113. $et = $et.parent();
  114. }
  115. var $list = $('<div class="lr-user-list" ></div>');
  116. var flag = false;
  117. var id = $et.attr('data-value');
  118. if ($et.hasClass('company')) {
  119. if ($et.hasClass('bottom')) {
  120. $et.removeClass('bottom');
  121. $et.parent().find('.lr-user-list').remove();
  122. }
  123. else {
  124. $list.css({ 'padding-left': '10px' });
  125. // 加载人员
  126. $.each(userMap[id] || [], function (_index, _item) {
  127. var _html = '\
  128. <div class="lr-list-item user" data-value="'+ _item.id + '" >\
  129. <img src="'+ getHeadImg(_item) + '" >\
  130. <span >' + _item.name + '</span>\
  131. </div>';
  132. $list.append(_html);
  133. flag = true;
  134. });
  135. // 加载部门
  136. $.each(departmentMap[id] || [], function (_index, _item) {
  137. var _html = '\
  138. <div class="lr-list-item" >\
  139. <a class="lr-nav-left department" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  140. </div>';
  141. $list.append(_html);
  142. flag = true;
  143. });
  144. // 加载公司
  145. $.each(companyMap[id] || [], function (_index, _item) {
  146. var _html = '\
  147. <div class="lr-list-item" >\
  148. <a class="lr-nav-left company" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  149. </div>';
  150. $list.append(_html);
  151. flag = true;
  152. });
  153. if (flag) {
  154. $et.parent().append($list);
  155. }
  156. $et.addClass('bottom');
  157. }
  158. $list = null;
  159. return false;
  160. }
  161. else if ($et.hasClass('department')) {
  162. if ($et.hasClass('bottom')) {
  163. $et.removeClass('bottom');
  164. $et.parent().find('.lr-user-list').remove();
  165. }
  166. else {
  167. $list.css({ 'padding-left': '10px' });
  168. // 加载人员
  169. $.each(userMap[id] || [], function (_index, _item) {
  170. var _html = '\
  171. <div class="lr-list-item user" data-value="'+ _item.id + '" >\
  172. <img src="'+ getHeadImg(_item) + '" >\
  173. <span >' + _item.name + '</span>\
  174. </div>';
  175. $list.append(_html);
  176. flag = true;
  177. });
  178. // 加载部门
  179. $.each(departmentMap[id] || [], function (_index, _item) {
  180. var _html = '\
  181. <div class="lr-list-item" >\
  182. <a class="lr-nav-left department" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  183. </div>';
  184. $list.append(_html);
  185. flag = true;
  186. });
  187. if (flag) {
  188. $et.parent().append($list);
  189. }
  190. $et.addClass('bottom');
  191. }
  192. $list = null;
  193. return false;
  194. }
  195. else if ($et.hasClass('user')) {
  196. param.callback(userData[id], param.op, param.$this);
  197. learun.nav.closeCurrent();
  198. $list = null;
  199. return false;
  200. }
  201. });
  202. // 搜索事件
  203. $page.find('input').on('input propertychange', function () {
  204. var keyword = $(this).val();
  205. var $list = $('#lr_select_user_list');
  206. if (keyword) {
  207. $list.html("");
  208. $.each(userData, function (_index, _item) {
  209. if (_item.name.indexOf(keyword) !== -1) {
  210. var _html = '\
  211. <div class="lr-list-item user lr-list-item-onlyuser" data-value="'+ _item.id + '" >\
  212. <img src="'+ getHeadImg(_item) + '" >\
  213. <span >' + _item.name + '</span>\
  214. </div>';
  215. $list.append(_html);
  216. }
  217. });
  218. }
  219. else {
  220. $list.html("");
  221. if (param.op.departmentId) {
  222. // 加载人员
  223. $.each(userMap[param.op.departmentId] || [], function (_index, _item) {
  224. var _html = '\
  225. <div class="lr-list-item user lr-list-item-onlyuser" data-value="'+ _item.id + '" >\
  226. <img src="'+ getHeadImg(_item) + '" >\
  227. <span >' + _item.name + '</span>\
  228. </div>';
  229. $list.append(_html);
  230. });
  231. }
  232. else if (param.op.companyId) {
  233. // 加载人员
  234. $.each(userMap[param.op.companyId] || [], function (_index, _item) {
  235. var _html = '\
  236. <div class="lr-list-item user lr-list-item-onlyuser" data-value="'+ _item.id + '" >\
  237. <img src="'+ getHeadImg(_item) + '" >\
  238. <span >' + _item.name + '</span>\
  239. </div>';
  240. $list.append(_html);
  241. });
  242. }
  243. else {
  244. $.each(companyMap["0"], function (_index, _item) {
  245. var _html = '\
  246. <div class="lr-list-item" >\
  247. <a class="lr-nav-left company" data-value="'+ _item.id + '" >' + _item.name + '</a>\
  248. </div>';
  249. $list.append(_html);
  250. });
  251. }
  252. }
  253. });
  254. },
  255. destroy: function (pageinfo) {
  256. companyMap = null;
  257. departmentMap = null;
  258. userMap = null;
  259. }
  260. };
  261. return page;
  262. })();