|
|
@@ -6,6 +6,10 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
valueField: 'value',
|
|
|
triggerCls: 'x-form-search-trigger',
|
|
|
GridUtil: Ext.create('saas.util.GridUtil'),
|
|
|
+ BaseUtil: Ext.create('saas.util.BaseUtil'),
|
|
|
+ minChars:1, // 设置用户输入字符多少时触发查询
|
|
|
+ tpl: '',
|
|
|
+ enableKeyEvents:true,
|
|
|
initComponent:function() {
|
|
|
var me = this;
|
|
|
this.displayField='display';
|
|
|
@@ -22,6 +26,86 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
}
|
|
|
this.callParent();
|
|
|
},
|
|
|
+ //输入值之后进行模糊查询
|
|
|
+ doQuery: function(queryString, forceAll, rawQuery) {
|
|
|
+ queryString = queryString || '';
|
|
|
+ var me = this;
|
|
|
+ if(me.lastQueryValue!=queryString){
|
|
|
+ var judge=me.judge(me);
|
|
|
+ var field=[];
|
|
|
+ var sfield='';
|
|
|
+ var dbfinds=me.dbfinds;
|
|
|
+ var dbtpls=me.dbtpls;
|
|
|
+ var name=me.name;
|
|
|
+ me.lastQueryValue=queryString;
|
|
|
+ if(queryString.trim()==''){
|
|
|
+ me.collapse( );
|
|
|
+ }else{
|
|
|
+ if(!dbfinds||!dbtpls){
|
|
|
+ me.collapse( );
|
|
|
+ }else{
|
|
|
+ //加载tpl模板
|
|
|
+ if(dbtpls.length>0){
|
|
|
+ var span="";
|
|
|
+ var width=0;
|
|
|
+ for(var i=0;i<dbtpls.length;i++){
|
|
|
+ if(i==0){
|
|
|
+ span=span+'<span style="width:'+dbtpls[i].width+'px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;float:left;">{'+dbtpls[i].field+'}</span>';//display:block;
|
|
|
+ }else{
|
|
|
+ span=span+'<span style="width:'+dbtpls[i].width+'px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;float:left;margin-left:10px;">{'+dbtpls[i].field+'}</span>';
|
|
|
+ }
|
|
|
+ if(dbtpls[i].dbField=="true"){
|
|
|
+ me.searchFieldArray=dbtpls[i].field;
|
|
|
+ }
|
|
|
+ width=width+dbtpls[i].width+20;
|
|
|
+ field.push(dbtpls[i].field);
|
|
|
+ sfield=sfield+dbtpls[i].field+',';
|
|
|
+ }
|
|
|
+ me.defaultListConfig.minWidth=width+10;
|
|
|
+ me.defaultListConfig.maxHeight=210;
|
|
|
+ me.defaultListConfig.autoScroll=true;
|
|
|
+ me.searchField=sfield.substring(0,sfield.length-1);
|
|
|
+ me.tpl=Ext.create('Ext.XTemplate',
|
|
|
+ '<ul style="padding-left: 0px;"><tpl for=".">',
|
|
|
+ '<li role="option" class="x-boundlist-item" style="list-style:none;">' ,
|
|
|
+ '<div style="height:30px;">',
|
|
|
+ ''+span+'',
|
|
|
+ '</li>',
|
|
|
+ '</tpl></ul>'
|
|
|
+ );
|
|
|
+ me.store=Ext.create('Ext.data.Store', {
|
|
|
+ fields: field,
|
|
|
+ data : []
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //加载数据
|
|
|
+ var data;
|
|
|
+ var url = 'resources/json/purchase/vendorDataDbfind.json';
|
|
|
+ Ext.Ajax.request({
|
|
|
+ url: url,
|
|
|
+ params: '',
|
|
|
+ async:false,
|
|
|
+ success: function(response, opts) {
|
|
|
+ data = Ext.decode(response.responseText);
|
|
|
+ },
|
|
|
+ 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.loadData(data,false);
|
|
|
+ me.expand();
|
|
|
+ }else{
|
|
|
+ me.collapse( );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
onTriggerClick:function(f){
|
|
|
//判断dbfindtrigger归属
|
|
|
f.judge(f);
|
|
|
@@ -50,7 +134,31 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
|
|
|
|
|
|
judge:function(f){
|
|
|
if(f.ownerCt.xtype.indexOf('FormPanel')>-1){
|
|
|
- f.belong = 'form'
|
|
|
+ f.belong = 'form';
|
|
|
+ return 'form'
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ listeners: {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|