Extjs 填请假条界面Demo

本文介绍如何使用ExtJS开发一个简单的请假条填写界面的Demo,包括表单元素、布局管理和交互功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ext.create('Ext.Window', {
    title: '填写请假条',
    iconCls: 'extjs-icon-edit',
    closeAction: 'hide',
    width: 500,
    height: 330,
    maximizable: true,
    layout: 'fit',
    border: false,
    items:[{
      id: 'leaveFormPanel',
      xtype:'form',
      border: false,
      style: 'margin:15px',
      defaultType: 'textfield',
      defaults: {
        anchor: '98%'
      },
      fieldDefaults: {
        labelWidth: 30,
        labelAlign: 'left',
        msgTarget: 'side'
      },
      items: [{
        xtype: 'radiogroup',
        fieldLabel: '类别',
        allowBlank: false,
        items: [
          {boxLabel: '事假', inputValue: '事假', name: 'rb-type', checked: true},
          {boxLabel: '病假', inputValue: '病假', name: 'rb-type'},
          {boxLabel: '婚假', inputValue: '婚假', name: 'rb-type'},
          {boxLabel: '丧假', inputValue: '丧假', name: 'rb-type'},
          {boxLabel: '公假', inputValue: '公假', name: 'rb-type'},
          {boxLabel: '工伤', inputValue: '工伤', name: 'rb-type'},
          {boxLabel: '产假', inputValue: '产假', name: 'rb-type'},
          {boxLabel: '其他', inputValue: '其他', name: 'rb-type'}
        ]
      },{
        id:'reason',
        name:'reason',
        fieldLabel: '事由',
        xtype: 'textarea',
        autoScroll: true,
        allowBlank: false
      },{
        xtype: 'radiogroup',
        hideLabel: true,
        style: 'margin-left:40px',
        items: [
          {boxLabel: '全天', inputValue: "全天", name: 'rb-day', checked: true },
          {boxLabel: '上午', inputValue: "上午", name: 'rb-day'  },
          {boxLabel: '下午', inputValue: "下午", name: 'rb-day'  }
        ],
        listeners:{
          'change':function(group,checked){
            switch (checked['rb-day']) {
              case '全天':
                Ext.getCmp('starttime2').hide();
                Ext.getCmp('endtime2').hide();
                break;
              case '上午':
                Ext.getCmp('starttime2').show();
                Ext.getCmp('endtime2').show();
                Ext.getCmp('starttime2').setValue('9:00 上午');
                Ext.getCmp('endtime2').setValue('12:00 下午');
                break;
              case '下午':
                Ext.getCmp('starttime2').show();
                Ext.getCmp('endtime2').show();
                Ext.getCmp('starttime2').setValue('1:00 下午');
                Ext.getCmp('endtime2').setValue('6:00 下午');
                break;
            }
          }
        }
      },{
        xtype: 'panel',
        layout: 'hbox',
        style:'margin-top:5px',
        defaults: {
          flex: 1,
          border: false,
          editable: false
        },
        items: [{
          xtype: 'datefield',
          id: 'starttime',
          name:'starttime',
          fieldLabel: '开始',
          format: 'Y-m-d D',
          allowBlank: false,
          value:new Date(),
          listeners: {
            'select': function () {
              var start = Ext.getCmp('starttime').getValue();
              var endDate = Ext.getCmp('endtime').getValue();
              Ext.getCmp('endtime').setMinValue(start);
              if (start > endDate) {
                Ext.getCmp('endtime').setValue(start);
              }
            }
          }
        }, {
          xtype: 'timefield',
          id: 'starttime2',
          name: 'starttime2',
          hidden: true,
          hideLabel: true,
          value: '9:00 上午',
          minValue: '9:00 上午',
          maxValue: '6:00 下午'
        }]
      },{
        xtype: 'panel',
        layout: 'hbox',
        style:'margin-top:5px',
        defaults: {
          flex: 1,
          border: false,
          editable: false
        },
        items: [{
          id: 'endtime',
          name:'endtime',
          xtype: 'datefield',
          fieldLabel: '结束',
          format: 'Y-m-d D',
          allowBlank: false,
          value:new Date(),
          listeners: {
            'select': function () {
              var start = Ext.getCmp('starttime').getValue();
              var endDate = Ext.getCmp('endtime').getValue();
              if (start > endDate) {
                Ext.getCmp('starttime').setValue(endDate);
              }
            }
          }
        }, {
          id: 'endtime2',
          name: 'endtime2',
          xtype: 'timefield',
          hidden: true,
          hideLabel: true,
          value: '6:00 下午',
          minValue: '9:00 上午',
          maxValue: '6:00 下午'
        }]
      },{
        xtype: 'label',
        style:'margin-top:5px',
        text: '注:1、病假正常情况下须出具医院证明。2、提交后告知部门主管确认'
      }]
    }],
    buttonAlign:'center',
    buttons: [
      { xtype: "button", text: "提交", 
        handler: function () {}
      },
      { xtype: "button", text: "取消", 
        handler: function () {} 
      }
    ]
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值