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