| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- var tab, dataStr;
- layui.config({
- base: "../Content/js/"
- }).extend({
- "bodyTab": "bodyTab"
- })
- layui.use(['bodyTab', 'form', 'element', 'layer', 'jquery'], function() {
- var form = layui.form,
- element = layui.element,
- $ = layui.jquery,
- layer = layui.layer;
- tab = layui.bodyTab({
- openTabNum: "50", //最大可打开窗口数量
- url: "../../Content/json/navs.json" //获取菜单json地址
- });
- //通过顶部菜单获取左侧二三级菜单 注:此处只做演示之用,实际开发中通过接口传参的方式获取导航数据
- function getData(json) {
- $.getJSON(tab.tabConfig.url, function(data) {
- if(json == "contentManagement") {
- dataStr = data.contentManagement;
- //重新渲染左侧菜单
- tab.render();
- } else if(json == "memberCenter") {
- dataStr = data.memberCenter;
- //重新渲染左侧菜单
- tab.render();
- } else if(json == "systemeSttings") {
- dataStr = data.systemeSttings;
- //重新渲染左侧菜单
- tab.render();
- } else if(json == "seraphApi") {
- dataStr = data.seraphApi;
- //重新渲染左侧菜单
- tab.render();
- }
- })
- }
- //页面加载时判断左侧菜单是否显示
- //通过顶部菜单获取左侧菜单
- $(".topLevelMenus li,.mobileTopLevelMenus dd").click(function() {
- if($(this).parents(".mobileTopLevelMenus").length != "0") {
- $(".topLevelMenus li").eq($(this).index()).addClass("layui-this").siblings().removeClass("layui-this");
- } else {
- $(".mobileTopLevelMenus dd").eq($(this).index()).addClass("layui-this").siblings().removeClass("layui-this");
- }
- $(".layui-layout-admin").removeClass("showMenu");
- $("body").addClass("site-mobile");
- getData($(this).data("menu"));
- //渲染顶部窗口
- tab.tabMove();
- })
- //隐藏左侧导航
- $(".hideMenu").click(function() {
- if($(".topLevelMenus li.layui-this a").data("url")) {
- layer.msg("此栏目状态下左侧菜单不可展开"); //主要为了避免左侧显示的内容与顶部菜单不匹配
- return false;
- }
- $(".layui-layout-admin").toggleClass("showMenu");
- //渲染顶部窗口
- tab.tabMove();
- })
- //通过顶部菜单获取左侧二三级菜单 注:此处只做演示之用,实际开发中通过接口传参的方式获取导航数据
- getData("systemeSttings");
- //手机设备的简单适配
- $('.site-tree-mobile').on('click', function() {
- $('body').addClass('site-mobile');
- });
- $('.site-mobile-shade').on('click', function() {
- $('body').removeClass('site-mobile');
- });
- // 添加新窗口
- $("body").on("click", ".layui-nav .layui-nav-item a:not('.mobileTopLevelMenus .layui-nav-item a')", function() {
- //如果不存在子级
- if($(this).siblings().length == 0) {
- addTab($(this));
- isbeyond();
- $('body').removeClass('site-mobile'); //移动端点击菜单关闭菜单层
- }
- //实现手风琴效果 打开一个关闭其他
- $(this).parent("li").siblings().removeClass("layui-nav-itemed");
- })
- //刷新后还原打开的窗口
- if(window.sessionStorage.getItem("menu") != null) {
- menu = JSON.parse(window.sessionStorage.getItem("menu"));
- curmenu = window.sessionStorage.getItem("curmenu");
- var openTitle = '';
- for(var i = 0; i < menu.length; i++) {
- openTitle = '';
- // if(menu[i].icon) {
- // if(menu[i].icon.split("-")[0] == 'icon') {
- // openTitle += '<i class="seraph ' + menu[i].icon + '"></i>';
- // } else {
- // openTitle += '<i class="layui-icon">' + menu[i].icon + '</i>';
- // }
- // }
- openTitle += '<cite openid=' + menu[i].openid + '>' + menu[i].title + '</cite>';
- openTitle += '<i class="layui-icon layui-unselect layui-tab-close" data-id="' + menu[i].layId + '">ဆ</i>';
- element.tabAdd("bodyTab", {
- title: openTitle,
- content: "<iframe src='" + menu[i].href + "' data-id='" + menu[i].layId + "'></frame>",
- id: menu[i].layId
- })
- //定位到刷新前的窗口
- if(curmenu != "undefined") {
- if(curmenu == '' || curmenu == "null") { //定位到后台首页
- element.tabChange("bodyTab", '');
- } else if(JSON.parse(curmenu).title == menu[i].title) { //定位到刷新前的页面
- element.tabChange("bodyTab", menu[i].layId);
- }
- } else {
- element.tabChange("bodyTab", menu[menu.length - 1].layId);
- }
- }
- //渲染顶部窗口
- tab.tabMove();
- }
- //判断打开的iframe 数量超出显示区域 显示 切换按钮
- function isbeyond() {
- //获取容器可视化宽度
- var viewwidth = parseInt($('#top_tabs_box').width());
- //获取打开标签的宽度
- var actualWidth = parseInt($('#top_tabs').width());
- //判断是否超过
- if(actualWidth > viewwidth) {
- $('.switchover').show();
- } else {
- $('.switchover').hide();
- }
- }
- isbeyond();
- $("body").on("click", ".top_tab li i.layui-tab-close", function() {
- isbeyond();
- })
-
- })
- //打开新窗口
- function addTab(_this) {
- tab.tabAdd(_this);
- }
|