1
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>角色</title> 13 <script type="text/javascript"> 14 var userInfoPanel = new UserInfoPanel(); 15 var tabId = Ext.getCmp('mainTab').getActiveTab().id.split('_')[1]; 16 juage(tabId,"user",userInfoPanel,"userDiv"); 17 </script> 18 19 </head> 20 <body> 21 <div id="userDiv" ></div> 22 </body> 23 </html>
2.
1 /** 2 * @author sux 3 * @desc 用户信息 4 */ 5 UserInfoPanel = Ext.extend(Ext.grid.EditorGridPanel,{ 6 id: 'userInfoPanelId', 7 constructor: function(){ 8 Ext.QuickTips.init(); 9 userStore = new Ext.data.JsonStore({ 10 url: 'user_list.action', 11 root: 'root', 12 totalProperty: 'totalProperty', 13 fields: ['userId','role', 14 'employee','userName','userRemark',{name: 'userDate', mapping: 'userDate.time', dateFormat : 'time', type: 'date' }] 15 }); 16 var rowNumber = new Ext.grid.RowNumberer(); //序列号 17 var checkbox = new Ext.grid.CheckboxSelectionModel(); //{默认是多选singleSelect: false} 18 deptInfoGridPanel.superclass.constructor.call(this,{ 19 Ext.getCmp('mainTab').getActiveTab().getInnerWidth(), 20 height: Ext.getCmp('mainTab').getActiveTab().getInnerHeight(), 21 /**表格高度自适应 document.body.clientHeight浏览器页面高度 start**/ 22 monitorResize: true, 23 doLayout: function() { 24 this.setWidth(document.body.clientWidth-205); 25 this.setHeight(document.body.clientHeight-140); 26 Ext.grid.GridPanel.prototype.doLayout.call(this); 27 } , 28 viewConfig: { 29 forceFit: true, 30 columnsText : "显示/隐藏列", 31 sortAscText : "正序排列", 32 sortDescText : "倒序排列" 33 }, 34 sm: checkbox, 35 store: userStore, 36 columns: [ 37 rowNumber, checkbox, 38 { 39 header: '用户编号', 40 dataIndex: 'userId', 41 align: 'center' 42 },{ 43 header: '用户名', 44 dataIndex: 'userName', 45 align: 'center' 46 },{ 47 header: '员工名', 48 dataIndex: 'employee', 49 align: 'center', 50 renderer: function(v){ 51 return v.empName; 52 } 53 },{ 54 header: '角色', 55 dataIndex: 'role', 56 align: 'center', 57 renderer: function(v){ 58 return v.roleName; 59 } 60 },{ 61 header: '创建日期', 62 dataIndex: 'userDate', 63 renderer: Ext.util.Format.dateRenderer('Y-m-d'), 64 align: 'center' 65 },{ 66 header: '备注', 67 dataIndex: 'userRemark', 68 align: 'center' 69 }], 70 tbar: new Ext.Toolbar({ 71 style: 'padding: 5px;', 72 id: 'userToolbar', 73 items: ['条目:',{ 74 xtype: 'combo', 75 80, 76 triggerAction: 'all', 77 editable: false, 78 mode: 'local', 79 store: new Ext.data.SimpleStore({ 80 fields: ['name','value'], 81 data: [[" "," "],["userName","用户名"],["empName","员工名"]] 82 }), 83 id: 'user_condition', 84 displayField: 'value', 85 valueField: 'name' 86 },'内容:',{ 87 id: 'user_conditionValue', 88 xtype: 'textfield', 89 100 90 },{ 91 text: '查询', 92 tooltip: '查询用户', 93 iconCls: 'search', 94 id: 'user_query', 95 handler: queryUserFn 96 },{ 97 text: '删除', 98 tooltip: '删除用户', 99 id: 'user_delete', 100 iconCls: 'delete', 101 handler: delUserFn 102 },{ 103 text: '添加', 104 tooltip: '添加用户', 105 id: 'user_add', 106 iconCls: 'add', 107 handler: userAddFn 108 },{ 109 text: '修改', 110 id: 'user_update', 111 iconCls: 'update', 112 tooltip: '修改用户', 113 handler: userUpdateFn 114 }] 115 }), 116 bbar: new PagingToolbar(userStore, 20) 117 }); 118 this.getStore().load({ 119 params: { 120 start: 0, 121 limit: 20 122 } 123 }); 124 } 125 }); 126 127 delUserFn = function(){ 128 gridDel('userInfoPanelId','userId', 'user_delete.action'); 129 }; 130 131 queryUserFn = function(){ 132 var condition = Ext.getCmp('user_condition').getValue(); 133 var conditionValue = Ext.getCmp("user_conditionValue").getValue(); 134 Ext.getCmp("userInfoPanelId").getStore().reload({ 135 params: { 136 condition: condition, 137 conditionValue : conditionValue, 138 start: 0, 139 limit: 20 140 } 141 }) 142 }; 143 userAddFn = function(){ 144 var userAddWin = new UserAddWin("用户添加"); 145 userAddWin.show(); 146 }; 147 userUpdateFn = function(){ 148 var userUpdateWin = new UserUpdateWin("用户修改"); 149 var selectionModel = Ext.getCmp('userInfoPanelId').getSelectionModel(); 150 var record = selectionModel.getSelections(); 151 if(record.length != 1){ 152 Ext.Msg.alert('提示','请选择一个'); 153 return; 154 } 155 var userId = record[0].get('userId'); 156 Ext.getCmp('userUpdateFormId').getForm().load({ 157 url: 'user_intoUpdate.action', 158 params: { 159 userId: userId 160 } 161 }); 162 userUpdateWin.show(); 163 };
3.
1 Ext.namespace("hrmsys.user.add"); 2 3 UserAddWin = Ext.extend(Ext.Window,{ 4 id: 'userAddWinId', 5 addForm: null, 6 constructor: function(title){ 7 var addForm = new UserAddForm(); 8 UserAddWin.superclass.constructor.call(this,{ 9 title: title, 10 400, 11 modal: true, 12 height: 370, 13 resizable: false, 14 collapsible: true, 15 colsable: true, 16 layout: 'form', 17 items: [addForm] 18 }) 19 } 20 }) 21 UserAddForm = Ext.extend(Ext.form.FormPanel,{ 22 id: 'userAddFormId', 23 constructor: function(){ 24 Ext.form.Field.prototype.msgTarget = 'side'; 25 Ext.QuickTips.init(); 26 UserAddWin.superclass.constructor.call(this, { 27 labelWidth: 80, 28 padding: '20 0 0 50', 29 labelAlign: 'right', 30 border: false, 31 frame: true, 32 items: [{ 33 xtype: 'textfield', 34 150, 35 fieldLabel: '员工工号', 36 id: 'userEmpId', 37 name: 'user.employee.empId', 38 allowBlank: false, 39 msgTarget: 'side', 40 blankText: '不能为空', 41 emptyText: '不能为空', 42 listeners: {'blur': user_blurFn} 43 },{ 44 xtype: 'textfield', 45 fieldLabel: '员工名', 46 150, 47 id: 'userEmpName', 48 readOnly: true 49 },{ 50 xtype: 'textfield', 51 fieldLabel: '用户名', 52 allowBlank: false, 53 msgTarget: 'side', 54 blankText: '不能为空', 55 150, 56 id: 'userUserName', 57 name: 'user.userName' 58 },{ 59 xtype: 'combo', 60 allowBlank: false, 61 msgTarget: 'side', 62 blankText: '不能为空', 63 fieldLabel: '角色', 64 store: new Ext.data.JsonStore({ 65 url: 'role_listAll.action', 66 fields: ['roleId','roleName'] 67 }), 68 triggerAction:"all", 69 editable: false, 70 150, 71 displayField: 'roleName', 72 valueField: 'roleId', 73 hiddenName: 'user.role.roleId' 74 },{ 75 xtype: 'textarea', 76 fieldLabel: '备注', 77 150, 78 height: 150, 79 name: 'user.userRemark' 80 }], 81 buttonAlign: 'center', 82 buttons: [{ 83 text: '保存', 84 handler: function(){ 85 if(!Ext.getCmp('userAddFormId').getForm().isValid()){ 86 return; 87 } 88 Ext.getCmp('userAddFormId').getForm().submit({ 89 url: 'user_save.action', 90 method: 'post', 91 waitMsg: '正在保存数据...', 92 waitTitle: '提示', 93 scope: this, 94 success: saveUserSuccess, 95 failure: save_failure 96 }) 97 } 98 },{ 99 text: '取消', 100 handler: function(){ 101 Ext.getCmp('userAddFormId').getForm().reset(); 102 } 103 }] 104 }) 105 } 106 }); 107 saveUserSuccess = function(form, action){ 108 Ext.Msg.confirm('提示', action.result.msg, function(button, text){ 109 if(button == "yes"){ 110 form.reset(); 111 Ext.getCmp('userAddWinId').destroy(); 112 Ext.getCmp('userInfoPanelId').getStore().reload();//刷新部门显示列表 113 } 114 }); 115 }; 116 117 user_blurFn = function(value){ 118 var empId = value.getRawValue(); 119 Ext.Ajax.request({ 120 url: 'emp_isExist.action', 121 method: 'post', 122 params: { 123 empId: empId 124 }, 125 success: user_isExistSuccessFn, 126 failure: save_failure 127 }) 128 }; 129 user_isExistSuccessFn = function(response, options){ 130 if(response.responseText != ""){ 131 Ext.get('userEmpName').dom.value = response.responseText; 132 Ext.get('userUserName').dom.value = response.responseText; 133 }else{ 134 Ext.getCmp('userEmpId').markInvalid('此工号不存在'); 135 } 136 };
4.
1 Ext.namespace("hrmsys.user.update"); 2 3 UserUpdateWin = Ext.extend(Ext.Window,{ 4 id: 'userUpdateWinId', 5 addForm: null, 6 constructor: function(title){ 7 var updateForm = new UserUpdateForm(); 8 UserUpdateWin.superclass.constructor.call(this,{ 9 title: title, 10 400, 11 modal: true, 12 height: 350, 13 collapsible: true, 14 colsable: true, 15 layout: 'form', 16 items: [updateForm] 17 }) 18 } 19 }) 20 UserUpdateForm = Ext.extend(Ext.form.FormPanel,{ 21 id: 'userUpdateFormId', 22 constructor: function(){ 23 Ext.form.Field.prototype.msgTarget = 'side'; 24 Ext.QuickTips.init(); 25 //加载后台数据,进行转换 26 var reader = new Ext.data.JsonReader({},[{ 27 name: 'user.userId' , mapping: 'userId' 28 },{ 29 name: 'user.employee.empId', mapping: 'employee', convert: function(v){return v.empId;} 30 },{ 31 name: 'user.employee.empName', mapping: 'employee', convert: function(v){return v.empName;} 32 },{ 33 name: 'user.role.roleId', mapping: 'role', convert: function(v){ return v.roleId;} 34 },{ 35 name: 'user.userName', mapping: 'userName' 36 },{ 37 name: 'user.userRemark', mapping: 'userRemark' 38 }]); 39 UserUpdateForm.superclass.constructor.call(this, { 40 labelWidth: 80, 41 padding: '20 0 0 50', 42 labelAlign: 'right', 43 border: false, 44 frame: true, 45 reader: reader, 46 items: [{ 47 xtype: 'textfield', 48 150, 49 fieldLabel: '员工工号', 50 id: 'empId', 51 readOnly: true, 52 name: 'user.employee.empId' 53 },{ 54 xtype: 'textfield', 55 fieldLabel: '员工名', 56 150, 57 id: 'empName', 58 name: 'user.employee.empName', 59 readOnly: true 60 },{ 61 xtype: 'textfield', 62 fieldLabel: '用户名', 63 150, 64 readOnly: true, 65 id: 'updateUserName', 66 name: 'user.userName' 67 },{ 68 xtype: 'combo', 69 fieldLabel: '角色', 70 store: new Ext.data.JsonStore({ 71 url: 'role_listAll.action', 72 autoLoad: true, 73 fields: ['roleId','roleName'] 74 }), 75 triggerAction:"all", 76 editable: false, 77 150, 78 displayField: 'roleName', 79 valueField: 'roleId', 80 hiddenName: 'user.role.roleId' 81 },{ 82 xtype: 'textarea', 83 fieldLabel: '备注', 84 150, 85 height: 150, 86 name: 'user.userRemark' 87 },{ 88 xtype: 'hidden', 89 name: 'user.userId' 90 }], 91 buttonAlign: 'center', 92 buttons: [{ 93 text: '保存', 94 handler: function(){ 95 if(!Ext.getCmp('userUpdateFormId').getForm().isValid()){ 96 return; 97 } 98 Ext.getCmp('userUpdateFormId').getForm().submit({ 99 url: 'user_updateRole.action', 100 method: 'post', 101 waitMsg: '正在保存数据...', 102 waitTitle: '提示', 103 scope: this, 104 success: updateUserSuccess, 105 failure: save_failure 106 }) 107 } 108 },{ 109 text: '关闭', 110 handler: function(){ 111 Ext.getCmp('userUpdateWinId').destroy(); 112 } 113 }] 114 }) 115 } 116 }); 117 updateUserSuccess = function(form, action){ 118 Ext.Msg.confirm('提示', action.result.msg, function(button, text){ 119 if(button == "yes"){ 120 form.reset(); 121 Ext.getCmp('userUpdateWinId').destroy(); 122 Ext.getCmp('userInfoPanelId').getStore().reload();//刷新部门显示列表 123 } 124 }); 125 };