Ext.define('erp.view.core.button.ComboButton',{ extend: 'Ext.Button', alias: 'widget.erpComboButton', cls: 'x-btn-gray', //id: 'combo', text: '下拉框设置', cls: 'x-btn-blue', iconCls: 'x-button-icon-paste', hidden: false, disabled:true, style: { marginLeft: '10px' }, width: 120, initComponent : function(){ this.callParent(arguments); }, comboSet:function(caller, field){ var me=this; var combodata=me.getComboData(caller,field); Ext.create('Ext.Window', { width: '80%', height: '80%', autoShow: true, layout: 'border', buttonAlign : 'center', title:'

Form下拉配置

', items: [{ region:'center', xtype: 'grid', id:'combogrid', columnLines:true, bodyStyle: 'background-color:#f1f1f1;', plugins: Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }), listeners:{ itemclick:function(selModel, record,e,index){ var grid=selModel.ownerCt; Ext.getCmp('deletecombo').setDisabled(false); if(index.toString() == 'NaN'){ index = ''; } if(index == grid.store.data.items.length-1){//如果选择了最后一行 var items=grid.store.data.items; for(var i=0;i<10;i++){ var o = new Object(); o.dlc_caller=caller; o.dlc_fieldname=field; o.dlc_value=null; o.dlc_value_en=null; o.dlc_value_tw=null; o.dlc_display=null; grid.store.insert(items.length, o); items[items.length-1]['index'] = items.length-1; } } } }, columns: [{ text:'ID', dataIndex:'dlc_id', width:0, },{ cls : "x-grid-header-1", text: '中文值', dataIndex: 'dlc_value', flex: 1, editor: { format:'', xtype: 'textfield' }, renderer: function(val, meta, record){ if(!val){ val=""; } return '' + '' + val + ''; }, },{ cls : "x-grid-header-1", text: '英文值', dataIndex: 'dlc_value_en', flex: 1, editor: { format:'', xtype: 'textfield', } },{ cls : "x-grid-header-1", text:'繁文', dataIndex: 'dlc_value_tw', flex: 1, editor: { format:'', xtype: 'textfield', } },{ cls : "x-grid-header-1", text:'实际值', dataIndex:'dlc_display', flex:1, editor: { format:'', xtype: 'textfield', }, renderer: function(val, meta, record){ if(!val){ val=""; } return '' + '' + val + ''; }, },{ cls : "x-grid-header-1", text:'Caller', dataIndex: 'dlc_caller', flex:1, readOnly:true, },{ cls : "x-grid-header-1", text:'字段名', dataIndex:'dlc_fieldname', flex:1, readOnly:true }] }], buttons:['->',{ xtype:'button', text: $I18N.common.button.erpSaveButton, iconCls: 'x-button-icon-save', cls: 'x-btn-gray', formBind: true,//form.isValid() == false时,按钮disabled width: 60, style: { marginLeft: '10px' }, handler:function(){ me.saveCombo(caller,field); } },{ xtype:'button', text: $I18N.common.button.erpDeleteButton, iconCls: 'x-button-icon-delete', cls: 'x-btn-gray', id:'deletecombo', width: 60, style: { marginLeft: '10px' }, handler:function(){ me.deleteCombo(me); } },{ xtype:'button', text: $I18N.common.button.erpCloseButton, iconCls: 'x-button-icon-close', cls: 'x-btn-gray', formBind: true,//form.isValid() == false时,按钮disabled width: 60, style: { marginLeft: '10px' }, handler:function(btn){ btn.ownerCt.ownerCt.close(); } },'->'] }); Ext.getCmp('combogrid').getStore().loadData(combodata); }, getComboData:function(caller,field){ var combodata=null; Ext.Ajax.request({ url : basePath +'common/getComboDataByCallerAndField.action', params: { caller:caller, field:field }, async: false, method : 'post', callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo != null){ showError(res.exceptionInfo); return; } if(res.success){ combodata=res.data; } } }); if(combodata.length<1){ this.add10EmptyData(combodata,caller, field); } return combodata; }, saveCombo:function(caller,field){ var me=this; var grid=Ext.getCmp('combogrid'); grid.necessaryField='dlc_value'; var jsonGridData = new Array(); var dd; var s = grid.getStore().data.items; for(var i=0;i