Bladeren bron

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

guq 7 jaren geleden
bovenliggende
commit
1b7d840d3d

+ 1 - 2
frontend/saas-web/app/util/FormUtil.js

@@ -52,13 +52,12 @@ Ext.define('saas.util.FormUtil', {
                         }
                     });
                 }
-                form.addItems(items);
+                return form.addItems(items);
             }else {
                 return []
             }
         })
         .then(function(items) {
-            form.addItems(items);
             form.fireEvent('afterSetItems', form, items);
         })
         .catch(function(response) {

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

@@ -2,61 +2,41 @@ Ext.define('saas.util.QueryUtil', {
 
     BaseUtil: Ext.create('saas.util.BaseUtil'),
 
-    // 请求页面组件接口模板
-    baseUrl: 'http://192.168.0.181:8560/api/ui/co_view/config?name={xtype}',
-    // 模板替换正则
-    urlRe: /(.*){xtype}(.*)/g,
-    
-    /**
-     * 获得form的字段配置
-     * @param form: form组件
-     */
-    setItems: function(form) {
-        var me = this;
-        debuggre;
-        Ext.each(form.items.items, function(f){
-            if(f.xtype=='core-query-queryformpanel'){
-
-            }else if(f.xtype=='core-query-gridpanel'){
-                
-            }
-
-        });
-        // xtype = form.xtype,
-        //     url = me.baseUrl.replace(me.urlRe, '$1' + xtype);
-        //     me.BaseUtil.request({url})
-        // .then(function(response) {
-        //     var res = Ext.decode(response.responseText);
-        //     if(res.success) {
-        //         var config = res.data, items = [];
-        //         if(config) {
-        //             items = config.items;
-        //             //_baseItems
-        //             // _BaseColumn: '',
-        //             // _RelativeColumn: '',
-        //             form.add(items);
-        //         }
-        //         form.fireEvent('afterSetItems', form, items);               
-        //     }
-        // })
-        // .catch(function(response) {
-        //     console.error(response);
-        // });
-    },
      /**
      * 获得form的字段查询条件
      * @param form: form组件
      * @returns Mode: 字段模式,默认MAIN 当f.fieldMode = "DETAIL",Mode->"DETAIL"
      */
-    getStoreMode: function(form){
+    getStoreMode: function(form,Mode){
         var Mode = "MAIN";
-        Ext.each(form.items.items, function(f){
-            if(!Ext.isEmpty(f.value)&&f.fieldMode == "DETAIL") {
-                Mode = "DETAIL";
-                break;
-            }
-        });
+        if(form.items.items.find(function(item) {
+            return !Ext.isEmpty(item.value)&&item.fieldMode == "DETAIL";
+        })) {
+            Mode = "DETAIL";
+        }
         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._Mode = Mode;
+            grid.reconfigure(grid.store, grid._baseColumn);
+            grid.loadPage(1);
+        }else{
+            //若明细字段含明细字段注意切换数据源 grid.reconfigure(store, columns);
+            //关联viewName = 关联viewName+"-RelativeGrid" selModel
+            //grid.selModel = '';
+            grid._Mode = Mode;
+            grid.reconfigure(grid.store, grid._relativeColumn);
+            grid.loadPage(1);
+        }
     },
       /**
      * 获得form的字段查询条件
@@ -74,19 +54,29 @@ Ext.define('saas.util.QueryUtil', {
 							condition += ' AND (' + f.logic+')';
 						}
 					}
-				} else if(f.xtype == 'datefield' && f.value != null && f.value != '' ){
+				} else if (f.xtype == 'condatefield' && f.value != null ){
+                    if(f.value.from != null){
+                        if(condition == ''){
+                            condition += " date("+f.name+") between '"+f.value.from+"' and '"+f.value.to+"' ";
+                        } else {
+                            condition += " AND date("+f.name+") between '"+f.value.from+"' and '"+f.value.to+"' ";
+                        }
+                    }
+                }else if(f.xtype == 'datefield' && f.value != null && f.value != '' ){
+                    debugger;
 					var v = Ext.Date.format(new Date(f.value), 'Y-m-d');
 					if(condition == ''){
-						condition += "to_char("+f.name+",'yyyy-MM-dd')='"+v+"'";
+						condition += "date("+f.name+")='"+v+"'";
 					} else {
-						condition += " AND to_char("+f.name+",'yyyy-MM-dd')='"+v+"'";
+						condition += " AND date("+f.name+")='"+v+"'";
 					}
 				} else if(f.xtype == 'datetimefield' && f.value != null){
-					var v = Ext.Date.format(new Date(f.value), 'Y-m-d H:i:s');
+                    var v = Ext.Date.format(new Date(f.value), 'Y-m-d H:i:s');
+                    debugger;
 					if(condition == ''){
-						condition += f.name + "=to_date('" + v + "', 'yyyy-MM-dd HH24:mi:ss')";
+						condition += 'date('+f.name + ")= '" + v + "'";
 					} else {
-						condition += ' AND ' + f.name + "=to_date('" + v + "', 'yyyy-MM-dd HH24:mi:ss')";
+						condition += ' AND date('+f.name + ")= '" + v + "'";
 					}
 				} else if(f.xtype == 'numberfield' && f.value != null && f.value != ''){
 					var endChar = '=';
@@ -152,10 +142,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 +203,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 +281,8 @@ Ext.define('saas.util.QueryUtil', {
                 }
                 if(grid._codeField){
 					o['code'] = item.data[grid._codeField];
-				}
+                }
+                o['name'] = '';
 				data.push(o);
             }
 		});
@@ -271,10 +293,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() {

+ 12 - 2
frontend/saas-web/app/view/core/form/ConDateField.js

@@ -12,6 +12,7 @@ Ext.define('saas.view.core.form.ConDateField', {
     defaults: {
         margin: '0 0 0 0'
     },
+    defaultBindProperty: 'value',
     initComponent : function(){
         this.cls = (this.cls || '') + ' x-form-field-multi';
         this.callParent(arguments);
@@ -76,6 +77,7 @@ Ext.define('saas.view.core.form.ConDateField', {
                     }else {
                         me.value=null;
                     }
+                    me.setValue(v, from, to);
                 }
             }
         });
@@ -105,6 +107,7 @@ Ext.define('saas.view.core.form.ConDateField', {
                     }else {
                         me.value=null;
                     }
+                    me.setValue(v, from, to);
                 }
             }
         });
@@ -113,7 +116,7 @@ Ext.define('saas.view.core.form.ConDateField', {
             t = 3;
         }
         this.value = null;
-        this.setValue(t);
+        this.setInitValue(t);
     },
     setDateFieldValue: function(v){
         v = Number(v);
@@ -186,13 +189,20 @@ Ext.define('saas.view.core.form.ConDateField', {
             from.setEditable(false);
             to.setEditable(false);
         }
+        me.setValue(v, minDate, maxDate);
     },
-    setValue: function(v){
+    setInitValue: function(v) {
         if (v) {
             this.combo.setValue(v);
             this.setDateFieldValue(v);
         }
     },
+    setValue: function(v, from, to){
+        this.value = {type: v,
+            from: from,
+            to: to};
+        this.publishState('value', this.value);
+    },
     getValue: function(){
         return this.value;
     },

+ 1 - 1
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -94,7 +94,7 @@ Ext.define('saas.view.core.form.FormPanel', {
     },
 
     addItems: function(items) {
-        this.add(items);
+        return this.add(items);
     }
     
 });

+ 47 - 62
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,
@@ -31,11 +32,12 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             store: Ext.create('Ext.data.Store', {
                 fields: me.getFields(),
                 autoLoad: true,
-                pageSize: 5,
+                pageSize: 15,
                 data: [],
                 proxy: {
                     type: 'ajax',
-                    url: me.listUrl,
+                    url: me._baseVastUrl+'list',
+                    //url: 'http://192.168.253.58:8800/purchase/list',
                     actionMethods: {
                         read: 'GET'
                     },
@@ -47,50 +49,24 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 },
                 listeners: {
                     beforeload: function (store, op) {
-                        var condition = '';
+                        var condition = '',
+                        queryForm = me.ownerCt.down('form'),
+                        condition = me.QueryUtil.getFormCondition(queryForm),
+                        mode = me._Mode;
                         if (Ext.isEmpty(condition)) {
                             condition = " 1=1 ";
                         }
+                        if(mode){
+                            mode='MAIN';
+                        }
                         console.log("condition:" + condition);
                         Ext.apply(store.proxy.extraParams, {
-                            number: op._start + 1,
+                            number: op._page,
                             size: store.pageSize,
+                            mode:mode,
                             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 +105,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 +133,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 +161,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);
     }
 });

+ 2 - 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,14 @@ 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 || [];
+        Ext.apply(queryGrid,me.queryGridConfig);
     }
 
 });

+ 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,
+        grid = queryForm.ownerCt.down('grid');
+        console.log("queryForm:",queryForm,"grid:",grid);
+        grid.QueryUtil.turnRelativeGrid(grid,queryForm);
     }
 });

+ 59 - 4
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',
@@ -99,7 +100,7 @@ Ext.define('saas.view.test.query.QueryPanel', {
         allowBlank: true,
         columnWidth: 0.25
     }, {
-        xtype: 'remotecombo',
+        xtype: 'combobox',
         name: 'pr_statuscode',
         bind: '{pr_statuscode}',
         fieldLabel: '审核状态',
@@ -117,7 +118,7 @@ Ext.define('saas.view.test.query.QueryPanel', {
             ]
         })
     }, {
-        xtype: 'remotecombo',
+        xtype: 'combobox',
         name: 'pu_acceptstatuscode',
         bind: '{pu_acceptstatuscode}',
         fieldLabel: '入库状态',
@@ -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'
     }
 });