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); } })