// 脚本文件
$(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);
    });
});
        
