www.gusucode.com > EXTJS界面的JSP人事管理系统源码程序 > EXTJS界面的JSP人事管理系统/WebRoot/WebRoot/deptManager.js

    //机构管理
/*
		var treeMenu = new Ext.tree.TreePanel({
				title:'系统菜单',
                animate:true,
                region:'west',  
                autoScroll:true,
                margins : '1 5 5 0',
                animCollapse:true,
                collapsible:true,
                width:200,
                height:570,
                rootVisible: false,
                root: new Ext.tree.AsyncTreeNode(),
                loader: new Ext.app.BookLoader({
	            	dataUrl:'childTree.xml'
	        	}),
                containerScroll: true,
                enableDD:true,
                dropConfig: {appendOnly:true},
                listeners:{
                	'click':function(e){
                				if(e.leaf){
                					
                				}
                			}
                }

		});
		*/
DeptManager = Ext.extend(Ext.Panel,{
	closable:true,
	layout:'fit',
	autoScroll : false,
	id : "deptManager",
	title : "部门管理",
	margins : '1 2 2 0',
	renderTo : Ext.getBody(),
	createPanel:function(){
		var panel = new Ext.Panel({
			layout:"border",
			width:1035,
			height:570,
			items:[this.tree,this.formp]
		});
		return panel;
	},
	initComponent:function(){
		
		this.tree = new Ext.tree.TreePanel({
				id:'tree',
				title:'组织机构',
                animate:true,
                region:'west',
                autoScroll:true,
                collapsible:true,
                margins : '1 2 2 0',
                animCollapse:true,
                collapsible:true,
                width:200,
                height:570,
                rootVisible: false,
                root: new Ext.tree.AsyncTreeNode(),
                loader: new Ext.app.BookLoader({
	            	dataUrl:'childTree.xml'
	        	}),
                containerScroll: true,
                enableDD:true,
                dropConfig: {appendOnly:true},
                listeners:{
                	'click':function(e){
                				if(e.leaf){
                					if(e.id=='mon'){
                						document.getElementById('deptno').value = 'dept-01';
                						document.getElementById('deptname').value = '账务审计部';
                						document.getElementById('detail').value = '主要负责财务方面的审计。';
                					}else if(e.id == 'dev'){
                						document.getElementById('deptno').value = 'dept-02';
                						document.getElementById('deptname').value = '系统开发部';
                						document.getElementById('detail').value = '主要负责公司软件的开发管理。';
                					}else if(e.id == 'cus'){
                						document.getElementById('deptno').value = 'dept-03';
                						document.getElementById('deptname').value = '市场营销部';
                						document.getElementById('detail').value = '主要负责公司软件的销售。';
                					}else{
                						document.getElementById('deptno').value = 'dept-04';
                						document.getElementById('deptname').value = '战略规划部';
                						document.getElementById('detail').value = '主要负责公司前景业务的规划。';
                					}
                				}
                			}
                }

		});
		this.tree.expandAll();
		
		//双击树节点添加子节点
	/*	this.tree.on('dblclick',
       				 function(node){
									if(node.leaf){
										node.leaf = false;
									}
					   				node.appendChild(new Ext.tree.TreeNode({
					                                  text:'test',
					                                  draggable:false
					                }));
            		}); */
		var tr = this.tree;
		var treeEditer = new Ext.tree.TreeEditor(Ext.getCmp('tree'), {
								  id : 'tree-Manage',
								  allowBlank : false
  						});
  		var rightClick = new Ext.menu.Menu({
					    id : 'rightClickCont',
					    items : [{
							       id : 'addNode',
							       text : '添加',
							       iconCls:'add',
								   menu : [{
									          id : 'insertNode',
									          text : '添加兄弟节点',
									          iconCls:'add',
									          handler : function(tree) {
									           insertNode();
									          }
									         }, {
									          id : 'appendNode',
									          text : '添加儿子节点',
									          iconCls:'add',
									          handler : function(tree) {
									           
									           appendNodeAction();
									          }
									         }]
									      }, '-', {
									       id : 'delNode',
									       text : '删除',
									       iconCls:'delete',
									       handler : function(tree) {
									
									        delNodeAction();
									       }
									      }, {
									       id : 'modifNode',
									       text : '修改',
									       iconCls:'add',
									       handler : function() {
										
									        modifNodeAction()
									       }
									      }]
   										});
   					this.tree.on('contextmenu', function(node, event) {// 声明菜单类型
    																	event.preventDefault();// 这行是必须的,使用preventDefault方法可防止浏览器的默认事件操作发生。
   																		node.select();
   					 													rightClick.showAt(event.getXY());// 取得鼠标点击坐标,展示菜单
   								});
   					function insertNode(str) {
							  var selectedNode = tr.getSelectionModel().getSelectedNode();
							
							  var selectedParentNode = selectedNode.parentNode;
							 
							  var newNode = new Ext.tree.TreeNode({
							     text : str!=null?str:'新建节点'
							    });
							  if (selectedParentNode == null) {
							   selectedNode.appendChild(newNode);
							  } else {
							   selectedParentNode.insertBefore(newNode, selectedNode);
							  }
							
							  setTimeout(function() {
							     treeEditer.editNode = newNode;
							     treeEditer.startEdit(newNode.ui.textNode);
							    }, 10);
 					}
 				
 				 // 添加子节点事件实现
				 function appendNodeAction(str) {
				  
						  var selectedNode = tr.getSelectionModel().getSelectedNode();
						  if (selectedNode.isLeaf()) {
						   selectedNode.leaf = false;
						  }
						  var newNode = selectedNode.appendChild(new Ext.tree.TreeNode({
						     text : str!=null?str:'新建节点'
						    }));
						  newNode.parentNode.expand(true, true, function() {
						     tr.getSelectionModel().select(newNode);
						     setTimeout(function() {
						        treeEditer.editNode = newNode;
						        treeEditer.startEdit(newNode.ui.textNode);
						       }, 10);
						    });// 将上级树形展开
				 }
				 
				 // 删除节点事件实现
				 function delNodeAction() {
				  
					  var selectedNode = tr.getSelectionModel().getSelectedNode();
					  // 得到选中的节点
					  selectedNode.remove();
				 };
				 
				  // 修改节点事件实现
				 function modifNodeAction() {
							
							  var selectedNode = tr.getSelectionModel().getSelectedNode();// 得到选中的节点
							  treeEditer.editNode = selectedNode;
							  treeEditer.startEdit(selectedNode.ui.textNode);
				 };
				 
				 //弹出窗口
				 var win = new Ext.Window({
						    maskDisabled : false,
						    id : 'tree-window',
						    title:'添加部门',
						    modal : true,// 是否为模式窗口
						    constrain : true,// 窗口只能在viewport指定的范围
						    closable : true,// 窗口是否可以关闭
						    closeAction : 'hide',
						    buttonAlign:'center',
						    layout : 'fit',
						    width : 300,
						    height : 200,
						    plain : true,
						    buttons:[new Ext.Button({text:'提交',
						    						iconCls:'submit',
						    						handler:function(){
						    								var str = document.getElementById('newdeptname').value;
						    								appendNodeAction(str);
						    								win.close();
						    								win.destroy();
						    						}})],
						    items : [new Ext.FormPanel({
						    				layout:'form',
						    				width:100,
						    				labelAlign:'right',
						    				height:100,
						    				
						    				frame: true,
						    				items:[{
						    						xtype:'textfield',
						    						fieldLabel:'部门编号',
						    						id:'newdeptno'
						    				},{
						    						xtype:'textfield',
						    						fieldLabel:'部门名称',
						    						id:'newdeptname'
						    				}]
						    	})]
  				 });
		this.formp = new Ext.FormPanel({
						region:'center',
						height:570,
						//bodyStyle : 'text-align:center',
						width:820,
						frame: true,
						tbar : ['', {
								text : '新增',
								pressed : true,
								iconCls:'add',
								handler : function() {
													var selectedNode = tr.getSelectionModel().getSelectedNode();
													if(selectedNode==null){
															Ext.Msg.alert('提示','请选择一个父节点!');
													}else{
            											win.show();
													}
								}
						},'','',{
								text : '修改',
								pressed : true,
								iconCls:'edit',
								handler : function() {
								}
								
						}],
						//layout:'form',
						items:[{},{},{},{
							xtype : 'fieldset',
							title : '部门信息',
							//bodyStyle : 'text-align:left',
							autoHeight : true,
							baseCls:'x-fieldset',
							maskDisabled:true,
							items:[
								new Ext.form.TextField({
								                fieldLabel:'        部门编号',  
								                name:'deptno',   
								                id:'deptno',
								                //grow:true,
								                value:'dept-01',
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextField({
								                fieldLabel:'        部门名称',  
								                name:'deptname',   
								                id:'deptname',
								                //grow:true,  
								                value:'财务审计部',
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextField({
								                fieldLabel:'        上级部门',  
								                name:'predept',               
								                id:'predept',
								                value:'总公司',
								                //grow:true,  
								                allowBlank:false,  
								                blankText : "        这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextField({
								                fieldLabel:'        部门负责人',  
								                name:'deptleader',  
								                id:'deptleader',
								                //grow:true,  
								                value:'阿杜',
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextField({
								                fieldLabel:'        部门电话',  
								                name:'depttel', 
								                value:'010-12345678',
								                id:'depttel',
								                //grow:true,  
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextField({
								                fieldLabel:'        传真',  
								                name:'fax',   
								                id:'fax',
								                //grow:true,
								                value:'010-12345678',
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextField({
								                fieldLabel:'        Email',  
								                name:'eamil', 
								                id:'email',
								                value:'308734761@qq.com',
								                //grow:true,  
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				}),new Ext.form.TextArea({
								                fieldLabel:'        部门职责',  
								                name:'detail',  
								                id:'detail',
								                value:'主要负责财务方面的审计。',
								                //grow:true,  
								                width:500,
								                allowBlank:false,  
								                blankText : "这个字段最好不要为空",    
								                maskRe:/[a-zA-z]/gi  
            				})]
						}]
					});
		this.setVisible(true);
		if (!this.fp) {
			this.fp = this.createPanel();
		}
		this.add(this.fp);
	}
})