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     
14     <script type="text/javascript">
15         var salaryBasic = new SalaryBasic();
16         var tabId = Ext.getCmp('mainTab').getActiveTab().id.split('_')[1];
17         juage(tabId,"salb",salaryBasic,"salaryBasic");
18     </script>
19     
20   </head>
21   <body>
22       <div id="salaryBasic" ></div>
23   </body>
24 </html>

 

 

2、

  1 /**
  2  * 员工工资基本信息管理
  3  * @author sux 2011-02-23
  4  * @memberOf {TypeName} 
  5  * @return {TypeName} 
  6  */
  7 var SalaryBasic = Ext.extend(Ext.grid.EditorGridPanel,{
  8     id: 'salaryBasicId',
  9     constructor: function(){
 10         Ext.form.Field.prototype.msgTarget = 'title';
 11         var number = new Ext.grid.RowNumberer();
 12         var sm = new Ext.grid.CheckboxSelectionModel();
 13         var salBasicStore = new Ext.data.JsonStore({
 14             url: 'salBasic_list.action',
 15             root: 'root',
 16              totalProperty: 'totalProperty',
 17             fields: ['sbId','employee','sbBasic','sbEndowment','sbHospitalization','sbUnemployment','sbInjury',
 18                 'sbMaternity','sbHousing','sbTraffic','sbEatery','sbTelephone']
 19         })
 20         var cm = new Ext.grid.ColumnModel([
 21             number, sm,
 22         {
 23             header: '编号',
 24             dataIndex: 'sbId',
 25             align: 'center'
 26         },{
 27             header: '员工工号',
 28             dataIndex: 'employee',
 29             align: 'center',
 30             renderer: function(value){
 31                 //判断其类型是否为object类型
 32                 if(typeof(value) == "object"){
 33                     return value.empId;
 34                 }else{
 35                     return value;
 36                 }
 37             },
 38             editor: new Ext.form.TextField({
 39                 allowBlank: false,
 40                 blankText: '不能为空',     
 41                 id: 'salaryBasicEmp',
 42                 listeners: {'blur':this.uniqueEmp}
 43             })
 44         },{
 45             header: '员工姓名',
 46             dataIndex: 'employee',
 47             align: 'center',
 48             renderer: function(value){
 49                 if(value)
 50                 return value.empName;
 51             }
 52         },{
 53             header: '基本工资',
 54             dataIndex: 'sbBasic',
 55             align: 'center',
 56             editor: new Ext.form.TextField()
 57         },{
 58             header: '养老保险',
 59             dataIndex: 'sbEndowment',
 60             align: 'center',
 61             editor: new Ext.form.ComboBox({
 62                 mode: 'local',
 63                 triggerAction: 'all',
 64                 editable: false,
 65                 store: new Ext.data.SimpleStore({
 66                     fields: ['name','value'],
 67                     data: [['是','1'],['否','0']]
 68                 }),
 69                 displayField: 'name',
 70                 valueField: 'value'
 71             }),
 72             renderer: function(value){
 73                 if(value == '1') return '是';
 74                 return '否';
 75             }
 76         },{
 77             header: '医疗保险',
 78             dataIndex: 'sbHospitalization',
 79             align: 'center',
 80             editor: new Ext.form.ComboBox({
 81                 mode: 'local',
 82                 triggerAction: 'all',
 83                 editable: false,
 84                 store: new Ext.data.SimpleStore({
 85                     fields: ['name','value'],
 86                     data: [['是','1'],['否','0']]
 87                 }),
 88                 displayField: 'name',
 89                 valueField: 'value'
 90             }),
 91             renderer: function(value){
 92                 if(value == '1') return '是';
 93                 return '否';
 94             }
 95         },{
 96             header: '失业保险',
 97             dataIndex: 'sbUnemployment',
 98             align: 'center',
 99             editor: new Ext.form.ComboBox({
100                 mode: 'local',
101                 editable: false,
102                 triggerAction: 'all',
103                 store: new Ext.data.SimpleStore({
104                     fields: ['name','value'],
105                     data: [['是','1'],['否','0']]
106                 }),
107                 displayField: 'name',
108                 valueField: 'value'
109             }),
110             renderer: function(value){
111                 if(value == '1') return '是';
112                 return '否';
113             }
114         },{
115             header: '工伤保险',
116             dataIndex: 'sbInjury',
117             align: 'center',
118             editor: new Ext.form.ComboBox({
119                 mode: 'local',
120                 triggerAction: 'all',
121                 editable: false,
122                 store: new Ext.data.SimpleStore({
123                     fields: ['name','value'],
124                     data: [['是','1'],['否','0']]
125                 }),
126                 displayField: 'name',
127                 valueField: 'value'
128             }),
129             renderer: function(value){
130                 if(value == '1') return '是';
131                 return '否';
132             }
133         },{
134             header: '生育保险',
135             dataIndex: 'sbMaternity',
136             align: 'center',
137             editor: new Ext.form.ComboBox({
138                 mode: 'local',
139                 triggerAction: 'all',
140                 editable: false,
141                 store: new Ext.data.SimpleStore({
142                     fields: ['name','value'],
143                     data: [['是','1'],['否','0']]
144                 }),
145                 displayField: 'name',
146                 valueField: 'value'
147             }),
148             renderer: function(value){
149                 if(value == '1') return '是';
150                 return '否';
151             }
152         },{
153             header: '住房公积金',
154             dataIndex: 'sbHousing',
155             align: 'center',
156             editor: new Ext.form.ComboBox({
157                 mode: 'local',
158                 editable: false,
159                 triggerAction: 'all',
160                 store: new Ext.data.SimpleStore({
161                     fields: ['name','value'],
162                     data: [['是','1'],['否','0']]
163                 }),
164                 displayField: 'name',
165                 valueField: 'value'
166             }),
167             renderer: function(value){
168                 if(value) return '是';
169                 return '否';
170             }
171         },{
172             header: '交通补贴',
173             dataIndex: 'sbTraffic',
174             align: 'center',
175             editor: new Ext.form.NumberField()
176         },{
177             header: '餐费补贴',
178             dataIndex: 'sbEatery',
179             align: 'center',
180             editor: new Ext.form.NumberField()
181         },{
182             header: '通迅补贴',
183             dataIndex: 'sbTelephone',
184             align: 'center',
185             editor: new Ext.form.NumberField()
186         }])
187         SalaryBasic.superclass.constructor.call(this, {
188             width: Ext.getCmp('mainTab').getActiveTab().getInnerWidth(),
189             height: Ext.getCmp('mainTab').getActiveTab().getInnerHeight(),
190             /**表格高度自适应 document.body.clientHeight浏览器页面高度 start**/
191             monitorResize: true, 
192             doLayout: function() { 
193                 this.setWidth(document.body.clientWidth-205);
194                 this.setHeight(document.body.clientHeight-140);
195                 Ext.grid.GridPanel.prototype.doLayout.call(this); 
196             } ,
197             viewConfig: {
198                 forceFit: true
199             },
200             sm: sm, 
201             cm: cm,
202             store: salBasicStore,
203             tbar: new Ext.Toolbar({
204                 items: ['条目:',{
205                     xtype: 'combo',
206                     width: 80,
207                     triggerAction: 'all',
208                     editable: false,
209                     mode: 'local',
210                     store: new Ext.data.SimpleStore({
211                         fields: ['name','value'],
212                         data: [[" "," "],["empId","员工工号"],["empName","员工姓名"]]
213                     }),
214                     id: 'sb_condition',
215                     displayField: 'value',
216                     valueField: 'name'
217                 },'内容',{
218                     xtype: 'textfield',
219                     id: 'sb_conditionValue',
220                     width: 80
221                 },{
222                     text: '查看',
223                     handler: salViewFn,
224                     iconCls: 'search'
225                 },{
226                     text: '删除',
227                     handler: salDelFn,
228                     id: 'salb_delete',
229                     iconCls: 'delete'
230                 },{
231                     text: '新增',
232                     id: 'salb_add',
233                     handler: salNewFn,
234                     iconCls: 'add'
235                 },{
236                     text: '修改或保存',
237                     iconCls: 'save',
238                     id: 'salb_saveorupdate',
239                     handler: salUpdateOrSaveFn
240                 }]                
241             }),
242             bbar: new PagingToolbar(salBasicStore, 20)
243         })
244         salBasicStore.load({
245             params: {
246                 start: 0,
247                 limit: 20
248             }
249         });
250     },
251 //员工工号
252     uniqueEmp: function(obj){
253         var empId = obj.getValue();
254         Ext.Ajax.request({
255             url: 'salBasic_uniqueEmp.action',
256             success: function(response, options){
257                 var obj = Ext.util.JSON.decode(response.responseText);
258                 if(obj.msg == false){
259                     Ext.Msg.alert("提示","此员工的工资已配置");
260                 }
261             },
262             failure: hrmsys.util.common.failure,
263             params: {
264                 empId: empId
265             }
266         })
267     }
268 });
269 //查看
270 salViewFn = function(){
271     var condition = Ext.getCmp("sb_condition").getValue();
272     var conditionValue = Ext.getCmp("sb_conditionValue").getValue();
273     Ext.getCmp('salaryBasicId').getStore().load({
274         params: {
275             type: 'query',
276             condition: condition,
277             conditionValue: conditionValue,
278             start: 0,
279             limit: 20
280         }
281     });
282 };
283 //删除
284 salDelFn = function(){
285     gridDel('salaryBasicId','sbId', 'salBasic_delete.action');
286 };
287 //新增
288 salNewFn = function(){
289     var DefaultRecord = new Ext.data.Record.create([{name: 'sbId', mapping: 0},{name: 'employee', mapping: 1},
290         {name: 'empName', mapping:2},{name: 'sbBasic', mapping: 3},{name: 'sbEndowment', mapping: 4},
291         {name: 'sbHospitalization', mapping: 5},{name: 'sbUnemployment', mapping: 6},{name: 'sbInjury', mapping: 7},
292         {name: 'sbMaternity', mapping: 8},{name: 'sbHousing', mapping:9},{name: 'sbTraffic', mapping: 10},
293         {name: 'sbEatery', mapping: 11},{name: 'sbTelephone', mapping: 12}]);
294     var num = Ext.getCmp('salaryBasicId').getStore().getCount();
295     var newRecord = new DefaultRecord({
296         sbId: num+1
297     });
298     Ext.getCmp('salaryBasicId').getStore().insert(0,newRecord);    
299 };
300 
301 //保存或者修改
302 salUpdateOrSaveFn = function(){
303     var modifiedRecords = Ext.getCmp('salaryBasicId').getStore().getModifiedRecords();
304     var salBasics = reSalBasicJson(modifiedRecords);
305     //alert(salBasics);
306     Ext.Ajax.request({
307         url: 'salBasic_save.action',
308         method: 'post',
309         waitTitle: '提示',
310         waitMsg: '正在保存数据...',
311         params: {
312             json: salBasics
313         },
314         success: salBasicSuccessFn,
315         failure: boonModifyfailureFn
316     })
317 };
318 //保存成功保存
319 salBasicSuccessFn = function(response, options){
320     var datas = Ext.util.JSON.decode(response.responseText);
321     Ext.Msg.alert('提示',datas.msg,function(){
322         Ext.getCmp('salaryBasicId').getStore().load({
323             params: {
324                 start: 0,
325                 limit: 20
326             }
327         });
328     });
329 };
330 //json
331 reSalBasicJson = function(modifiedRecords){
332     var count = modifiedRecords.length;
333     var salBasics='';
334     //有修改或保存
335     if(count > 0){
336         salBasics = "[";
337         for(i=0; i<count; i++){
338             salBasics += "{";
339             var sbId = modifiedRecords[i].get('sbId');
340             var employee = modifiedRecords[i].get('employee');
341             if(typeof(employee) == "object"){
342                 var empId = employee.empId;
343             }else{
344                 var empId = employee;
345             }
346             //var empName = modifiedRecords[i].get('empName');
347             var sbBasic = modifiedRecords[i].get('sbBasic');
348             var sbEndowment = modifiedRecords[i].get('sbEndowment');
349             var sbHospitalization = modifiedRecords[i].get('sbHospitalization');
350             var sbUnemployment = modifiedRecords[i].get('sbUnemployment');
351             var sbInjury = modifiedRecords[i].get('sbInjury');
352             var sbEatery = modifiedRecords[i].get('sbEatery');
353             var sbMaternity = modifiedRecords[i].get('sbMaternity');
354             var sbHousing = modifiedRecords[i].get('sbHousing');
355             var sbTraffic = modifiedRecords[i].get('sbTraffic');
356             var sbTelephone = modifiedRecords[i].get('sbTelephone');
357             salBasics += '"sbId":'+sbId+', "empId":"'+empId+'","sbBasic":'+sbBasic+
358             ',"sbEndowment":'+sbEndowment+', "sbHospitalization":'+sbHospitalization+', "sbUnemployment":'+sbUnemployment+
359             ', "sbInjury":'+sbInjury+', "sbEatery":'+sbEatery+', "sbMaternity":'+sbMaternity+', "sbHousing":'+sbHousing+
360             ', "sbTraffic":'+sbTraffic+', "sbTelephone":'+sbTelephone+'}';
361             if( i != count-1)
362                 salBasics += ","
363         }
364         salBasics += "]"
365     }
366     return salBasics;
367 }