Browse Source

查询列表列切换

rainco 7 years ago
parent
commit
43abeacfda

+ 85 - 31
frontend/saas-web/app/util/QueryUtil.js

@@ -57,6 +57,25 @@ Ext.define('saas.util.QueryUtil', {
             }
         });
         return Mode;
+    },
+    turnRelativeGrid:function(grid,queryForm,queryMoreForm){
+        var me = this,
+            Mode = me.getStoreMode(queryForm);
+        if(queryMoreForm){//更多查询
+            if(Mode=="MAIN"){
+                me.getStoreMode(queryMoreForm);
+            }
+        }
+        console.log("Mode:"+Mode);
+        if(Mode=="MAIN"){
+            grid.loadPage(1);
+        }else{
+            //若明细字段含明细字段注意切换数据源 grid.reconfigure(store, columns);
+            //关联viewName = 关联viewName+"-RelativeGrid" selModel
+            //grid.selModel = '';
+            grid.reconfigure(grid.store, grid._relativeColumn);
+            grid.loadPage(1);
+        }
     },
       /**
      * 获得form的字段查询条件
@@ -152,10 +171,41 @@ Ext.define('saas.util.QueryUtil', {
                                     condition += ' AND (' + f.name + " like '" + f.value + "')";
                                 }
                             } else {
-                                if(condition == ''){
-                                    condition += '('+f.name + "='" + f.value + "')";
-                                } else {
-                                    condition += ' AND (' + f.name + "='" + f.value + "')";
+                                if(f.queryType=='VAG'){
+                                    if(condition == ''){
+                                        if(me.contains(f.name.toString(), '#', true)){
+                                            var nameArr = f.name.split("#");
+                                            Ext.each(nameArr, function(nameItem,index) {
+                                                if(index==0){
+                                                    condition = (nameItem+ " like '%" +f.value + "%'");
+                                                }else{
+                                                    condition += " or "+nameItem+ " like '%" +f.value + "%' ";
+                                                }
+                                            });
+                                        }else{
+                                            condition += '('+ f.name + " like '%" + f.value + "%')";
+                                        }
+                                    } else {
+                                        if(me.contains(f.name.toString(), '#', true)){
+                                            var nameArr = f.name.split("#");
+                                            Ext.each(nameArr, function(nameItem,index) {
+                                                if(index==0){
+                                                    condition = ' AND ('+(nameItem+ " like '%" +f.value + "%'");
+                                                }else{
+                                                    condition += " or "+nameItem+ " like '%" +f.value + "%' ";
+                                                }
+                                            });
+                                            condition+=')';
+                                        }else{
+                                            condition += ' AND (' + f.name + " like '%" + f.value + "%')";
+                                        }
+                                    }
+                                }else{
+                                    if(condition == ''){
+                                        condition += '('+f.name + "='" + f.value + "')";
+                                    } else {
+                                        condition += ' AND (' + f.name + "='" + f.value + "')";
+                                    }
                                 }
                             }
                         }
@@ -182,30 +232,30 @@ Ext.define('saas.util.QueryUtil', {
      * 
      */
     queryData: function(grid,condition){
-        var me = this;
-            if(Ext.isEmpty(condition)){
-                condition =" 1=1 ";
-            }
-            var params = { keyword: condition,number:1,size:15 };
-            var dataRes = {
-                url :grid.listUrl,
-                async:false,
-                params:params
-            };
-            me.BaseUtil.request(dataRes)
-            .then(function(response) {
-                var res = Ext.decode(response.responseText);
-                if(res.success) {
-                    var data = res.data;
-                    console.log(data);
-                     grid.getStore().loadData(data.list);
-                     grid.fireEvent('afterLoadData', grid, data.list);
-                }
-            })
-            .catch(function(response) {
-                console.log(response);
-                // something...
-            });
+        // var me = this;
+        //     if(Ext.isEmpty(condition)){
+        //         condition =" 1=1 ";
+        //     }
+        //     var params = { keyword: condition,number:1,size:15 };
+        //     var dataRes = {
+        //         url :grid.listUrl,
+        //         async:false,
+        //         params:params
+        //     };
+        //     me.BaseUtil.request(dataRes)
+        //     .then(function(response) {
+        //         var res = Ext.decode(response.responseText);
+        //         if(res.success) {
+        //             var data = res.data;
+        //             console.log(data);
+        //              grid.getStore().loadData(data.list);
+        //              grid.fireEvent('afterLoadData', grid, data.list);
+        //         }
+        //     })
+        //     .catch(function(response) {
+        //         console.log(response);
+        //         // something...
+        //     });
     },
     onQuery: function(parentForm,queryMoreForm){
         var me = this,
@@ -260,7 +310,8 @@ Ext.define('saas.util.QueryUtil', {
                 }
                 if(grid._codeField){
 					o['code'] = item.data[grid._codeField];
-				}
+                }
+                o['name'] = '';
 				data.push(o);
             }
 		});
