东亚环球国际业主论坛:JSP+Ext实现CURD, 更简洁明了

来源:百度文库 编辑:偶看新闻 时间:2024/05/19 13:34:27
  1. /*  
  2.  * MemberManage.js  
  3.  * @author zuoming99  
  4.  */  
  5.   
  6. Ext.onReady(function(){   
  7.     Ext.QuickTips.init();   
  8.   
  9.     var fm = Ext.form;   
  10.     var sm = new Ext.grid.CheckboxSelectionModel({handleMouseDown: Ext.emptyFn});   
  11.   
  12.     var cm = new Ext.grid.ColumnModel([   
  13.         sm,{   
  14.             header:'ID',   
  15.             dataIndex:'id',   
  16.             width:40   
  17.         },{   
  18.             header: "姓名",   
  19.             dataIndex: 'name',   
  20.             editor: new fm.TextField({   
  21.                 allowBlank: false  
  22.             })   
  23.         },{   
  24.             header:'性别',   
  25.             dataIndex:'sex',   
  26.             width:60,   
  27.             align:'center',   
  28.             renderer:function(v){   
  29.                 return '+v+'.png"/>'+(v=='m'?'男':'女');   
  30.             },   
  31.             editor:new fm.ComboBox({   
  32.                 typeAhead: true,   
  33.                 triggerAction: 'all',   
  34.                 transform:'sexSelect',   
  35.                 lazyRender:true,   
  36.                 readOnly:true,   
  37.                 listClass: 'x-combo-list-small'  
  38.             })   
  39.         },{   
  40.             header:'年龄',   
  41.             dataIndex:'age',   
  42.             width:50,   
  43.             align:'right',   
  44.             renderer:function(v){   
  45.                 var code = ';   
  46.                 if(v<=25){   
  47.                     code += '#008000';   
  48.                 }else if(v>25 && v<=30){   
  49.                     code += '#CC6600';   
  50.                 }else if(v>30){   
  51.                     code += '#804000';   
  52.                 }   
  53.                 return code+';">'+v+'';   
  54.             },   
  55.             editor: new fm.NumberField({   
  56.                 allowBlank:false,   
  57.                 allowNegative: false,   
  58.                 allowDecimals: false,   
  59.                 maxValue:60,   
  60.                 minValue:18   
  61.             })   
  62.         },{   
  63.             header: "生日",   
  64.             dataIndex: 'birth',   
  65.             renderer: function(v){   
  66.                 return v ? v.dateFormat('Y年m月d日') : '';   
  67.             },   
  68.             editor: new fm.DateField({   
  69.                 format: 'Y-m-d',   
  70.                 minValue: '1800-01-01',   
  71.                 readOnly:true,   
  72.                 disabledDays: [0, 6],   
  73.                 disabledDaysText: '请不要选择周末'  
  74.             })   
  75.         }   
  76.     ]);   
  77.   
  78.     cm.defaultSortable = true;   
  79.   
  80.     var Member = Ext.data.Record.create([   
  81.            {name: 'id', type: 'int'},   
  82.            {name: 'name', type: 'string'},   
  83.            {name: 'sex'},   
  84.            {name: 'age',type:'int'},   
  85.            {name: 'birth', type: 'date', dateFormat: 'Y-m-d'}   
  86.       ]);   
  87.   
  88.     var store = new Ext.data.JsonStore({   
  89.         url:'./member_manage.jsp',   
  90.         baseParams:{command:'query'},   
  91.         totalProperty:'count',   
  92.         root:'members',   
  93.         fields:Member,   
  94.         pruneModifiedRecords:true,   
  95.         sortInfo: {field: "id", direction: "ASC"//设置默认排序规则, EditorGridPanel在新增加一行却未保存时如果点击header排序会出现'行142字符6983,modified为空或不是对象'   
  96.     });   
  97.   
  98.     //表单窗体   
  99.     var memberAddWindow;   
  100.   
  101.     var grid = new Ext.grid.EditorGridPanel({   
  102.         store: store,   
  103.         cm: cm,   
  104.         renderTo: 'member_grid',   
  105.         resizeable:true,   
  106.         width:640,   
  107.         height:480,   
  108.         title:'员工管理',   
  109.         frame:true,   
  110.         clicksToEdit:1,   
  111.         sm:sm,   
  112.         iconCls:'icon-grid',   
  113.         loadMask: true,   
  114.         stripeRows:true,   
  115.         tbar:[   
  116.         {// 添加按钮   
  117.             text:'添加',   
  118.             iconCls:'user_add',   
  119.             handler:function(){   
  120.                 var m = new Member({   
  121.                     name:'新员工',   
  122.                     sex:'m',   
  123.                     age:'20',   
  124.                     birth:new Date().clearTime()   
  125.                 });   
  126.                 grid.stopEditing();   
  127.                 store.insert(0, m);   
  128.                 grid.startEditing(0, 2);   
  129.                 store.getAt(0).dirty=true// 设置该行记录为脏数据(默认为非脏数据),否则在保存时将无法判断该行是否已修改   
  130.             }   
  131.         },'-',{   
  132.             id:'newWindowButton',   
  133.             text:'新面板中添加',   
  134.             iconCls:'user_add',   
  135.             handler:function(){   
  136.                 showMemerAddWindow(); //显示表单所在窗体   
  137.             }   
  138.         },'-',{//删除按钮   
  139.             id:'btnDelete',   
  140.             text:'删除',   
  141.             iconCls:'user_delete',   
  142.             handler:function(){   
  143.                 var sm = grid.getSelectionModel();   
  144.                 var selected = sm.getSelections();   
  145.                 var ids = [];   
  146.                 for(var i=0;i
  147.                     var member = selected[i].data;   
  148.                     if(member.id) {   
  149.                         ids.push(member.id); //如果有ID属性,则表示该行数据是被修改过的,所以需要访问数据库进行删除   
  150.                     }else{   
  151.                         //如果没有ID属性,则表示该行数据是新添加的未保存的数据,所以不需要访问数据库进行删除该行   
  152.                         store.remove(store.getAt(i));   
  153.                     }   
  154.                 }   
  155.                 if(ids.join('')==''return;   
  156.                    
  157.                 Ext.Msg.confirm('信息','确定要删除所选项吗?',function(btn){   
  158.                     if(btn=='yes'){   
  159.                         //发送删除请求   
  160.                         Ext.lib.Ajax.request(   
  161.                             'POST',   
  162.                             './member_manage.jsp',{   
  163.                                 success:function(request){   
  164.                                     var message = request.responseText;   
  165.                                     Ext.Msg.alert('信息',message);   
  166.                                     store.reload();   
  167.                                 },failure:function(){   
  168.                                     Ext.Msg.alert('错误','删除时出现未知错误.');   
  169.                                 }   
  170.                             },   
  171.                             'command=delete&ids='+ids   
  172.                         );   
  173.                     }   
  174.                 });   
  175.             }   
  176.         },'-',{//保存按钮   
  177.             text:'保存',   
  178.             iconCls:'save',   
  179.             handler:function(){   
  180.                 var json = [];   
  181.                 for(i=0,cnt=store.getCount();i
  182.                     var record = store.getAt(i);   
  183.                     if(record.dirty) // 得到所有修改过的数据   
  184.                         json.push(record.data);   
  185.                 }   
  186.                 if(json.length==0){   
  187.                     Ext.Msg.alert('信息','没有对数据进行任何更改');   
  188.                     return;   
  189.                 }   
  190.                    
  191.                 //发送保存请求   
  192.                 Ext.lib.Ajax.request(   
  193.                     'POST',   
  194.                     './member_manage.jsp',{   
  195.                         success:function(request){   
  196.                             var message = request.responseText;   
  197.                             Ext.Msg.alert('信息',message);   
  198.                             store.reload();   
  199.                             //grid.getView().refresh();   
  200.                         },   
  201.                         failure:function(){   
  202.                             Ext.Msg.alert("错误""与后台联系的时候出现了问题");   
  203.                         }   
  204.                     },   
  205.                     'command=save&members='+encodeURIComponent(Ext.encode(json))   
  206.                 );   
  207.             }   
  208.         },'-'],   
  209.         bbar: new Ext.PagingToolbar({   
  210.             pageSize: 10,   
  211.             store: store,   
  212.             displayInfo: true,   
  213.             displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',   
  214.             emptyMsg: "没有记录"  
  215.         })   
  216.   
  217.     });   
  218.     store.load({params:{start:0,limit:10}});   
  219.        
  220.        
  221.        
  222.     /**  
  223.      * 以下是表单 __________________________________________________  
  224.      * */  
  225.   
  226.     //姓名字段   
  227.     var nameField = new Ext.form.TextField({   
  228.         fieldLabel:'姓名',   
  229.         name:'memberName',   
  230.         allowBlank:false,   
  231.         anchor:'90%'  
  232.     });   
  233.     //性别字段   
  234.     var sexField = new Ext.form.ComboBox({   
  235.         fieldLabel:'性别',   
  236.         name:'sex',   
  237.         allowBlank:false,   
  238.         mode: 'local',   
  239.         readOnly:true,   
  240.         triggerAction:'all',   
  241.         anchor:'90%',   
  242.         store:new Ext.data.SimpleStore({   
  243.             fields:['value','text'],   
  244.             data:[   
  245.                 ['m','男'],   
  246.                 ['f','女']   
  247.             ]   
  248.         }),   
  249.         valueField: 'value',   
  250.         displayField: 'text'  
  251.     });   
  252.     //年龄字段   
  253.     var ageField = new Ext.form.NumberField({   
  254.         fieldLabel:'年龄',   
  255.         name:'age',   
  256.         allowBlank:false,   
  257.         allowNegative:false,   
  258.         allowDesimals:false,   
  259.         maxValue:80,   
  260.         minValue:18,   
  261.         anchor:'90%'  
  262.     });   
  263.     //生日字段   
  264.     var birthField = new Ext.form.DateField({   
  265.         fieldLabel:'出生日期',   
  266.         name:'birth',   
  267.         format:'Y-m-d',   
  268.         readOnly:true,   
  269.         anchor:'90%'  
  270.     });   
  271.     //表单对象   
  272.     var memberForm = new Ext.FormPanel({   
  273.         labelAlign: 'top',   
  274.         frame:true,   
  275.         title: '添加新员工信息',   
  276.         width: 300,   
  277.         url:'./member_manage.jsp?command=insert',   
  278.            
  279.         items: [{   
  280.             layout:'column',// 该FormPanel的layout布局模式为列模式(column),包含2列   
  281.             items:[   
  282.             {//第一列   
  283.                 columnWidth:0.5,   
  284.                 layout: 'form',   
  285.                 items: [nameField,sexField]   
  286.             },{//第二列   
  287.                 columnWidth:0.5,   
  288.                 layout: 'form',   
  289.                 items: [ageField,birthField]   
  290.             }]   
  291.         }],   
  292.         buttons:[{   
  293.             text:'提交',   
  294.             handler:function(){   
  295.                 if(memberForm.getForm().isValid())   
  296.                     memberForm.getForm().submit({   
  297.                         waitMsg:'保存中,请稍后...',   
  298.                         success:function(){   
  299.                             memberForm.getForm().reset();   
  300.                             memberAddWindow.hide();   
  301.                             store.reload();   
  302.                         }   
  303.                     });   
  304.             }   
  305.         },{   
  306.             text:'取消',   
  307.             handler:function(){   
  308.                 memberForm.getForm().reset();   
  309.                 memberAddWindow.hide();   
  310.             }   
  311.         }]   
  312.     });   
  313.        
  314.     //窗体对象   
  315.     function showMemerAddWindow(){   
  316.         if(!memberAddWindow){   
  317.             memberAddWindow = new Ext.Window({   
  318.                 el:'window_win',   
  319.                 layout:'fit',   
  320.                 width:300,   
  321.                 height:200,   
  322.                 closable:true,   
  323.                 closeAction:'hide',   
  324.                 plain:true,   
  325.                 items: [memberForm]   
  326.             });   
  327.         }   
  328.         memberAddWindow.show(Ext.get('newWindowButton'));   
  329.     }   
  330. });  
/** MemberManage.js * @author zuoming99*/Ext.onReady(function(){Ext.QuickTips.init();var fm = Ext.form;var sm = new Ext.grid.CheckboxSelectionModel({handleMouseDown: Ext.emptyFn});var cm = new Ext.grid.ColumnModel([sm,{header:'ID',dataIndex:'id',width:40},{header: "姓名",dataIndex: 'name',editor: new fm.TextField({allowBlank: false})},{header:'性别',dataIndex:'sex',width:60,align:'center',renderer:function(v){return ''+(v=='m'?'男':'女');},editor:new fm.ComboBox({typeAhead: true,triggerAction: 'all',transform:'sexSelect',lazyRender:true,readOnly:true,listClass: 'x-combo-list-small'})},{header:'年龄',dataIndex:'age',width:50,align:'right',renderer:function(v){var code = ''+v+'';},editor: new fm.NumberField({allowBlank:false,allowNegative: false,allowDecimals: false,maxValue:60,minValue:18})},{header: "生日",dataIndex: 'birth',renderer: function(v){return v ? v.dateFormat('Y年m月d日') : '';},editor: new fm.DateField({format: 'Y-m-d',minValue: '1800-01-01',readOnly:true,disabledDays: [0, 6],disabledDaysText: '请不要选择周末'})}]);cm.defaultSortable = true;var Member = Ext.data.Record.create([{name: 'id', type: 'int'},{name: 'name', type: 'string'},{name: 'sex'},{name: 'age',type:'int'},{name: 'birth', type: 'date', dateFormat: 'Y-m-d'}]);var store = new Ext.data.JsonStore({url:'./member_manage.jsp',baseParams:{command:'query'},totalProperty:'count',root:'members',fields:Member,pruneModifiedRecords:true,sortInfo: {field: "id", direction: "ASC"} //设置默认排序规则, EditorGridPanel在新增加一行却未保存时如果点击header排序会出现'行142字符6983,modified为空或不是对象'});//表单窗体var memberAddWindow;var grid = new Ext.grid.EditorGridPanel({store: store,cm: cm,renderTo: 'member_grid',resizeable:true,width:640,height:480,title:'员工管理',frame:true,clicksToEdit:1,sm:sm,iconCls:'icon-grid',loadMask: true,stripeRows:true,tbar:[{// 添加按钮text:'添加',iconCls:'user_add',handler:function(){var m = new Member({name:'新员工',sex:'m',age:'20',birth:new Date().clearTime()});grid.stopEditing();store.insert(0, m);grid.startEditing(0, 2);store.getAt(0).dirty=true; // 设置该行记录为脏数据(默认为非脏数据),否则在保存时将无法判断该行是否已修改}},'-',{id:'newWindowButton',text:'新面板中添加',iconCls:'user_add',handler:function(){showMemerAddWindow(); //显示表单所在窗体}},'-',{//删除按钮id:'btnDelete',text:'删除',iconCls:'user_delete',handler:function(){var sm = grid.getSelectionModel();var selected = sm.getSelections();var ids = [];for(var i=0;i

 

 

 

Js代码  
  1. /**  
  2.  *   
  3.  * SignManage.js  
  4.  * @author zuoming99  
  5.  *   
  6.  * */  
  7.      
  8. Ext.onReady(function(){   
  9.     //初始化鼠标提示   
  10.     Ext.QuickTips.init();   
  11.        
  12.     //Record   
  13.     var Sign = Ext.data.Record.create([   
  14.         //{name:'id',type:'int'},   
  15.         {name:'signDate',type:'date',dateFormat:'Y-m-d'}, //数据读取模式为 2008-1-1   
  16.         {name:'signTime',type:'string'},   
  17.         {name:'cname',type:'string'}   
  18.     ]);   
  19.        
  20.     var today = new Date().dateFormat('Y-m-d');   
  21.     var week = ['天','一','二','三','四','五','六'];   
  22.     function getWeek(ymd){ //得到星期几,参数格式2008-01-01   
  23.         ymd = ymd.split('-');   
  24.         var date = new Date();   
  25.         date.setFullYear(eval(ymd[0]));   
  26.         date.setMonth(eval(ymd[1])-1);   
  27.         date.setDate(eval(ymd[2]));   
  28.         return '星期'+week[date.getDay()];   
  29.     }   
  30.   
  31.     //数据储备器   
  32.     var signStore = new Ext.data.JsonStore({   
  33.         url:'./sign_control.jsp',   
  34.         baseParams:{startDate:today,endDate:today,command:'query'},   
  35.         //totalProperty:'count',   
  36.         root:'records',   
  37.         fields:Sign,   
  38.         sortInfo:{field:'signTime',direction:'ASC'}   
  39.     });   
  40.     //全选Checkbox   
  41.     var sm = new Ext.grid.CheckboxSelectionModel({singleSelect:false});   
  42.        
  43.     //列模型   
  44.     var columnModel = new Ext.grid.ColumnModel([   
  45.         sm,   
  46.         new Ext.grid.RowNumberer(),{   
  47.             header:'姓名',   
  48.             dataIndex:'cname',   
  49.             width:100   
  50.         },{   
  51.             header:'签到时间',   
  52.             dataIndex:'signTime',   
  53.             width:80,   
  54.             renderer:function(v){   
  55.                 if(v<='09:00')    
  56.                     return ''+v+'';   
  57.                 else  
  58.                     return ''+v+'';   
  59.             }   
  60.         },{   
  61.             header:'工作日',   
  62.             dataIndex:'signDate',   
  63.             width:80,   
  64.             renderer:function(v){   
  65.                 //显示模式为2008-01-01   
  66.                 return v ? v.dateFormat('Y-m-d') : '';   
  67.             }   
  68.         },{   
  69.             header:'星期',   
  70.             dataIndex:'signDate',   
  71.             width:80,   
  72.             renderer:function(v){   
  73.                 v = v.dateFormat('Y-m-d')   
  74.                 return getWeek(v);   
  75.             }   
  76.         }   
  77.     ]);   
  78.     columnModel.defaultSortable=true;   
  79.        
  80.     //进行签到   
  81.     function doSign(){   
  82.         var signTime = new Date().toString().substr(10,5);   
  83.         Ext.Ajax.request({   
  84.             url:'./sign_control.jsp?command=sign&signTime='+signTime,   
  85.             success:function(request){   
  86.                 var userInfo = eval('('+request.responseText.trim()+')');   
  87.                 if(userInfo.success===true){   
  88.                     signStore.reload();   
  89.                     btnSign.disable();   
  90.                 }   
  91.             },   
  92.             failure:function(){   
  93.                 Ext.Msg.alert('错误','无法链接服务器.');   
  94.             }   
  95.         });   
  96.     }   
  97.        
  98.     //查询-开始日期   
  99.     var sdField = new Ext.form.DateField({   
  100.         id:'startDate',   
  101.         name:'startDate',   
  102.         format:'Y-m-d',   
  103.         minValue:'2008-02-01',   
  104.         maxValue:'2009-12-31',   
  105.         allowBlank:false,   
  106.         value:today   
  107.     });   
  108.     //查询-结束日期   
  109.     var edField = new Ext.form.DateField({   
  110.         id:'endDate',   
  111.         name:'endDate',   
  112.         format:'Y-m-d',   
  113.         minValue:'2008-02-01',   
  114.         maxValue:'2009-12-31',   
  115.         allowBlank:false,   
  116.         value:today   
  117.     });   
  118.        
  119.     //查询按钮   
  120.     var btnSearch = new Ext.Button({   
  121.         text:'查询',   
  122.         iconCls:'icon-search',   
  123.         handler:function(){   
  124.             if(sdField.isValid() && edField.isValid()){   
  125.                 signStore.baseParams.startDate=sdField.getValue().dateFormat('Y-m-d');   
  126.                 signStore.baseParams.endDate=edField.getValue().dateFormat('Y-m-d');   
  127.             }   
  128.             signStore.load();   
  129.         }   
  130.     });   
  131.        
  132.     //登录按钮   
  133.     var btnLogon = new Ext.Button({   
  134.         id:'btnLogon',   
  135.         text:'登录',   
  136.         iconCls:'icon-logon',   
  137.         handler:function(){   
  138.             logonWin.show('btnLogon');   
  139.         }   
  140.     });   
  141.        
  142.     //签到按钮   
  143.     var btnSign = new Ext.Button({   
  144.         id:'btnSign',   
  145.         text:'签到',   
  146.         iconCls:'icon-sign',   
  147.         handler:doSign   
  148.     });   
  149.        
  150.     //修改密码按钮   
  151.     var btnChangePwd = new Ext.Button({   
  152.         id:'btnChangePwd',   
  153.         text:'修改密码',   
  154.         iconCls:'icon-logon',   
  155.         handler:function(){   
  156.             changePwdWin.show('btnChangePwd');   
  157.         }   
  158.     });   
  159.        
  160.     //退出按钮   
  161.     var btnLogout = new Ext.Button({   
  162.         id:'btnLogout',   
  163.         text:'退出',   
  164.         iconCls:'icon-logout',   
  165.         handler:function(){   
  166.             Ext.Ajax.request({   
  167.                 url:'./sign_control.jsp?command=logout',   
  168.                 success:function(){   
  169.                     btnLogon.enable();   
  170.                     btnLogout.disable();   
  171.                     btnSign.disable();   
  172.                     btnChangePwd.disable();   
  173.                 },   
  174.                 failure:function(){   
  175.                     Ext.Msg.alert('错误','无法链接服务器.');   
  176.                 }   
  177.             });   
  178.         }   
  179.     });   
  180.        
  181.     //导出按钮   
  182.     var btnExport = new Ext.Button({   
  183.         id:'btnExport',   
  184.         text:'导出',   
  185.         iconCls:'icon-export',   
  186.         handler:function(){   
  187.             if(sdField.isValid() && edField.isValid()){   
  188.                 var startDate=sdField.getValue().dateFormat('Y-m-d');   
  189.                 var endDate = edField.getValue().dateFormat('Y-m-d');   
  190.                 Ext.Ajax.request({   
  191.                     url:'./sign_control.jsp?command=query',   
  192.                     params:{ startDate:startDate, endDate:endDate },   
  193.                     success:function(response){   
  194.                         var json = eval('('+response.responseText.trim()+')');   
  195.                         var records = json.records;   
  196.                         var html = [   
  197.                             '姓名日期时间星期'  
  198.                         ];   
  199.                         for(var i=0;i
  200.                             var rc = records[i];   
  201.                             html.push(''+rc.cname+''+rc.signDate+''+rc.signTime+''+getWeek(rc.signDate)+'');   
  202.                         }   
  203.                         html.push('');   
  204.                         html = html.join(''); //最后生成的HTML表格   
  205.                         tableToExcel(html);   
  206.                         //document.getElementById('debuger').innerHTML=html;   
  207.                     },   
  208.                     failure:function(response){   
  209.                         Ext.Msg.alert('信息',response.responseText.trim());   
  210.                     }   
  211.                 });   
  212.             }   
  213.         }   
  214.     });   
  215.        
  216.     //创建Grid   
  217.     var signGrid = new Ext.grid.GridPanel({   
  218.         store:signStore,   
  219.         cm:columnModel,   
  220.         sm:sm,   
  221.         renderTo:'sign_grid',   
  222.         width:600,   
  223.         height:440,   
  224.         title:'员工签到信息管理系统',   
  225.         frame:true,   
  226.         iconCls:'icon-grid',   
  227.         loadMask:true,   
  228.         stripeRows:true,   
  229.         tbar:[   
  230.             '日期从',sdField,' 到 ',edField,'  ',btnSearch,'-',   
  231.             btnLogon,btnSign,btnChangePwd,btnLogout,btnExport   
  232.         ]   
  233.     });   
  234.        
  235.     btnLogout.disable(); //退出按钮   
  236.     btnSign.disable(); //签到按钮   
  237.     btnChangePwd.disable(); //修改密码按钮   
  238.        
  239.     signStore.load();   
  240.        
  241.     //登录-用户名字段   
  242.     var enameField = new Ext.form.TextField({   
  243.         fieldLabel:'用户名',   
  244.         id:'ename',   
  245.         name:'ename',   
  246.         allowBlank:false,   
  247.         anchor:'100%'  
  248.     });   
  249.        
  250.     //登录-密码字段   
  251.     var pwdField = new Ext.form.TextField({   
  252.         fieldLabel:'密码',   
  253.         id:'pwd',   
  254.         name:'pwd',   
  255.         allowBlank:false,   
  256.         inputType:'password',   
  257.         anchor:'100%'  
  258.     });   
  259.        
  260.     //登录表单   
  261.     var logonForm = new Ext.form.FormPanel({   
  262.         labelAlign:'right',   
  263.         labelWidth:50,   
  264.         frame:true,   
  265.         //title:'用户登录',   
  266.         url:'./sign_control.jsp?command=logon',   
  267.         items:[ enameField ,pwdField ],   
  268.         buttons:[{   
  269.             text:'登录',   
  270.             handler:function(){   
  271.                 var f = logonForm.getForm();   
  272.                 if(f.isValid()){   
  273.                     f.submit({   
  274.                         waitMsg:'登录中,请稍候...',   
  275.                         success:function(form, action){   
  276.                             if(action.result.logonOK===false){   
  277.                                 Ext.Msg.alert('信息',action.result.msg);   
  278.                                 return;   
  279.                             }   
  280.                             f.reset();   
  281.                             logonWin.hide();   
  282.                             btnLogon.disable();   
  283.                             btnLogout.enable();   
  284.                             btnChangePwd.enable();   
  285.                             if(action.result.signed===false){//如果已签到,则禁用签到按钮   
  286.                                 btnSign.enable();   
  287.                             }   
  288.                         },   
  289.                         failure:function(){   
  290.                             Ext.Msg.alert('错误','无法链接服务器.');   
  291.                         }   
  292.                     });   
  293.                 }   
  294.             }   
  295.         },{   
  296.             text:'取消',   
  297.             handler:function(){   
  298.                 logonForm.getForm().reset();   
  299.                 logonWin.hide();   
  300.             }   
  301.         }]   
  302.     });   
  303.        
  304.     //登录窗口   
  305.     var logonWin = new Ext.Window({   
  306.         title:'用户登录',   
  307.         autoHeight:true,   
  308.         width:300,   
  309.         closeAction:'hide',   
  310.         items:[logonForm]   
  311.     });   
  312.        
  313.     //修改密码表单   
  314.     var changePwdForm = new Ext.FormPanel({   
  315.         labelAlign:'right',   
  316.         labelWidth:70,   
  317.         frame:true,   
  318.         url:'./sign_control.jsp?command=changePwd',   
  319.         items:[   
  320.             new Ext.form.TextField({   
  321.                 id:'oldPassword',   
  322.                 name:'oldPassword',   
  323.                 fieldLabel:'原密码',   
  324.                 inputType:'password',   
  325.                 allowBlank:false,   
  326.                 anchor:'100%'  
  327.             }),   
  328.             new Ext.form.TextField({   
  329.                 id:'newPassword',   
  330.                 name:'newPassword',   
  331.                 fieldLabel:'新密码',   
  332.                 inputType:'password',   
  333.                 allowBlank:false,   
  334.                 anchor:'100%'  
  335.             }),   
  336.             new Ext.form.TextField({   
  337.                 id:'newPassword2',   
  338.                 name:'newPassword2',   
  339.                 fieldLabel:'重复密码',   
  340.                 inputType:'password',   
  341.                 allowBlank:false,   
  342.                 anchor:'100%'  
  343.             })   
  344.         ],   
  345.         buttons:[{   
  346.             text:'提交',   
  347.             handler:function(){   
  348.                 var f = changePwdForm.getForm();   
  349.                 if(!f.isValid()) return;   
  350.                 if(Ext.get('newPassword').getValue() != Ext.get('newPassword2').getValue()){   
  351.                     Ext.Msg.alert('信息','两次输入的密码不一致');   
  352.                     return;   
  353.                 }   
  354.                 f.submit({   
  355.                     waitMsg:'执行中,请稍候...',   
  356.                     success:function(form, action){   
  357.                         Ext.Msg.alert('信息',action.result.msg);   
  358.                         if(action.result.changeOK===false){ //如果失败的话   
  359.                             return;   
  360.                         }   
  361.                         f.reset();   
  362.                         changePwdWin.hide();   
  363.                     },   
  364.                     failure:function(){   
  365.                         Ext.Msg.alert('错误','无法链接服务器.');   
  366.                     }   
  367.                 });   
  368.             }   
  369.         },{   
  370.             text:'取消',   
  371.             handler:function(){   
  372.                 changePwdForm.getForm().reset();   
  373.                 changePwdWin.hide();   
  374.             }   
  375.         }]   
  376.     });   
  377.        
  378.     //修改密码窗口   
  379.     var changePwdWin = new Ext.Window({   
  380.         title:'修改密码',   
  381.         autoHeight:true,   
  382.         width:300,   
  383.         closeAction:'hide',   
  384.         items:[changePwdForm]   
  385.     });   
  386. });  
/** * * SignManage.js * @author zuoming99 * * */ Ext.onReady(function(){//初始化鼠标提示Ext.QuickTips.init();//Recordvar Sign = Ext.data.Record.create([//{name:'id',type:'int'},{name:'signDate',type:'date',dateFormat:'Y-m-d'}, //数据读取模式为 2008-1-1{name:'signTime',type:'string'},{name:'cname',type:'string'}]);var today = new Date().dateFormat('Y-m-d');var week = ['天','一','二','三','四','五','六'];function getWeek(ymd){ //得到星期几,参数格式2008-01-01ymd = ymd.split('-');var date = new Date();date.setFullYear(eval(ymd[0]));date.setMonth(eval(ymd[1])-1);date.setDate(eval(ymd[2]));return '星期'+week[date.getDay()];}//数据储备器var signStore = new Ext.data.JsonStore({url:'./sign_control.jsp',baseParams:{startDate:today,endDate:today,command:'query'},//totalProperty:'count',root:'records',fields:Sign,sortInfo:{field:'signTime',direction:'ASC'}});//全选Checkboxvar sm = new Ext.grid.CheckboxSelectionModel({singleSelect:false});//列模型var columnModel = new Ext.grid.ColumnModel([sm,new Ext.grid.RowNumberer(),{header:'姓名',dataIndex:'cname',width:100},{header:'签到时间',dataIndex:'signTime',width:80,renderer:function(v){if(v<='09:00')return ''+v+'';elsereturn ''+v+'';}},{header:'工作日',dataIndex:'signDate',width:80,renderer:function(v){//显示模式为2008-01-01return v ? v.dateFormat('Y-m-d') : '';}},{header:'星期',dataIndex:'signDate',width:80,renderer:function(v){v = v.dateFormat('Y-m-d')return getWeek(v);}}]);columnModel.defaultSortable=true;//进行签到function doSign(){var signTime = new Date().toString().substr(10,5);Ext.Ajax.request({url:'./sign_control.jsp?command=sign&signTime='+signTime,success:function(request){var userInfo = eval('('+request.responseText.trim()+')');if(userInfo.success===true){signStore.reload();btnSign.disable();}},failure:function(){Ext.Msg.alert('错误','无法链接服务器.');}});}//查询-开始日期var sdField = new Ext.form.DateField({id:'startDate',name:'startDate',format:'Y-m-d',minValue:'2008-02-01',maxValue:'2009-12-31',allowBlank:false,value:today});//查询-结束日期var edField = new Ext.form.DateField({id:'endDate',name:'endDate',format:'Y-m-d',minValue:'2008-02-01',maxValue:'2009-12-31',allowBlank:false,value:today});//查询按钮var btnSearch = new Ext.Button({text:'查询',iconCls:'icon-search',handler:function(){if(sdField.isValid() && edField.isValid()){signStore.baseParams.startDate=sdField.getValue().dateFormat('Y-m-d');signStore.baseParams.endDate=edField.getValue().dateFormat('Y-m-d');}signStore.load();}});//登录按钮var btnLogon = new Ext.Button({id:'btnLogon',text:'登录',iconCls:'icon-logon',handler:function(){logonWin.show('btnLogon');}});//签到按钮var btnSign = new Ext.Button({id:'btnSign',text:'签到',iconCls:'icon-sign',handler:doSign});//修改密码按钮var btnChangePwd = new Ext.Button({id:'btnChangePwd',text:'修改密码',iconCls:'icon-logon',handler:function(){changePwdWin.show('btnChangePwd');}});//退出按钮var btnLogout = new Ext.Button({id:'btnLogout',text:'退出',iconCls:'icon-logout',handler:function(){Ext.Ajax.request({url:'./sign_control.jsp?command=logout',success:function(){btnLogon.enable();btnLogout.disable();btnSign.disable();btnChangePwd.disable();},failure:function(){Ext.Msg.alert('错误','无法链接服务器.');}});}});//导出按钮var btnExport = new Ext.Button({id:'btnExport',text:'导出',iconCls:'icon-export',handler:function(){if(sdField.isValid() && edField.isValid()){var startDate=sdField.getValue().dateFormat('Y-m-d');var endDate = edField.getValue().dateFormat('Y-m-d');Ext.Ajax.request({url:'./sign_control.jsp?command=query',params:{ startDate:startDate, endDate:endDate },success:function(response){var json = eval('('+response.responseText.trim()+')');var records = json.records;var html = [''];for(var i=0;i');}html.push('
姓名日期时间星期
'+rc.cname+''+rc.signDate+''+rc.signTime+''+getWeek(rc.signDate)+'
');html = html.join(''); //最后生成的HTML表格tableToExcel(html);//document.getElementById('debuger').innerHTML=html;},failure:function(response){Ext.Msg.alert('信息',response.responseText.trim());}});}}});//创建Gridvar signGrid = new Ext.grid.GridPanel({store:signStore,cm:columnModel,sm:sm,renderTo:'sign_grid',width:600,height:440,title:'员工签到信息管理系统',frame:true,iconCls:'icon-grid',loadMask:true,stripeRows:true,tbar:['日期从',sdField,' 到 ',edField,'  ',btnSearch,'-',btnLogon,btnSign,btnChangePwd,btnLogout,btnExport]});btnLogout.disable(); //退出按钮btnSign.disable(); //签到按钮btnChangePwd.disable(); //修改密码按钮signStore.load();//登录-用户名字段var enameField = new Ext.form.TextField({fieldLabel:'用户名',id:'ename',name:'ename',allowBlank:false,anchor:'100%'});//登录-密码字段var pwdField = new Ext.form.TextField({fieldLabel:'密码',id:'pwd',name:'pwd',allowBlank:false,inputType:'password',anchor:'100%'});//登录表单var logonForm = new Ext.form.FormPanel({labelAlign:'right',labelWidth:50,frame:true,//title:'用户登录',url:'./sign_control.jsp?command=logon',items:[ enameField ,pwdField ],buttons:[{text:'登录',handler:function(){var f = logonForm.getForm();if(f.isValid()){f.submit({waitMsg:'登录中,请稍候...',success:function(form, action){if(action.result.logonOK===false){Ext.Msg.alert('信息',action.result.msg);return;}f.reset();logonWin.hide();btnLogon.disable();btnLogout.enable();btnChangePwd.enable();if(action.result.signed===false){//如果已签到,则禁用签到按钮btnSign.enable();}},failure:function(){Ext.Msg.alert('错误','无法链接服务器.');}});}}},{text:'取消',handler:function(){logonForm.getForm().reset();logonWin.hide();}}]});//登录窗口var logonWin = new Ext.Window({title:'用户登录',autoHeight:true,width:300,closeAction:'hide',items:[logonForm]});//修改密码表单var changePwdForm = new Ext.FormPanel({labelAlign:'right',labelWidth:70,frame:true,url:'./sign_control.jsp?command=changePwd',items:[new Ext.form.TextField({id:'oldPassword',name:'oldPassword',fieldLabel:'原密码',inputType:'password',allowBlank:false,anchor:'100%'}),new Ext.form.TextField({id:'newPassword',name:'newPassword',fieldLabel:'新密码',inputType:'password',allowBlank:false,anchor:'100%'}),new Ext.form.TextField({id:'newPassword2',name:'newPassword2',fieldLabel:'重复密码',inputType:'password',allowBlank:false,anchor:'100%'})],buttons:[{text:'提交',handler:function(){var f = changePwdForm.getForm();if(!f.isValid()) return;if(Ext.get('newPassword').getValue() != Ext.get('newPassword2').getValue()){Ext.Msg.alert('信息','两次输入的密码不一致');return;}f.submit({waitMsg:'执行中,请稍候...',success:function(form, action){Ext.Msg.alert('信息',action.result.msg);if(action.result.changeOK===false){ //如果失败的话return;}f.reset();changePwdWin.hide();},failure:function(){Ext.Msg.alert('错误','无法链接服务器.');}});}},{text:'取消',handler:function(){changePwdForm.getForm().reset();changePwdWin.hide();}}]});//修改密码窗口var changePwdWin = new Ext.Window({title:'修改密码',autoHeight:true,width:300,closeAction:'hide',items:[changePwdForm]});});

 

  • MichealWazowski.rar (1.9 MB)
  • 下载次数: 6247
2006德国世界杯资料(简洁明了) 有谁知道关于古代丝绸之路的简洁明了的知识 杜绝复杂回答问题!简洁明了易懂才是关键! 请用简洁明了的语言回答下列问题! 求有关菩提树的资料(要求简洁明了) 用JSP实现 Helloworld 怎样用jsp实现trackback Jsp分页实现 玉是怎么鉴赏?(简洁明了的讲一下,普通人就可看明白的) 解释 什么叫成功?看似简单 要求简洁明了哦 谁会? 进来看看吧!10分啊!不少的啦!如果全部答对且简洁明了,再加! 谁能用一句简单的话来概括这个社会!简洁!明了! 欧洲的茜茜公主生平简介?要简洁明了的 简洁明了地,藏传佛教和汉传有啥区别呀,谢了 征集好的校训(有深度,有内涵,并且说明寓意,字数不要太多,简洁明了) 征集好的校训(有深度,有内涵,并且说明寓意,字数不要太多,简洁明了) 区分索爱W550行水,翻新.简洁明了准确的办法? 请用简洁明了、重点突出的语言解释IP网、ISDN网、E1网、卫星网络 哪位英语高手帮我简洁明了的讲一下过去将来的用法 哪位英语高手帮我简洁明了的讲一下过去进行时的用法 帮忙想一句工业用负离子加湿器的宣传语或者广告语,简洁明了有创意 请问高手什么是火马年?下一个火马年是什么时候?怎么推算的(欢迎简洁明了) 入何提高下载速度 长篇大论不要来 要简洁明了的 怎么先进入DOS系统~然后做gohst备份呢~简洁明了点