www.gusucode.com > EXTJS界面的JSP人事管理系统源码程序 > EXTJS界面的JSP人事管理系统/WebRoot/WebRoot/workSystem.js
//职务体系 var PlantGlobal = Ext.data.Record.create([ {name: 'workno', type: 'string'}, {name: 'workname', type: 'string'}, {name: 'worktype',type:'string'}, {name: 'workdj', type: 'string'} ]); WorkSystem = Ext.extend(Ext.Panel,{ layout:'fit', autoScroll : false, closable:true, gridViewConfig:{}, id : "workSystem", listeners:{'beforeclose':function(){}}, 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.displaypanel] }); return panel; }, initComponent:function(){ this.tree = new Ext.tree.TreePanel({ id:'treeWorkSys', 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:'worksysmenu.xml' }), containerScroll: true, enableDD:true, dropConfig: {appendOnly:true}, listeners:{ 'click':function(e){ if(e.leaf){ var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel([sm,{ id:'workno', header : 'workno', width:75, dataIndex:'workno', editor: new Ext.form.TextField({ allowBlank: false }) }, { header:'workname', width:100, dataIndex:'workname', editor: new Ext.form.TextField({ allowBlank: false }) }, { header:'worktype', width:100, dataIndex:'worktype', editor: new Ext.form.TextField({ allowBlank: false }) }, { header:'workdj', width:145, dataIndex:'workdj', editor: new Ext.form.TextField({ allowBlank: false }) }]); // this.Plant = Ext.data.Record.create([ // {name: 'workno', type: 'string'}, // {name: 'workname', type: 'string'}, // {name: 'worktype',type:'string'}, // {name: 'workdj', type: 'string'} // ]); if(e.id=="dev"){ var storedev = new Ext.data.Store({ url: 'devwork.xml', reader: new Ext.data.XmlReader({ record: 'plant' },PlantGlobal), sortInfo:{field:'workno', direction:'ASC'} }); Ext.getCmp('pan').reconfigure(storedev,cm); Ext.getCmp('pan').getStore().load(); }else if(e.id=="cus"){ var storecus = new Ext.data.Store({ url: 'cuswork.xml', reader: new Ext.data.XmlReader({ record: 'plant' },PlantGlobal), sortInfo:{field:'workno', direction:'ASC'} }); Ext.getCmp('pan').reconfigure(storecus,cm); Ext.getCmp('pan').getStore().load(); }else if(e.id=='man'){ var storeman = new Ext.data.Store({ url: 'managerwork.xml', reader: new Ext.data.XmlReader({ record: 'plant' },PlantGlobal), sortInfo:{field:'workno', direction:'ASC'} }); Ext.getCmp('pan').reconfigure(storeman,cm); Ext.getCmp('pan').getStore().load(); }else if(e.id=='mon'){ var storemon = new Ext.data.Store({ url: 'monwork.xml', reader: new Ext.data.XmlReader({ record: 'plant' },PlantGlobal), sortInfo:{field:'workno', direction:'ASC'} }); Ext.getCmp('pan').reconfigure(storemon,cm); Ext.getCmp('pan').getStore().load(); } } } } }); this.tree.expandAll(); var tr = this.tree; var treeEditer = new Ext.tree.TreeEditor(Ext.getCmp('treeWorkSys'), { id : 'tree-Manage', allowBlank : false }); var rightClick = new Ext.menu.Menu({ id : 'rightClickCont', items : [{ id : 'addNode', text : '添加', menu : [{ id : 'insertNode', text : '添加兄弟节点', handler : function(tree) { insertNode(); } }, { id : 'appendNode', text : '添加儿子节点', handler : function(tree) { appendNodeAction(); } }] }, '-', { id : 'delNode', text : '删除', handler : function(tree) { delNodeAction(); } }, { id : 'modifNode', text : '修改', 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() { var selectedNode = tr.getSelectionModel().getSelectedNode(); if (selectedNode.isLeaf()) { selectedNode.leaf = false; } var newNode = selectedNode.appendChild(new Ext.tree.TreeNode({ text : '新建节点' })); 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-worksys', 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; insertNode(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' }] })] }); //WorkSystem.superclass.initComponent.call(this); var sm = new Ext.grid.CheckboxSelectionModel(); this.cm = new Ext.grid.ColumnModel([sm,{ id:'workno', header : 'workno', width:75, dataIndex:'workno', editor: new Ext.form.TextField({ allowBlank: false }) }, { header:'workname', width:100, dataIndex:'workname', editor: new Ext.form.TextField({ allowBlank: false }) }, { header:'worktype', width:100, dataIndex:'worktype', editor: new Ext.form.TextField({ allowBlank: false }) }, { header:'workdj', width:145, dataIndex:'workdj', editor: new Ext.form.TextField({ allowBlank: false }) }]); this.Plant = Ext.data.Record.create([ {name: 'workno', type: 'string'}, {name: 'workname', type: 'string'}, {name: 'worktype',type:'string'}, {name: 'workdj', type: 'string'} ]); this.store = new Ext.data.Store({ url: 'managerwork.xml', reader: new Ext.data.XmlReader({ record: 'plant' }, this.Plant), sortInfo:{field:'workno', direction:'ASC'} }); this.storedev = new Ext.data.Store({ url: 'devwork.xml', reader: new Ext.data.XmlReader({ record: 'plant' }, this.Plant), sortInfo:{field:'workno', direction:'ASC'} }); // this.store = new Ext.data.JsonStore({ // autoLoad : false, // root : "rows", // // totalProperty : "rows", // url : 'searchEmployeeBycondition.action', // fields : ["id","employeeNo","chineseName","englishName","position","department","employeeType","Detail"] // }); var viewConfig = Ext.apply({ forceFit : true }, this.gridViewConfig); this.pan = new Ext.grid.EditorGridPanel({ store: this.store, region:'center', id:'pan', ddGroup: 'gridDDGroup', enableDragDrop : true, stripeRows : true, sm:sm, cm: this.cm, width:420, iconCls:'icon-grid', title:'职务体系', //autoExpandColumn:'workno', frame:true, clicksToEdit:2, //viewConfig : viewConfig 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() { } },'',{ text:'删除', pressed:true, iconCls:'delete', handler:function(){ var selmode = Ext.getCmp('pan').getSelectionModel().getSelections(); if(selmode.length==0){ Ext.Msg.alert('提示','请选择你要删除的行!'); }else{ Ext.Msg.confirm('提示','您确定删除吗?',function(button){ if(button=='yes'){ for(var i=0;i<selmode.length;i++){ Ext.getCmp('pan').getStore().remove(selmode[i]); } } }); } } }] }); var fields = [ {name: 'workno', mapping : 'workno'}, {name: 'workname', mapping : 'workname'}, {name: 'worktype', mapping : 'worktype'}, {name: 'workdj', mapping : 'workdj'} ]; var formPanel = new Ext.form.FormPanel({ region : 'east', title : '详细', bodyStyle : 'padding: 10px; background-color: #DFE8F6', labelWidth :100, id:'form', iconCls:'form', frame:true, buttons:[{text:'提交',iconCls:'submit',handler:function(){ var workno = Ext.get('workno').dom.value; var workname = Ext.get('workname').dom.value; var worktype = Ext.get('worktype').dom.value; var workdj = Ext.get('workdj').dom.value; var store = Ext.getCmp('pan').getStore(); var record = Ext.data.Record.create(fields); store.add(new record({workno:workno,workname:workname,worktype:worktype,workdj:workdj})); }},{text:'重置',iconCls:'reset'}], width:420, items : [{},{}, new Ext.form.TextField({ fieldLabel : '职务编号', name: 'workno' }), new Ext.form.TextField({ fieldLabel : '职务名称', name : 'workname' }), new Ext.form.TextField({ fieldLabel : '职务类型', name : 'worktype' }), new Ext.form.TextField({ fieldLabel : '职务等级', name : 'workdj'}) ] }); this.displaypanel = new Ext.Panel({ region:'center', layout:'border', width:820, height:570, items:[this.pan,formPanel] }); var fields = [ {name: 'workno', mapping : 'workno'}, {name: 'workname', mapping : 'workname'}, {name: 'worktype', mapping : 'worktype'}, {name: 'workdj', mapping : 'workdj'} ]; //var blankRecord = Ext.data.Record.create(fields); //var formPanelDropTargetEl = formPanel.getEl(); setTimeout(function(){ var blankRecord = Ext.data.Record.create(fields); var formPanelDropTargetEl = formPanel.getEl().dom; var formPanelDropTarget = new Ext.dd.DropTarget(formPanelDropTargetEl, { ddGroup:'gridDDGroup', notifyEnter : function(ddSource, e, data) { //Add some flare to invite drop. formPanel.body.stopFx(); formPanel.body.highlight(); }, notifyDrop : function(ddSource, e, data){ // Reference the record (single selection) for readability var selectedRecord = ddSource.dragData.selections[0]; // Load the record into the form formPanel.getForm().loadRecord(selectedRecord); // Delete record from the grid. not really required. ddSource.grid.store.remove(selectedRecord); return(true); } }); },1000); Ext.getCmp('form').buttons[1].on('click',function(){ Ext.getCmp('form').getForm().reset(); }) if (!this.fp) { this.fp = this.createPanel(); } this.add(this.fp); } })