layui.define(['layer', 'element', 'util'], function (exports) { //导航的hover效果、二级菜单等功能,需要依赖element模块 var element = layui.element, layer = layui.layer, $ = layui.jquery, util = layui.util; var side = $('.layui-side'); var body = $('.layui-body'); var footer = $('.layui-footer'); var hideSide = $('.layui-side-hide'); var index; $(".layui-side-hide").hover(function (e) { e.stopPropagation(); index = layer.tips('展开/收起', '.layui-side-hide', { tips: [2, '#121a2c'] }); }, function (e) { e.stopPropagation(); if (index) { layer.close(index); } }); $("#layui-tab-title").find("li:first-child").find("i").hide(); getMenu(); //获取菜单 function getMenu() { web.ajaxPost(base + "/sysRoleMenu/getMenu", {}, function (data) { var html = ""; $.each(data, function (id1, item1) { html += '
  • '; html += ''; html += '' + item1.menu_icon + '' + item1.menu_name + ''; if (item1.children && (item1.children).length > 0) { html += '
    '; $.each(item1.children, function (id2, item2) { html += '
    '; html += '' + item2.menu_name + '
    '; }); html += '
    '; } html += '
  • '; }); $(".layui-nav-tree").html(html); element.init(); itemHover(); }); } $('.layui-nav-tree').on('click', '.layui-nav-item', function () { $(this).siblings().removeClass("layui-nav-itemed"); }); // 监听导航栏收缩 $('.layui-side-hide').on('click', function () { if (localStorage.log == 0) { navShow(50); } else { navHide(50); } }); function itemHover() { $(".sidebar-collapsed .layui-nav-item").hover(function (e) { e.stopPropagation(); $(this).find(".layui-nav-child").css("top", ($(this).index()) * 45); }, function (e) { $(this).find(".layui-nav-child").css("top", 0); }); } // 导航栏收缩 function navHide(t, st) { $('.layui-tab-content .layui-tab-item').each(function () { var obj = $(this).find("iframe").contents()[0]; if ($(obj).find('.layui-layer-iframe').width() == $(body).width()) { $(obj).find('.layui-layer-iframe').css('width', $('body').width() - 50); } }); var time = t ? t : 50; st ? localStorage.log = 1 : localStorage.log = 0; side.addClass("sidebar-collapsed"); //$(".layui-nav-item").removeClass("layui-nav-itemed"); body.animate({'left': 50}, time); footer.animate({'left': 50}, time); hideSide.css("width", "50"); itemHover(); if (index) { layer.close(index); } } // 导航栏展开 function navShow(t, st) { $('.layui-tab-content .layui-tab-item').each(function () { var obj = $(this).find("iframe").contents()[0]; if ($(obj).find('.layui-layer-iframe').width() == $(body).width()) { $(obj).find('.layui-layer-iframe').css('width', $('body').width() - 180); } }); var time = t ? t : 50; st ? localStorage.log = 0 : localStorage.log = 1; $(".sidebar-collapsed .layui-nav-item").unbind("mouseenter").unbind("mouseleave"); side.removeClass("sidebar-collapsed"); side.animate({'left': 0}, time); body.animate({'left': 180}, time); footer.animate({'left': 180}, time); hideSide.css("width", "180"); if (index) { layer.close(index); } } // 监听导航(side)点击切换页面 element.on('nav(side)', function (elem) { // 添加tab方法 addTab(element, elem); }); // 监听顶部左侧导航 element.on('nav(side-left)', function (elem) { // 添加tab方法 addTab(element, elem); }); // 监听顶部右侧导航 element.on('nav(side-right)', function (elem) { // 修改skin if ($(this).attr('data-skin')) { localStorage.skin = $(this).attr('data-skin'); skin(); } else { // 添加tab方法 addTab(element, elem); } }); // 添加TAB选项卡 function addTab(element, elem) { var menuId = elem.children('a').attr('id'); // 菜单ID var card = 'card'; // 选项卡对象 var title = elem.children('a').find("span").html(); // 导航栏text var src = elem.children('a').attr('href-url'); // 导航栏跳转URL var flag = getTitleId(card, menuId); // 是否有该选项卡存在 // 大于0就是有该选项卡了 if (!flag) { if (src) { //新增 if (src.indexOf("?") != -1) { src += "&menuId=" + menuId; } else { src += "?menuId=" + menuId; } element.tabAdd(card, { title: '' + title + '' , content: '' , id: menuId }); // 关闭弹窗 layer.closeAll(); } } // 切换相应的ID tab element.tabChange(card, menuId); } // 根据导航栏text获取lay-id function getTitleId(card, id) { var flag = false; $(document).find(".layui-tab[lay-filter=" + card + "] ul li").each(function (ids,item) { console.info(ids); if (id === $(this).attr('lay-id')) { flag=true; var iframe = $(".layui-tab-content .layui-tab-item:eq("+ids+")").find("iframe")[0]; iframe.contentWindow.location.reload(true); } }); return flag; } // 自适应 $(window).on('resize', function () { if ($(this).width() > 1024) { if (localStorage.log == 0) { navShow(); } } else { if (localStorage.log == 1) { navHide(); } } init(); }); // 监听控制content高度 function init() { // 起始判断收缩还是展开 if (localStorage.log == 0) { navHide(100); } else { navShow(1); } // 选项卡高度 cardTitleHeight = $(document).find(".layui-tab[lay-filter='card'] ul.layui-tab-title").outerHeight(); // 需要减去的高度- $(".layui-footer").outerHeight() height = $(window).outerHeight() - $('.layui-header').height() - cardTitleHeight; // 设置高度 $(document).find(".layui-tab[lay-filter='card'] div.layui-tab-content").height(height); } // 初始化 init(); exports('index', {}); //注意,这里是模块输出的核心,模块名必须和use时的模块名一致 });