郑许地铁

index.js 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. var tab, dataStr;
  2. layui.config({
  3. base: "../Content/js/"
  4. }).extend({
  5. "bodyTab": "bodyTab"
  6. })
  7. layui.use(['bodyTab', 'form', 'element', 'layer', 'jquery'], function() {
  8. var form = layui.form,
  9. element = layui.element,
  10. $ = layui.jquery,
  11. layer = layui.layer;
  12. tab = layui.bodyTab({
  13. openTabNum: "50", //最大可打开窗口数量
  14. url: "../../Content/json/navs.json" //获取菜单json地址
  15. });
  16. //通过顶部菜单获取左侧二三级菜单 注:此处只做演示之用,实际开发中通过接口传参的方式获取导航数据
  17. function getData(json) {
  18. $.getJSON(tab.tabConfig.url, function(data) {
  19. if(json == "contentManagement") {
  20. dataStr = data.contentManagement;
  21. //重新渲染左侧菜单
  22. tab.render();
  23. } else if(json == "memberCenter") {
  24. dataStr = data.memberCenter;
  25. //重新渲染左侧菜单
  26. tab.render();
  27. } else if(json == "systemeSttings") {
  28. dataStr = data.systemeSttings;
  29. //重新渲染左侧菜单
  30. tab.render();
  31. } else if(json == "seraphApi") {
  32. dataStr = data.seraphApi;
  33. //重新渲染左侧菜单
  34. tab.render();
  35. }
  36. })
  37. }
  38. //页面加载时判断左侧菜单是否显示
  39. //通过顶部菜单获取左侧菜单
  40. $(".topLevelMenus li,.mobileTopLevelMenus dd").click(function() {
  41. if($(this).parents(".mobileTopLevelMenus").length != "0") {
  42. $(".topLevelMenus li").eq($(this).index()).addClass("layui-this").siblings().removeClass("layui-this");
  43. } else {
  44. $(".mobileTopLevelMenus dd").eq($(this).index()).addClass("layui-this").siblings().removeClass("layui-this");
  45. }
  46. $(".layui-layout-admin").removeClass("showMenu");
  47. $("body").addClass("site-mobile");
  48. getData($(this).data("menu"));
  49. //渲染顶部窗口
  50. tab.tabMove();
  51. })
  52. //隐藏左侧导航
  53. $(".hideMenu").click(function() {
  54. if($(".topLevelMenus li.layui-this a").data("url")) {
  55. layer.msg("此栏目状态下左侧菜单不可展开"); //主要为了避免左侧显示的内容与顶部菜单不匹配
  56. return false;
  57. }
  58. $(".layui-layout-admin").toggleClass("showMenu");
  59. //渲染顶部窗口
  60. tab.tabMove();
  61. })
  62. //通过顶部菜单获取左侧二三级菜单 注:此处只做演示之用,实际开发中通过接口传参的方式获取导航数据
  63. getData("systemeSttings");
  64. //手机设备的简单适配
  65. $('.site-tree-mobile').on('click', function() {
  66. $('body').addClass('site-mobile');
  67. });
  68. $('.site-mobile-shade').on('click', function() {
  69. $('body').removeClass('site-mobile');
  70. });
  71. // 添加新窗口
  72. $("body").on("click", ".layui-nav .layui-nav-item a:not('.mobileTopLevelMenus .layui-nav-item a')", function() {
  73. //如果不存在子级
  74. if($(this).siblings().length == 0) {
  75. addTab($(this));
  76. isbeyond();
  77. $('body').removeClass('site-mobile'); //移动端点击菜单关闭菜单层
  78. }
  79. //实现手风琴效果 打开一个关闭其他
  80. $(this).parent("li").siblings().removeClass("layui-nav-itemed");
  81. })
  82. //刷新后还原打开的窗口
  83. if(window.sessionStorage.getItem("menu") != null) {
  84. menu = JSON.parse(window.sessionStorage.getItem("menu"));
  85. curmenu = window.sessionStorage.getItem("curmenu");
  86. var openTitle = '';
  87. for(var i = 0; i < menu.length; i++) {
  88. openTitle = '';
  89. // if(menu[i].icon) {
  90. // if(menu[i].icon.split("-")[0] == 'icon') {
  91. // openTitle += '<i class="seraph ' + menu[i].icon + '"></i>';
  92. // } else {
  93. // openTitle += '<i class="layui-icon">' + menu[i].icon + '</i>';
  94. // }
  95. // }
  96. openTitle += '<cite openid=' + menu[i].openid + '>' + menu[i].title + '</cite>';
  97. openTitle += '<i class="layui-icon layui-unselect layui-tab-close" data-id="' + menu[i].layId + '">&#x1006;</i>';
  98. element.tabAdd("bodyTab", {
  99. title: openTitle,
  100. content: "<iframe src='" + menu[i].href + "' data-id='" + menu[i].layId + "'></frame>",
  101. id: menu[i].layId
  102. })
  103. //定位到刷新前的窗口
  104. if(curmenu != "undefined") {
  105. if(curmenu == '' || curmenu == "null") { //定位到后台首页
  106. element.tabChange("bodyTab", '');
  107. } else if(JSON.parse(curmenu).title == menu[i].title) { //定位到刷新前的页面
  108. element.tabChange("bodyTab", menu[i].layId);
  109. }
  110. } else {
  111. element.tabChange("bodyTab", menu[menu.length - 1].layId);
  112. }
  113. }
  114. //渲染顶部窗口
  115. tab.tabMove();
  116. }
  117. //判断打开的iframe 数量超出显示区域 显示 切换按钮
  118. function isbeyond() {
  119. //获取容器可视化宽度
  120. var viewwidth = parseInt($('#top_tabs_box').width());
  121. //获取打开标签的宽度
  122. var actualWidth = parseInt($('#top_tabs').width());
  123. //判断是否超过
  124. if(actualWidth > viewwidth) {
  125. $('.switchover').show();
  126. } else {
  127. $('.switchover').hide();
  128. }
  129. }
  130. isbeyond();
  131. $("body").on("click", ".top_tab li i.layui-tab-close", function() {
  132. isbeyond();
  133. })
  134. })
  135. //打开新窗口
  136. function addTab(_this) {
  137. tab.tabAdd(_this);
  138. }