/** * 合并字段 */ Ext.define('erp.view.core.form.MultiField1', { extend: 'Ext.form.FieldContainer', alias: 'widget.multifield1', layout: 'column', baseCls: 'x-field', fieldConfig: null, initComponent : function(){ this.cls = (this.cls || '') + ' x-form-field-multi'; this.callParent(arguments); var me = this; /*var cw = me.columnWidth > 0.3 ? 0.3 : 0.45;*/ var logics = me.logic.split(","); var cw=0.35; me.insert(0, { xtype: 'numberfield', allowDecimals: true, allowNegative: false, hideTrigger:true, decimalPrecision: 3, nanText:'请输入有效的数字', minValue :0, name: me.name, columnWidth: cw, fieldStyle: me.fieldStyle, allowBlank: me.allowBlank, value: me.value, groupName:me.groupName, fieldConfig: me.fieldConfig, editable: me.editable, modify:me.modify, listeners: { change: function(f){ me.value = f.value; if(Ext.isEmpty(f.value)) { me.secondField.setValue(''); } } } }); me.insert(1, { xtype: 'numberfield', allowDecimals: true, allowNegative: false, hideTrigger:true, decimalPrecision: 3, nanText:'请输入有效的数字', minValue :0, fieldLabel:' - ', labelSeparator :'', labelWidth:10, id: logics[0], name:logics[0], groupName:me.groupName, columnWidth: 0.4, readOnly: false, value: me.secondvalue, modify:me.modify }); if(logics[1]){ me.insert(2, { xtype: 'combo', id: logics[1], name: logics[1], modify:me.modify, groupName:me.groupName, columnWidth: 0.25, fieldStyle: 'background:#f1f1f1;', store: Ext.create('Ext.data.Store', { fields: ['display', 'value'], data : [{"display" : "kg", "value": "kg"}, {"display" : "g", "value": "g"}] }), displayField: 'display', valueField: 'value', queryMode: 'local', value:me.thirdvalue||'kg', editable: false }); me.thirdField = me.items.items[2]; } me.firstField = me.items.items[0]; me.secondField = me.items.items[1]; }, isValid: function(){ return this.firstField.isValid(); }, setValue: function(value){ this.firstField.setValue(value); }, getValue: function(){ return this.value; }, setReadOnly: function(bool){ this.firstField.setReadOnly(bool); }, setFieldStyle: function(style){ this.firstField.setFieldStyle(style); } });