/** * 方便选时分秒 * @author */ Ext.define('erp.view.core.form.HourMinuteSecondField', { extend: 'Ext.form.FieldContainer', alias: 'widget.hourminutesecondfield', layout: 'column', items: [], height: 22, timeregex:/^(([01]?[0-9])|(2[0-3])):[0-5][0-9]:[0-5][0-9]$/, initComponent : function(){ this.callParent(arguments); var me = this; if(me.value || me.value == '0'){ me.Time=(String)(me.value).substring(0,6); var b = me.Time; var len=b.length; if(len <5){ for (;len <= 5;len ++) { b="0"+b; } } var r=len%2; me.Time = r>0?b.slice(0,r)+":"+b.slice(r,len).match(/\d{2}/g).join(":"):b.slice(r,len).match(/\d{2}/g ).join(":"); } me.insert(0, Ext.create('erp.view.core.form.HMSTimeMinuteField', { columnWidth: 1, fieldStyle: me.fieldStyle, readOnly:me.readOnly, name:me.name, groupName:me.groupName, height: 22, value:me.Time, allowBlank: me.allowBlank, listeners: { change: function(){ var time = me.items.items[0].value; if(time != null && time != ""){ time=time.replace(new RegExp(/(:)/g),":"); if( me.timeregex.test(time)){ me.value=time; me.setValue(me.value); } } } } })); }, getValue: function(){ return this.value; }, setValue: function(v){ if(v){ this.items.items[0].setValue(v.substring(0,8)); } this.value=v; }, reset:function(v){ this.items.items[0].reset(); }, isValid:function(){ return true; }, select: function(r) { }, listeners: { afterrender: function(){ var tb = this.getEl().dom; tb.childNodes[1].style.height = 22; tb.childNodes[1].style.overflow = 'hidden'; this.getFocusEl().dom.select=function(){ }; } } });