Browse Source

Merge remote-tracking branch 'origin/dev' into dev

guq 7 years ago
parent
commit
749d793df2

+ 55 - 21
frontend/saas-web/app/util/QueryUtil.js

@@ -95,7 +95,7 @@ Ext.define('saas.util.QueryUtil', {
 					} else {
 					} else {
 						condition += ' AND ' + f.name + endChar + f.value;
 						condition += ' AND ' + f.name + endChar + f.value;
 					}
 					}
-				} else if(f.xtype == 'combo' && f.value == '$ALL'){
+				} else if(f.xtype == 'combo' && f.value != '$ALL'){
 					if(f.store.data.length > 1) {
 					if(f.store.data.length > 1) {
 						if(condition == ''){
 						if(condition == ''){
 							condition += '(';
 							condition += '(';
@@ -106,9 +106,9 @@ Ext.define('saas.util.QueryUtil', {
 						f.store.each(function(d, idx){
 						f.store.each(function(d, idx){
 							if(d.data.value != '$ALL') {
 							if(d.data.value != '$ALL') {
 								if(_a == ''){
 								if(_a == ''){
-									_a += f.name + "='" + d.data.value + "'";
+									_a += f.name +' '+  d.data.value+' ' ;
 								} else {
 								} else {
-									_a += ' OR ' + f.name + "='" + d.data.value + "'";
+									_a += ' OR ' + f.name +' '+ d.data.value +' ';
 								}
 								}
 							}
 							}
 						});
 						});
@@ -183,14 +183,8 @@ Ext.define('saas.util.QueryUtil', {
      */
      */
     queryData: function(grid,condition){
     queryData: function(grid,condition){
         var me = this;
         var me = this;
-        //判断是否加载数据
-        //      url = config.url,
-        //     params = config.params,
-        //     async = config.async || true,
-        //     method = config.method || 'GET',
-        //     timeout = config.timeout || 8000;
             if(Ext.isEmpty(condition)){
             if(Ext.isEmpty(condition)){
-                condition ="1=1";
+                condition =" 1=1 ";
             }
             }
             var params = { keyword: condition,number:1,size:15 };
             var params = { keyword: condition,number:1,size:15 };
             var dataRes = {
             var dataRes = {
@@ -214,33 +208,73 @@ Ext.define('saas.util.QueryUtil', {
             });
             });
     },
     },
     onQuery: function(parentForm,queryMoreForm){
     onQuery: function(parentForm,queryMoreForm){
-        var grid = parentForm.down('grid'),
-            condition = me.QueryUtil.getFormCondition(queryForm),
-            Mode = me.QueryUtil.getStoreMode(queryForm);
+        var me = this,
+            grid = parentForm.down('grid'),
+            queryForm = parentForm.down('form'),
+            condition = me.getFormCondition(queryForm),
+            Mode = me.getStoreMode(queryForm);
         if(queryMoreForm){//更多查询
         if(queryMoreForm){//更多查询
             if(!Ext.isEmpty(condition)){
             if(!Ext.isEmpty(condition)){
-                condition = " and ( "+me.QueryUtil.getStoreMode(queryMoreForm)+" ) ";
+                condition = " and ( "+me.getStoreMode(queryMoreForm)+" ) ";
             }else{
             }else{
-                condition = me.QueryUtil.getStoreMode(queryMoreForm);
+                condition = me.getStoreMode(queryMoreForm);
             }
             }
             if(Mode=="MAIN"){
             if(Mode=="MAIN"){
-                me.QueryUtil.getStoreMode(queryMoreForm);
+                me.getStoreMode(queryMoreForm);
             }
             }
         }
         }
         console.log("condition:"+condition);
         console.log("condition:"+condition);
         condition = " 1=1 ";
         condition = " 1=1 ";
         if(Mode=="MAIN"){
         if(Mode=="MAIN"){
             console.log("Mode:"+Mode+",查询当前列表");
             console.log("Mode:"+Mode+",查询当前列表");
-            me.queryData(grid,condition);
+            grid.loadPage(1);
         }else{
         }else{
             console.log("Mode:"+Mode+",查询当前关联列表");
             console.log("Mode:"+Mode+",查询当前关联列表");
             //若明细字段含明细字段注意切换数据源 grid.reconfigure(store, columns);
             //若明细字段含明细字段注意切换数据源 grid.reconfigure(store, columns);
             //关联viewName = 关联viewName+"-RelativeGrid"
             //关联viewName = 关联viewName+"-RelativeGrid"
-            var viewName = parentForm.viewName+"-RelativeGrid";
-                console.log("grid:");
-                console.log(grid);
-                me.GridUtil.setColumns(grid,"http://192.168.0.181:8560/api/ui/co_view/config?name="+viewName);
+            grid.loadPage(1);
         }
         }
 
 
+    },
+    add10EmptyRow: function(grid) {
+        var store = grid.getStore(),
+            selectedRecord = grid.selModel.lastSelected,
+            datas = [];
+        Ext.Array.each(new Array(10), function() {
+            datas.push({});
+        })
+        store.insert(store.indexOf(selectedRecord) + 1, datas);
+    },
+    /**
+     * 获取grid被选数据
+	 * grid:原始字符串
+	 */
+    getGridSelected:function(grid){
+        var items = grid.selModel.getSelection(),
+        data = new Array();
+		Ext.each(items, function(item, index){
+			if(!Ext.isEmpty(item.data[grid._idField])&&!Ext.isEmpty(item.data[grid._codeField])){
+				var o = new Object();
+				if(grid._idField){
+					o[grid._idField] = item.data[grid._idField];
+                }
+                if(grid._codeField){
+					o[grid._codeField] = item.data[grid._codeField];
+				}
+				data.push(o);
+            }
+		});
+		return JSON.stringify(data);
     }
     }
+    // me.BaseUtil.request({
+    //     url: form._saveUrl,
+    //     params: JSON.stringify(params),
+    //     method: 'POST',
+    // })
+    // .then(function() {
+    //     Ext.Msg.alert('提示','保存成功');
+    // })
+    // .catch(function() {
+    //     Ext.Msg.alert('提示','保存失败');
+    // });
 });
 });

+ 1 - 1
frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js

@@ -48,7 +48,7 @@ Ext.define('saas.view.core.dbfind.DbfindGridPanel', {
                     if(field){
                     if(field){
                         var val = record.get(item.from);
                         var val = record.get(item.from);
                         if(field.xtype=='dbfindtrigger'){
                         if(field.xtype=='dbfindtrigger'){
-                            field.setRawValue(val);
+                            field.setValue(val);
                             field.lastTriggerValue=val;
                             field.lastTriggerValue=val;
                         }else{
                         }else{
                             field.setValue(val);
                             field.setValue(val);

+ 5 - 133
frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js

@@ -1,101 +1,17 @@
 Ext.define('saas.view.core.dbfind.DbfindTrigger', {
 Ext.define('saas.view.core.dbfind.DbfindTrigger', {
-    extend: 'Ext.form.ComboBox',
+    extend: 'Ext.form.field.Trigger',
     xtype: 'dbfindtrigger',
     xtype: 'dbfindtrigger',
-    queryMode: 'local',
-    displayField: 'dispaly',
-    valueField: 'value',
     triggerCls: 'x-form-search-trigger',
     triggerCls: 'x-form-search-trigger',
+
     GridUtil: Ext.create('saas.util.GridUtil'),
     GridUtil: Ext.create('saas.util.GridUtil'),
     BaseUtil: Ext.create('saas.util.BaseUtil'),
     BaseUtil: Ext.create('saas.util.BaseUtil'),
+
     minChars:1, // 设置用户输入字符多少时触发查询
     minChars:1, // 设置用户输入字符多少时触发查询
     tpl: '',
     tpl: '',
     enableKeyEvents:true,
     enableKeyEvents:true,
     initComponent:function() {
     initComponent:function() {
         var me = this;
         var me = this;
-        me.store=Ext.create('Ext.data.Store', {
-            fields: ['display','value'],
-            data : [{
-                'display':me.value,
-                'value':me.value
-            }]
-        });
-        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.setFields(field);
-                    }
-                }
-                //加载数据
-                var data;
-                Ext.Ajax.request({
-                    url: me.dataUrl,
-                    params: '',
-                    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);
-                    }
-                });                
-            }
-            return true;
-    	}else{
-    		return false;
-    	}
+        this.callParent(arguments);
     },
     },
     onTriggerClick:function(f){
     onTriggerClick:function(f){
         //判断dbfindtrigger归属
         //判断dbfindtrigger归属
@@ -137,51 +53,7 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     listeners: {
     listeners: {
         focus: function(f) {
         focus: function(f) {
             return true;
             return true;
-		},
-		select:function(combo,record,eOpts){
-            var me = combo;
-            var dbfinds = me.dbfinds;
-            if(dbfinds&&dbfinds.length>0){
-                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);
-                            }    
-                        }
-                    }
-                }
-            }
-        }
-    },
-
-    getValue: function(f) {
-        var me = this,val = me.rawToValue(me.processRawValue(me.getRawValue()));
-        me.value = val;
-        return val;
+		}
     },
     },
 
 
     autoSetValue: function(data, dbfinds) {
     autoSetValue: function(data, dbfinds) {

+ 232 - 0
frontend/saas-web/app/view/core/dbfind/DbfindTrigger2.js

@@ -0,0 +1,232 @@
+Ext.define('saas.view.core.dbfind.DbfindTrigger2', {
+    extend: 'Ext.form.ComboBox',
+    xtype: 'dbfindtrigger2',
+    queryMode: 'local',
+    displayField: 'dispaly',
+    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;
+        me.store=Ext.create('Ext.data.Store', {
+            fields: ['display','value'],
+            data : [{
+                'display':me.value,
+                'value':me.value
+            }]
+        });
+        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.setFields(field);
+                    }
+                }
+                //加载数据
+                var data;
+                Ext.Ajax.request({
+                    url: me.dataUrl,
+                    params: '',
+                    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);
+                    }
+                });                
+            }
+            return true;
+    	}else{
+    		return false;
+    	}
+    },
+    onTriggerClick:function(f){
+        //判断dbfindtrigger归属
+        var belong = f.judge(f);
+        var win = Ext.create('Ext.window.Window', {   
+            trigger:f,
+            belong:f.ownerCt,  
+            modal:true,
+            height: '80%',
+            width: '80%',
+            title: '查找',
+            scrollable: true,
+            bodyPadding: 10,
+            constrain: true,
+            closable: true,
+            layout:'fit',
+            renderTo:Ext.getCmp('main-tab-panel').getActiveTab().getEl(),
+            items:[{
+                xtype:'dbfindgridpanel',
+                columns: f.dbColumns,
+                dataUrl: f.dataUrl,
+                dbfinds: f.dbfinds
+            }]
+        });
+        win.show();
+    },
+
+    judge:function(f){
+        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('FORMPANEL')>-1){
+            f.belong = 'form';
+            return 'form'
+        }
+        else if(f.column){
+            f.belong = 'grid';
+            return 'grid'
+        }
+    },
+
+    listeners: {
+        focus: function(f) {
+            return true;
+		},
+		select:function(combo,record,eOpts){
+            var me = combo;
+            var dbfinds = me.dbfinds;
+            if(dbfinds&&dbfinds.length>0){
+                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);
+                            }    
+                        }
+                    }
+                }
+            }
+        }
+    },
+
+    getValue: function(f) {
+        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='';
+	}
+
+});

