123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- /**
- * 方便选择的时间区间查询
- * @author
- */
- Ext.define('erp.view.core.form.ConDateHourMinuteFieldQ', {
- extend: 'Ext.form.FieldContainer',
- alias: 'widget.condatehourminutefieldq',
- layout: 'column',
- requires:['erp.view.core.form.DateHourMinuteField'],
- valuePrint:"",
- items: [],
- layout: 'column',
- showscope: true,
- defaultamstarttime:'08:00',
- defaultamendtime:'12:00',
- defaultpmstarttime:'14:00',
- defaultpmendtime:'18:00',
- timeregex:/^(([01]?[0-9])|(2[0-3])):[0-5]?[0-9]$/,
- dateregex:/^(d{4})-(d{2})-(d{2})$/,
- minDate:null,
- minTime:null,
- maxDate:null,
- maxTime:null,
- initComponent : function(){
- this.cls = (this.cls || '') + ' x-form-field-multi';
- this.callParent(arguments);
- var me = this;
- if(me.value){
- me.minDate=me.value.substring(0,10);
- me.minTime=me.value.substring(11,16);
- }
- if(me.secondvalue){
- me.maxDate=me.secondvalue.substring(0,10);
- me.maxTime=me.secondvalue.substring(11,16);
- }
- me.insert(0, Ext.create('Ext.form.field.Date', {
- columnWidth: 0.3,
- fieldStyle: me.fieldStyle,
- readOnly:me.readOnly,
- value:me.minDate,
- groupName:me.groupName,
- allowBlank: me.allowBlank,
- editable:false,
- listeners: {
- change: function(field){
- var date = me.items.items[0].value;
- var time = me.items.items[1].value;
- me.items.items[3].setMinValue(date);
- if(me.items.items[3].value && date>me.items.items[3].value){
- me.items.items[3].setValue(null);
- }
- if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
- me.firstValue=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
- this.value=me.firstValue;
- me.items.items[5].setValue(me.firstValue);
- }
- }
- }
- }));
- me.insert(1, Ext.create('erp.view.core.form.TimeMinuteField', {
- columnWidth: 0.2,
- fieldStyle: me.fieldStyle,
- readOnly:me.readOnly,
- allowBlank: me.allowBlank,
- value:me.minTime,
- groupName:me.groupName,
- editable:false,
- listeners: {
- change: function(){
- var date = me.items.items[0].value;
- var time = me.items.items[1].value;
- if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
- me.firstValue=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
- this.value=me.firstValue;
- me.items.items[5].setValue(me.firstValue);
- }
- }
- }
- }));
- me.insert(2,{
- xtype: 'label',
- text: ' -- ',
- paddings: '0 10 0 10'
- });
- me.insert(3, Ext.create('Ext.form.field.Date', {
- columnWidth: 0.3,
- fieldStyle: me.fieldStyle,
- readOnly:me.readOnly,
- value:me.maxDate,
- editable:false,
- groupName:me.groupName,
- allowBlank: me.allowBlank,
- listeners: {
- change: function(){
- var date = me.items.items[3].value;
- var time = me.items.items[4].value;
- me.items.items[0].setMaxValue(date);
- if(me.items.items[0].value && me.items.items[0].value>date){
- me.items.items[0].setValue(null);
- }
- if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
- me.secondvalue=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
- /*Ext.getCmp(me.secondname).setValue(me.secondvalue);*/
- }
- }
- }
- }));
- me.insert(4, Ext.create('erp.view.core.form.TimeMinuteField', {
- columnWidth: 0.2,
- fieldStyle: me.fieldStyle,
- readOnly:me.readOnly,
- value:me.maxTime,
- groupName:me.groupName,
- allowBlank: me.allowBlank,
- listeners: {
- change: function(){
- var date = me.items.items[3].value;
- var time = me.items.items[4].value;
- if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
- me.secondvalue=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
- }
- }
- }
- }));
- me.insert(5,{
- xtype:'hidden',
- name:me.name,
- value:me.value
- });
- me.insert(6,{
- xtype: 'button',
- iconCls: 'x-button-icon-add',
- cls: 'x-btn-tb',
- width:20,
- hidden:me.readOnly==true,
- listeners:{
- mouseover:function(btn,e){
- btn.showMenu();
- }
- },
- menuAlign:'tl-bl?',
- menu:{
- xtype:'menu',
- width:100,
- items:[{
- text: '上午',
- iconCls: 'main-msg',
- listeners: {
- click: function(m){
- me.setDateFieldValue(1);
- }
- }
- },{
- text: '下午',
- iconCls: 'main-msg',
- width:80,
- listeners: {
- click: function(m){
- me.setDateFieldValue(2);
- }
- }
- },{
- text: '上下午',
- width:80,
- iconCls: 'main-msg',
- listeners: {
- click: function(m){
- me.setDateFieldValue(3);
- }
- }
- },{
- text:'自定义',
- width:50,
- iconCls: 'main-msg',
- listeners: {
- click: function(m){
- me.setDateFieldValue(4);
- }
- }
- }]
- }
- });
- },
- setDateFieldValue: function(v){
- v = Number(v);
- var now=new Date(),
- minDate,
- maxDate,
- minTime,
- maxTime;
- var nowYear = now.getYear(); //当前年
- nowYear += (nowYear < 2000) ? 1900 : 0;
- var me = this;
- switch (v) {
- case 1://上午
- minDate = now;
- maxDate = now;
- minTime =me.defaultamstarttime;
- maxTime =me.defaultamendtime;
- break;
- case 2://下午
- minDate = now;
- maxDate = now;
- minTime =me.defaultpmstarttime;
- maxTime =me.defaultpmendtime;
- break;
- case 3://整天
- minDate = now;
- maxDate = now;
- minTime =me.defaultamstarttime;
- maxTime =me.defaultpmendtime;
- break;
- case 4://非整天
- minDate = new Date(1970, 0, 1);
- maxDate = new Date(nowYear + 100, 11, 31);
- minTime = '00:00';
- maxTime = '23:59';
- break;
- default:
- minDate = null;
- maxDate = null;
- minTime = null;
- maxTime = null;
- break;
- }
- me.items.items[0].setValue(minDate);
- me.items.items[1].setValue(minTime);
- me.items.items[3].setValue(maxDate);
- me.items.items[4].setValue(maxTime);
- },
- isValid: function(){
- return this.firstField.isValid();
- },
- setValue: function(value){
- this.firstField.setValue(value);
- },
- getValue: function(){
- return this.value;
- },
- setReadOnly:function(bool){
- Ext.Array.each(this.items.items,function(item){
- if(item.setReadOnly)item.setReadOnly(bool);
- if(item.xtype='button'){
- if(bool) item.hide();
- else item.show();
- }
-
- });
- this.fireEvent('resize',this);
- },
- setFieldStyle:function(style){
- Ext.Array.each(this.items.items,function(item){
- if(item.setFieldStyle) item.setFieldStyle(style);
- });
- },
- hideScope: function(bool) {
- if(bool)
- this.items.items[0].hide();
- else
- this.items.items[0].show();
- },
- mregex: /^[1-9]\d{3}[0-1]\d$/,
- listeners: {
- afterrender: function(){
- var tb = this.getEl().dom;
- tb.childNodes[1].style.height = 22;
- tb.childNodes[1].style.overflow = 'hidden';
- }
- }
- });
|