pfileList.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. mbos.$registerJsbinder(function(page){
  2. //@begin自动生成事件代码
  3. //设计器会自动覆盖,请勿修改
  4. var _self =this;
  5. var _this =this;
  6. //@end自动生成事件代码
  7. //@begin自定义事件
  8. // 脚本文件
  9. $(document).ready(function() {
  10. var currentLevel = 0; // 当前层级
  11. var breadcrumbs = []; // 面包屑数组
  12. var breadcrumbIds = []; // 面包屑数组
  13. function loadOrganizations(parentId) {
  14. var param = {"orgId": parentId, "checkType":"1"};
  15. mbos.eas.invokeScript({
  16. name: "commonOSFservice",
  17. param: ['GetAdminInfoService', JSON.stringify(param)],
  18. success: function (res) {
  19. if (res && res.length > 0) {
  20. renderOrganizations(res);
  21. }else{
  22. //调用加载员工的方法
  23. loadEmployees(parentId);
  24. }
  25. },
  26. error: function (data) {
  27. if (typeof (data) == "string") {
  28. mbos.msgBox.showError("", data);
  29. } else {
  30. mbos.msgBox.showError({ ...data, msg: "" });
  31. }
  32. }
  33. })
  34. }
  35. function renderOrganizations(organizations) {
  36. $("#sub-organization-label").text("下级部门");
  37. $('#organization-tree').empty();
  38. organizations.forEach(function(org) {
  39. var $orgContainer = $('<span>');
  40. var $orgName = $('<span>').text(org.name).addClass('org-name');
  41. var $orgCount = $('<span>').text(' (共'+org.totalCount+'人)').addClass('org-count');
  42. $orgContainer.append($orgName).append($orgCount);
  43. var $li = $('<li>').append($orgContainer).addClass('organization-item')
  44. $li.click(function() {
  45. if ($(this).hasClass('selected')) {
  46. loadEmployees(org.id); // 加载员工信息
  47. } else {
  48. loadOrganizations(org.id); // 加载下一级组织
  49. updateBreadcrumbs(org.name, org.id);
  50. }
  51. });
  52. // 只有当org.count不为0时才创建$countContainer
  53. if (org.count > 0) {
  54. // 创建一个容器
  55. var $countContainer = $('<span>');
  56. // 创建 org.count 的元素并设置为浅蓝色
  57. var $count = $('<span>').text('本层级人数: '+org.count+'人')
  58. .css('color', '#007bff'); // 浅蓝色
  59. // var $separator = $('<span>').text(' >')
  60. // .css('color', '#007bff'); // 浅蓝色
  61. // 将两个元素添加到容器中
  62. // $countContainer.append($count).append($separator);
  63. $countContainer.append($count) ;
  64. $countContainer.click(function(e) {
  65. e.stopPropagation(); // 阻止事件冒泡
  66. loadEmployees(org.id); // 查询当前组织下的所有员工
  67. });
  68. // 将计数添加到列表项中
  69. $li.append($countContainer);
  70. }
  71. if (currentLevel > 0 && !org.hasChildren) {
  72. $li.addClass('selected');
  73. }
  74. $('#organization-tree').append($li);
  75. });
  76. }
  77. function updateBreadcrumbs(name, orgId) {
  78. breadcrumbs.push(name);
  79. breadcrumbIds.push(orgId);
  80. renderBreadcrumbs();
  81. }
  82. function renderBreadcrumbs() {
  83. $('#breadcrumb-container').empty();
  84. breadcrumbs.forEach(function(crumb, index) {
  85. var $span = $('<span>').addClass('breadcrumb-item')
  86. .text(crumb)
  87. .click(function() {
  88. breadcrumbs = breadcrumbs.slice(0, index + 1);
  89. breadcrumbIds = breadcrumbIds.slice(0, index + 1);
  90. loadOrganizations(breadcrumbIds[breadcrumbIds.length - 1]);
  91. // 隐藏当前面包屑后面的分隔符和面包屑
  92. $('#breadcrumb-container').find('.breadcrumb-item').slice(index + 1).remove();
  93. $('#breadcrumb-container').find('.breadcrumb-separator').slice(index).remove();
  94. });
  95. // 添加“ > ”作为分隔符
  96. if (index > 0) {
  97. $('#breadcrumb-container').append($('<span>').addClass('breadcrumb-separator').text(' > '));
  98. }
  99. $('#breadcrumb-container').append($span);
  100. });
  101. }
  102. function loadEmployees(orgId,perName) {
  103. var param = {"orgId": orgId, "perName": perName,"checkType":"1"};
  104. mbos.eas.invokeScript({
  105. name: "commonOSFservice",
  106. param: ['getPersonFromOrgService', JSON.stringify(param)],
  107. success: function (res) {
  108. if (res) {
  109. renderEmployees(res);
  110. } else {
  111. mbos.msgBox.showError("无组织数据", data);
  112. }
  113. },
  114. error: function (data) {
  115. if (typeof (data) == "string") {
  116. mbos.msgBox.showError("", data);
  117. } else {
  118. mbos.msgBox.showError({ ...data, msg: "" });
  119. }
  120. }
  121. })
  122. }
  123. function renderEmployees(employees) {
  124. $("#sub-organization-label").text("部门成员");
  125. $('#organization-tree').empty();
  126. employees.forEach(function(emp) {
  127. // 创建一个外部容器来包裹员工信息
  128. var $li = $('<li>').addClass('organization-item').attr('empId', emp.fid)
  129. .click(function() {
  130. var that = this;
  131. var empId = $(that).attr('empId');
  132. // console.log(empId);
  133. //测试环境
  134. // var eidVal = 'ding5208b4333b1d308b4ac5d6980864d335';
  135. //正式环境
  136. var eidVal = 'ding68ce57ecf9d937b324f2f5cc6abecb85';
  137. // 跳转到员工信息详情页面
  138. window.location.href = 'https://mbos.kdeascloud.com/mbos/page/loadPage?appid='+eidVal
  139. +'&path=archive9000&name=archive9000.navui&personId=' + encodeURIComponent(empId);
  140. });
  141. // 创建员工信息的容器
  142. var $infoDiv = $('<div>').addClass('info-div');
  143. // 增加员工编码
  144. var $numberSpan = $('<span>').text(emp.number).addClass('number-span');
  145. // 创建一个用于员工姓名和职位的容器
  146. var $detailsDiv = $('<div>').addClass('details-div');
  147. // 增加员工姓名
  148. var $nameSpan = $('<span>').text(emp.name).addClass('name-span');
  149. // 增加bumen信息
  150. var $posSpan = $('<span>').text(emp.depname+' ('+emp.posname+')').addClass('pos-span');
  151. // 将员工姓名和职位信息添加到详细信息容器中
  152. $detailsDiv.append($nameSpan).append($posSpan);
  153. // 将员工编码和详细信息容器添加到信息容器中
  154. $infoDiv.append($numberSpan).append($detailsDiv);
  155. // 将整个信息容器添加到列表项中
  156. $li.append($infoDiv);
  157. // 将列表项添加到组织树中
  158. $('#organization-tree').append($li);
  159. });
  160. }
  161. // 初始化加载一级组织
  162. loadOrganizations('1');
  163. updateBreadcrumbs("组织架构","1");
  164. // 搜索框事件绑定
  165. $('#search-button').on('click', function() {
  166. var searchText = $('#search-box').val().toLowerCase();
  167. loadEmployees('',searchText);
  168. });
  169. });
  170. //@end自定义事件
  171. });