123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- // 脚本文件
- $(document).ready(function() {
- var currentLevel = 0; // 当前层级
- var breadcrumbs = []; // 面包屑数组
- var breadcrumbIds = []; // 面包屑数组
- function loadOrganizations(parentId) {
- var param = {"orgId": parentId, "checkType":"1","isOfficer":1};
- mbos.eas.invokeScript({
- name: "commonOSFservice",
- param: ['GetAdminInfoService', JSON.stringify(param)],
- success: function (res) {
- if (res && res.length > 0) {
- renderOrganizations(res);
- }else{
- //调用加载员工的方法
- loadEmployees(parentId);
- }
- },
- error: function (data) {
- if (typeof (data) == "string") {
- mbos.msgBox.showError("", data);
- } else {
- mbos.msgBox.showError({ ...data, msg: "" });
- }
- }
- })
-
- }
-
-
- function renderOrganizations(organizations) {
- $("#sub-organization-label").text("下级部门");
- $('#organization-tree').empty();
- organizations.forEach(function(org) {
- var $orgContainer = $('<span>');
- var $orgName = $('<span>').text(org.name).addClass('org-name');
- var $orgCount = $('<span>').text(' (共'+org.totalCount+'人)').addClass('org-count');
- $orgContainer.append($orgName).append($orgCount);
- var $li = $('<li>').append($orgContainer).addClass('organization-item')
- $li.click(function() {
- if ($(this).hasClass('selected')) {
- loadEmployees(org.id); // 加载员工信息
- } else {
- loadOrganizations(org.id); // 加载下一级组织
- updateBreadcrumbs(org.name, org.id);
- }
- });
-
- // 只有当org.count不为0时才创建$countContainer
- if (org.count > 0) {
- // 创建一个容器
- var $countContainer = $('<span>');
- // 创建 org.count 的元素并设置为浅蓝色
- var $count = $('<span>').text('本层级人数: '+org.count+'人')
- .css('color', '#007bff'); // 浅蓝色
- // var $separator = $('<span>').text(' >')
- // .css('color', '#007bff'); // 浅蓝色
- // 将两个元素添加到容器中
- // $countContainer.append($count).append($separator);
- $countContainer.append($count) ;
- $countContainer.click(function(e) {
- e.stopPropagation(); // 阻止事件冒泡
- loadEmployees(org.id); // 查询当前组织下的所有员工
- });
- // 将计数添加到列表项中
- $li.append($countContainer);
- }
- if (currentLevel > 0 && !org.hasChildren) {
- $li.addClass('selected');
- }
- $('#organization-tree').append($li);
- });
- }
- function updateBreadcrumbs(name, orgId) {
- breadcrumbs.push(name);
- breadcrumbIds.push(orgId);
- renderBreadcrumbs();
- }
-
- function renderBreadcrumbs() {
- $('#breadcrumb-container').empty();
-
- breadcrumbs.forEach(function(crumb, index) {
- var $span = $('<span>').addClass('breadcrumb-item')
- .text(crumb)
- .click(function() {
- breadcrumbs = breadcrumbs.slice(0, index + 1);
- breadcrumbIds = breadcrumbIds.slice(0, index + 1);
- loadOrganizations(breadcrumbIds[breadcrumbIds.length - 1]);
-
- // 隐藏当前面包屑后面的分隔符和面包屑
- $('#breadcrumb-container').find('.breadcrumb-item').slice(index + 1).remove();
- $('#breadcrumb-container').find('.breadcrumb-separator').slice(index).remove();
- });
-
- // 添加“ > ”作为分隔符
- if (index > 0) {
- $('#breadcrumb-container').append($('<span>').addClass('breadcrumb-separator').text(' > '));
- }
-
- $('#breadcrumb-container').append($span);
- });
- }
- function loadEmployees(orgId,perName) {
- var param = {"orgId": orgId, "perName": perName,"checkType":"1",isOfficer:1};
- mbos.eas.invokeScript({
- name: "commonOSFservice",
- param: ['getPersonFromOrgService', JSON.stringify(param)],
- success: function (res) {
- if (res) {
- renderEmployees(res);
- } else {
- mbos.msgBox.showError("无组织数据", data);
- }
- },
- error: function (data) {
- if (typeof (data) == "string") {
- mbos.msgBox.showError("", data);
- } else {
- mbos.msgBox.showError({ ...data, msg: "" });
- }
- }
- })
- }
- function renderEmployees(employees) {
- $("#sub-organization-label").text("部门成员");
- $('#organization-tree').empty();
- employees.forEach(function(emp) {
- // 创建一个外部容器来包裹员工信息
- var $li = $('<li>').addClass('organization-item').attr('empId', emp.fid)
- .click(function() {
- var that = this;
- var empId = $(that).attr('empId');
- // console.log(empId);
- //测试环境
- // var eidVal = 'ding5208b4333b1d308b4ac5d6980864d335';
- //正式环境
- var eidVal = 'ding68ce57ecf9d937b324f2f5cc6abecb85';
- // 跳转到员工信息详情页面
- window.location.href = 'https://mbos.kdeascloud.com/mbos/page/loadPage?appid='+eidVal
- +'&path=archive9000&name=archive9000.navui&isOfficer=1&personId=' + encodeURIComponent(empId);
- });
-
- // 创建员工信息的容器
- var $infoDiv = $('<div>').addClass('info-div');
- // 增加员工编码
- var $numberSpan = $('<span>').text(emp.number).addClass('number-span');
- // 创建一个用于员工姓名和职位的容器
- var $detailsDiv = $('<div>').addClass('details-div');
- // 增加员工姓名
- var $nameSpan = $('<span>').text(emp.name).addClass('name-span');
- // 增加bumen信息
- var $posSpan = $('<span>').text(emp.depname+' ('+emp.posname+')').addClass('pos-span');
- // 将员工姓名和职位信息添加到详细信息容器中
- $detailsDiv.append($nameSpan).append($posSpan);
- // 将员工编码和详细信息容器添加到信息容器中
- $infoDiv.append($numberSpan).append($detailsDiv);
- // 将整个信息容器添加到列表项中
- $li.append($infoDiv);
- // 将列表项添加到组织树中
- $('#organization-tree').append($li);
- });
- }
-
- // 初始化加载一级组织
- loadOrganizations('1');
- updateBreadcrumbs("组织架构","1");
- // 搜索框事件绑定
- $('#search-button').on('click', function() {
- var searchText = $('#search-box').val().toLowerCase();
- loadEmployees('',searchText);
- });
- });
-
|