zoukankan      html  css  js  c++  java
  • LayUI------iframe版生成动态菜单

    1、简单的动态生成

    /**
         * 根据用户权限动态生成菜单
         * @param data
         */
        function setMenu(data) {
            let ulHtml = '<ul class="layui-nav layui-nav-tree ">';
            for (let i = 0; i < data.length; i++) {
                ulHtml += '<li class="layui-nav-item">';
                if (data[i].children !== undefined && data[i].children !== null && data[i].children.length > 0) {
                    ulHtml += '<a href="javascript:;" target="option">' + data[i].title;
                    ulHtml += '<span class="layui-nav-more"></span>';
                    ulHtml += '</a>';
                    ulHtml += '<dl class="layui-nav-child">';
                    //二级菜单
                    for (let j = 0; j < data[i].children.length; j++) {
                        //是否有孙子节点
                        if (data[i].children[j].children !== undefined && data[i].children[j].children !== null && data[i].children[j].children.length > 0) {
                            ulHtml += '<dd>';
                            ulHtml += '<a href="javascript:;" target="option">' + data[i].children[j].title;
                            ulHtml += '<span class="layui-nav-more"></span>';
                            ulHtml += '</a>';
                            //三级菜单
                            ulHtml += '<dl class="layui-nav-child">';
                            let grandsonNodes = data[i].children[j].children;
                            for (let k = 0; k < grandsonNodes.length; k++) {
                                ulHtml += '<dd>';
                                ulHtml += '<a href="' + grandsonNodes[k].href + '" target="option">' + grandsonNodes[k].title + '</a>';
                                ulHtml += '</dd>';
                            }
                            ulHtml += '</dl>';
                            ulHtml += '</dd>';
                        } else {
                            ulHtml += '<dd>';
                            ulHtml += '<a href="' + data[i].children[j].href + '" target="option">' + data[i].children[j].title;
                            ulHtml += '</a>';
                            ulHtml += '</dd>';
                        }
                    }
                    ulHtml += '</dl>';
                }
                ulHtml += '</li>';
            }
            ulHtml += '</ul>';
    
            $('#nav-menu').html(ulHtml);
        }

    2、返回数据格式

    [
        {
            "id":6,
            "title":"用户管理",
            "field":"menu:userManager",
            "href":"#",
            "children":[
                {
                    "id":7,
                    "title":"用户列表",
                    "field":"menu:userList",
                    "href":"user/userList.html",
                    "children":[
    
                    ]
                },
                {
                    "id":8,
                    "title":"角色列表",
                    "field":"menu:userRoleList",
                    "href":"role/roleList.html",
                    "children":[
    
                    ]
                }
            ]
        }
    ]
    作者:donleo123
    本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
  • 相关阅读:
    ajax语法结构
    数据传输编码模式的解析
    choice参数与MTV和MVC
    only和defer与select_related和prefetch_Related(面试重点)
    聚合查询、分组查询、 F与Q查询
    多表查询
    单表查询
    模板的继承和导入
    模板语法的传值和取值
    IOC依赖注入简单实例
  • 原文地址:https://www.cnblogs.com/donleo123/p/14242209.html
Copyright © 2011-2022 走看看