/** * From-To numberfield * @author yingp */ Ext.define('erp.view.core.form.FtNumberField', { extend: 'Ext.form.FieldContainer', alias: 'widget.erpFtNumberField', layout: 'column', value: "", height: 22, items: [], initComponent : function(){ this.callParent(arguments); var me = this; me.insert(0, { xtype: 'numberfield', columnWidth: 0.5, fieldStyle: me.fieldStyle, listeners: { change: function(f){ var from = f.value; var to = me.items.items[1].value; from = from == null || from == '' ? to == null || to == '' ? '' : to : from; to = to == null || to == '' ? from == null || from == '' ? '' : from : to; if(from == ''){ me.value = ''; } else { me.value = "BETWEEN " + from + " AND " + to; } } } }); me.insert(1, { xtype: 'numberfield', columnWidth: 0.5, fieldStyle: me.fieldStyle, listeners: { change: function(f){ var from = me.items.items[0].value; var to = f.value; from = from == null || from == '' ? to == null || to == '' ? '' : to : from; to = to == null || to == '' ? from == null || from == '' ? '' : from : to; if(from == ''){ me.value = ''; } else { me.value = "BETWEEN " + from + " AND " + to; } } } }); }, listeners: { afterrender: function(){ var tb = this.getEl().dom; if(tb.nodeName == 'TABLE') { return; } tb.childNodes[1].style.height = 22; tb.childNodes[1].style.overflow = 'hidden'; } }, reset: function(){ this.items.items[0].reset(); this.items.items[1].reset(); }, getValue: function(){ if(this.value != null && this.value != ''){ if(this.items.items[0].value == null || this.items.items[0].value == ''){ return this.items.items[1].value + '~' + this.items.items[1].value; } else if(this.items.items[1].value == null || this.items.items[1].value == ''){ return this.items.items[0].value + '~' + this.items.items[0].value; } else { return this.items.items[0].value + '~' + this.items.items[1].value; } } else { return ''; } }, isValid: function(){ return true; }, setValue: function(value){ if(value != null && value != '' && contains(value, '~', true)){ this.items.items[0].setValue(value.split('~')[0]); this.items.items[1].setValue(value.split('~')[1]); } } });