@@ -271,10 +322,13 @@ Ext.define('saas.util.QueryUtil', {
 	 * grid:原始字符串
 	 */
     vastRes:function(url,params){
-        var me = this;
+        console.log("params",params);
+        var me = this,
+        pp ={baseDTOs:params} ;
+        console.log("pp",pp);
         me.BaseUtil.request({
                 url: url,
-                params: JSON.stringify(params),
+                params: JSON.stringify(pp),
                 method: 'POST',
             })
             .then(function() {

+ 37 - 59
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -7,12 +7,13 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
     GridUtil: Ext.create('saas.util.GridUtil'),
 
     //字段属性
-    _BaseColumn: '',
-    _RelativeColumn: '',
+    _baseColumn: [],
+    _relativeColumn: [],
     _idField:'',
     _codeField:'',
-    //数据属性
-    listUrl:'http://192.168.253.58:8800/purchase/list',
+    _title:'',
+    _addXtype:'',
+    _baseVastUrl:'',
 
     //基础属性
     border: 1,
@@ -35,7 +36,8 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 data: [],
                 proxy: {
                     type: 'ajax',
-                    url: me.listUrl,
+                    // url: me.listUrl,
+                    url: 'http://192.168.253.58:8800/purchase/list',
                     actionMethods: {
                         read: 'GET'
                     },
@@ -57,40 +59,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                             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 = '';
-                        if(Ext.isEmpty(condition)){
-                            condition = " 1=1 ";
-                        }
-                        console.log("condition:"+condition);
-                        Ext.apply(store.proxy.extraParams, {
-                            number:op._page,
-                            size:store.pageSize,
-                            keyword: condition
-                        });
-                        
+    
                     }
                 }
             }),
@@ -129,13 +98,22 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
     },
 
     listeners: {
-        itemClick: function (tableView, record, item, index, e, eOpts) {
+        itemdblClick: function (tableView, record, item, index, e, eOpts) {
             var grid = tableView.up('grid'),
-                _idField = grid._idField,
-                store = grid.store,
-                count = store.getCount();
-            console.log("store");
-            console.log(store);
+                mainTab = Ext.getCmp('main-tab-panel'),
+                idValue = record.get(grid._idField),
+                codeValue = record.get(grid._codeField),
+                id = grid.xtype + idValue;
+                existingItem = mainTab.down('[id=' + id + ']');
+            if (!existingItem) {
+                var form = {
+                    xtype:grid._addXtype,
+                    id,
+                    title:grid._title+"("+codeValue+")",
+                    initId:idValue
+                };
+                mainTab.setActiveTab(mainTab.add(form));
+            }
         }
     },
 
@@ -148,26 +126,26 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         });
     },
     onAddMore: function (btn) {
-        console.log("跳转到主从表");
-        var form = btn.ownerCt.ownerCt,
+        var grid = btn.ownerCt.ownerCt,
             mainTab = Ext.getCmp('main-tab-panel'),
-            id = form.xtype + '_add';
+            id = grid.xtype + '_add';
             existingItem = mainTab.down('[id=' + id + ']');
-
         if (!existingItem) {
-            var form = Ext.create('saas.view.purchase.panel.FormPanel', {
+            var form = {
+                xtype:grid._addXtype,
                 id,
-                title:'新增采购单'
-            });
+                title:'新增'+grid._title
+            };
             mainTab.setActiveTab(mainTab.add(form));
         }
     },
     onAudit: function(btn){
         var grid = btn.ownerCt.ownerCt,
-        vastUrl = grid.ownerCt._baseVastUrl+"batchAudit";
-        var selectsd = grid.QueryUtil.getGridSelected(grid);
-        console.log("审核","vastUrl:"+vastUrl,grid,"selectsd:"+selectsd);
+        vastUrl = grid._baseVastUrl+"batchAudit",
+        selectsd = grid.QueryUtil.getGridSelected(grid),
+        currentPage = grid.getStore().currentPage;
         grid.QueryUtil.vastRes(vastUrl,selectsd);
+        grid.getStore().loadPage(currentPage);
     },
     onPrint: function () {
         console.log("打印");
@@ -176,11 +154,11 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         console.log("导出");
     },
     onDelete: function (btn) {
-        console.log("删除该行");
         var grid = btn.ownerCt.ownerCt,
-        vastUrl = grid.ownerCt._baseVastUrl+"batchDelete";
-        var selectsd = grid.QueryUtil.getGridSelected(grid);
-        console.log("删除该行","vastUrl:"+vastUrl,grid,"selectsd:"+selectsd);
+        vastUrl = grid._baseVastUrl+"batchDelete",
+        selectsd = grid.QueryUtil.getGridSelected(grid),
+        currentPage = grid.getStore().currentPage;;
         grid.QueryUtil.vastRes(vastUrl,selectsd);
+        grid.getStore().loadPage(currentPage);
     }
 });