+ 9 - 20
frontend/saas-web/app/view/core/query/QueryFormPanel.js

@@ -33,26 +33,15 @@ Ext.define('saas.view.core.query.QueryFormPanel', {
             xtype: 'button',
             xtype: 'button',
             text: '查询',
             text: '查询',
             handler: 'onQuery'
             handler: 'onQuery'
-        }, '->']
+        }, '->', {
+            xtype: 'button',
+            text: 'Debugger',
+            handler: function(btn) {
+                var queryFormPanel = btn.up('form'),
+                queryPanel = queryFormPanel.up('panel');
+                debugger;
+            }
+        }]
     }]
     }]
 
 
-    // controller: 'core-query-formpanel',
-    // viewModel: 'core-query-formpanel',
-    
-    //  //工具类
-    //  BaseUtil: Ext.create('saas.util.BaseUtil'),
-    //  QueryUtil: Ext.create('saas.util.QueryUtil'),
- 
-    // //基础属性 
-    // layout: 'anchor',
-    // autoScroll: true,
-    // border: 1,
-    // frame:true,
-    // margin:'0',
-    // initComponent: function() {
-    //     var me = this,
-    //     remoteConfig = me.remoteConfig;
-    //     remoteConfig && me.QueryUtil.setItems(me);
-    //     me.callParent(arguments);
-    // }
 });
 });

