|
|
@@ -12,18 +12,13 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
enableKeyEvents:true,
|
|
|
initComponent:function() {
|
|
|
var me = this;
|
|
|
- this.displayField='display';
|
|
|
- this.valueField='value';
|
|
|
- this.queryMode='local';
|
|
|
- if(me.value){
|
|
|
- me.store=Ext.create('Ext.data.Store', {
|
|
|
- fields: ['display','value'],
|
|
|
- data : [{
|
|
|
- 'display':me.value,
|
|
|
- 'value':me.value
|
|
|
- }]
|
|
|
- });
|
|
|
- }
|
|
|
+ me.store=Ext.create('Ext.data.Store', {
|
|
|
+ fields: ['display','value'],
|
|
|
+ data : [{
|
|
|
+ 'display':me.value,
|
|
|
+ 'value':me.value
|
|
|
+ }]
|
|
|
+ });
|
|
|
this.callParent();
|
|
|
},
|
|
|
//输入值之后进行模糊查询
|
|
|
@@ -73,33 +68,29 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
'</li>',
|
|
|
'</tpl></ul>'
|
|
|
);
|
|
|
- me.store=Ext.create('Ext.data.Store', {
|
|
|
- fields: field,
|
|
|
- data : []
|
|
|
- });
|
|
|
+ me.store.setFields(field);
|
|
|
}
|
|
|
}
|
|
|
//加载数据
|
|
|
var data;
|
|
|
- var url = 'resources/json/purchase/vendorDataDbfind.json';
|
|
|
Ext.Ajax.request({
|
|
|
- url: url,
|
|
|
+ url: me.dataUrl,
|
|
|
params: '',
|
|
|
- async:false,
|
|
|
success: function(response, opts) {
|
|
|
data = Ext.decode(response.responseText);
|
|
|
+ data = data.data;
|
|
|
+ if(data!=null && data.length>0 && me.store && field.length>0){
|
|
|
+ me.store.loadData(data,false);
|
|
|
+ me.expand();
|
|
|
+ }else{
|
|
|
+ me.collapse( );
|
|
|
+ }
|
|
|
},
|
|
|
failure: function(response, opts) {
|
|
|
console.log('server-side failure with status code ' + response.status);
|
|
|
return reject(response);
|
|
|
}
|
|
|
});
|
|
|
- if(data!=null && data.length>2 && me.store && field.length>0){
|
|
|
- me.store.loadData(data,false);
|
|
|
- me.expand();
|
|
|
- }else{
|
|
|
- me.collapse( );
|
|
|
- }
|
|
|
}
|
|
|
return true;
|
|
|
}else{
|
|
|
@@ -124,7 +115,7 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
renderTo:Ext.getCmp('main-tab-panel').getActiveTab().getEl(),
|
|
|
items:[{
|
|
|
xtype:'dbfindgridpanel',
|
|
|
- configUrl: f.configUrl,
|
|
|
+ columns: f.dbColumns,
|
|
|
dataUrl: f.dataUrl,
|
|
|
dbfinds: f.dbfinds
|
|
|
}]
|
|
|
@@ -144,22 +135,43 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
},
|
|
|
|
|
|
listeners: {
|
|
|
+ focus: function(f) {
|
|
|
+ return true;
|
|
|
+ },
|
|
|
select:function(combo,record,eOpts){
|
|
|
var me = combo;
|
|
|
var dbfinds = me.dbfinds;
|
|
|
if(dbfinds&&dbfinds.length>0){
|
|
|
- for (let index = 0; index < dbfinds.length; index++) {
|
|
|
- var item = dbfinds[index];
|
|
|
- var field = me.ownerCt.down('[name='+item.to+']');
|
|
|
- if(field){
|
|
|
- var val = record.get(item.from);
|
|
|
- if(field.xtype=='dbfindtrigger'){
|
|
|
- field.setRawValue(val);
|
|
|
- field.value = val;
|
|
|
- field.lastTriggerValue=val;
|
|
|
- }else{
|
|
|
- field.setValue(val);
|
|
|
- }
|
|
|
+ if(me.belong=='grid'){
|
|
|
+ for (let index = 0; index < dbfinds.length; index++) {
|
|
|
+ var item = dbfinds[index];
|
|
|
+ debugger
|
|
|
+ var field = me.ownerCt.down('[name='+item.to+']');
|
|
|
+ if(field){
|
|
|
+ var val = record.get(item.from);
|
|
|
+ if(field.xtype=='dbfindtrigger'){
|
|
|
+ field.setRawValue(val);
|
|
|
+ field.value = val;
|
|
|
+ field.lastTriggerValue=val;
|
|
|
+ }else{
|
|
|
+ field.setValue(val);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(me.belong=='form'){
|
|
|
+ for (let index = 0; index < dbfinds.length; index++) {
|
|
|
+ var item = dbfinds[index];
|
|
|
+ var field = me.ownerCt.down('[name='+item.to+']');
|
|
|
+ if(field){
|
|
|
+ var val = record.get(item.from);
|
|
|
+ if(field.xtype=='dbfindtrigger'){
|
|
|
+ field.setRawValue(val);
|
|
|
+ field.value = val;
|
|
|
+ field.lastTriggerValue=val;
|
|
|
+ }else{
|
|
|
+ field.setValue(val);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -170,6 +182,51 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
var me = this,val = me.rawToValue(me.processRawValue(me.getRawValue()));
|
|
|
me.value = val;
|
|
|
return val;
|
|
|
- }
|
|
|
+ },
|
|
|
+
|
|
|
+ autoSetValue: function(data, dbfinds) {
|
|
|
+ var trigger = this;
|
|
|
+ var triggerV = null;
|
|
|
+ if (!trigger.ownerCt || trigger.column) { //如果是grid的dbfind
|
|
|
+ var grid = trigger.owner;
|
|
|
+ var record = grid.lastSelectedRecord || trigger.record || grid.getSelectionModel().selected.items[0] || grid.selModel.lastSelected; //detailgrid里面selected
|
|
|
+ Ext.Array.each(Ext.Object.getKeys(data),
|
|
|
+ function(k) {
|
|
|
+ Ext.Array.each(dbfinds,
|
|
|
+ function(ds) {
|
|
|
+ if (ds.trigger == trigger.name || Ext.isEmpty(ds.trigger)) {
|
|
|
+ if (Ext.Array.contains(ds.dbGridField.split(';'), k)) { //k == ds.dbGridField//支持多dbgrid的字段对应grid同一字段
|
|
|
+ if (ds.field == trigger.name) {
|
|
|
+ triggerV = data[k]; //trigger所在位置赋值
|
|
|
+ }
|
|
|
+ record.set(ds.field, data[k]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ var ff;
|
|
|
+ Ext.Array.each(Ext.Object.getKeys(data),
|
|
|
+ function(k) {
|
|
|
+ Ext.Array.each(dbfinds,
|
|
|
+ function(ds) {
|
|
|
+ if (k == ds.dbGridField) {
|
|
|
+ if (trigger.name == ds.field||trigger.name.substring(0,trigger.name.indexOf('-new'))==ds.field) {
|
|
|
+ triggerV = data[k];
|
|
|
+ } else {
|
|
|
+ ff = Ext.getCmp(ds.field);
|
|
|
+ if (ff && ff.setValue) ff.setValue(data[k]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ trigger.setValue(triggerV);
|
|
|
+ data.data = data;
|
|
|
+ trigger.lastTriggerValue='';
|
|
|
+ trigger.fireEvent('aftertrigger', trigger, data);
|
|
|
+ trigger.lastTriggerId = null;
|
|
|
+ trigger.lastQueryValue='';
|
|
|
+ }
|
|
|
|
|
|
});
|