/* * @Author: https://github.com/WangEn * @Author: https://gitee.com/lovetime/ * @Date: 2019-06-18 * @lastModify 2019-06-20 11:45:41 * +---------------------------------------------------------------------- * | Weadmin [ 后台管理模板 ] * | 基于Layui http://www.layui.com/ * +---------------------------------------------------------------------- */ /** * 扩展一个Menu模块,动态获取左侧菜单 * 目前多级子菜单是通过延时循环获取的方式 * 也可以采用点击时获取下级子菜单的方式 * 当然,具体的情况要参照自己的需求及api返回结构 **/ layui.define('jquery', function(exports) { var $ = layui.jquery; var menu = { getMenu: function(curl) { var that = this; if (!$('#side-nav').length) { return; } $.getJSON(curl, function(res) { var menuList = res.data; var items = []; var _ul = $('').addClass('nav').attr('id', 'nav'); $.each(menuList, function(index, val) { var item = ''; items.push(item); if (val.children && val.children.length) { //有二级子菜单 setTimeout(function() { that.getSubMenu(val.id, val.children); }, 500); } }); $('#side-nav').empty(); _ul.append(items.join('')); $('#side-nav').append(_ul); }); }, /** * @param {Object} id 上级子菜单id,拼接menu获取元素 * @param {Object} subList 子菜单列表 */ getSubMenu: function(id, subList) { var that = this; var subItems = []; var subUl = $('').addClass('sub-menu'); $.each(subList, function(idx, sub) { var subItem = ''; subItems.push(subItem); if (sub.children && sub.children.length) { setTimeout(function() { that.getSubMenu(sub.id, sub.children); }, 1500); } }); subUl.append(subItems.join('')); $('#menu' + id).append(subUl); } }; exports('menu', menu); });