+ 141 - 65
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -1,121 +1,197 @@
 Ext.define('saas.view.core.query.QueryGridPanel', {
 Ext.define('saas.view.core.query.QueryGridPanel', {
     extend: 'Ext.grid.Panel',
     extend: 'Ext.grid.Panel',
     xtype: 'core-query-querygridpanel',
     xtype: 'core-query-querygridpanel',
-    
+
     //工具类
     //工具类
     QueryUtil: Ext.create('saas.util.QueryUtil'),
     QueryUtil: Ext.create('saas.util.QueryUtil'),
     GridUtil: Ext.create('saas.util.GridUtil'),
     GridUtil: Ext.create('saas.util.GridUtil'),
-    
+
     //字段属性
     //字段属性
-    _codeField: '',
-    _statusField: '',
-    _idField: '',
     _BaseColumn: '',
     _BaseColumn: '',
     _RelativeColumn: '',
     _RelativeColumn: '',
+    _auditUrl:'',
+    _printUrl:'',
+    _deleteUrl:'',
     //数据属性
     //数据属性
-    listUrl:'http://192.168.0.181:8560/api/purchase/purchase/list',
+    listUrl:'http://192.168.253.58:8800/purchase/list',
 
 
     //基础属性
     //基础属性
     border: 1,
     border: 1,
     anchor: '100% 70%',
     anchor: '100% 70%',
     loadMask: true,
     loadMask: true,
-    frame:true,
+    frame: true,
     showIndex: true,
     showIndex: true,
-    columnWidth:1.0,
-    showRowNum:true,
-	autoQuery: true,
-    selModel:'checkboxmodel',
-    store: {
-        data: []
-    },
-   
-    initComponent: function() {
+    columnWidth: 1.0,
+    showRowNum: true,
+    autoQuery: true,
+    selModel: 'checkboxmodel',
+
+    initComponent: function () {
         var me = this;
         var me = this;
         Ext.apply(me, {
         Ext.apply(me, {
+            store: Ext.create('Ext.data.Store', {
+                fields: me.getFields(),
+                autoLoad: true,
+                pageSize: 5,
+                data: [],
+                proxy: {
+                    type: 'ajax',
+                    url: me.listUrl,
+                    actionMethods: {
+                        read: 'GET'
+                    },
+                    reader: {
+                        type: 'json',
+                        rootProperty: 'data.list',
+                        totalProperty: 'data.total',
+                    }
+                },
+                listeners: {
+                    beforeload: function (store, op) {
+                        var condition = '';
+                        if (Ext.isEmpty(condition)) {
+                            condition = " 1=1 ";
+                        }
+                        console.log("condition:" + condition);
+                        Ext.apply(store.proxy.extraParams, {
+                            number: op._start + 1,
+                            size: store.pageSize,
+                            keyword: condition
+                        });
+
+                    }
+                }
+            }),
+            store:Ext.create('Ext.data.Store',{
+                fields:me.fields,
+                autoLoad: true,
+                pageSize:5,
+                data:[],
+                proxy:{
+                    type:'ajax',
+                    url:me.listUrl ,
+                    actionMethods: {
+                        read   : 'GET'
+                    },
+                    reader:{
+                        type:'json',
+                        rootProperty:'data.list'
+                        ,totalProperty:'data.total',
+                        }
+                },
+                listeners : {
+                    beforeload : function(store,op) {
+                        var condition = '';
+                        // var queryForm = Ext.getCmp('core-query-queryformpanel'),
+                        // queryMoreForm = Ext.getCmp('core-query-querymoreformpanel'),
+                        // condition = me.up('core-query-formpanel').QueryUtil.getFormCondition(queryForm);
+                        // if(queryMoreForm){//更多查询
+                        //     if(!Ext.isEmpty(condition)){
+                        //         condition = " and ( "+me.up('core-query-formpanel').QueryUtil.getStoreMode(queryMoreForm)+" ) ";
+                        //     }else{
+                        //         condition = me.getStoreMode(queryMoreForm);
+                        //     }
+                        // }
+                        if(Ext.isEmpty(condition)){
+                            condition = " 1=1 ";
+                        }
+                        console.log("condition:"+condition);
+                        Ext.apply(store.proxy.extraParams, {
+                            number:op._start+1,
+                            size:store.pageSize,
+                            keyword: condition
+                        });
+                        
+                    }
+                }
+            }),
             dockedItems: [{
             dockedItems: [{
                 xtype: 'toolbar',
                 xtype: 'toolbar',
                 dock: 'top',
                 dock: 'top',
-                items: ['->',{
-                    text:'新增',
-                    handler:me.onAddMore
+                items: ['->', {
+                    text: '新增',
+                    handler: me.onAddMore
                 }, {
                 }, {
-                    text:'审核',
+                    text: '审核',
                     handler: me.onAudit
                     handler: me.onAudit
                 }, {
                 }, {
-                    text:'打印',
+                    text: '打印',
                     handler: me.onPrint
                     handler: me.onPrint
                 }, {
                 }, {
-                    text:'导出',
+                    text: '导出',
                     handler: me.onExport
                     handler: me.onExport
                 }, {
                 }, {
-                    text:'删除',
+                    text: '删除',
                     handler: me.onDelete
                     handler: me.onDelete
                 }]
                 }]
-            }],
-            bbar: {
+            }, {
                 xtype: 'pagingtoolbar',
                 xtype: 'pagingtoolbar',
+                dock: 'bottom',
+                id: 'query-bbar',
                 displayInfo: true,
                 displayInfo: true,
-                displayMsg: 'Displaying topics {0} - {1} of {2}',
                 emptyMsg: "暂无数据",
                 emptyMsg: "暂无数据",
-            },
-            store: me.setStore()
+                store: me.store,
+                displayMsg: '当前显示第{0}到{1}条数据,一共有{2}条',
+                beforePageText: "当前第",
+                afterPageText: "页,共{0}页"
+            }],
         });
         });
-        me.listUrl && me.QueryUtil.queryData(me);
         me.callParent(arguments);
         me.callParent(arguments);
     },
     },
 
 
     listeners: {
     listeners: {
-        afterrender: function(grid) {
-            //没数据先暂时这样处理下
-            if(grid.store.count()==0){
-                grid.add10EmptyRow();
-            }
-        },
-        itemClick: function(tableView, record, item, index, e, eOpts) {
+        itemClick: function (tableView, record, item, index, e, eOpts) {
             var grid = tableView.up('grid'),
             var grid = tableView.up('grid'),
+                _idField = grid._idField,
                 store = grid.store,
                 store = grid.store,
                 count = store.getCount();
                 count = store.getCount();
-                console.log("store");
-                console.log(store);
+            console.log("store");
+            console.log(store);
         }
         }
     },
     },
-    add10EmptyRow: function() {
-        var me = this,
-            store = me.getStore(),
-            selectedRecord = me.selModel.lastSelected,
-            datas = [];
-        Ext.Array.each(new Array(10), function() {
-            datas.push({});
-        })
-        store.insert(store.indexOf(selectedRecord) + 1, datas);
+
+    getFields: function() {
+        var me = this;
+
+        return me.columns.filter(function(c) {
+            return !!c.dataIndex;
+        }).map(function(c) {
+            return c.dataIndex;
+        });
     },
     },
-    setStore:function(){
-        var me=this;
-        var store =  {
-                data: []
+    onAddMore: function (btn) {
+        console.log("跳转到主从表");
+        var form = btn.ownerCt.ownerCt;
+        var mainTab = Ext.getCmp('main-tab-panel'),
+        id = 'test-order-formpanel' + '_add',
+        existingItem = mainTab.down('[id=' + id + ']');
+        if (!existingItem) {
+            var form = {
+                id,
+                title:'采购单',
+                xtype:'test-order-formpanel'
             };
             };
-        if(me.fields){
-            var store=Ext.create('Ext.data.Store',{
-                fields:me.fields,
-                autoLoad: true,
-                data :[]
-            });
+            mainTab.setActiveTab(mainTab.add(form));
+        }else{
+            mainTab.setActiveTab(existingItem);
         }
         }
-        return store;
     },
     },
-    onAddMore: function(btn) {
-        console.log("跳转到主从表");
-    },
-    onAudit: function(){
+    onAudit: function(btn){
+        var grid = btn.ownerCt.ownerCt;
         console.log("审核");
         console.log("审核");
+        console.log("grid");
+        var selectsd = grid.up('core-query-formpanel').QueryUtil.getGridSelected(grid);
+        console.log(selectsd);
+        //_baseVastUrl+"batchAudit"
+
     },
     },
-    onPrint: function(){
+    onPrint: function () {
         console.log("打印");
         console.log("打印");
     },
     },
-    onExport: function(){
+    onExport: function () {
         console.log("导出");
         console.log("导出");
     },
     },
-    onDelete: function() {
+    onDelete: function () {
         console.log("删除该行");
         console.log("删除该行");
     }
     }
 });
 });

