Browse Source

查询列表更多查询、关联列表逻辑/收款单配置

zhuth 7 years ago
parent
commit
dec6ff393c

+ 66 - 33
frontend/saas-web/app/view/core/query/MoreQueryWin.js

@@ -13,43 +13,76 @@ Ext.define('saas.view.core.query.MoreQueryWin', {
     constrain: true,
     closable: true,
     layout: 'fit',
+    items: [{
+        xtype: 'form',
+        layout: 'column',
+        autoScroll: true,
+        buttonAlign : 'center',
+        bodyPadding: 5,
+        //frame:true,
+        defaults: {
+            xtype:'textfield',
+            margin: '0 5 5 0',
+            labelAlign: 'right',
+            labelWidth: 90,
+            columnWidth: 0.5,
+            blankText: '该字段不能为空'
+        },
+        // items:me.queryItems,
+        buttons: [{
+           text:'重置',
+           handler:'onReSetClick'
+        },'->',{
+            text: '查询',
+            handler:'onMoreQuery'
+        }, {
+            text: '关闭',
+            handler:'onCloseClick'
+        }]
+    }],
     initComponent:function(){
         var me=this;
-        Ext.apply(me,{
-            items:me.setFormItems()
-        });
+        me.setFormItems();
         me.callParent();
     },
     setFormItems:function() {
-        var me = this;
-        var form = {
-            xtype: 'form',
-            layout: 'column',
-            autoScroll: true,
-            buttonAlign : 'center',
-            bodyPadding: 5,
-            //frame:true,
-            defaults: {
-                xtype:'textfield',
-                margin: '0 5 5 0',
-                labelAlign: 'right',
-                labelWidth: 90,
-                columnWidth: 0.5,
-                blankText: '该字段不能为空'
-            },
-            items:me.queryItems,
-            buttons: [{
-               text:'重置',
-               handler:'onReSetClick'
-            },'->',{
-                text: '查询',
-                handler:'onMoreQuery'
-            }, {
-                text: '关闭',
-                handler:'onCloseClick'
-            }]
-        };
-        return form ;
-    },
+        var me = this,
+        queryViewModel = me.queryViewModel,
+        form = me.items[0],
+        items = me.queryItems;
+
+        Ext.Array.each(items, function(item) {
+            var bind = item.bind,
+            name = item.name,
+            ignore = item.ignore,
+            defaultValue = item.defaultValue;
+            
+            // 设置model绑定
+            if(!ignore) {
+                if(bind) {
+                    if(!Ext.isString(bind)) {
+                        bind = name;
+                        Ext.apply(bind, {
+                            value: '{moreForm.' + bind + '}'
+                        });
+                    }else {
+                        bind = name;
+                        item.bind = '{moreForm.' + bind + '}';
+                    }
+                }else {
+                    bind = name;
+                    item.bind = '{moreForm.' + bind + '}';
+                }
+                // 设置默认值
+                if(defaultValue) {
+                    queryViewModel.set('moreForm.' + bind, defaultValue);
+                }
+            }
+        });
+
+        Ext.apply(form, {
+            items: items
+        });
+    }
 
 });

+ 12 - 3
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -52,7 +52,9 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 listeners: {
                     beforeload: function (store, op) {
                         var queryPanel = me.up('core-query-querypanel'),
-                        condition = queryPanel.getConditions(),
+                        viewModel = queryPanel.getViewModel(),
+                        moreQuery = viewModel.get('moreQuery'),
+                        condition = queryPanel.getConditions(moreQuery),
                         defaultCondition = me.defaultCondition,
                         mode = queryPanel.getQueryMode();
 
@@ -70,8 +72,15 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                         });
     
                     },
-                    requestexception: function() {
-                        debugger;
+                    load: function(store, records, successful, operation, eOpts) {
+                        var queryPanel = me.up('core-query-querypanel'),
+                        mode = queryPanel.getQueryMode();
+                        
+                        if(mode=="MAIN"){
+                            me.reconfigure(store, me.baseColumn);
+                        }else{
+                            me.reconfigure(store, me.relativeColumn);
+                        }
                     }
                 }
             }),

