Simlink.instanceComponent = function(field){ var compo = Ext.getCmp(field.el); if(compo != undefined){Ext.destroy(combo);} //var anchor; if(field.width == null) { if(field.anchor == null){field.anchor = "98%";} field.width = 10; } var cmpCfg = { id : field.id, fieldLabel : field.fieldLabel, name : field.fieldName, xtype : field.xtype, vtype : field.vtype, anchor : field.anchor, width : (field.width - 0), hidden : field.hidden, allowBlank : field.allowBlank, readOnly : field.readOnly, listeners : field.listeners }; //alert(Ext.getCmp(field.el)); var compo = [cmpCfg,function(value){return value;}]; var fieldxtype = field.xtype; if(fieldxtype != null){ if(fieldxtype.indexOf('muticombox') != -1){ cmpCfg = Simlink.getComboXtype({ action : 'all', fieldLabel : field.fieldLabel, fieldName : field.fieldName, type : field.type, displayFieldTpl : field.displayFieldTpl,//displayFieldTpl: '{value} ({key})', url : field.url || null, el : field.el, listWidth : field.listWidth, anchor : field.anchor, hidden : field.hidden, resizable: true, allowAddNewData:true, fixedHeight:field.fixedHeight, addNewDataOnBlur : true, cls:field.cls, //autoScroll :field.autoScroll, hiddenName : field.hiddenName, forceSelection : false, queryParam : field.queryParam || 'query', width : (field.width == 1) ? undefined : field.width , valueField : field.valueField || "value", displayField : field.displayField||'text', mode : field.mode || 'remote',//远程 listeners : field.listeners, pageSize : field.pageSize, allowBlank : field.allowBlank, navigateItemsWithTab : true }); compo[0] = Ext.apply(cmpCfg, { xtype : 'muticombox', resizable : true }); } else if(fieldxtype.indexOf('combo') != -1) { //case 'combo' ://下拉框控件 //case 'comborelate'://下拉框关联控件 compo[0] = Simlink.getComboXtype(field); compo[1] = function(value) { var resultValue = value; if(field.valueField == "value")//反向查询显示值为text,传到后台实为value { this.editor.getStore().data.each(function(obj){ if(value == obj.json.value) { resultValue = obj.json.text; return; } }); } //否则,显示为text,传到后台也为text return resultValue; }; } else if(fieldxtype.indexOf('checkbox') != -1){ compo[0] = Ext.apply(cmpCfg, { xtype : 'checkbox', fieldLabel : field.fieldLabel, name : field.fieldName, listeners : field.listeners }); } else if(fieldxtype.indexOf('textarea') != -1){ compo[0] = Ext.apply(cmpCfg, { xtype : 'textarea', fieldLabel : field.fieldLabel, name : field.fieldName }); } else if(fieldxtype.indexOf('datetimefield') != -1){ compo[0] = Ext.apply(cmpCfg, {format : 'H:i',editable : false,value: field.defaulValue || new Date()}); compo[1] = function(value) { if(value instanceof Date) { return Ext.util.Format.date(value, CONSTANT.DATE.FORMAT4); } else { return value; } }; } else if(fieldxtype.indexOf('datefield') != -1){ compo[0] = Ext.apply(cmpCfg, {format : CONSTANT.DATE.FORMAT5,editable : true}); compo[1] = function(value) { if(value instanceof Date) { return Ext.util.Format.date(value, CONSTANT.DATE.FORMAT5); } else { return value; } }; } else if(fieldxtype.indexOf('timefield') != -1){ compo[0] = Ext.apply(cmpCfg, { el : field.el, xtype : 'timepickerfield', defaulValue : field.defaulValue }); } else if(fieldxtype.indexOf('unit') != -1){//出入量带单位的控件 compo[0] = {xtype : 'unit',xtypes : field.xtypes,sourceIds : field.type,fieldLabel : field.fieldLabel}; compo[1] = function(value) { return this.editor.getValue(); }; } else if(fieldxtype.indexOf('relate') != -1){//护理单关联控件 compo[0] = {xtype : 'relate',xtypes : field.xtypes,type : field.type,sourceIds : field.sourceIds,fieldLabel : field.fieldLabel,anchor : '98%'}; compo[1] = function(value) { return this.editor.getValue(); }; } else if(fieldxtype.indexOf('daterange') != -1){ compo[0] = Ext.apply(cmpCfg,{xtype : 'datetworange',fieldLabel : field.fieldLabel,fieldName : field.fieldName}); compo[1] = function(value) { return this.editor.getValue(); }; } else if(fieldxtype.indexOf('numberrange')!= -1){ compo[0] = Ext.apply(cmpCfg,{xtype : 'numberrange',fieldName : field.fieldName}); compo[1] = function(value) { return this.editor.getValue(); }; } else if(fieldxtype.indexOf('datetworange')!= -1){ compo[0] = Ext.apply(cmpCfg,{xtype : 'datetworange',fieldName : field.fieldName}); compo[1] = function(value) { return this.editor.getValue(); }; } else if(fieldxtype.indexOf('dynaddtextfield')!= -1){ compo[0] = Ext.apply(cmpCfg,{xtype :'dynaddtextfield',fieldName : field.fieldName,type:field.type}); compo[1] = function(value) { return this.editor.getValue(); }; } }else{ compo[0] = Ext.apply(cmpCfg, {xtype : 'textfield',control : this}); } return compo; };