vip_nav.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. view += '<a href="' + vo.href + '" target="_blank">';
  27. }else{
  28. view += '<a href="javascript:;" href-url="' + vo.href + '">';
  29. }
  30. view += '<i class="layui-icon">' + vo.icon + '</i>' + vo.text + '</a></dd>';
  31. });
  32. view += '<dl>';
  33. } else {
  34. if (v.target) {
  35. view += '<a href="' + v.href + '" target="_blank">';
  36. } else {
  37. view += '<a href="javascript:;" href-url="' + v.href + '">';
  38. }
  39. view += '<i class="layui-icon">' + v.icon + '</i>' + v.text + '</a>';
  40. }
  41. view += '</li>';
  42. });
  43. } else {
  44. layer.msg('接受的菜单数据不符合规范,无法解析');
  45. }
  46. // 添加到 HTML
  47. $(document).find(".layui-nav[lay-filter=" + obj + "]").html(view);
  48. // 更新渲染
  49. element.init();
  50. },'json');
  51. }
  52. // 左侧主体菜单 [请求地址,过滤ID,是否展开,携带参数]
  53. , main: function (addr, obj, treeStatus, data) {
  54. // 添加HTML
  55. this.addHtml(addr, obj, treeStatus, data);
  56. }
  57. // 顶部左侧菜单 [请求地址,过滤ID,是否展开,携带参数]
  58. , top_left: function (addr, obj, treeStatus, data) {
  59. // 添加HTML
  60. this.addHtml(addr, obj, treeStatus, data);
  61. }
  62. /*// 顶部右侧菜单
  63. ,top_right: function(){
  64. }*/
  65. };
  66. // 输出
  67. exports('vip_nav', mod);
  68. });