当前位置: 首页 > news >正文

js菜单隐藏显示

1、树状结构对应的表:

2、生成menulist的SQL语句

 select '{'+'"id":'+'"'+MenuID+'",'+'"parent":"'+ParentID+'",'+'"FirstLvMenu":'+'"'+FirstLvMenu+'",
 "text":"'+MenuName+'","url":"'+MenuUrl+'","enable":"'+ltrim(rtrim(str(MDeep)))+'","HaveChild":"'+HaveChild+'","state":"{opened: true }","icon":"'+MICO_Path+'"'+'},'
 from T_Menu
 //--where  menuID in ('','')
order by MenuID
 //注意: "HaveChild": "0" 的才控制权限,=1说明有子节点,不控制权限

_menuid_list=当前操作员的权限

for (i = 0; i < menulist.length; i++) {
     var _m_i = "," + menulist[i].id + ",";
     menulist[i].tip = "";//空=显示
     $('#' + menulist[i].id).removeClass("sr-only");//默认节点显示
     if (menulist[i].HaveChild == "0") {//menulist[i].parent != "#" &&
         if (_menuid_list.indexOf(_m_i) >= 0) {//|| _rule == "超级管理员"
             $('#' + menulist[i].id).attr('href', menulist[i].url);
         }
         else {
             if (menulist[i].enable == "0") {
                 //待开发中
                 $('#' + menulist[i].id).attr('href', 'javascript:show_ahref("' + menulist[i].text + '",1)');
                 menulist[i].tip = "1";
                 $('#' + menulist[i].id).addClass("sr-only");
             }
             else {
                 //无权限
                 $('#' + menulist[i].id).attr('href', 'javascript:show_ahref("' + menulist[i].text + '",0)');
                 menulist[i].tip = "0";
                 $('#' + menulist[i].id).addClass("sr-only");
             }
         }
     }
    
 }
 set_parents_menu(menulist);

3、设置父节点的显示隐藏

/**
 * 设置父节点的显示隐藏,放在设置权限之后...
 * @param {所有节点列表} menulist
 */
function set_parents_menu(menulist) {
    //tip=""(显示),其他=隐藏
    var lst = menulist.filter(function (item) {
        return item.HaveChild == "1";//找到所有父节点
    });
    for (var i = 0; i < lst.length; i++) {
        var id = lst[i].id;
        var lst_child = menulist.filter(function (item) {
            return item.HaveChild == "1" && parent == id;
        });
        if (lst_child.length > 0) {
            //当前节点下有子节点且子节点下还有子节点(多层子节点)
           get_menu_parents(lst_child);
        }
        lst_child = menulist.filter(function (item) {
            return item.tip=="" && item.parent == id;//子菜单有显示
        });
        var index = -1;//当前节点id在menulist里的索引
        menulist.filter(function (item, itemindex) {
            if (item.id == id) { index = itemindex; }
            return item.id == id;
        });
        if (index >= 0) {
           menulist[index].tip = lst_child.length > 0 ? "" : "0";
           if (lst_child.length > 0) {
                //显示
                $('#' + id).remove("sr-only");
            }
            else {
                $('#' + id).addClass("sr-only");

            }
        }
    }
};

http://www.lryc.cn/news/283686.html

相关文章:

  • 学习Spring的第五天(Bean的依赖注入)
  • GAN在图像数据增强中的应用
  • Git推送本地文件到仓库
  • Django笔记(一):环境部署
  • 用Pytorch实现线性回归模型
  • WordPress模板层次与常用模板函数
  • HarmonyOS应用开发者高级认证试题库(鸿蒙)
  • 系分备考计算机网络传输介质、通信方式和交换方式
  • js原生面试总结
  • 接口自动化测试框架设计
  • 详解ISIS动态路由协议
  • Linux操作系统----gdb调试工具(配实操图)
  • 去除GIT某个时间之前的提交日志
  • 4 python快速上手
  • 单元测试-spring-boot-starter-test+junit5
  • CentOS 7上安装Anaconda 详细教程
  • 2023年全球软件架构师峰会(ArchSummit深圳站):核心内容与学习收获(附大会核心PPT下载)
  • RT-Thread Studio学习(十六)定时器计数
  • 【linux进程间通信(一)】匿名管道和命名管道
  • 第11章 jQuery
  • leetcode:1736. 替换隐藏数字得到的最晚时间(python3解法)
  • MySQL存储函数与存储过程习题
  • 基于 Hologres+Flink 的曹操出行实时数仓建设
  • 【Docker】实战多阶段构建 Laravel 镜像
  • 【MATLAB源码-第118期】基于matlab的蜘蛛猴优化算法(SMO)无人机三维路径规划,输出做短路径图和适应度曲线。
  • 【计算机组成与体系结构Ⅱ】Tomasulo 算法模拟和分析(实验)
  • Nginx 简介
  • C++入门学习(一)写一个helloworld
  • ChatGPT 股市知识问答
  • uniapp多端评价页