`

Ext 首页布局

阅读更多
//#########   LeftMenu   ##############

//Ext.ns()构建命名空间,跟Java中的包概念一样,实际上会新建一个类,下面这条语句就新建了4个类
Ext.ns("Morik", "Morik.Office", "Morik.Util", "Morik.Office.Department");
Morik.Office.LeftMenu = function(config) {
	var d = Ext.apply( {// default set
				width : 200,
				split : true,
				region : 'west',
				collapseMode :'mini',	//在列的中间显示一个小三角
				defaults : {
					border : false
				},
				layoutConfig : {
					animate : true
				}
			}, config || {});

	config = Ext.apply(d, {
		layout : 'accordion',
		collapsible : true	//在菜单面板的右侧显示可隐藏按钮
	});
	
	Morik.Office.LeftMenu.superclass.constructor.call(this, config);
	
	//改进,并为增加了个配置项tree!
	for(var i=0;i<this.trees.length;i++)		 
	 	this.add({title:this.trees[i].getRootNode().text,items:[this.trees[i]]});	

	// 事件处理
	this.addEvents('nodeClick');
	this.initTreeEvent();
	}

Ext.extend(Morik.Office.LeftMenu, Ext.Panel, {
	initTreeEvent : function() {
		if(!this.items) return;
		for (var i = 0;i < this.items.length; i++) {
			var p = this.items.itemAt(i);
			if (p)
			var t = p.items.itemAt(0);
			if(t)
			t.on( {
				'click' : function(node, event) {
					if (node && node.isLeaf()) {
						event.stopEvent();
						this.fireEvent('nodeClick', node.attributes);
					}
				},
				scope : this
			});
		}
	}
})

Morik.Office.CompanyPanel = function(config) {
	Morik.Office.CompanyPanel.superclass.constructor.call(this, config);

	// 加上服务器上的jsp数据生成
	// 生成Company类型
	var proxy = new Ext.data.HttpProxy( {
		url : 'company.jsp'
	});

	var recordType = new Ext.data.Record.create([ {
		name : "id",
		type : "int"
	}, {
		name : "comNum",
		type : "string"
	}, {
		name : "comName",
		type : "string"
	}, {
		name : "comAddress",
		type : "string"
	}]);

	// 定义分析器
	var reader = new Ext.data.JsonReader( {
		totalProperty : "results",
		root : "rows",
		id : "id"
	}, recordType);

	// 定义store
	var ds = new Ext.data.Store( {
		proxy : proxy,
		reader : reader
	});
this.ds=ds;
	// 第二,讲一下cm,grid

	var cm = new Ext.grid.ColumnModel( {
		defaultSortable : true,
		defaultWidth : 180,
		columns : [ {
			header : '编号',
			dataIndex : 'comNum'
		}, {
			header : '名称',
			dataIndex : 'comName'
		}, {
			header : '公司地址',
			width : 300,
			dataIndex : 'comAddress'
		}]
	});
var pagingBar = new Ext.PagingToolbar({
        pageSize: 10,
        store: ds,
        displayInfo: true,
        displayMsg: '共有 {2},当前显示 {0} - {1}条',
        emptyMsg: "没有数据"
    });
	var grid = new Ext.grid.GridPanel( {
		cm : cm,
		store : ds,
		width : 660,
		height : 400,
		bbar:pagingBar,
		loadMask:{msg:'正在载入数据,请稍等...'},
		title : '公司列表'
	});
	//ds.load();

	this.add(grid);
	// 第三、调整,tbar分页,工具栏
	
}
Ext.extend(Morik.Office.CompanyPanel, Ext.Panel, {});

Ext.ns("Morik", "Morik.Office", "Morik.Util", "Morik.Office.Department");
Morik.Office.MainingPanel = Ext.extend(Ext.TabPanel, {
	initComponent : function() {
		// 一些初始化工作
		Morik.Office.MainingPanel.superclass.initComponent.call(this);
		this._cache = {};

	},
	loadTab : function(node) {
		var n = this.getComponent(node.id);
		if (n) {
			this.setActiveTab(n);
		} else {
			var c = {
				'id' : node.id,
				'title' : node.text,
				closable : true
			};
			var pn = this.findPanel(node.id);
			n = this.add(pn ? new pn(c) : Ext.apply(c, {
				html : '你还没有实现该页面!'
			}))

			n.show().doLayout();
		}
		if (n.ds)
			n.ds.load({params:{start:0, limit:10}});
	},
	findPanel : function(name) {
		var ret = this._cache[name];
		if (!ret) {
			var pn = (this.ns ? this.ns : 'Morik.Office') + "."
					+ Ext.util.Format.capitalize(name) + 'Panel';
			var ret = eval(pn);
		}
		return ret;
	},
	addPanel : function(name, panel) {
		if (!this._cache)
			this._cache = {};
		this._cache[name] = panel;
	}
});

Ext.onReady(function() {

	Ext.BLANK_IMAGE_URL = 'pic/s.gif';
	Ext.QuickTips.init();
	Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8";

	// 1、创建head部分
		var head = new Ext.Panel( {
			region : 'north',
			border : false,
			html : '<div style="background:url(pic/main1.gif) repeat-x; height:78px;"></div>',
			height : 80
		});

		// 2、创建foot部分
		var foot = new Ext.Panel( {
			region : 'south',
			html : '<div style="background:url(pic/main2.gif) repeat-x; height:33px; ">'
					+ '<div style="float:left;font:normal 12px tahoma, arial, sans-serif, 宋体;margin:10px 0 0 10px;">'
					+ 'Power By:	<span style="color:blue">彭仁夔</span> &nbsp;</div>'
					+ '<div	style="float:right;margin:10px;font:normal 12px tahoma, arial, sans-serif, 宋体;" >'
					+ '版权所有:<a href="http://www.morik.com">www.morik.com</a></div>'
					+ '</div>',
			height : 35
		});

		// 3、创建leftMenu部分
		// var leftmenu = new Ext.Panel( {
		// region : 'west',
		// html : '<div>导航菜单</div>',
		// width : 200
		// });

		// 4、创建主内容部分
		// var mainTab = new Ext.Panel( {
		// region : 'center',
		// html : '<div>主内容部分</div>'
		// });

		var t1 = new Ext.tree.TreePanel( {
			border : false,
			rootVisible : false,
			root : new Ext.tree.AsyncTreeNode( {
				text : "我的办公桌",
				expanded : true,
				children : [ {
					id : "docRec",
					text : "接收公文",
					leaf : true
				}, {
					id : "docSend",
					text : "发送公文",
					leaf : true
				}, {
					id : "docManage",
					text : "公文管理",
					leaf : true
				}]
			})
		});

		var t2 = new Ext.tree.TreePanel( {
			border : false,
			rootVisible : false,
			root : new Ext.tree.AsyncTreeNode( {
				text : "主数据管理",
				expanded : true,
				children : [ {
					id : "department",
					text : "部门管理",
					leaf : true
				}, {
					id : "company",
					text : "公司管理",
					leaf : true
				}, {
					id : "permissions",
					text : "权限管理",
					children : [ {
						id : "permission",
						text : "权限管理",
						leaf : true
					}, {
						id : "permissionType",
						text : "权限类别",
						leaf : true
					}]
				}]
			})

		});

		var leftmenu = new Morik.Office.LeftMenu( {
			title : '我的办公系统',
		//	items : [ {
			//	title : '我的办公桌',
		//		items : [t1]
		//	}, {
		//		title : '主数据管理',
		//		items : [t2]
		//	}]
		 trees : [t1, t2]
		});

		var mainTab = new Morik.Office.MainingPanel( {
			style : 'padding:0 6px 0 0',
			autoScroll : true,
			region : 'center',
			deferredRender : false,
			activeTab : 0,
			resizeTabs : true,
			inTabWidth : 100,
			tabWidth : 90,
			enableTabScroll : true,
			items : [{
				title : '我的首页',
				html : '<div style="background:url(pic/main.gif) no-repeat center middle; height:508px;"></div>'
			}]
		});

		// 5、建立leftmenu和mainTab两者之间的关系
		leftmenu.on("nodeClick", function(nodeAttr) {
			mainTab.loadTab(nodeAttr);
		});
		// 6、创建布局
		var viewport = new Ext.Viewport( {
			layout : 'border',
			style : 'border:#024459 2px solid;',
			items : [head, foot, leftmenu, mainTab]
		});

	});

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>员工管理系统</title>

		<link href="ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />

		<script type="text/javascript" src="ext/adapter/ext/ext-base-debug.js"></script>
		<script type="text/javascript" src="ext/ext-all-debug.js"></script>

		<script type="text/javascript" src="index.js"></script>
	</head>

	<body>
		<div id='deskTree'></div>
		<div id='mainTree' ></div>
		<div id='sysTree' ></div>
	</body>
</html>

 

分享到:
评论

相关推荐

    ext表格布局小例子

    ### ExtJS 表格布局小例子详解 #### 一、简介 本文档旨在解析一个具体的 ExtJS 表格布局小例子,重点介绍其中涉及的数据存储、数据删除与添加的方法。ExtJS 是一款强大的 JavaScript 框架,用于构建交互式的前端...

    ext简单布局,直接修改即可使用

    ext做简单布局,ext简单布局,直接修改即可使用ext简单布局,直接修改即可使用ext简单布局,直接修改即可使用

    经典EXT后台简单布局

    EXT后台简单布局,很好的,好用!!!!

    ext布局和菜单设计整理

    ext布局和菜单设计整理

    Ext介绍以及_ext页面布局

    接着,`ext22/adapter/ext/ext-base.js`是基础脚本,定义了ExtJS的核心功能和基础类,而`ext22/ext-all.js`包含了完整的ExtJS库,依赖于`ext-base.js`,因此必须先导入。 在创建ExtJS应用时,一个常见的入门示例是...

    Ext table布局实例 formpanel的table布局

    在Ext JS这个强大的JavaScript框架中,布局管理是构建复杂用户界面的关键部分。本文将深入探讨“Ext table布局实例”以及“formpanel的table布局”,帮助开发者更好地理解和运用这两种布局方式。 首先,我们要理解...

    Ext常用布局

    在Ext JS这个强大的JavaScript库中,布局管理是构建复杂用户界面的关键部分。布局决定了组件如何在容器内排列和适应不同的屏幕尺寸。本篇文章将深入探讨Ext中常用的两种布局:Fit布局和Border布局,为初学者提供详细...

    EXT 布局 Layout 资料

    ### EXT 布局 Layout 资料详解 #### 6.1 布局概述 在 Ext JS 中,布局(Layout)是一个重要的概念,它指的是容器组件内子元素的排列方式。Ext JS 的所有容器组件都支持布局操作,并且每个容器都有一个对应的布局...

    Ext 简单布局 菜单树 实例

    用Ext的Panel实现了简单布局,并在左侧显示树形菜单

    ext2.0 layout布局(使用viewport)

    ext2.0 layout布局(使用viewport),将其部署到php服务器上,可以查看效果:适合一般的应该工作界面,有滑动菜单和树形菜单等,初步实现了一个不错的应用视图框架

    Ext 2.0布局实例的例程

    Ext 2.0布局实例的例程

    Ext简单布局示例代码

    这是Ext简单布局的示例代码,Ext版本:3.3

    EXT Window 通过DIV布局(源代码)

    Ext.Window 通过DIV布局,通过DIV填充window内容,带Ext所需文件。

    Ext自定义布局框架扩展

    Ext页面框架布局,只需提供菜单数据,然后配置一下周边区域对象即可。菜单数据格式如下:var tempDataArray = [ { id: 'uaMgtTree', text: 'UA模块管理', items: [ { id: 'ticketMgtRoot', text: '凭证...

    ext panel 布局

    NULL 博文链接:https://hoochiang.iteye.com/blog/1707954

    使用EXT进行网站布局的一个例子

    使用EXT进行网站布局的一个例子,供大家参考。

    Ext _Form布局通

    Ext_Form精典布局

    本科毕业论文(EXT2文件系统的磁盘布局)

    EXT2 文件系统是GNU/Linux操作系统中的标准文件系统,其磁盘布局是理解EXT2运作机制的关键。EXT2在Linux中扮演着重要角色,它负责管理和存储数据,为用户提供统一的文件操作接口。Linux支持多种文件系统,如EXT、EXT...

    Ext.Viewport布局

    ### Ext.Viewport布局详解 在前端开发领域,尤其是基于Ext JS框架进行应用设计时,`Ext.Viewport`布局是至关重要的概念。它提供了一个全面的、全屏的容器,用于组织和展示各种UI组件,如面板、表格、图表等。在给定...

Global site tag (gtag.js) - Google Analytics