+ 4 - 3
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -8,7 +8,6 @@ Ext.define('saas.view.core.query.QueryPanel', {
     layout: 'anchor',
     autoScroll: true,
     margin: '0',
-    _baseVastUrl:'',
     items: [{
         anchor: '100% 30%',
         reference: 'queryform',
@@ -43,14 +42,16 @@ Ext.define('saas.view.core.query.QueryPanel', {
     setQueryItems: function (items) {
         var me = this,
         queryForm = me.items[0];
-
         queryForm.items = items;
     },
 
     setQuertGridConfigs: function() {
         var me = this,
         queryGrid = me.items[1];
-        Ext.apply(queryGrid, me.queryGridConfig);
+        me.queryGridConfig['Columns']=me.queryGridConfig._baseColumn;
+        console.log('me.queryGridConfig:',me.queryGridConfig);
+        Ext.apply(queryGrid,me.queryGridConfig);
+        debugger;
     }
 
 });

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

@@ -29,8 +29,9 @@ Ext.define('saas.view.core.query.QueryPanelController', {
     },
     onQuery: function (btn) {
         var me = this,
-        panel = me.getView(),
-        model = me.getViewModel();
-        console.log("查询: ", model.getData());
+        queryForm = btn.ownerCt.ownerCt.down('form'),
+        grid = btn.ownerCt.ownerCt.down('grid');
+        console.log("queryForm:",queryForm,"grid:",grid);
+        //turnRelativeGrid(grid,queryForm);
     }
 });

+ 57 - 2
frontend/saas-web/app/view/test/query/QueryPanel.js

@@ -83,10 +83,11 @@ Ext.define('saas.view.test.query.QueryPanel', {
         columnWidth: 0.25
     }, {
         xtype: 'dbfindtrigger',
-        name: 'pd_prodcode',
+        name: 'pd_prodcode#pd_prodcode',
         bind: '{pd_prodcode}',
         fieldLabel: '物料编号',
         fieldMode: 'DETAIL',
+        queryType:'VAG',
         allowBlank: true,
         columnWidth: 0.25,
         configUrl: 'resources/json/purchase/vendorColumnsDbfind.json',
@@ -159,7 +160,10 @@ Ext.define('saas.view.test.query.QueryPanel', {
     queryGridConfig: {
         _idField:'pu_id',
         _codeField:'pu_code',
-        columns: [{
+        _title:'采购单',
+        _addXtype:'test-order-formpanel',
+        _baseVastUrl:'http://192.168.253.58:8800/purchase/',
+        _baseColumn: [{
             text: '序号',
             width: 80,
             xtype: 'rownumberer'
@@ -195,6 +199,57 @@ Ext.define('saas.view.test.query.QueryPanel', {
             dataIndex: 'pu_total',
             xtype:'numbercolumn',
             width: 120
+        }],
+        _relativeColumn: [{
+            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
+        }, {
+            text: '下单日期',
+            dataIndex: 'pu_indate',
+            xtype:'datecolumn',
+            width: 200
+        },{
+            text: '供应商名称',
+            dataIndex: 'pu_vendname',
+            width: 120
+        },{
+            text: '采购序号',
+            dataIndex: 'pd_detno',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '物料编号',
+            dataIndex: 'pd_prodcode',
+            width: 120
+        },{
+            text: '数量',
+            dataIndex: 'pd_qty',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '单价',
+            dataIndex: 'pd_price',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '已转数',
+            dataIndex: 'pd_ytqy',
+            xtype:'numbercolumn',
+            width: 120
         }]
     }
 });

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

@@ -3,7 +3,7 @@ Ext.define('saas.view.test.query.QueryPanelModel', {
     alias: 'viewmodel.test-query-querypanel',
 
     data: {
-        pu_total: '3333',
-        pu_code: '4'
+       // pu_total: '3333',
+        //pu_code: '4'
     }
 });