zoukankan      html  css  js  c++  java
  • 75.培训管理-培训信息发布 Extjs 页面

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

    2.train.js 页面布局面板

     1 TrainPanel = Ext.extend(Ext.Panel,{
     2     id: 'trainPanelId',
     3     constructor: function(){
     4         trainQueryPanel = new TrainQueryPanel();
     5         trainInfoGridPanel = new TrainInfoGridPanel();
     6         TrainPanel.superclass.constructor.call(this,{
     7             style: 'margin:0 auto',
     8             border: false,
     9             //layout: 'fit',
    10             //autoWidth: true,
    11             //autorHeight: true,
    12             //定义两个面板
    13             items: [trainQueryPanel, trainInfoGridPanel]
    14         })
    15     }
    16 })

    3.trainInfo.js 编辑表格面板和查询面板

      1 /**
      2  * 培训信息表格
      3  * @author sux 2011-02-20
      4  * @memberOf {TypeName} 
      5  */
      6 TrainInfoGridPanel = Ext.extend(Ext.grid.GridPanel,{
      7     id: 'trainInfoGridId',
      8     constructor: function(){
      9         Ext.QuickTips.init();
     10         var sm = new Ext.grid.CheckboxSelectionModel();
     11         var number = new Ext.grid.RowNumberer();
     12         
     13         var cm = new Ext.grid.ColumnModel([
     14                                            number, sm,
     15                                        {
     16                                            header: '编号',
     17                                            dataIndex: 'trainId',
     18                                            align: 'center'
     19                                        },{
     20                                            header: '培训人',
     21                                            dataIndex: 'trainPerson',
     22                                            align: 'center'
     23                                        },{
     24                                            header: '培训时间',
     25                                            dataIndex: 'trainDate',
     26                                            align: 'center'
     27                                        },{
     28                                            header: '培训主题',
     29                                            dataIndex: 'trainTitle',
     30                                            align: 'center'
     31                                        },{
     32                                            header: '培训地点',
     33                                            dataIndex: 'trainPlace',
     34                                            align: 'center'
     35                                        }]);
     36         
     37         var trainStore = new Ext.data.JsonStore({
     38             url: 'train_list.action',
     39             root: 'root',
     40              totalProperty: 'totalProperty',
     41             fields: ['trainId','trainPerson','trainDate','trainTitle','trainPlace']
     42         });
     43         
     44         TrainInfoGridPanel.superclass.constructor.call(this, {
     45              Ext.getCmp('mainTab').getActiveTab().getInnerWidth(),
     46             height: Ext.getCmp('mainTab').getActiveTab().getInnerHeight(),
     47             /**表格高度自适应 document.body.clientHeight浏览器页面高度 start**/
     48             monitorResize: true, 
     49             doLayout: function() { 
     50                 this.setWidth(document.body.clientWidth-205);
     51                 this.setHeight(document.body.clientHeight-250);
     52                 Ext.grid.GridPanel.prototype.doLayout.call(this); 
     53             } ,
     54             viewConfig: {
     55                 forceFit: true,
     56                 autoFill: true,
     57                 columnsText : "显示/隐藏列",
     58                 sortAscText : "正序排列",
     59                 sortDescText : "倒序排列"
     60             },
     61             border: false,
     62             height: 500,
     63             frame: true,
     64             cm: cm,
     65             sm: sm,
     66             store: trainStore,
     67             tbar: new Ext.Toolbar({
     68                 items: [{
     69                     text: '显示全部',
     70                     iconCls: 'all',
     71                     handler: function(){
     72                         trainStore.load();
     73                     }
     74                 },{
     75                     text: '删除',
     76                     iconCls: 'delete',
     77                     id: 'train_delete',
     78                     handler: delTrainFn
     79                 },{
     80                     text: '添加',
     81                     iconCls: 'add',
     82                     id: 'train_add',
     83                     handler: addTrainFn
     84                 },{
     85                     text: '修改',
     86                     iconCls: 'update',
     87                     id: 'train_update',
     88                     handler: editTrainFn
     89                 },{
     90                     text: '详情',
     91                     iconCls: 'detail',
     92                     id: 'train_detail',
     93                     handler: detailTrainFn
     94                 }]
     95             }),
     96             bbar: new PagingToolbar(trainStore,20)
     97         });
     98         trainStore.load({
     99             params: {
    100                 start: 0,
    101                 limit: 20
    102             }
    103         });
    104     }
    105 });
    106 //删除
    107 delTrainFn = function(){
    108     gridDel('trainInfoGridId','trainId','train_delete.action');
    109 };
    110 //添加
    111 addTrainFn = function(){
    112     var trainAddWin = new TrainAddWin();
    113     trainAddWin.show();
    114 };
    115 //详情
    116 detailTrainFn = function(){
    117     var trainDetailWin = new TrainDetailWin();
    118     trainDetailWin.title = '招聘信息';
    119     var selectionModel = Ext.getCmp('trainInfoGridId').getSelectionModel();
    120     var record = selectionModel.getSelections();
    121     if(record.length != 1){
    122         Ext.Msg.alert('提示','请选择一个');
    123         return;
    124     }
    125     var trainId = record[0].get('trainId');
    126     Ext.getCmp('trainDetailPanelId').getForm().load({
    127         url: 'train_intoUpdate.action',
    128         params: {
    129             trainId: trainId
    130         }
    131     })
    132     trainDetailWin.show();
    133 };
    134 //修改
    135 editTrainFn = function(){
    136     var trainAddWin = new TrainAddWin();
    137     trainAddWin.title = '招聘信息修改';
    138     var selectionModel = Ext.getCmp('trainInfoGridId').getSelectionModel();
    139     var record = selectionModel.getSelections();
    140     if(record.length != 1){
    141         Ext.Msg.alert('提示','请选择一个');
    142         return;
    143     }
    144     var trainId = record[0].get('trainId');
    145     Ext.getCmp('trainAddPanelId').getForm().load({
    146         url: 'train_intoUpdate.action',
    147         params: {
    148             trainId: trainId
    149         }
    150     })
    151     trainAddWin.show();
    152 };
    153 
    154 /**
    155  * 按条件查询面板
    156  * @author sux 2011-02-20
    157  * @memberOf {TypeName} 
    158  */
    159 var TrainQueryPanel = Ext.extend(Ext.Panel,{
    160     id: 'trainQueryId',
    161     constructor: function(){
    162         TrainQueryPanel.superclass.constructor.call(this,{
    163             collapsible: true,
    164             titleCollapse: true, //单击整个collapse都有效
    165             //collapsed: true, //渲染后即闭合
    166             title: '条件查询',
    167             border: false,
    168             frame: true,
    169             autoWidth: true,
    170             defaultType: 'fieldset',
    171             items: [{
    172                 title: '条件',
    173                 layout: 'table',
    174                 layoutConfig: {
    175                     columns: 6
    176                 },
    177                 defaults: {
    178                     labelWidth: 60,
    179                     labelAlign: 'right'
    180                 },
    181                 items: [{
    182                     layout: 'form',
    183                     items: [{
    184                         xtype: 'textfield',
    185                         fieldLabel: '培训人',
    186                          100,
    187                         id: 'train_person'
    188                     }]
    189                 },{
    190                     layout: 'form',
    191                     items: [{
    192                         xtype: 'textfield',
    193                         fieldLabel: '培训主题',
    194                          100,
    195                         id: 'train_title'
    196                     }]
    197                 },{
    198                     layout: 'form',
    199                     items: [{
    200                         xtype: 'datefield',
    201                         fieldLabel: '开始时间',
    202                         format: 'Y-m-d',
    203                          100,
    204                         id: 'start_date'
    205                     }]
    206                 },{
    207                     layout: 'form',
    208                     items: [{
    209                         xtype: 'datefield',
    210                         fieldLabel: '结束时间',
    211                         format: 'Y-m-d',
    212                          100,
    213                         id: 'end_date'
    214                     }]
    215                 },{
    216                     style: 'margin: 0px 10px 0px 20px;',
    217                     xtype: 'button',
    218                     text: '查询',
    219                     iconCls: 'search',
    220                     handler: queryTrainFn
    221                 },{
    222                     xtype: 'button',
    223                     text: '取消',
    224                     iconCls:'cancel',
    225                     handler: cancelTrainFn
    226                 }]
    227             }]
    228         })
    229     }
    230 });
    231 //查询
    232 queryTrainFn = function(){
    233     var trainPerson = Ext.get("train_person").dom.value;
    234     var trainTitle = Ext.get("train_title").dom.value;
    235     var startDate = Ext.get("start_date").dom.value;
    236     var endDate = Ext.get("end_date").dom.value;
    237     Ext.getCmp('trainInfoGridId').getStore().load({
    238         params: {
    239             type: 'query',
    240             startDate: startDate,
    241             endDate: endDate,
    242             trainTitle: trainTitle,
    243             trainPerson: trainPerson,
    244             start: 0,
    245             limit: 20
    246         }
    247     })
    248 };
    249 //取消
    250 cancelTrainFn = function(){
    251     Ext.get("train_person").dom.value = "";
    252     Ext.get("train_title").dom.value = "";
    253     Ext.get("start_date").dom.value = "";
    254     Ext.get("end_date").dom.value = "";
    255 };

    4. 添加窗口

      1 //新一个培训信息发布窗口
      2 TrainAddWin = Ext.extend(Ext.Window,{
      3     id: 'trainAddWinId',
      4     constructor: function(){
      5         var trainAddPanel = new TrainAddPanel();
      6         TrainAddWin.superclass.constructor.call(this, {
      7              460,
      8             height: 350,
      9             resizable: false, //不能改变窗体大小 
     10             title: '培训信息录入',
     11             collapsible: true,
     12             modal: true,
     13             items: [trainAddPanel]
     14         })
     15     }
     16 })
     17 
     18 //培训信息发布面板
     19 TrainAddPanel = Ext.extend(Ext.form.FormPanel,{
     20     id: 'trainAddPanelId',
     21     constructor: function(){
     22         Ext.form.Field.prototype.msgTarget = 'side';
     23         Ext.QuickTips.init();
     24         var reader = new Ext.data.JsonReader({},[{
     25             name: 'train.trainTitle',  mapping: 'trainTitle'
     26         },{
     27             name: 'train.trainDate',  mapping: 'trainDate'
     28         },{
     29             name: 'train.trainPerson', mapping: 'trainPerson'
     30         },{
     31             name: 'train.trainRemark', mapping: 'trainRemark'
     32         },{
     33             name: 'train.trainContent', mapping: 'trainContent'
     34         },{
     35             name: 'train.trainPlace', mapping: 'trainPlace'
     36         },{
     37             name: 'train.trainId', mapping: 'trainId'
     38         }]);
     39         TrainAddPanel.superclass.constructor.call(this,{
     40              450,
     41             border: false,
     42             height: 320,
     43             frame: true,
     44             layout: 'table',
     45             reader: reader,
     46             layoutConfig: {
     47                 columns: 2
     48             },
     49             defaults: {
     50                 labelWidth: 60,
     51                 labelAlign: 'right'
     52             },
     53             items:[{
     54                  200,
     55                 layout: 'form',
     56                 items: [{
     57                     xtype: 'textfield',
     58                     fieldLabel: '标题',
     59                     allowBlank: false,
     60                     emptyText: '不能为空',
     61                     blankText: '不能为空',
     62                      100,
     63                     name: 'train.trainTitle'
     64                 },{
     65                     xtype: 'datefield',
     66                     fieldLabel: '时间',
     67                     allowBlank: false,
     68                     emptyText: '不能为空',
     69                     blankText: '不能为空',
     70                      100,
     71                     name: 'train.trainDate',
     72                     format: 'Y-m-d'
     73                 }]
     74             },{
     75                 layout: 'form',
     76                  200,
     77                 items: [{
     78                     xtype: 'textfield',
     79                     fieldLabel: '培训人',
     80                     allowBlank: false,
     81                     emptyText: '不能为空',
     82                     blankText: '不能为空',
     83                      100,
     84                     name: 'train.trainPerson'
     85                 },{
     86                     xtype: 'textfield',
     87                     fieldLabel: '地点',
     88                     allowBlank: false,
     89                     emptyText: '不能为空',
     90                      100,
     91                     blankText: '不能为空',
     92                     name: 'train.trainPlace'
     93                 }]
     94             },{
     95                 colspan: 2,
     96                 layout: 'form',
     97                 items: [{
     98                     xtype: 'textarea',
     99                     fieldLabel: '内容',
    100                     allowBlank: false,
    101                     emptyText: '不能为空',
    102                     blankText: '不能为空',
    103                      300,
    104                     height: 100,
    105                     name: 'train.trainContent'
    106                 },{
    107                     xtype: 'textarea',
    108                     fieldLabel: '备注',
    109                      300,
    110                     height: 100,
    111                     name: 'train.trainRemark'
    112                 },{
    113                     xtype: 'hidden',
    114                     name: 'train.trainId'
    115                 }]
    116             }],
    117             buttonAlign: 'center',
    118             buttons: [{
    119                 columnWidth: .5,
    120                 text: '保存',
    121                 iconCls: 'save',
    122                 handler: saveTrainFn
    123             },{
    124                 columnWidth: .5,
    125                 text: '关闭',
    126                 iconCls: 'cancel',
    127                 handler: function(){
    128                     Ext.getCmp('trainAddWinId').destroy();
    129                 }
    130             }]
    131         })
    132     }
    133 });
    134 //保存
    135 saveTrainFn = function(){
    136     if(!Ext.getCmp('trainAddPanelId').getForm().isValid()){
    137             return;
    138         }
    139     Ext.getCmp('trainAddPanelId').getForm().submit({
    140         url: 'train_save.action',
    141         method: 'post',
    142         waitTitle: '提示',
    143         waitMsg: '正在保存数据...',
    144         success: saveTrainSuccessFn,
    145         failure: saveTrainFailureFn
    146     });
    147 };
    148 //保存成功处理
    149 saveTrainSuccessFn = function(form, action){
    150     Ext.Msg.confirm('提示',action.result.msg, function(button, text){
    151         if(button == "yes"){
    152             form.reset();
    153             Ext.getCmp('trainAddWinId').destroy();
    154             Ext.getCmp('trainInfoGridId').getStore().reload();
    155         }
    156     })
    157 };
    158 //保存失败处理
    159 saveTrainFailureFn = function(form, action){
    160     Ext.Msg.alert('提示','连接失败', function(button, text){});
    161 };

    5. 培训信息详情页面

      1 //培训信息详情窗口
      2 TrainDetailWin = Ext.extend(Ext.Window,{
      3     id: 'trainDetailWinId',
      4     constructor: function(){
      5         var trainDetailPanel = new TrainDetailPanel();
      6         TrainDetailWin.superclass.constructor.call(this, {
      7              500,
      8             height: 400,
      9             resizable: false, //不能改变窗体大小 
     10             title: '培训信息录入',
     11             collapsible: true,
     12             modal: true,
     13             items: [trainDetailPanel]
     14         })
     15     }
     16 })
     17 //培训信息发布面板
     18 TrainDetailPanel = Ext.extend(Ext.form.FormPanel,{
     19     id: 'trainDetailPanelId',
     20     constructor: function(){
     21         Ext.QuickTips.init();
     22         var reader = new Ext.data.JsonReader({},[{
     23             name: 'train.trainTitle',  mapping: 'trainTitle'
     24         },{
     25             name: 'train.trainDate',  mapping: 'trainDate'
     26         },{
     27             name: 'train.trainPerson', mapping: 'trainPerson'
     28         },{
     29             name: 'train.trainRemark', mapping: 'trainRemark'
     30         },{
     31             name: 'train.trainContent', mapping: 'trainContent'
     32         },{
     33             name: 'train.trainPlace', mapping: 'trainPlace'
     34         },{
     35             name: 'train.trainId', mapping: 'trainId'
     36         },{
     37             name: 'train.trainAddDate', mapping: 'trainAddDate'
     38         },{
     39             name: 'train.trainAddPerson', mapping: 'trainAddPerson'
     40         }]);
     41         TrainDetailPanel.superclass.constructor.call(this,{
     42              490,
     43             border: false,
     44             height: 370,
     45             frame: true,
     46             layout: 'table',
     47             reader: reader,
     48             layoutConfig: {
     49                 columns: 2
     50             },
     51             defaults: {
     52                 labelWidth: 60,
     53                 labelAlign: 'right'
     54             },
     55             items:[{
     56                 layout: 'form',
     57                 items: [{
     58                     xtype: 'textfield',
     59                     fieldLabel: '标题',
     60                     style: 'background: #dfe8f6;',
     61                      150,
     62                     name: 'train.trainTitle',
     63                     readOnly: true
     64                 },{
     65                     xtype: 'datefield',
     66                     fieldLabel: '时间',
     67                      150,
     68                     style: 'background: #dfe8f6;',
     69                     name: 'train.trainDate',
     70                     format: 'Y-m-d',
     71                     readOnly: true
     72                 },{
     73                     xtype: 'textfield',
     74                     fieldLabel: '添加人',
     75                      150,
     76                     style: 'background: #dfe8f6;',
     77                     name: 'train.trainAddPerson',
     78                     readOnly: true
     79                 }]
     80             },{
     81                 layout: 'form',
     82                 items: [{
     83                     xtype: 'textfield',
     84                     fieldLabel: '培训人',
     85                      150,
     86                     style: 'background: #dfe8f6;',
     87                     name: 'train.trainPerson',
     88                     readOnly: true
     89                 },{
     90                     xtype: 'textfield',
     91                     fieldLabel: '地点',
     92                      150,
     93                     style: 'background: #dfe8f6;',
     94                     name: 'train.trainPlace',
     95                     readOnly: true
     96                 },{
     97                     xtype: 'textfield',
     98                     fieldLabel: '添加时间',
     99                      150,
    100                     style: 'background: #dfe8f6;',
    101                     name: 'train.trainAddDate',
    102                     readOnly: true
    103                 }]
    104             },{
    105                 colspan: 2,
    106                 layout: 'form',
    107                 items: [{
    108                     xtype: 'textarea',
    109                     fieldLabel: '内容',
    110                      370,
    111                     height: 100,
    112                     style: 'background: #dfe8f6;',
    113                     name: 'train.trainContent',
    114                     readOnly: true
    115                 },{
    116                     xtype: 'textarea',
    117                     fieldLabel: '备注',
    118                      370,
    119                     height: 100,
    120                     style: 'background: #dfe8f6;',
    121                     name: 'train.trainRemark',
    122                     readOnly: true
    123                 }]
    124             }],
    125             buttonAlign: 'center',
    126             buttons: [{
    127                 text: '关闭',
    128                 iconCls: 'cancel',
    129                 handler: function(){
    130                     Ext.getCmp("trainDetailWinId").destroy();
    131                 }
    132             }]
    133         })
    134     }
    135 });
  • 相关阅读:
    【BZOJ4892】【TJOI2017】—DNA(后缀数组+ST表)
    【BZOJ1563】【NOI2009】—诗人小G(决策二分栈优化dp)
    【洛谷P5249】【LnOI2019】—加特林轮盘赌(概率dp)
    【Ural1519】— Formula1(轮廓线dp)
    【BZOJ3728】【PA2014】—Final Zarowki(思维题)
    【BZOJ3730】—震波(动态点分治)
    【Hackerrank (70)】—Range Modular Query(莫队+暴力)
    【省选模拟】—Cactus(圆方树+dfs序)
    【BZOJ2125】—最短路(圆方树+树链剖分)
    python 基础 列表
  • 原文地址:https://www.cnblogs.com/sharpest/p/7660221.html
Copyright © 2011-2022 走看看