+ 9 - 1
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -22,6 +22,7 @@ Ext.define('saas.view.core.query.QueryPanel', {
     initComponent: function () {
     initComponent: function () {
         var me = this;
         var me = this;
         me.setQueryItems(me.queryFormItems);
         me.setQueryItems(me.queryFormItems);
+        me.setQuertGridColumns(me.queryGridConfig);
         me.callParent(arguments);
         me.callParent(arguments);
     },
     },
 
 
@@ -41,9 +42,16 @@ Ext.define('saas.view.core.query.QueryPanel', {
 
 
     setQueryItems: function (items) {
     setQueryItems: function (items) {
         var me = this,
         var me = this,
-            queryForm = me.items[0];
+        queryForm = me.items[0];
 
 
         queryForm.items = items;
         queryForm.items = items;
     },
     },
 
 
+    setQuertGridColumns: function(config) {
+        var me = this,
+        queryGrid = me.items[1];
+
+        Ext.apply(queryGrid, config);
+    }
+
 });
 });

+ 3 - 2
frontend/saas-web/app/view/core/query/QueryPanelController.js

@@ -28,8 +28,9 @@ Ext.define('saas.view.core.query.QueryPanelController', {
         win.show();
         win.show();
     },
     },
     onQuery: function (btn) {
     onQuery: function (btn) {
-        console.log("查询");
         var me = this,
         var me = this,
-        panel = me.getView();
+        panel = me.getView(),
+        model = me.getViewModel();
+        console.log("查询: ", model.getData());
     }
     }
 });
 });