+ 65 - 32
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -57,10 +57,6 @@ Ext.define('saas.view.core.query.QueryPanel', {
             ignore = item.ignore,
             defaultValue = item.defaultValue;
 
-            if(!item.columnWidth){
-                item.columnWidth = 0.25;
-            }
-
             // 设置model绑定
             if(!ignore) {
                 if(bind) {
@@ -97,46 +93,83 @@ Ext.define('saas.view.core.query.QueryPanel', {
     /**
      * 获得过滤条件
      */
-    getConditions: function() {
+    getConditions: function(moreQuery) {
         var me = this,
         formItems = me.queryFormItems,
+        moreQueryFormItems = me.moreQueryFormItems,
         viewModel = me.getViewModel(),
         viewModelData = viewModel.getData(),
         bindItems = viewModelData['form'],
+        moreItems = viewModelData['moreForm'],
         condition,
         conditions = [];
 
-        for(k in bindItems) {
-            var item = Ext.Array.findBy(formItems, function(i) {
-                return i.name == k;
-            });
-            var field = item.name,
-            func = item.getCondition,
-            value = bindItems[k],
-            condition;
-
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
+        if(moreQuery) {
+            for(k in moreItems) {
+                var item = Ext.Array.findBy(moreQueryFormItems, function(i) {
+                    return i.name == k;
+                });
+                var field = item.name,
+                func = item.getCondition,
+                value = moreItems[k],
+                condition;
     
-                if(!conditionValue) {
-                    continue;
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+                conditions.push(condition);
+            }
+        }else {
+            for(k in bindItems) {
+                var item = Ext.Array.findBy(formItems, function(i) {
+                    return i.name == k;
+                });
+                var field = item.name,
+                func = item.getCondition,
+                value = bindItems[k],
+                condition;
+    
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         }
 
         return conditions;

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

@@ -2,17 +2,34 @@ Ext.define('saas.view.core.query.QueryPanelController', {
     extend: 'Ext.app.ViewController',
     alias: 'controller.core-query-querypanel',
     moreQuery: function (btn) {
-        var me = this,view= me.getView();
+        var me = this,view= me.getView(),
+        viewModel = me.getViewModel();
         this.queryWin = view.add({
             xtype:'core-query-morequeryform',
-            queryItems: view.moreQueryFormItems
+            queryItems: view.moreQueryFormItems,
+            queryController: me,
+            queryPanel: view,
+            queryViewModel: viewModel
         });
         this.queryWin.show();
     },
     onQuery: function (btn) {
         var me = this,
         queryPanel = me.getView(),
+        viewModel = me.getViewModel(),
         queryGrid = queryPanel.down('core-query-querygridpanel');
+
+        viewModel.set('moreQuery', false);
+        queryGrid.store.loadPage(1);
+    },
+    onMoreQuery: function() {
+        var me = this,
+        queryPanel = me.getView(),
+        viewModel = me.getViewModel(),
+        queryGrid = queryPanel.down('core-query-querygridpanel');
+
+        me.queryWin.hide();
+        viewModel.set('moreQuery', true);
         queryGrid.store.loadPage(1);
     },
     onReSetClick:function(btn){

+ 7 - 4
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -30,26 +30,29 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
         fieldLabel: 'id'
     }, {
         xtype: 'hidden',
-        name: 'custid',
+        name: 'rb_custid',
         fieldLabel: '客户ID'
     }, {
         xtype: 'hidden',
-        name: 'custcode',
+        name: 'rb_custcode',
         fieldLabel: '客户编号'
     }, {
         xtype: "dbfindtrigger",
         name: "rb_custname",
-        fieldLabel: "客户名称"
+        fieldLabel: "客户名称",
+        dataUrl: '',
     }, {
         xtype: "numberfield",
         name: "rb_rbdamount",
+        readOnly: true,
+        editable: false,
         fieldLabel: "总欠款"
     }, {
         xtype: "datefield",
         name: "rb_date",
         fieldLabel: "日期"
     }, {
-        xtype: "dbfindtrigger",
+        xtype: "textfield",
         name: "rb_manname",
         fieldLabel: "收款人"
     }, {

+ 20 - 61
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -5,29 +5,37 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
     init: function (form) {
         var me = this;
         this.control({
-            /**放大镜新增demo*/
-            "field[name=combo]":{
-                beforerender:function(f){
-                    f.addHandler=me.addCombo;
-                }
-            },
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pu_vendcode]':{
+            'dbfindtrigger[name=rb_custname]':{
                 beforerender:function(f){
                     Ext.apply(f,{
-                        dataUrl:'http://192.168.0.181:8570/api/document/vendor/getVendorsByCondition',
+                        //数据接口
+                        dataUrl: 'http://192.168.253.41:9480/vendor/getVendorsByCondition',
+                        //赋值 
                         dbfinds:[{
-                            from:'ve_code',to:'pu_vendcode'
+                            from: 've_id', to: 'rb_custid'
+                        }, {
+                            from:'ve_code', to:'rb_custcode'
                         },{
-                            from:'ve_name',to:'pu_vendname'
+                            from:'ve_name', to:'rb_custname'
                         }],
+                        //联想设置
                         dbtpls:[{
                             field:'ve_code',width:100
                         },{
                             field:'ve_name',width:100
                         }],
+                        //联想查询条件
+                        dbCondition:"CONCAT(ve_code, ve_name) like '{0}%'",
+                        //放大镜窗口字段
+                        dbSearchFields:[{
+                            xtype : "textfield", 
+                            name : "ve_name", 
+                            conditionExpression:"ve_name like '{0}%'",//传入后台条件  替换占位符
+                            fieldLabel : "供应商名称", 
+                            columnWidth : 0.25
+                        }],
+                        //放大镜窗口列表
                         dbColumns:[{
-                            conditionCode:'ve_id',
                             "text": "供应商ID",
                             "flex": 0,
                             "dataIndex": "ve_id",
@@ -35,7 +43,6 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                             "xtype": "",
                             "items": null
                         },{
-                            conditionCode:'ve_code',
                             "text": "供应商编号",
                             "flex": 1,
                             "dataIndex": "ve_code",
@@ -43,14 +50,12 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                             "xtype": "",
                             "items": null
                         }, {
-                            conditionCode:'ve_name',
                             "text": "供应商名称",
                             "flex": 1,
                             "dataIndex": "ve_name",
                             "xtype": "",
                             "items": null
                         }, {
-                            conditionCode:'ve_type',
                             "text": "供应商类型",
                             "flex": 0,
                             "dataIndex": "ve_type",
@@ -62,52 +67,6 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
 
                 }
             },
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pd_prodcode]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        conditionCode:'pr_code',
-                        dataUrl:'http://192.168.0.181:8570/api/document/product/getProductsByCondition',
-                        dbfinds:[{
-                            from:'pr_code',to:'pd_prodcode'
-                        }],
-                        dbtpls:[{
-                            field:'pr_code',width:100
-                        },{
-                            field:'pr_detail',width:100
-                        }],
-                        dbColumns:[{
-                            "text": "物料ID",
-                            "flex": 0,
-                            "dataIndex": "pr_id",
-                            "width": 0,
-                            "xtype": "",
-                            "items": null
-                        },{
-                            "text": "物料编号",
-                            "flex": 1,
-                            "dataIndex": "pr_code",
-                            "width": 100,
-                            "xtype": "",
-                            "items": null
-                        }, {
-                            "text": "物料名称",
-                            "flex": 1,
-                            "dataIndex": "pr_detail",
-                            "xtype": "",
-                            "items": null
-                        }, {
-                            "text": "物料规格",
-                            "flex": 0,
-                            "dataIndex": "pr_spec",
-                            "width": 200,
-                            "xtype": "",
-                            "items": null
-                        }]
-                    }) ;   
-
-                }
-            }
         });
 
     },

+ 0 - 11
frontend/saas-web/app/view/purchase/purchase/QueryPanel.js

@@ -87,17 +87,14 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
     moreQueryFormItems: [{
         xtype: 'textfield',
         name: 'pu_buyername',
-        bind: '{pu_buyername}',
         fieldLabel: '采购员'
     }, {
         xtype: 'textfield',
         name: 'pu_total',
-        bind: '{pu_total}',
         fieldLabel: '金额'
     }, {
         xtype: 'condatefield',
         name: 'pu_delivery',
-        bind: '{pu_delivery}',
         fieldLabel: '交货日期',
         columnWidth: 1
     }],
@@ -109,10 +106,6 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
         defaultCondition:'',
         baseVastUrl: basePath+'purchase/purchase/',
         baseColumn: [{
-            text: '序号',
-            width: 80,
-            xtype: 'rownumberer'
-        }, {
             text: 'id',
             dataIndex: 'pu_id',
             width: 100,
@@ -147,10 +140,6 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             flex: 1
         }],
         relativeColumn: [{
-            text: '序号',
-            width: 80,
-            xtype: 'rownumberer'
-        }, {
             text: 'id',
             dataIndex: 'pu_id',
             width: 100,