奶油果肉蛋卷的做法,菜单可以折叠

时间:2020-02-27 03:56来源:食谱介绍
使用插件生成SUMMARY.md 插件地址: gitbook-plugin-summary 跟我一起学extjs5(32--加入模块和菜单定义[4更新菜单(源码下载)]) 所需材料 0人喜欢 0人收藏 加入菜单 加入到菜单 确定 取消 主料 10805

图片 1

使用插件生成SUMMARY.md

插件地址: gitbook-plugin-summary

跟我一起学extjs5(32--加入模块和菜单定义[4更新菜单(源码下载)])

所需材料 0人喜欢 0人收藏 加入菜单 加入到菜单 确定 取消 主料 1080516:面粉 1010208:鸡蛋 1040110:猕猴桃 1040112:芒果 1050401:牛奶 :淡奶油 奶油果肉蛋卷的做法

book.json加入以下

    {
        "title" : "公共服务组文档库",
        "theme-default": {
            "showLevel": true
        },
        "plugins": ["summary", "toggle-chapters", "theme-comscore"]
    }

插件说明:
summary: 自动生成SUMMARY.md文件

toggle-chapters: 菜单可以折叠

theme-comscore: 主题插件, 修改标题和表格颜色

跟我一起学extjs5(32--加入模块和菜单定义[4根据后台信息更新菜单])

这一节根据后台传递过来的菜单分组和菜单定义,以及模块定义来更新4种类型的菜单。 按钮菜单和标准菜单的数据格式是一样的,生成的函数都在MainModel.js中,下面将其改一下:

   // 根据data.tf_MenuGroups生成菜单条和菜单按钮下面使用的菜单数据
   getMenus : function() {
    var items = [], me = this;
    Ext.Array.each(this.get('tf_MenuGroups'), function(group) { // 遍历菜单项的数组
       var submenu = [];
       // 对每一个菜单项,遍历菜单条的数组
       Ext.Array.each(group.tf_menuModules, function(menuitem) {
          // 根据moduleId取得该模块的定义
          var module = me.getModuleDefine(menuitem.tf_ModuleId);
          // 如果模块存在(或者具有浏览权限,以后加入)
          if (module) {
           submenu.push({
              mainmenu : 'true',
              moduleName : module.tf_moduleName,
              text : module.tf_title,
              icon : module.tf_icon,
              glyph : module.tf_glyph,
              handler : 'onMainMenuClick' // MainController中的事件处理程序
             })
           // 如果菜单定义了分隔下一条,那么菜单上加一个分隔线
           if (menuitem.tf_addSeparator)
            submenu.push('-');
          }
         })
       var item = {
        text : group.tf_title,
        menu : submenu,
        icon : group.tf_iconURL,
        glyph : group.tf_glyph
       };
       items.push(item);
      })
    return items;
   }

树状菜单也要进行修改:

/**
 * 树状菜单,显示在主界面的左边
 */
Ext.define('app.view.main.menu.MainMenuTree', {
   extend : 'Ext.tree.Panel',
   alias : 'widget.mainmenutree',
   title : '系统菜单',

   rootVisible : false,
   lines : false,

   initComponent : function() {
    this.store = Ext.create('Ext.data.TreeStore', {
       root : {
        text : '系统菜单',
        leaf : false,
        expanded : true
       }
      });
    var vm = this.up('app-main').getViewModel()
    var menus = vm.get('tf_MenuGroups');
    var root = this.store.getRootNode();
    for (var i in menus) {
     var menugroup = menus[i];
     var menuitem = root.appendChild({
        text : menugroup.tf_title,
        // 节点默认是否展开
        expanded : menugroup.tf_expand,
        icon : menugroup.tf_iconURL,
        glyph : menugroup.tf_glyph
       });
     for (var j in menugroup.tf_menuModules) {
      var menumodule = menugroup.tf_menuModules[j];

      var module = vm.getModuleDefine(menumodule.tf_ModuleId);
      if (module) {
       var childnode = {
        moduleId : module.tf_moduleId,
        moduleName : module.tf_moduleName,
        text : module.tf_title,
        leaf : true
       };
       menuitem.appendChild(childnode);
      }
     }
    }
    this.callParent(arguments);
   }
  })

手风琴式的折叠菜单:

/**
 * 折叠式(accordion)菜单,样式可以自己用css进行美化
 */

Ext.define('app.view.main.menu.AccordionMainMenu', {
   extend : 'Ext.panel.Panel',
   alias : 'widget.mainmenuaccordion',
   title : '系统菜单',

   layout : {
    type : 'accordion',
    animate : true
   },

   initComponent : function() {
    this.items = [];
    var vm = this.up('app-main').getViewModel();
    var menus = vm.get('tf_MenuGroups');
    var me = this;
    for (var i in menus) {
     var menugroup = menus[i];
     var accpanel = {
      menuAccordion : true,
      xtype : 'panel',
      title : menugroup.tf_title,
      bodyStyle : {
       padding : '10px'
      },
      layout : 'fit',
      dockedItems : [{
         dock : 'left',
         xtype : 'toolbar',
         items : []
        }],
      glyph : menugroup.tf_glyph
     };
     for (var j in menugroup.tf_menuModules) {
      var menumodule = menugroup.tf_menuModules[j];
      var module = vm.getModuleDefine(menumodule.tf_ModuleId);
      if (module) {
       accpanel.dockedItems[0].items.push({
          xtype : 'buttontransparent',
          text : this.addSpace(module.tf_title, 12),
          glyph : module.tf_glyph,
          handler : 'onMainMenuClick'
         });
      }
     }
     this.items.push(accpanel);
    }
    this.callParent(arguments);
   },

   addSpace : function(text, len) {
    var result = text;
    for (var i = text.length; i < len; i++) {
     result += ' ';
    }
    return result;
   }

  })

下面看看修改过后的样子:由于现在各个模块分组下的模块都没有加入,只有“系统管理”下有4个模块,因此有些菜单组下是无菜单的。在以后无菜单的菜单组将会被删除。
图片 2

前几节讲了简单的前后台交互建立系统主页和菜单的例子,在这之前,我把在Top区域“设置”中又增加了一些内容:增加了一个金额单位显示位置的设置,一种是将金额单位显示在数值之后,还有一种是显示在列头上,在数值中不显示。 图片 3 图片 4下载地址: 这里面包括了到现在为止的所有extjs的修改,java代码,各种配置文件和数据库。jar包如果找不齐的可以下载我的extjs4系列文章中的示例工程,里面都有(由于本人时间有限,工程搭建有问题请自行参照博客解决,祝大家国庆快乐)

]) 跟我一起学extjs5(32--加入模块和菜单定义[4根据后台信息更新菜单]) 这一节根...

编辑:食谱介绍 本文来源:奶油果肉蛋卷的做法,菜单可以折叠

关键词:

  • 上一篇:没有了
  • 下一篇:没有了