(function () { var companyMap = {}; var departmentMap = {}; var departmentData = {}; var page = { isScroll: true, loadDepartment: function (map, id, $list) { $.each(map[id] || [], function (_index, _item) { departmentData[_item.id] = _item; var _$html = $('\
'); $list.append(_$html); if (map[_item.id] && map[_item.id].length > 0) { _$html.find('a').addClass('bottom'); var _$list = $(''); $list.css({ 'padding-left': '10px' }); page.loadCompany(map, _item.id, _$list); _$html.append(_$list); } }); }, init: function ($page, param) { // 部门列表数据初始化 learun.clientdata.getAll('department', { callback: function (data) { departmentData = data; var $list = $page.find('#lr_select_department_list'); $.each(data, function (_id, _item) { _item.id = _id; if (_item.parentId === "0") { departmentMap[_item.companyId] = departmentMap[_item.companyId] || []; departmentMap[_item.companyId].push(_item); } else { departmentMap[_item.parentId] = departmentMap[_item.parentId] || []; departmentMap[_item.parentId].push(_item); } }); if (param.op.departmentId) { departmentData = {}; page.loadDepartment(departmentMap, param.op.departmentId, $list); $list = null; } else if (param.op.companyId) { departmentData = {}; page.loadDepartment(departmentMap, param.op.companyId, $list); $list = null; } else { learun.clientdata.getAll('company', { callback: function (data) { $.each(data, function (_id, _item) { companyMap[_item.parentId] = companyMap[_item.parentId] || []; _item.id = _id; companyMap[_item.parentId].push(_item); }); $.each(companyMap["0"], function (_index, _item) { var _html = '\ '; $list.append(_html); }); $list = null; } }); } } }); // 注册点击事件 $page.find('#lr_select_department_list').on('tap', function (e) { e = e || window.event; var et = e.target || e.srcElement; var $et = $(et); if (et.tagName === 'IMG' || et.tagName === 'SPAN') { $et = $et.parent(); } if ($et.hasClass('company')) { if ($et.hasClass('bottom')) { $et.removeClass('bottom'); $et.parent().find('.lr-user-list').remove(); } else { var id = $et.attr('data-value'); var $list = $(''); $list.css({ 'padding-left': '10px' }); // 加载部门 page.loadDepartment(departmentMap, id, $list); // 加载公司 $.each(companyMap[id] || [], function (_index, _item) { var _html = '\ '; $list.append(_html); }); if (companyMap[id] || departmentMap[id]) { $et.parent().append($list); } $et.addClass('bottom'); } return false; } else if ($et.hasClass('department')) { param.callback(departmentData[$et.attr('data-value')], param.op, param.$this); learun.nav.closeCurrent(); return false; } }); // 搜索事件 $page.find('input').on('input propertychange', function () { var keyword = $(this).val(); var $list = $('#lr_select_department_list'); if (keyword) { $list.html(""); $.each(departmentData, function (_index, _item) { if (_item.name.indexOf(keyword) !== -1) { var _html = '\ '; $list.append(_html); } }); } else { $list.html(""); if (param.op.departmentId) { page.loadDepartment(departmentMap, param.op.departmentId, $list); } else if (param.op.companyId) { page.loadDepartment(departmentMap, param.op.companyId, $list); } else { $.each(companyMap["0"], function (_index, _item) { var _html = '\ '; $list.append(_html); }); } } }); }, destroy: function (pageinfo) { companyMap = {}; departmentMap = {}; departmentData = null; } }; return page; })();