递归生成多级菜单

html:

<div id="listSet"></div>

js:

    <script type="text/javascript">
        $(function () {
            $('body').addClass('loaded');
            $('#loader-wrapper .load_title').remove();
            GetSet();
        })
        //获取报警设置列表
        function GetSet() {
            $.ajax({
                url: '/SYS_BJSET/GetList',
                type: 'GET',
                success: function (data) {
                    console.table(data);

数据截图:

递归生成多级菜单
                    GetData(0, data);
                    $('#listSet').append(menus);
                },
                error: function () {
                    alert("获取失败!");
                }
            })
        };

        //菜单列表html
        var menus = '';
        //根据菜单主键id生成菜单列表html
        function GetData(name, arry) {
            var childArry = GetParentArry(name, arry);
            if (childArry.length > 0) {
                
                for (var i in childArry) {

                   //一级菜单
                    if (childArry[i].BJ_Parent == "0") {
                        menus += "<span class='list-group-item active'>" + childArry[i].BJ_Name+
                            "</span>";
                    }

                 //其他级别菜单
                    else {
                        if (childArry[i].BJ_BZW == "1") {
                            menus += "<span class='list-group-item'>" + childArry[i].BJ_Name +
                            "<button id=" + childArry[i].BJSet_ID + " onclick='openAlarm(\"" + childArry[i].BJSet_ID + "\")' type='button' class='btn btn-info' style='float:right;margin-top:-7px;'>关闭</button>" +
                                "</span>";
                        }
                        else {
                            menus += "<span class='list-group-item'>" + childArry[i].BJ_Name +
                           "<button id=" + childArry[i].BJSet_ID + " onclick='openAlarm(\"" + childArry[i].BJSet_ID + "\")' type='button' class='btn btn-success' style='float:right;margin-top:-7px;'>启用</button>" +
                               "</span>";
                        }
                    }
                    GetData(childArry[i].BJ_Name, arry);

                }
                
            }

        };
        //根据菜单name获取下级菜单
        function GetParentArry(name, arry) {
            var newArry = new Array();
            for (var i in arry) {
                if (arry[i].BJ_Parent == name)
                    newArry.push(arry[i]);
            }
            return newArry;
        };
        //启用报警
        function openAlarm(id) {
            var flag = $('#' + id).text();
            if (confirm('是否确认操作?')) {   
            $.ajax({
                url: '/SYS_BJSET/Operate',
                type: 'POST',
                data: { id: id, type: flag },
                success: function (data) {
                    if (data == "Success") {
                        if (flag == "关闭") {
                            alert("关闭成功!");
                            $('#' + id).removeClass('btn-info');
                            $('#' + id).addClass('btn-success');
                            $('#' + id).text('启用');
                        }
                        if (flag == "启用") {
                            alert("启用成功!");
                            $('#' + id).removeClass('btn-success');
                            $('#' + id).addClass('btn-info');
                            $('#' + id).text('关闭');
                        }
                    }
                    else {
                        alert("操作失败!");
                    }
                },
                error: function () {
                    console.log("open failed.");
                }
            })

            }
        };

    </script>

 

页面截图:

递归生成多级菜单

代码参考:

https://www.cnblogs.com/tangyifeng/p/7364727.html