Browse Source

物料库存数量金额表

zhuth 7 years ago
parent
commit
f2128dfe03

+ 21 - 7
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -22,9 +22,14 @@ Ext.define('saas.view.core.report.ReportPanel', {
     searchItems: [], // 查询字段
     reportTitle: '报表',
     autoLoad:true,
+    printAble: true,
+    exportAble: true,
+    queryMode: 'DETAIL',
 
     initComponent: function() {
         var me = this;
+        var printAble = me.printAble;
+        var exportAble = me.exportAble;
         var store = me.initStore();
         columnWidth: 0.25,
         Ext.apply(me, {
@@ -49,6 +54,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     },{
                         xtype:'button',
                         text:'打印',
+                        hidden: !printAble,
                         style: {
                             float: 'right'
                         },
@@ -65,6 +71,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
                             float: 'right'
                         },
                         text: '导出',
+                        hidden: !exportAble,
                         menu: {
                             defaults: {
                                 handler: 'exportTo'
@@ -163,7 +170,6 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 }],
                 viewConfig: {
                     deferEmptyText: false,
-                    emptyText: '无数据',
                     listeners: {
                         itemcontextmenu: function(view, rec, node, index, e) {
                             e.stopEvent();
@@ -283,7 +289,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     var params = me.applyParams({
                         number: store.exportNumber?store.exportNumber:op._page,
                         size: store.exportPageSize?store.exportPageSize:store.pageSize,
-                        mode: 'DETAIL',
+                        mode: me.queryMode || 'DETAIL',
                         condition: JSON.stringify(condition),
                         calculateFields: JSON.stringify(summarys)
                     });
@@ -378,6 +384,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
 
     initSearchItems: function() {
         var me = this,
+        queryItems = [],
         items = me.searchItems,
         viewModel = me.getViewModel();
 
@@ -392,6 +399,10 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 item.beforeLabelTextTpl = "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>";
             }
 
+            if(!ignore) {
+                queryItems.push(name);
+            }
+
             if(item.xtype == 'numberfield') {
                 Ext.applyIf(item, {
                     hideTrigger: true, // 隐藏trigger
@@ -435,6 +446,8 @@ Ext.define('saas.view.core.report.ReportPanel', {
             });
         });
 
+        me.queryItems = queryItems;
+
         return items;
     },
 
@@ -444,17 +457,19 @@ Ext.define('saas.view.core.report.ReportPanel', {
         formItems = form.items.items,
         viewModel = me.getViewModel(),
         viewModelData = viewModel.getData(),
-        bindItems = viewModelData['form'],
+        formData = viewModelData['form'] || {},
+        queryItems = me.queryItems,
         condition,
         conditions = [];
 
-        for(k in bindItems) {
+        for(var i = 0; i < queryItems.length; i++) {
+            var n = queryItems[i];
             var item = Ext.Array.findBy(formItems, function(i) {
-                return i.name == k;
+                return i.name == n;
             });
             var field = item.name,
             func = item.getCondition,
-            value = bindItems[k],
+            value = formData[n],
             condition;
 
             if(typeof func == 'function') {
@@ -463,7 +478,6 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     value: func(value)
                 }
             }else {
-                // var xtype = item.xtype || 'textfield',
                 type = item.fieldType || me.getDefaultFieldType(item),
                 operation = item.operation || me.getDefaultFieldOperation(item),
                 conditionValue = me.getConditionValue(item, value);

+ 0 - 1
frontend/saas-web/app/view/home/InfoCard.scss

@@ -21,7 +21,6 @@ $max-card-width: 235px;
                         padding: 16px;
                         height: 120px;
                         border-radius: 0.5rem;
-                        box-shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);
                         position: relative;
                         display: block;
                         cursor: pointer;

+ 70 - 6
frontend/saas-web/app/view/stock/report/DataList.js

@@ -9,33 +9,50 @@ Ext.define('saas.view.stock.report.DataList', {
 
     groupField: null,
     listUrl: '/api/document/product/ReserveCost',
+    // listUrl: 'http://192.168.253.41:8560/api/document/product/ReserveCost',
     defaultCondition: null,
     reportTitle: '物料库存数量金额表',
-    QueryWidth:0.2,
+    QueryWidth:0.15,
+    printAble: false,
+    exportAble: true,
 
     searchItems: [{
         name: 'pr_code',
         xtype: 'textfield',
         emptyText : '物料编号',
-        columnWidth: 0.2
+        columnWidth: 0.15
     },{
         name: 'pr_detail',
         xtype: 'textfield',
         emptyText : '物料名称',
-        columnWidth: 0.2
+        columnWidth: 0.15
     },{
         name: 'wh_code',
         xtype: 'textfield',
         emptyText : '仓库编号',
-        columnWidth: 0.2
+        columnWidth: 0.15
     },{
         name: 'wh_description',
         xtype: 'textfield',
         emptyText : '仓库名称',
-        columnWidth: 0.2
+        columnWidth: 0.15
+    }, {
+        name: 'wh_description',
+        xtype: 'textfield',
+        emptyText : '仓库名称',
+        columnWidth: 0.15
+    }, {
+        name: 'toggle',
+        xtype: 'checkbox',
+        fieldLabel : '分仓库存',
+        columnWidth: 0.1,
+        ignore: true,
+        listeners: {
+            change: 'toggle_change'
+        }
     }],
 
-    reportColumns : [{
+    reportColumns2 : [{
         text : "物料编号", 
         width : 150, 
         dataIndex : "rc_prodCode", 
@@ -102,6 +119,53 @@ Ext.define('saas.view.stock.report.DataList', {
             return Ext.util.Format.number(v, format);
         },
     }],
+
+    reportColumns : [{
+        text : "物料编号", 
+        width : 150, 
+        dataIndex : "rc_prodCode", 
+        xtype : "", 
+    },{
+        text : "物料名称", 
+        width : 200.0, 
+        dataIndex : "rc_prodDetail", 
+    }, 
+    {
+        text : "物料规格", 
+        dataIndex : "rc_prodSpec", 
+        width : 150.0, 
+    }, 
+    {
+        text : "单位", 
+        dataIndex : "rc_prodUnit", 
+        width : 80.0, 
+    }, 
+    {
+        text : "数量",
+        xtype: 'numbercolumn',
+        dataIndex : "rc_number", 
+        width : 110.0, 
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length>3?3:arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
+    }, 
+    {
+        text : "金额", 
+        xtype: 'numbercolumn',
+        dataIndex : "rc_amount", 
+        width : 110.0,
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length>2?2:arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        },
+    }, {
+        flex: 1
+    }],
 })
 
 

+ 17 - 4
frontend/saas-web/app/view/stock/report/DataListController.js

@@ -2,9 +2,22 @@ Ext.define('saas.view.stock.report.DataListController', {
     extend: 'saas.view.core.report.ReportPanelController',
     alias: 'controller.stock-report-datalist',
 
-    init: function (form) {
-        var me = this;
-        this.control({
-        });
+    toggle_change: function(field, newValue, oldValue, eOpts) {
+        var me = this,
+        reportPanel = me.getView(),
+        grid = reportPanel.down('grid'),
+        store = grid.store;
+        
+        if(newValue) {
+            reportPanel.queryMode = 'DETAIL';
+            store.load(function() {
+                grid.reconfigure(store, reportPanel.reportColumns2);
+            });
+        }else {
+            reportPanel.queryMode = 'MAIN';
+            store.load(function() {
+                grid.reconfigure(store, reportPanel.reportColumns);
+            });
+        }
     }
 });