[ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏

本文主要是介绍[ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39102335

官方例子: http://dev.sencha.com/ext/5.0.1/examples/window/layout.html?theme=neptune

本文作者:sushengmiyan

------------------------------------------------------------------------------------------------------------------------------------

做一个系统的话,一般都需要有导航栏啊,工具条啊这些东西。看到Ext官方例子中有个window的layout window ,看了下效果看起来蛮不错,就学习了下,加入到了我之前做的extjs5登录系统中。这样看起来就像是一个系统了。

先看下官方例子的效果吧,看起来很不错的哟:


看下官方给的代码:

代码地址:http://dev.sencha.com/ext/5.0.1/examples/window/layout.js

代码内容:

Ext.require(['Ext.tab.*','Ext.window.*','Ext.tip.*','Ext.layout.container.Border'
]);
Ext.onReady(function(){var win,button = Ext.get('show-btn');button.on('click', function(){if (!win) {win = Ext.create('widget.window', {title: 'Layout Window with title <em>after</em> tools',header: {titlePosition: 2,titleAlign: 'center'},closable: true,closeAction: 'hide',maximizable: true,animateTarget: button,width: 600,minWidth: 350,height: 350,tools: [{type: 'pin'}],layout: {type: 'border',padding: 5},items: [{region: 'west',title: 'Navigation',width: 200,split: true,collapsible: true,floatable: false}, {region: 'center',xtype: 'tabpanel',items: [{// LTR even when example is RTL so that the code can be readrtl: false,title: 'Bogus Tab',html: '<p>Window configured with:</p><pre style="margin-left:20px"><code>header: {\n    titlePosition: 2,\n    titleAlign: "center"\n},\nmaximizable: true,\ntools: [{type: "pin"}],\nclosable: true</code></pre>'}, {title: 'Another Tab',html: 'Hello world 2'}, {title: 'Closable Tab',html: 'Hello world 3',closable: true}]}]});}button.dom.disabled = true;if (win.isVisible()) {win.hide(this, function() {button.dom.disabled = false;});} else {win.show(this, function() {button.dom.disabled = false;});}});
});
现在看看我的最后成果:

看起来是不是跟官方的差不多呀,哈哈。这就是模仿咯,能知道如何看官方的例子了,感觉就来啦,可以顺利上手的样子了。

哈哈。

看看需要做哪些就可以达到如上效果吧!

1.增加菜单项的内容,就是 学生档案、教室档案那些,这个我们暂时放在mainmodel下的data里面,这个自己制定,可以直接在panel的items定死也是可以的,这里动态获取一下。

/*** 应用程序主要视图.author: sushengmiyan*blog: http://blog.csdn.net/column/details/sushengextjs5.html*/
Ext.define('oaSystem.view.main.MainModel', {extend: 'Ext.app.ViewModel',alias: 'viewmodel.main',//数据模块  ViewModel中的data可以在指定当前ViewModel的地方获取data: {name: 'oaSystem',// 左边菜单的加载NavigationMenu : [{text : '档案管理',// 菜单项的名称description : '', // 菜单项的描述expanded : true,// 在树形菜单中是否展开items : [{text : '学生档案',// 菜单条的名称module : 'StudentArchives',// 对应模块的名称glyph : 0xf00b // 菜单条的图标字体},{text : '教师档案',module : 'TeacherArchives',glyph : 0xf1a2},{text : '教室资源',module : 'RoomArchives',glyph : 0xf183}]},{text : '系统设置', description : '', items : [{text : '系统参数', module : 'SytemInfo', glyph : 0xf0f7}, {text : '高级设置',module : 'HigherSetting',glyph : 0xf02e}]}					]},  //增加 data, formulas and/or methods 来支持你的视图
});
在regions目录下新建Left.js内容如下:

Ext.define(//左侧导航条'oaSystem.view.main.region.Left',{extend: 'Ext.panel.Panel',  alias: 'widget.mainleft',  title: '折叠菜单',  glyph: 0xf0c9, split: true,collapsible: true,floatable: false,		tools: [{type: 'pin'}],header: {titlePosition: 2,titleAlign: 'center'},maximizable: true,layout: {  type: 'accordion',  animate: true, //点击的时候有动画动作 titleCollapse: true,enableSplitters: true,hideCollapseTool: true,},  viewModel: 'main', //指定后可获取MainModel中data数据块 initComponent: function() {  this.items = [];  var menus = this.getViewModel().get('NavigationMenu');  for (var i in menus) {//先获取分组显示var group = menus[i];  var leftpanel = {  menuAccordion : true,  xtype: 'panel',  title: group.text,  bodyStyle: {  padding: '10px'  },  layout: 'fit',  dockedItems: [{  dock : 'left',  xtype : 'toolbar',  items : []  }],  glyph: group.glyph  };//遍历分组下的菜单项				for (var j in group.items) {  var menumodule = group.items[j];  leftpanel.dockedItems[0].items.push({    text: menumodule.text,  glyph: menumodule.glyph,  handler: 'onMainMenuClick'  });  }  this.items.push(leftpanel);  }  this.callParent(arguments);  },  });
在main.js中引入这个单元:

uses:['oaSystem.view.main.region.Top', 'oaSystem.view.main.region.Bottom','oaSystem.view.main.region.Left'],

在items中增加这个折叠导航:

,{  xtype : 'mainleft',  region : 'west', // 左边面板  width : 250,  split : true  }

OK,完工。现在就可以有个折叠导航啦





这篇关于[ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/751857

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识