+ 1 - 1
frontend/saas-web/app/view/main/MainModel.js

@@ -56,7 +56,7 @@ Ext.define('saas.view.main.MainModel', {
                                     {
                                     {
                                         id: 'myquerytest',
                                         id: 'myquerytest',
                                         text: '测试-采购单查询界面',
                                         text: '测试-采购单查询界面',
-                                        viewType: 'test-query-formpanel',
+                                        viewType: 'test-query-querypanel',
                                         leaf: true
                                         leaf: true
                                     },
                                     },
                                     {
                                     {

+ 0 - 82
frontend/saas-web/app/view/test/query/QueryFormPanel.js

@@ -1,82 +0,0 @@
-Ext.define('saas.view.test.query.QueryFormPanel', {
-    extend: 'Ext.form.Panel',
-    xtype: 'test-query-queryformpanel',
-
-    QueryUtil: Ext.create('saas.util.QueryUtil'),
-
-    viewModel: 'test-query-queryformpanel',
-    viewName:'',
-    layout: 'column',
-    autoScroll: true,
-    anchor: '100% 30%',
-    buttonAlign : 'center',
-    bodyPadding: 5,
-    labelSeparator : ':',
-    defaults:{
-		xtype:'textfield',
-		columnWidth:0.33,
-		margin:'5 5 5 5'
-	},
-    fieldDefaults: {
-        margin: '0 5 5 0',
-        labelAlign: 'right',
-        labelWidth: 90,
-        columnWidth: 0.25,
-        blankText: '该字段不能为空'
-    },
-
-    remoteConfig: false, // 是否需要从远端读取form配置
-    bindFields: [], // 已绑定字段(需要保存到数据库)
-    initComponent: function() {
-        var me = this;
-        Ext.apply(me, {
-            dockedItems: [{
-                xtype: 'toolbar',
-                dock: 'bottom',
-                style: {
-                    'border-bottom': '1px solid #35baf6 !important'
-                },
-                items: ['->',{
-                    xtype: 'button',
-                    text: '更多查询',
-                    handler: me.moreQuery
-                }, {
-                    xtype: 'button',
-                    text: '查询',
-                    handler: me.onQuery
-                },'->']
-            }]
-        });
-        me.callParent(arguments);
-    },
-    moreQuery: function(btn){
-        var win = Ext.getCmp('queryMoreWin');
-        if(!win){
-            win = Ext.create('Ext.window.Window', {
-            id:'queryMoreWin', 
-            modal:true,
-            height: '50%',
-            width: '50%',
-            title: '更多查询',
-            scrollable: true,
-            bodyPadding: 10,
-            constrain: true,
-            closable: true,
-            layout:'fit',
-            renderTo:Ext.getCmp('main-tab-panel').getActiveTab().getEl(),
-            items:[{
-                xtype:'core-query-querymoreformpanel',
-                viewName:btn.ownerCt.ownerCt.ownerCt.viewName+"-moreQuery",
-                items:[]
-            }]
-        });
-    };
-        win.show();
-    },
-    onQuery: function(btn){
-        console.log("查询");
-        var me = this,
-            parentForm = btn.ownerCt.ownerCt.ownerCt;
-        me.QueryUtil.onQuery(parentForm);
-    }
-});

+ 58 - 22
frontend/saas-web/app/view/test/query/QueryPanel.js

@@ -1,9 +1,9 @@
 Ext.define('saas.view.test.query.QueryPanel', {
 Ext.define('saas.view.test.query.QueryPanel', {
     extend: 'saas.view.core.query.QueryPanel',
     extend: 'saas.view.core.query.QueryPanel',
-    xtype: 'test-query-formpanel',
+    xtype: 'test-query-querypanel',
 
 
     // controller: 'test-query-formcontroller',
     // controller: 'test-query-formcontroller',
-    // viewModel: 'test-query-formmodel',
+    viewModel: 'test-query-querypanel',
     viewName: 'test-query-formpanel',
     viewName: 'test-query-formpanel',
 
 
     queryFormItems: [{
     queryFormItems: [{
@@ -20,8 +20,42 @@ Ext.define('saas.view.test.query.QueryPanel', {
         fieldLabel: '单据编号',
         fieldLabel: '单据编号',
         allowBlank: true,
         allowBlank: true,
         columnWidth: 0.25,
         columnWidth: 0.25,
-        configUrl: 'resources/json/purchase/vendorColumnsDbfind.json',
-        dataUrl: 'resources/json/purchase/vendorDataDbfind.json'
+        dataUrl:'http://192.168.253.41:9480/api/document/vendor/getVendorsByCondition',
+        dbfinds:[{
+            from:'ve_code',to:'pu_code'
+        }],
+        dbColumns:[{
+            conditionCode:'ve_id',
+            "text": "供应商ID",
+            "flex": 0,
+            "dataIndex": "ve_id",
+            "width": 0,
+            "xtype": "",
+            "items": null
+        },{
+            conditionCode:'ve_code',
+            "text": "供应商编号",
+            "flex": 1,
+            "dataIndex": "ve_code",
+            "width": 100,
+            "xtype": "",
+            "items": null
+        }, {
+            conditionCode:'ve_name',
+            "text": "供应商名称",
+            "flex": 1,
+            "dataIndex": "ve_name",
+            "xtype": "",
+            "items": null
+        }, {
+            conditionCode:'ve_type',
+            "text": "供应商类型",
+            "flex": 0,
+            "dataIndex": "ve_type",
+            "width": 200,
+            "xtype": "",
+            "items": null
+        }]
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pu_date',
         name: 'pu_date',
@@ -120,22 +154,24 @@ Ext.define('saas.view.test.query.QueryPanel', {
         allowBlank: true,
         allowBlank: true,
         columnWidth: 1
         columnWidth: 1
     }],
     }],
-    queryGridColumns: [{
-        text: '序号',
-        width: 80,
-        xtype: 'rownumberer'
-    }, {
-        text: 'id',
-        dataIndex: 'pu_id',
-        width: 100,
-        xtype: 'numbercolumn'
-    }, {
-        text: '单据编号',
-        dataIndex: 'pu_code',
-        width: 120
-    }, {
-        text: '单据状态',
-        dataIndex: 'pu_status',
-        width: 120
-    }]
+    queryGridConfig: {
+        columns: [{
+            text: '序号',
+            width: 80,
+            xtype: 'rownumberer'
+        }, {
+            text: 'id',
+            dataIndex: 'pu_id',
+            width: 100,
+            xtype: 'numbercolumn'
+        }, {
+            text: '单据编号',
+            dataIndex: 'pu_code',
+            width: 120
+        }, {
+            text: '单据状态',
+            dataIndex: 'pu_status',
+            width: 120
+        }]
+    }
 });
 });

+ 5 - 0
frontend/saas-web/app/view/test/query/QueryPanelController.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.test.query.QueryPanelController', {
+    extend: 'saas.view.core.query.QueryPanelController',
+    alias: 'controller.test-query-querypanel',
+
+});

+ 9 - 0
frontend/saas-web/app/view/test/query/QueryPanelModel.js

@@ -0,0 +1,9 @@
+Ext.define('saas.view.test.query.QueryPanelModel', {
+    extend: 'saas.view.core.query.QueryPanelModel',
+    alias: 'viewmodel.test-query-querypanel',
+
+    data: {
+        pu_total: '3333',
+        pu_code: '4'
+    }
+});