vip_nav.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /**
  2. * Created by Administrator on 2017/5/20.
  3. * @name: vip-admin 后台模板 菜单navJS
  4. * @author: 随丶
  5. */
  6. layui.define(['layer', 'element'], function (exports) {
  7. // 操作对象
  8. var layer = layui.layer,
  9. element = layui.element,
  10. $ = layui.jquery;
  11. // 封装方法
  12. var mod = {
  13. // 添加 HTMl
  14. addHtml: function (addr, obj, treeStatus, data) {
  15. // 请求数据
  16. $.get(addr, data, function (res) {
  17. var view = "";
  18. if (res.data) {
  19. $(res.data).each(function (k, v) {
  20. v.subset && treeStatus ? view += '<li class="layui-nav-item layui-nav-itemed">' : view += '<li class="layui-nav-item">';
  21. if (v.subset) {
  22. view += '<a href="javascript:;"><i class="layui-icon">' + v.icon + '</i>' + v.text + '</a><dl class="layui-nav-child">';
  23. $(v.subset).each(function (ko, vo) {
  24. view += '<dd>';
  25. if (vo.target) {
  26. // console.log(vo.href+vo.target);
  27. switch (vo.target) {
  28. case 2:
  29. view += '<a href="' + vo.href + '" target="_top">';
  30. break;
  31. case 1:
  32. view += '<a href="' + vo.href + '" target="_blank">';
  33. break;
  34. case -1:
  35. view += '<a href="javascript:;" href-url="' + vo.href + '">';
  36. default:
  37. view += '<a href="' + vo.href + '" target="iframe">';
  38. break;
  39. }
  40. } else {
  41. view += '<a href="javascript:;" href-url="' + vo.href + '">';
  42. }
  43. view += '<i class="layui-icon">' + vo.icon + '</i>' + vo.text + '</a></dd>';
  44. });
  45. view += '<dl>';
  46. } else {
  47. if (v.target) {
  48. switch (v.target) {
  49. case 2:
  50. view += '<a href="' + v.href + '" target="_top">';
  51. break;
  52. case 1:
  53. view += '<a href="' + v.href + '" target="_blank">';
  54. break;
  55. case -1:
  56. view += '<a href="javascript:;" href-url="' + v.href + '">';
  57. default:
  58. view += '<a href="' + v.href + '" target="iframe">';
  59. break;
  60. }
  61. } else {
  62. view += '<a href="javascript:;" href-url="' + v.href + '">';
  63. }
  64. view += '<i class="layui-icon">' + v.icon + '</i>' + v.text + '</a>';
  65. }
  66. view += '</li>';
  67. });
  68. } else {
  69. layer.msg('接受的菜单数据不符合规范,无法解析');
  70. }
  71. try {
  72. var isappend = $(document).find(".layui-nav[lay-filter=" + obj + "]").attr('layui-element-append');
  73. } catch (ex) {
  74. var isappend = null;
  75. }
  76. // console.log('aaa'+isappend);
  77. // 添加到 HTML
  78. if (isappend == '1') {
  79. $(document).find(".layui-nav[lay-filter=" + obj + "]").append(view);
  80. } else if (isappend == '2') {
  81. $(document).find(".layui-nav[lay-filter=" + obj + "]").prepend(view);
  82. } else {
  83. $(document).find(".layui-nav[lay-filter=" + obj + "]").html(view);
  84. }
  85. // 更新渲染
  86. element.init();
  87. }, 'json');
  88. }
  89. // 左侧主体菜单 [请求地址,过滤ID,是否展开,携带参数]
  90. ,
  91. main: function (addr, obj, treeStatus, data) {
  92. // 添加HTML
  93. this.addHtml(addr, obj, treeStatus, data);
  94. }
  95. // 顶部左侧菜单 [请求地址,过滤ID,是否展开,携带参数]
  96. ,
  97. top_left: function (addr, obj, treeStatus, data) {
  98. // 添加HTML
  99. this.addHtml(addr, obj, treeStatus, data);
  100. },
  101. quick: function (addr, obj, treeStatus, data) {
  102. // 添加HTML
  103. this.addHtml(addr, obj, treeStatus, data);
  104. }
  105. /*// 顶部右侧菜单
  106. ,top_right: function(){
  107. }*/
  108. };
  109. // 输出
  110. exports('vip_nav', mod);
  111. });