关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 10183|回复: 4

多级菜单

[复制链接]
发表于 2017-3-24 16:42:28 | 显示全部楼层 |阅读模式
本帖最后由 zhey 于 2017-3-24 17:15 编辑

修改ListtoMenu类,替换getACESubMenu、getHplusSubMenu和getLeafOfHplusTree三个函数
  1. private static String getACESubMenu(TSFunction parent,int level,Map<Integer, List<TSFunction>> map){
  2.                 StringBuffer menuString = new StringBuffer();
  3.                 List<TSFunction> list = map.get(level);
  4.                 for (TSFunction function : list) {
  5.                         if (function.getTSFunction().getId().equals(parent.getId())){
  6.                                 if(!function.hasSubFunction(map)){
  7.                                         menuString.append(getLeafOfACETree(function,map));
  8.                                 }else {
  9.                                         /* 20160830 wangkun TASK #1330 【改造】ace首页风格,菜单不支持三级菜单,改造支持三级*/
  10.                                         menuString.append("<li>");
  11.                                         if(function.getFunctionIconStyle()!=null&&!function.getFunctionIconStyle().trim().equals("")){
  12.                                                 menuString.append("<a href="#" class="dropdown-toggle" ><i class=""+function.getFunctionIconStyle()+""></i>");
  13.                                         }else{
  14.                                                 menuString.append("<a href="#" class="dropdown-toggle" ><i class=""+SysACEIconEnum.toEnum(function.getTSIcon().getIconClas()).getThemes()+""></i>");
  15.                                         }
  16.                                         menuString.append("<span class="menu-text">");
  17.                                         menuString.append(getMutiLang(function.getFunctionName()));
  18.                                         menuString.append("</span>");
  19.                                         menuString.append("<b class="arrow icon-angle-down"></b></a><ul  class="submenu" >");
  20.                                         menuString.append(getACESubMenu(function,level+1,map));
  21.                                         menuString.append("</ul></li>");
  22.                                         /* 20160830 wangkun TASK #1330 【改造】ace首页风格,菜单不支持三级菜单,改造支持三级*/
  23.                                 }
  24.                         }
  25.                 }
  26.                 return menuString.toString();
  27.         }
  28. private static String getHplusSubMenu(TSFunction parent, int level, Map<Integer, List<TSFunction>> map) {
  29.                 StringBuffer menuString = new StringBuffer();
  30.                 String icon = "folder";

  31.                 List<TSFunction> list = map.get(level);
  32.                 for (TSFunction function : list) {
  33.                         if (function.getTSFunction().getId().equals(parent.getId())){
  34.                                 if(function.hasSubFunction(map)){
  35.                                         if (function.getTSIcon() != null) {
  36.                                                 icon = ResourceUtil.allTSIcons.get(function.getTSIcon().getId()).getIconClas();
  37.                                         }
  38.                                         String name = getMutiLang(function.getFunctionName()) ;
  39.                                         menuString.append("<li> <a class="J_menuItem" href="").append(function.getFunctionUrl()).append("">");
  40.                                         if(function.getFunctionIconStyle()!=null&&!function.getFunctionIconStyle().trim().equals("")){
  41.                                                 menuString.append("<i class="fa "+function.getFunctionIconStyle()+""></i>");
  42.                                         }else{
  43.                                                 menuString.append("<i class="fa fa-columns"></i>");
  44.                                         }
  45.                                         menuString.append("<span class="menu-text">");
  46.                                         menuString.append(name);
  47.                                         menuString.append("</span>");
  48.                                         menuString.append("<span class="fa arrow">");
  49.                                         menuString.append("</span>");
  50.                                         menuString.append("</a>");
  51.                                         menuString.append("<ul class="nav nav-third-level" >");
  52.                                         menuString.append(getHplusSubMenu(function,level+1,map));
  53.                                         menuString.append("</ul></li>");
  54.                                 }else{
  55.                                         menuString.append(getLeafOfHplusTree(function,map));
  56.                                 }
  57.                         }
  58.                 }
  59.                 return menuString.toString();
  60.         }

  61.         private static String getLeafOfHplusTree(TSFunction function,Map<Integer, List<TSFunction>> map) {
  62.                 StringBuffer menuString = new StringBuffer();
  63.                 String icon = "folder";
  64.                 if (function.getTSIcon() != null) {
  65.                         icon = ResourceUtil.allTSIcons.get(function.getTSIcon().getId()).getIconClas();
  66.                 }
  67.                 //addTabs({id:'home',title:'首页',close: false,url: 'loginController.do?home'});
  68.                 String name = getMutiLang(function.getFunctionName()) ;
  69.                 menuString.append("<li> <a class="J_menuItem" href="").append(function.getFunctionUrl()).append("">");
  70.                         if(function.getFunctionIconStyle()!=null&&!function.getFunctionIconStyle().trim().equals("")){
  71.                                 menuString.append("<i class="fa "+function.getFunctionIconStyle()+""></i>");
  72.                         }
  73.                         menuString.append("<span class="menu-text">");
  74.                         menuString.append(name);
  75.                         menuString.append("</span>");
  76.                         menuString.append("</a>");
  77.                         menuString.append("</li>");

  78.                 return menuString.toString();
  79.         }
复制代码

ListtoMenu.zip

5.99 KB, 下载次数: 2

内部是ListtoMenu.java

发表于 2017-4-6 10:45:34 | 显示全部楼层
你TSFunction这个实体映射类不改吗,你上边的函数方法好多映射类都没有还要添加的吧
 楼主| 发表于 2017-4-7 14:25:07 | 显示全部楼层
风一样的吹 发表于 2017-4-6 10:45
你TSFunction这个实体映射类不改吗,你上边的函数方法好多映射类都没有还要添加的吧 ...

在3.6.6中TSFunction已经支持多级菜单,菜单的级数只涉及前端代码的拼接,我只是把生成页面的部分做了一些更改,其他的没有变动。
发表于 2017-4-7 15:36:57 | 显示全部楼层
zhey 发表于 2017-4-7 14:25
在3.6.6中TSFunction已经支持多级菜单,菜单的级数只涉及前端代码的拼接,我只是把生成页面的部分做了一 ...

3.6.6才支持啊,不好意思,我用的365的,看了半天总觉得不对劲,哈哈
 楼主| 发表于 2017-4-7 16:26:58 | 显示全部楼层
风一样的吹 发表于 2017-4-7 15:36
3.6.6才支持啊,不好意思,我用的365的,看了半天总觉得不对劲,哈哈

3.6.6中添加菜单的页面做了修改,可以和3.6.5作一下比较
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表