layout.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. layui.config({
  2. base: 'js/'
  3. }).use(['element', 'layer', 'navbar', 'tab'], function() {
  4. var element = layui.element()
  5. $ = layui.jquery,
  6. layer = layui.layer,
  7. navbar = layui.navbar(),
  8. tab = layui.tab({
  9. elem: '.layout-nav-card', //设置选项卡容器
  10. contextMenu:true
  11. });
  12. //iframe自适应
  13. $(window).on('resize', function() {
  14. var $content = $('.layout-nav-card .layui-tab-content');
  15. $content.height($(this).height() - 165);
  16. $content.find('iframe').each(function() {
  17. $(this).height($content.height());
  18. });
  19. }).resize();
  20. var $menu = $('#menu');
  21. $menu.find('li.layui-nav-item').each(function() {
  22. var $this = $(this);
  23. //绑定一级导航的点击事件
  24. $this.on('click', function() {
  25. //获取设置的模块ID
  26. var id = $this.find('a').data('module-id');
  27. //这里的数据源只是演示时用的,实际需求可能通过远程读取(根据模块ID来获取对应模块的信息)
  28. var url;
  29. switch(id) {
  30. case 1:
  31. url = 'datas/nav_content.json';
  32. break;
  33. case 3:
  34. url = 'datas/nav_member.json';
  35. break;
  36. default:
  37. break;
  38. }
  39. //设置数据源有两个方式。
  40. //第一:在此页面通过ajax读取设置 举个栗子:
  41. //---------这是第一个栗子----------
  42. /*$.getJSON('/api/xxx',{moduleId:id},function(data){
  43. navbar.set({
  44. elem: '#side',
  45. data: data
  46. });
  47. navbar.render();
  48. navbar.on('click(side)', function(data) {
  49. tab.tabAdd(data.field);
  50. });
  51. });*/
  52. //------------栗子结束--------------
  53. //第二:设置url
  54. //---------这是第二个栗子----------
  55. /*navbar.set({
  56. elem: '#side',
  57. url: '/api/xxx?moduleId='+id
  58. });
  59. navbar.render();
  60. navbar.on('click(side)', function(data) {
  61. tab.tabAdd(data.field);
  62. });*/
  63. //------------栗子结束--------------
  64. //设置navbar
  65. navbar.set({
  66. elem: '#side', //存在navbar数据的容器ID
  67. url: url
  68. });
  69. //渲染navbar
  70. navbar.render();
  71. //监听点击事件
  72. navbar.on('click(side)', function(data) {
  73. layer.msg(data.field.href);
  74. tab.tabAdd(data.field);
  75. });
  76. });
  77. });
  78. //模拟点击内容管理
  79. $('.beg-layout-menu').find('a[data-module-id=1]').click();
  80. element.on('nav(user)', function(data) {
  81. var $a = data.children('a');
  82. if($a.data('tab') !== undefined && $a.data('tab')) {
  83. tab.tabAdd({
  84. title: $a.children('cite').text(),
  85. //icon: 'fa-user',
  86. href: $a.data('url')
  87. });
  88. }
  89. });
  90. $('.beg-layout-side-toggle').on('click', function() {
  91. var sideWidth = $('.beg-layout-side').width();
  92. if(sideWidth === 200) {
  93. $('.beg-layout-body').animate({
  94. left: '0'
  95. });
  96. $('.beg-layout-footer').animate({
  97. left: '0'
  98. });
  99. $('.beg-layout-side').animate({
  100. width: '0'
  101. });
  102. } else {
  103. $('.beg-layout-body').animate({
  104. left: '200px'
  105. });
  106. $('.beg-layout-footer').animate({
  107. left: '200px'
  108. });
  109. $('.beg-layout-side').animate({
  110. width: '200px'
  111. });
  112. }
  113. });
  114. });