chenw 7 лет назад
Родитель
Сommit
fd2352041b
22 измененных файлов с 1177 добавлено и 44 удалено
  1. 1 1
      frontend/saas-web/app/util/BaseUtil.js
  2. 2 1
      frontend/saas-web/app/view/core/base/GridPanel.js
  3. 3 1
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  4. 2 2
      frontend/saas-web/app/view/core/tab/Controller.js
  5. 14 10
      frontend/saas-web/app/view/document/kind/Kind.js
  6. 1 0
      frontend/saas-web/app/view/document/kind/KindModel.js
  7. 2 2
      frontend/saas-web/app/view/main/Navigation.js
  8. 1 1
      frontend/saas-web/app/view/purchase/b2b/deviceQuery/DataList.js
  9. 4 4
      frontend/saas-web/app/view/purchase/b2b/reconciliation/DataList.js
  10. 1 1
      frontend/saas-web/app/view/purchase/b2b/reconciliation/FormPanel.js
  11. 16 0
      frontend/saas-web/app/view/purchase/b2b/sendQuotation/DataList.js
  12. 141 16
      frontend/saas-web/app/view/sale/b2b/RecDataList.js
  13. 318 0
      frontend/saas-web/app/view/sale/b2b/recformpanel/FormPanel.js
  14. 159 0
      frontend/saas-web/app/view/sale/b2b/recformpanel/FormPanelController.js
  15. 34 0
      frontend/saas-web/app/view/sale/b2b/recformpanel/FormPanelModel.js
  16. 190 0
      frontend/saas-web/app/view/sale/b2b/reconciliation/DataList.js
  17. 192 0
      frontend/saas-web/app/view/sale/b2b/reconciliation/FormPanel.js
  18. 39 0
      frontend/saas-web/app/view/sale/b2b/reconciliation/FormPanelController.js
  19. 25 0
      frontend/saas-web/app/view/sale/b2b/reconciliation/FormPanelModel.js
  20. 2 1
      frontend/saas-web/app/view/stock/inventory/EditDataList.js
  21. 14 0
      frontend/saas-web/overrides/grid/column/CheckColumn.js
  22. 16 4
      frontend/saas-web/resources/json/navigation.json

+ 1 - 1
frontend/saas-web/app/util/BaseUtil.js

@@ -24,8 +24,8 @@ Ext.define('saas.util.BaseUtil', {
                 mainTab.setActiveTab(mainTab.add(panel));
                 Ext.resumeLayouts(true);
             } else {
-                panel.viewConfig = config;
                 mainTab.setActiveTab(panel);
+                panel.fireEvent('activate', null, null, null, config);
             }
         },
 

+ 2 - 1
frontend/saas-web/app/view/core/base/GridPanel.js

@@ -85,7 +85,8 @@ Ext.define('saas.view.core.base.GridPanel', {
                                 }
                             }else {
                                 console.error('exception: ', response);
-                                saas.util.BaseUtil.showErrorToast('查询失败:' + (response.responseJson?response.responseJson.message:'请求超时'));
+                                var message = response.responseJson?(response.responseJson.message==null?'没有数据':response.responseJson.message):'请求超时';
+                                saas.util.BaseUtil.showErrorToast('查询失败:' + message);
                             }
                         }
                     }

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

@@ -102,7 +102,9 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                                 if(response.timedout) {
                                     saas.util.BaseUtil.showErrorToast('请求超时');
                                 }else{
-                                    saas.util.BaseUtil.showErrorToast('查询失败:' + (response.responseJson?response.responseJson.message:'请求超时'));
+                                    console.error('exception: ', response);
+                                    var message = response.responseJson?(response.responseJson.message==null?'没有数据':response.responseJson.message):'请求超时';
+                                    saas.util.BaseUtil.showErrorToast('查询失败:' + message);
                                 }
                             }
                         }

+ 2 - 2
frontend/saas-web/app/view/core/tab/Controller.js

@@ -22,12 +22,12 @@ Ext.define('saas.view.core.tab.Controller', {
         }
     },
 
-    onTabActivate: function() {
+    onTabActivate: function(tab1, tab2, eOptes, config) {
         var component = this.getView();
         var tabView = component.down('container');
 
         if(tabView && typeof tabView.refresh == 'function') {
-            tabView.refresh();
+            tabView.refresh(tabView, config);
         }
 
         if(!component.resetCloseClick) {

+ 14 - 10
frontend/saas-web/app/view/document/kind/Kind.js

@@ -19,7 +19,7 @@ Ext.define('saas.view.document.kind.Kind', {
         reference: 'dataKind',
         value: 'customerkind',
         name : 'segmentedbutton',
-        bind:'{segmented}',
+        bind:'{kindType}',
         items: [{
             name:'customerkind',
             text: '客户',
@@ -121,16 +121,20 @@ Ext.define('saas.view.document.kind.Kind', {
             delUrl: '/api/document/fundinouttype/delete'
         }
     },
-    refresh:function(){
-        var me = this;
-        var grid = me.items.items[0];
-        var button = grid.ownerCt.dockedItems.items[0].down('[name='+grid.ownerCt.ownerCt.viewConfig+']');
-        
-        if(button&&button.xtype!="tbfill"){
-            button.click();
-            me.ownerCt.setTitle(button.typeText);
+    refresh:function(view, config){
+        var me = this,
+        viewModel = me.getViewModel(),
+        kindType,
+        typeText;
+
+        if(config) {
+            kindType = config.kindType;
+            typeText = config.kindText;
+
+            viewModel.set('kindType', kindType);
+            me.ownerCt.setTitle(typeText);
         }
-    }
+    },
 })
 
 

+ 1 - 0
frontend/saas-web/app/view/document/kind/KindModel.js

@@ -5,6 +5,7 @@ Ext.define('saas.view.document.kind.KindModel', {
     extend: 'Ext.app.ViewModel',
     alias: 'viewmodel.document-kind',
     data: {
+        kindType: 'customerkind',
         title: '客户类型'
     },
     stores: {

+ 2 - 2
frontend/saas-web/app/view/main/Navigation.js

@@ -108,11 +108,11 @@ Ext.define('saas.view.main.Navigation', {
                                 '<div class="menu-content">',
                                     '<tpl for="items">',
                                         '<div class="menuitem">',
-                                            '<div data-boundView="{id}" data-recordId="{id}" class="item-text" data-config="{config}" data-id="{id}" data-text="{text}" data-type="query" data-viewType="{viewType}">',
+                                            '<div class="item-text">',
                                                 '{text}',
                                             '</div>',
                                             '<tpl if="this.hasAddType(addType)">',
-                                                '<div class="item-icon" data-id="{id}" data-text="{text}" data-type="form" data-viewType="{addType}">新增</div>',
+                                                '<div class="item-icon">新增</div>',
                                             '</tpl>',
                                         '</div>',
                                     '</tpl>',

+ 1 - 1
frontend/saas-web/app/view/purchase/b2b/deviceQuery/DataList.js

@@ -14,7 +14,7 @@ Ext.define('saas.view.purchase.b2b.deviceQuery.DataList', {
                 width: 240,
                 name: 'keyword',
                 xtype: 'textfield',
-                emptyText: '请输入型号/物料名称/品牌搜索',
+                emptyText: '请输入物料名称/型号/规格搜索',
             }],
 
             gridConfig: {

+ 4 - 4
frontend/saas-web/app/view/purchase/b2b/reconciliation/DataList.js

@@ -1,5 +1,5 @@
 /**
- * 平台对账单
+ * 应付对账单
  */
 Ext.define('saas.view.purchase.b2b.reconciliation.DataList', {
     extend: 'saas.view.core.base.BasePanel',
@@ -31,8 +31,8 @@ Ext.define('saas.view.purchase.b2b.reconciliation.DataList', {
                 hiddenTools: true,
                 data: [{}],
                 columns: [{
-                    text : '对账单编号', 
-                    width:150,
+                    text : '应付对账单编号', 
+                    width:170,
                     dataIndex : 'ac_code',
                     cls:'x-querygrid-code-column',
                     renderer:function(v,style,a,b,c){
@@ -43,7 +43,7 @@ Ext.define('saas.view.purchase.b2b.reconciliation.DataList', {
                             var idValue = record.get('id'),
                             codeValue = record.get('ac_code'),
                             id = 'purchase-b2b-reconciliation-formpanel-' + idValue;
-                            saas.util.BaseUtil.openTab('purchase-b2b-reconciliation-formpanel', "平台对账单("+codeValue+")", id, {
+                            saas.util.BaseUtil.openTab('purchase-b2b-reconciliation-formpanel', "应付对账单("+codeValue+")", id, {
                                 initId: idValue
                             });
                         }

+ 1 - 1
frontend/saas-web/app/view/purchase/b2b/reconciliation/FormPanel.js

@@ -8,7 +8,7 @@ Ext.define('saas.view.purchase.b2b.reconciliation.FormPanel', {
     viewName: 'purchase-b2b-reconciliation-formpanel',
 
     //字段属性
-    _title: '平台对账单',
+    _title: '应付对账单',
     _idField: 'id',
     _codeField: 'ac_code',
     _relationColumn: 'pd_puid',

+ 16 - 0
frontend/saas-web/app/view/purchase/b2b/sendQuotation/DataList.js

@@ -153,6 +153,22 @@ Ext.define('saas.view.purchase.b2b.sendQuotation.DataList', {
         }else{
             saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
         }
+    },
+    getExtraParams: function(store, op, condition) {
+        var defaultCondition = [{
+            type:'condition',
+            value:"pr_statuscode='ENABLE'"
+        }]
+        if(condition.length&&condition.length>0){
+            condition = condition.concat(defaultCondition);
+        }else{
+            condition = defaultCondition
+        }
+        var obj = {
+            condition:JSON.stringify(condition)
+        };
+
+        return obj;
     }
 });
 

+ 141 - 16
frontend/saas-web/app/view/sale/b2b/RecDataList.js

@@ -7,29 +7,48 @@ Ext.define('saas.view.sale.b2b.RecDataList', {
 
     viewName: 'sale-b2b-recdatalist',
 
-
     // dataUrl: 'http://10.1.80.35:8560/api/sale/saledown/list',
-    dataUrl: '/api/sale/saledown/list',
+    
+    dataUrl: '/api/sale/b2b/apCheck/customer',
 
     initComponent: function() {
         var me = this;
         Ext.apply(this, {
             searchField: [{
+                name:'ar_customer',
                 xtype: 'textfield',
                 emptyText: '请输入客户名称'
             }, {
+                name:'ar_date',
                 xtype: 'condatefield',
                 fieldLabel: '日期',
-                columnWidth: 0.5
+                columnWidth: 0.5,
+                value:2
+            }],
+            toolButtons:[{
+                ignore: true,
+                style:'text-align: center;',
+                xtype:'displayfield',
+                value:'<a href=\"javascript:saas.util.BaseUtil.openTab(\'sale-b2b-reconciliation-datalist\',\'对账列表\',\'maintab-query-salereconciliation\')\">对账详情</a>'
             }],
             gridConfig: {
+                features : [Ext.create('Ext.grid.feature.Grouping',{
+                    collapsible:false,
+                    showSummaryRow: false,
+                    groupHeaderTpl: '客户名称 : {name} (共:{rows.length}条)'
+                })],
+                listeners:{
+                    boxready:function(){
+                        this.store.group('custName', 'ASC');
+                    }
+                },
                 idField: null,
                 codeField: null,
                 statusCodeField: null,
                 dataUrl: me.dataUrl,
                 caller: null,
-                rootProperty: 'data.list',
-                totalProperty: 'data.total',
+                rootProperty: 'data.content',
+                totalProperty: 'data.totalElement',
                 actionColumn: [],
                 selModel: {
                     type: 'cellmodel'
@@ -37,41 +56,147 @@ Ext.define('saas.view.sale.b2b.RecDataList', {
                 hiddenTools: true,
                 data: [],
                 columns : [{
+                    text:'apId',
+                    dataIndex:'apId',
+                    hidden:true
+                },{
                     text: '客户名称',
-                    dataIndex: 'khmc',
-                    width: 200
+                    dataIndex: 'custName',
+                    hidden:true
                 }, {
+                    text: 'UU',
+                    dataIndex: 'custUU',
+                    hidden:true
+                },{
                     text: '币别',
-                    dataIndex: 'bb',
+                    dataIndex: 'currency',
                 }, {
                     text: '本期应收',
-                    dataIndex: 'bqys'
+                    xtype:'numbercolumn',
+                    dataIndex: 'thisPeriodAmount',
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
                 }, {
                     text: '本期发货',
-                    dataIndex: 'bqfh'
+                    xtype:'numbercolumn',
+                    dataIndex: 'thisPeriodSendQty',
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
                 }, {
                     text: '本期未对账',
-                    dataIndex: 'bqwdz'
+                    xtype:'numbercolumn',
+                    dataIndex: 'thisPeriodTodoAmount',
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
                 }, {
                     text: '本期已对账',
-                    dataIndex: 'bqydz'
+                    xtype:'numbercolumn',
+                    dataIndex: 'thisPeriodDoneAmount',
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
                 }, {
                     text: '本期已收',
-                    dataIndex: 'bqys'
+                    xtype:'numbercolumn',
+                    dataIndex: 'thisPeriodReceipt',
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
                 }, {
                     text: '应收总额',
-                    dataIndex: 'ysze'
+                    xtype:'numbercolumn',
+                    dataIndex: 'totalAmount',
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
                 }, {
                     text: '操作',
-                    dataIndex: 'xx',
+                    dataIndex: 'op',
                     ignore: true,
-                    renderer: function() {
+                    renderer: function(v,m,r) {
                         return '<span style="color: blue;">明细</span>';
+                    },
+                    listeners: {
+                        click: function(tableView, td, row, col, e, record, tr) {
+                            var idValue = record.get('apId'),
+                            id = 'sale-b2b-recformpanel-formpanel-' + idValue;
+                            var ar_date = tableView.ownerCt.ownerCt.down('[name=ar_date]');
+                            saas.util.BaseUtil.openTab('sale-b2b-recformpanel-formpanel', "应收对账单("+idValue+")", id, {
+                                currency:record.get('currency'),
+                                customerUU:record.get('custUU'),
+                                suuorname:record.get('custName'),
+                                fromDate:new Date(ar_date.value.from).getTime(),
+                                endDate:new Date(ar_date.value.to).getTime()
+                            });
+                        }
                     }
                 }]
             }
         });
 
         me.callParent(arguments);
+    },
+
+    /**
+     * 处理部分字段值
+     */
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
+            var from = new Date(value.from).getTime(),
+                to = new Date(value.to).getTime();
+
+            conditionValue = {
+                from: from,
+                to: to
+            };
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
+                return v.value;
+            }).join(',') : '';
+        } else {
+            conditionValue = value;
+        }
+
+        return conditionValue;
+    },
+
+
+    getExtraParams: function(store, op, condition) {
+        var ar_customer = this.down('[name=ar_customer]');
+        var searchFilter = {}
+        for(var i = 0; i < condition.length; i++) {
+            var con = condition[i];
+            if(con.type == 'date') {
+                searchFilter.fromDate = con.value.from;
+                searchFilter.endDate = con.value.to;
+            }
+        }
+        if(ar_customer.value&&ar_customer.value!=""){
+            searchFilter.keyword = ar_customer.value
+        }
+        var obj = {
+            count:op.config.limit,
+            page:op.config.page,
+            searchFilter:JSON.stringify(searchFilter)
+        };
+
+        return obj;
     }
 });

+ 318 - 0
frontend/saas-web/app/view/sale/b2b/recformpanel/FormPanel.js

@@ -0,0 +1,318 @@
+Ext.define('saas.view.sale.b2b.recformpanel.FormPanel', {
+    extend: 'Ext.form.Panel',
+    xtype: 'sale-b2b-recformpanel-formpanel',
+    controller: 'sale-b2b-recformpanel-formpanel',
+    viewModel: 'sale-b2b-recformpanel-formpanel',
+    viewName: 'sale-b2b-recformpanel-formpanel',
+    layout:'column',
+
+    //字段属性
+    _title: '应收对账单',
+    _idField: 'id',
+    _codeField: 'ap_code',
+    _relationColumn: 'pd_puid',
+    _readUrl: '/api/sale/b2b/apCheck/getAllByKeywords',
+
+    items: [{ 
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{suuorname}',
+        xtype: 'textfield',
+        name:'suuorname',
+        fieldLabel: '应收客户',
+        editable:false,
+        readOnly:true
+    },{
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{thisMonthCount}',
+        xtype: "numberfield",
+        name: "thisMonthCount",
+        fieldLabel: "本期应收金额",
+        allowBlank: true,
+        readOnly:true
+    }, {
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{thisMonthTodoCount}',
+        xtype: "numberfield",
+        name: "thisMonthTodoCount",
+        fieldLabel: "本期未对账",
+        allowBlank: true,
+        readOnly:true
+    },{
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{thisPeriodDoneAmount}',
+        xtype: "numberfield",
+        name: "thisPeriodDoneAmount",
+        fieldLabel: "本期已收",
+        allowBlank: true,
+        readOnly:true
+    },{
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{thisPeriodSendAmount}',
+        xtype: "numberfield",
+        name: "thisPeriodSendAmount",
+        fieldLabel: "本期发货",
+        allowBlank: true,
+        readOnly:true
+    },{
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{thisMonthDoneCount}',
+        xtype: "numberfield",
+        name: "thisMonthDoneCount",
+        fieldLabel: "本期已对账",
+        allowBlank: true,
+        readOnly:true
+    },{
+        margin:'10 10 0 0',
+        columnWidth:0.25,
+        bind:'{totalCount}',
+        xtype: "numberfield",
+        name: "totalCount",
+        fieldLabel: "应收总额",
+        allowBlank: true,
+        readOnly:true
+    },   
+    {
+        margin:'20 10 10 10',
+        style:'border:1px solid #abdaff',
+        columnWidth:1,
+        xtype: "grid",
+        height:343,
+        editable:false,
+        bind:'{detailgrid}',
+        plugins: [{
+            ptype: 'gridexporter',
+        }, {
+            ptype: 'menuclipboard'
+        }],
+        selModel: {
+            checkOnly:true,
+            type:'checkboxmodel',
+            hideCheckField:'haveChecked',
+            hideCheckVal:'已对账',
+            listeners:{
+                select:function(selModel,record,c,d){
+                    if(record.get('haveChecked')=='已对账'){
+                        selModel.deselect(record)
+                    }
+                }
+             }
+        },
+        features : [Ext.create('Ext.grid.feature.Grouping',{
+            collapsible:false,
+            showSummaryRow: false,
+            groupHeaderTpl: '客户PO号 : {name} (共:{rows.length}条)'
+        })],
+        columns: [{
+            text: "id",
+            dataIndex: "id",
+            xtype: "numbercolumn",
+            hidden: true
+        },{
+            text: "ad_acid",
+            dataIndex: "ad_acid",
+            xtype: "numbercolumn",
+            hidden: true
+        },{  
+            text: "对账状态",
+            width: 100.0,
+            dataIndex: "haveChecked",
+        }, { 
+            text: "客户PO",
+            width: 140.0,
+            dataIndex: "ordercode",
+        },{
+            text: "验收单号",
+            width: 120.0,
+            dataIndex: "inoutno",
+            ignore: true,
+        }, {
+            text: "发货单",
+            dataIndex: "x",
+            width: 100.0
+        }, {
+            text: "物料编号",
+            dataIndex: "prodcode",
+            width: 150.0
+        }, {
+            text: "物料名称",
+            dataIndex: "prodtitle",
+            width: 200.0
+        }, {
+            text: "规格型号",
+            dataIndex: "prodspec",
+            width: 200.0
+        },{
+            text: "单位",
+            width: 150.0,
+            dataIndex: "produnit",
+            ignore: true
+        },{
+            text: "验收数量",
+            width: 100.0,
+            dataIndex: "thischeckqty",
+            xtype:'numbercolumn',
+            ignore: true,
+            renderer: function (v, m, r) {
+                return saas.util.BaseUtil.numberFormat(v, 0, false);
+            }
+        },{
+            text: "发货数量",
+            xtype:'numbercolumn',
+            width: 100.0,
+            dataIndex: "qty",
+            ignore: true,
+            renderer: function (v, m, r) {
+                return saas.util.BaseUtil.numberFormat(v, 0, false);
+            }
+        },{
+            text: "含税单价",
+            xtype:'numbercolumn',
+            width: 100.0,
+            dataIndex: "orderprice",
+            ignore: true,
+            renderer: function (v, m, r) {
+                return saas.util.BaseUtil.numberFormat(v, 2, false);
+            }
+        },{
+            text: "税率%",
+            xtype:'numbercolumn',
+            width: 100.0,
+            dataIndex: "taxrate",
+            ignore: true,
+            renderer: function (v, m, r) {
+                return saas.util.BaseUtil.numberFormat(v, 2, false);
+            }
+        },{
+            text: "价税合计",
+            xtype:'numbercolumn',
+            width: 100.0,
+            dataIndex: "money",
+            renderer: function (v, m, r) {
+                return saas.util.BaseUtil.numberFormat(v, 2, false);
+            }
+        },{
+            text: "对账人",
+            width: 140.0,
+            dataIndex: "recorder",
+            ignore: true
+        },{
+            text: "对账日期",
+            width: 160.0,
+            dataIndex: "apCheckDate",
+            ignore: true
+        },]
+    }],
+
+    initComponent: function () {
+        var me = this;
+
+        me.tbar = [{ 
+            margin:'0 0 0 10',
+            width:200,
+            labelWidth:80,
+            name:'currencyCombo',
+            xtype: 'combo',
+            displayField: 'display',
+            value:me.currency,
+            valueField: 'value',
+            emptyText: '请选择',
+            fieldLabel:'币别',
+            store:{
+                fields: ['display', 'value'],
+                data: []
+            },
+            listeners:{
+                expand:function(f){
+                    if(f.picker&&f.isExpanded){
+                        f.picker.setHeight(33*f.store.getCount())
+                    }
+                }
+            }
+        } ,{
+            margin:'0 0 0 10',
+            name:'date',
+            xtype: 'condatefield',
+            fieldLabel: '日期',
+            value:2,
+            width:520,
+        },{
+            margin:'0 0 0 10',
+            xtype: 'button',
+            text: '查询',
+            handler:'query'
+        },{
+            margin:'0 0 0 10',
+            xtype: 'button',
+            text: '确认对账',
+            handler:'check'
+        },'->',{
+            margin:'0 10 0 0',
+            ignore: true,
+            style:'text-align: center;',
+            bodyStyle:'margin-right:10px;',
+            xtype:'displayfield',
+            value:'<a href=\"javascript:saas.util.BaseUtil.openTab(\'sale-b2b-reconciliation-datalist\',\'对账列表\',\'maintab-query-salereconciliation\')\">对账记录</a>'
+        }];
+
+        
+        var url = me._readUrl,viewModel = me.getViewModel();
+        var params = {
+            fromDate:me.fromDate,
+            endDate:me.endDate,
+            currency:me.currency,
+            customerUU:me.customerUU,
+            suuorname:me.suuorname
+        };
+        saas.util.BaseUtil.request({url,params })
+        .then(function(res) {
+            me.setLoading(true);
+            if(res.success) {
+                var main = res.data.main;
+                var mainDate = {
+                    suuorname : me.suuorname,
+                    thisMonthCount : main.thisMonthCount?main.thisMonthCount.amount:'',
+                    thisMonthDoneCount : main.thisMonthDoneCount?main.thisMonthDoneCount.amount:'',
+                    thisMonthTodoCount : main.thisMonthTodoCount?main.thisMonthTodoCount.amount:'',
+                    thisPeriodDoneAmount : main.thisPeriodDoneAmount?main.thisPeriodDoneAmount.amount:'',
+                    thisPeriodSendAmount : main.thisPeriodSendAmount?main.thisPeriodSendAmount.amount:'',
+                    totalCount : main.totalCount?main.totalCount.amount:''
+                };
+                Ext.each(res.data.items,function(item,index){
+                    if(item.haveChecked==0){
+                        item.haveChecked = null
+                    }
+                    if(item.haveChecked==1){
+                        item.haveChecked = '已对账'
+                    }
+                })
+                viewModel.setData({detailgrid:res.data.items});
+                var o = [];
+                Ext.each(res.data.currencys,function(item,index){
+                    for (var i in item){
+                        var obj = [item[i],item[i]];
+                    }
+                    o.push(obj)
+                })
+                me.down('[name=currencyCombo]').store = Ext.create('Ext.data.ArrayStore', {
+                    fields: ['display', 'value'],
+                    data: o
+                });
+                viewModel.setData(mainDate);
+                me.setLoading(false);
+            }
+            me.setLoading(false);
+        })
+        .catch(function(e) {
+            me.setLoading(false);
+            console.error(e);
+        });
+
+        me.callParent(arguments);
+    }
+});

+ 159 - 0
frontend/saas-web/app/view/sale/b2b/recformpanel/FormPanelController.js

@@ -0,0 +1,159 @@
+Ext.define('saas.view.sale.b2b.recformpanel.FormPanelController', {
+    extend: 'saas.view.core.form.FormPanelController',
+    alias: 'controller.sale-b2b-recformpanel-formpanel',
+    init: function (form) {
+        var me = this;
+        this.control({});
+    },
+    query:function(){
+        var me = this.getView(),
+        viewModel = me.getViewModel();
+        var url = me._readUrl;
+        var date = me.down('[name=date]');
+        var currencyCombo = me.down('[name=currencyCombo]');
+        var params = {
+            fromDate:new Date(date.value.from).getTime(),
+            endDate:new Date(date.value.to).getTime(),
+            currency: currencyCombo.value || me.currency,
+            customerUU:me.customerUU,
+            suuorname:me.suuorname
+        };
+        me.setLoading(true);
+        saas.util.BaseUtil.request({url,params })
+        .then(function(res) {
+            if(res.success) {
+                var mainDate = {};
+                var main = res.data.main;
+                if(main.thisMonthCount){
+                    mainDate.thisMonthCount = main.thisMonthCount.amount
+                }
+                if(main.thisMonthDoneCount){
+                    mainDate.thisMonthDoneCount = main.thisMonthDoneCount.amount
+                }
+                if(main.thisMonthTodoCount){
+                    mainDate.thisMonthTodoCount = main.thisMonthTodoCount.amount
+                }
+                if(main.thisPeriodDoneAmount){
+                    mainDate.thisPeriodDoneAmount = main.thisPeriodDoneAmount.amount
+                }
+                if(main.thisPeriodSendAmount){
+                    mainDate.thisPeriodSendAmount = main.thisPeriodSendAmount.amount
+                }
+                if(main.totalCount){
+                    mainDate.totalCount = main.totalCount.amount
+                }
+                viewModel.setData(mainDate);
+                Ext.each(res.data.items,function(item,index){
+                    if(item.haveChecked==0){
+                        item.haveChecked = null
+                    }
+                    if(item.haveChecked==1){
+                        item.haveChecked = '已对账'
+                    }
+                })
+                viewModel.setData({detailgrid:res.data.items});
+                var o = [];
+                Ext.each(res.data.currencys,function(item,index){
+                    for (var i in item){
+                        var obj = [item[i],item[i]];
+                    }
+                    o.push(obj)
+                })
+                // me.down('[name=currencyCombo]').store = Ext.create('Ext.data.ArrayStore', {
+                //     fields: ['display', 'value'],
+                //     data: o
+                // });
+                // me.down('[name=currencyCombo]').value = me.currency
+                me.setLoading(false);
+            }
+            me.setLoading(false);
+        })
+        .catch(function(e) {
+            me.setLoading(false);
+            console.error(e);
+            saas.util.BaseUtil.showErrorToast('未查询到对账信息,请修改查询条件');
+            viewModel.setData({detailgrid:null});
+        });
+    },
+    check:function(url){
+        var me = this;
+        var view = me.getView();
+        view.setLoading(true);
+
+        //判断数据是否合格
+        var selected = view.down('[xtype=grid]').selModel.selected.items;
+        var taxrate,rate,badTaxrate = false,badRate = false,checkAmount=0,items=[];
+        Ext.each(selected,function(item,index){
+            if(index==0){
+                taxrate = item.get('taxrate');
+                rate = item.get('rate');
+            }else{
+                if(taxrate!=item.get('taxrate')){
+                    badTaxrate = true
+                }
+                if(rate!=item.get('rate')){
+                    badRate = true
+                }
+            }
+            checkAmount+=item.get('money')
+            item.data.pidate = new Date(item.data.pidate).getTime()
+            item.data.inoutnodetno = item.data.detno
+            item.data.orderClass = item.data.piclass
+            item.data.orderDetno = item.data.orderdetno
+            item.data.checkQty = item.data.thischeckqty
+            item.data.amount = item.data.money
+            item.data.sourceId = item.data.sourceid
+            item.data.sourceTable = item.data.sourcetable
+            item.data.status = 0
+            item.data.receiveCode = item.data.receivecode
+            item.data.receiveName = item.data.receivename
+            item.data.prodCode  = item.data.prodcode
+            item.data.prodTitle  = item.data.prodtitle
+            item.data.prodUnit  = item.data.produnit
+            item.data.prodSpec  = item.data.prodspec
+            item.data.custUserUU  = item.data.custuseruu
+            item.data.price  = item.data.orderprice
+            items.push(item.data)
+        })
+        if(badTaxrate){
+            saas.util.BaseUtil.showErrorToast('选择的明细税率有不相同的,无法确认对账');
+            return false;
+        }
+        if(badRate){
+            saas.util.BaseUtil.showErrorToast('选择的明细汇率有不相同的,无法确认对账');
+            return false;
+        }
+
+        var params = {
+            enUu:this.getViewModel().get('account').uu,
+            custUu:view.customerUU,
+            custName:view.suuorname,
+            apDate:new Date().getTime(),
+            beginDate:new Date(view.down('[name=date]').value.from).getTime(),
+            endDate:new Date(view.down('[name=date]').value.to).getTime(),
+            checkStatus:'未对账',
+            checkAmount:checkAmount,
+            currency:view.currency,
+            rate:rate,
+            taxrate:taxrate,
+            items:items
+        }
+        
+        saas.util.BaseUtil.request({
+            url: '/api/sale/b2b/apCheck/operation/save',
+            params: JSON.stringify(params),
+            method: 'POST',
+        })
+        .then(function() {
+            view.setLoading(false);
+            //解析参数
+            saas.util.BaseUtil.showSuccessToast('操作成功');
+            //me.refresh()
+        })
+        .catch(function(e) {
+            //失败
+            view.setLoading(false);
+            saas.util.BaseUtil.showErrorToast('操作失败: ' + e.message);
+        });
+    }
+});

+ 34 - 0
frontend/saas-web/app/view/sale/b2b/recformpanel/FormPanelModel.js

@@ -0,0 +1,34 @@
+Ext.define('saas.view.sale.b2b.recformpanel.FormPanelModel', {
+    extend: 'saas.view.core.form.FormPanelModel',
+    alias: 'viewmodel.sale-b2b-recformpanel-formpanel',
+
+    data: {
+        id: 0,
+        base: {
+            bindFields: [], // 绑定字段
+            valid: true, // 单据是否合法
+            editable: false, // 单据是否可编辑
+            codeEditable: false, // 单据编号是否可编辑
+        },
+        auditBtnText: '审核', // 审核按钮默认text
+        showAddBtn: false, // 显示新增按钮
+        showSaveBtn: false, // 显示保存按钮
+        showDeleteBtn: false, // 显示删除按钮
+        showCopyBtn: false, // 显示复制按钮
+        showAuditBtn: false, // 显示审核、反审核按钮
+        showPrintBtn: false, // 显示打印按钮
+        configurable: false, // 显示界面设置按钮
+
+        detailBindeFields: [], // 从表绑定列
+        detailStore: null, // 从表store
+    },
+
+    formulas:{
+        showButtons:{
+            bind:'{ac_confirmstatuscode}',
+            get:function(value){
+                return value == 'UNCONFIRM';
+            }
+        }
+    }
+});

+ 190 - 0
frontend/saas-web/app/view/sale/b2b/reconciliation/DataList.js

@@ -0,0 +1,190 @@
+/**
+ * 应收对账单
+ */
+Ext.define('saas.view.sale.b2b.reconciliation.DataList', {
+    extend: 'saas.view.core.base.BasePanel',
+    xtype: 'sale-b2b-reconciliation-datalist',
+
+    viewName: 'sale-b2b-reconciliation-datalist',
+    dataUrl: '/api/sale/b2b/apCheck/info/list',
+    initComponent: function () {
+        var me = this;
+        Ext.apply(this, {
+            searchField: [{
+                width: 240,
+                name: 'ac_vendname',
+                xtype: 'textfield',
+                emptyText: '请输入客户名称',
+            },{
+                width: 240,
+                name: 'ac_vendcode',
+                xtype: 'textfield',
+                emptyText: '请输入对账编号',
+            }, {
+                xtype: 'condatefield',
+                name: 'ac_date',
+                fieldLabel: '日期',
+                columnWidth: 0.5
+            }],
+
+            gridConfig: {
+                dataUrl: me.dataUrl,
+                actionColumn: [],
+                selModel: {
+                    type: 'cellmodel'
+                },
+                rootProperty: 'data.content',
+                totalProperty: 'data.totalElement',
+                hiddenTools: true,
+                data: [{}],
+                columns: [{
+                    text : '应收对账单编号', 
+                    width:170,
+                    dataIndex : 'code',
+                    cls:'x-querygrid-code-column',
+                    renderer:function(v,style,a,b,c){
+                        return '<span class="x-query-link" style="cursor: pointer;color: #3e80f6;border-bottom: 1px solid #3e80f6;">'+v+'</span>';
+                    },
+                    listeners: {
+                        click: function(tableView, td, row, col, e, record, tr) {
+                            var idValue = record.get('id'),
+                            codeValue = record.get('code'),
+                            id = 'sale-b2b-reconciliation-formpanel-' + idValue;
+                            saas.util.BaseUtil.openTab('sale-b2b-reconciliation-formpanel', "应收对账单("+codeValue+")", id, {
+                                initId: idValue
+                            });
+                        }
+                    }
+                },{
+                    text : 'id', 
+                    hidden:true,
+                    dataIndex : 'id', 
+                    xtype : 'numbercolumn',   
+                },{
+                    text : 'ac_b2bid', 
+                    hidden:true,
+                    dataIndex : 'ac_b2bid', 
+                    xtype : 'numbercolumn',   
+                },{
+                    text : 'accountId', 
+                    hidden:true,
+                    dataIndex : 'accountId', 
+                    xtype : 'numbercolumn',     
+                },{
+                    text : 'ac_sendstatus', 
+                    hidden:true,
+                    dataIndex : 'ac_sendstatus'
+                },{
+                    text : '客户编号', 
+                    dataIndex : 'ac_vendcode', 
+                    hidden:true
+                },{
+                    text : '客户名称', 
+                    dataIndex : 'custName', 
+                    width:110
+                },{
+                    text : '对账期间', 
+                    xtype:'datecolumn',
+                    renderer:function(v,m,r){
+                        if(v&&v!=''){
+                            return Ext.Date.format(new Date(r.get('beginDate')),'Y-m-d') + ' --- ' + Ext.Date.format(new Date(r.get('endDate')),'Y-m-d')
+                        }
+                    },
+                    width : 190.0,
+                    dataIndex : 'apDate'
+                },{
+                    text : '币别', 
+                    width : 90.0, 
+                    dataIndex : 'currency', 
+                },{
+                    text : '对账金额', 
+                    dataIndex : 'checkAmount',
+                    xtype:'numbercolumn', 
+                    width : 110.0,
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
+                },{
+                    text : '对账人', 
+                    dataIndex : 'recorder', 
+                    width : 110.0,
+                },{
+                    text : '对账日期', 
+                    dataIndex : 'apDate', 
+                    xtype:'datecolumn',
+                    renderer:function(v,m,r){
+                        if(v&&v!=''){
+                           return Ext.Date.format(new Date(v), 'Y-m-d H:i:s');
+                        }
+                    },
+                    width : 160.0,
+                }, {
+                    text : '对账结果',
+                    textAlign: 'center',
+                    dataIndex : 'checkStatus', 
+                }]
+            },
+        });
+        this.callParent(arguments);
+    },
+    /**
+     * 处理部分字段值
+     */
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
+            var from = new Date(value.from).getTime(),
+                to = new Date(value.to).getTime();
+
+            conditionValue = {
+                from: from,
+                to: to
+            };
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
+                return v.value;
+            }).join(',') : '';
+        } else {
+            conditionValue = value;
+        }
+
+        return conditionValue;
+    },
+
+
+    getExtraParams: function(store, op, condition) {
+        var ac_vendname = this.down('[name=ac_vendname]');
+        var searchFilter = {}
+        for(var i = 0; i < condition.length; i++) {
+            var con = condition[i];
+            if(con.type == 'date') {
+                searchFilter.fromDate = con.value.from;
+                searchFilter.endDate = con.value.to;
+            }
+        }
+        if(ac_vendname.value&&ac_vendname.value!=""){
+            searchFilter.keyword = ac_vendname.value
+        }
+        var obj = {
+            count:op.config.limit,
+            page:op.config.page,
+            searchFilter:JSON.stringify(searchFilter)
+        };
+
+        return obj;
+    }
+});
+

+ 192 - 0
frontend/saas-web/app/view/sale/b2b/reconciliation/FormPanel.js

@@ -0,0 +1,192 @@
+Ext.define('saas.view.sale.b2b.reconciliation.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'sale-b2b-reconciliation-formpanel',
+
+    controller: 'sale-b2b-reconciliation-formpanel',
+    viewModel: 'sale-b2b-reconciliation-formpanel',
+
+    viewName: 'sale-b2b-reconciliation-formpanel',
+
+    //字段属性
+    _title: '应收对账单',
+    _idField: 'id',
+    _codeField: 'code',
+    _readUrl: '/api/sale/b2b/apCheck/info',
+    initId: 0,
+    initComponent: function () {
+        Ext.apply(this, {
+            defaultItems: [{
+                xtype: 'hidden',
+                name: 'id',
+                fieldLabel: 'id'
+            },{
+                xtype: 'hidden',
+                name: 'endDate',
+                fieldLabel: 'endDate'
+            },{
+                xtype: 'hidden',
+                name: 'beginDate',
+                fieldLabel: 'beginDate'
+            }, {
+                xtype: "textfield",
+                name: "custName",
+                fieldLabel: "客户名称",
+                allowBlank: true,
+                readOnly:true
+            },  {
+                xtype: "textfield",
+                name: "ac_date",
+                fieldLabel: "对账期间",
+                allowBlank: true,
+                readOnly:true
+            }, {
+                xtype: "datefield",
+                renderer:function(v,m,r){
+                    if(v&&v!=''){
+                       return Ext.Date.format(new Date(v), 'Y-m-d H:i:s');
+                    }
+                },
+                name: "apDate",
+                fieldLabel: "制单日期",
+                allowBlank: true,
+                readOnly:true
+            } ,{
+                xtype: "textfield",
+                name: "recorder",
+                fieldLabel: "制单人",
+                allowBlank: true,
+                readOnly:true
+            }, {
+                xtype: "textfield",
+                name: "checkStatus",
+                fieldLabel: "对账状态",
+                allowBlank: true,
+                readOnly:true
+            },{
+                xtype: "numberfield",
+                name: "checkAmount",
+                fieldLabel: "对账总额",
+                allowBlank: true,
+                readOnly:true
+            },{
+                xtype: "textfield",
+                name: "currency",
+                fieldLabel: "币别",
+                allowBlank: true,
+                readOnly:true
+            },{
+                xtype: "numberfield",
+                name: "rate",
+                fieldLabel: "汇率",
+                allowBlank: true,
+                readOnly:true
+            },   
+            {
+                name: "detailGridField",
+                xtype: "detailGridField",
+                detnoColumn: 'ad_detno',
+                editable:false,
+                allowEmpty: true,
+                columns: [{
+                    text: "id",
+                    dataIndex: "id",
+                    xtype: "numbercolumn",
+                    hidden: true
+                },{
+                    text: "ad_acid",
+                    dataIndex: "ad_acid",
+                    xtype: "numbercolumn",
+                    hidden: true
+                },{  
+                    hidden:true,
+                    text: "采购单号",
+                    width: 150.0,
+                    dataIndex: "orderCode",
+                }, { 
+                    text: "验收单号",
+                    width: 120.0,
+                    dataIndex: "inoutno",
+                },{
+                    text: "物料编号",
+                    width: 120.0,
+                    dataIndex: "prodCode",
+                    ignore: true,
+                },{
+                    text: "物料名称",
+                    dataIndex: "prodTitle",
+                    width: 150.0
+                },{
+                    text: "规格型号",
+                    dataIndex: "prodSpec",
+                    width: 200.0
+                },{
+                    text: "单位",
+                    dataIndex: "prodUnit",
+                    width: 100.0
+                },{
+                    text: "数量",
+                    xtype:'numbercolumn',
+                    width: 150.0,
+                    dataIndex: "checkQty",
+                    ignore: true,
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 0, false);
+                    }
+                },{
+                    text: "含税单价",
+                    width: 100.0,
+                    dataIndex: "price",
+                    xtype:'numbercolumn',
+                    ignore: true,
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
+                },{
+                    text: "税率%",
+                    xtype:'numbercolumn',
+                    width: 100.0,
+                    dataIndex: "taxrate",
+                    ignore: true,
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
+                },{
+                    text: "金额",
+                    xtype:'numbercolumn',
+                    width: 100.0,
+                    dataIndex: "amount",
+                    renderer: function (v, m, r) {
+                        return saas.util.BaseUtil.numberFormat(v, 2, false);
+                    }
+                }],
+                initColumns: function() {
+                    // 构造序号列
+                    var me = this,
+                    columns = me.columns,
+                    detnoField = me.detnoColumn;
+            
+                    indexColumn = {
+                        bind: {
+                            text: "{(configurable && isAdmin) ? ('<div class=\"x-sa sa-setting\" style=\"cursor: pointer;\" title=\"列设置\"></div>') : '序号'}"
+                        },
+                        dataIndex : detnoField, 
+                        width : 60, 
+                        xtype : "numbercolumn",
+                        align : 'center',
+                        format:'0',
+                        allowBlank: true,
+                    };
+                    if (detnoField) {
+                        Ext.apply(me, { columns: [indexColumn].concat(columns) });
+                    }
+                }
+            }]
+        });
+        this.callParent();
+    },
+    listeners:{
+        load:function(f){
+            this.getViewModel().setData({ac_date:Ext.Date.format(new Date(this.getViewModel().data.beginDate),'Y-m-d') + ' --- ' + Ext.Date.format(new Date(this.getViewModel().data.endDate),'Y-m-d')})
+        }
+    }
+});

+ 39 - 0
frontend/saas-web/app/view/sale/b2b/reconciliation/FormPanelController.js

@@ -0,0 +1,39 @@
+Ext.define('saas.view.sale.b2b.reconciliation.FormPanelController', {
+    extend: 'saas.view.core.form.FormPanelController',
+    alias: 'controller.sale-b2b-reconciliation-formpanel',
+    init: function (form) {
+        var me = this;
+        this.control({});
+    },
+    agree:function(){
+        var me = this;
+        var url = '/api/money/apcheck/agree/';
+        me.sendUrl(url)
+    },
+    disagree:function(){
+        var me = this;
+        var url = '/api/money/apcheck/reject/';
+        me.sendUrl(url)
+    },
+    sendUrl:function(url){
+        var me = this;
+        var view = me.getView();
+        var id = me.getViewModel().getData().id;
+        view.setLoading(true);
+        saas.util.BaseUtil.request({
+            url: url + id,
+            params: '',
+            method: 'POST',
+        })
+        .then(function() {
+            view.setLoading(false);
+            //解析参数
+            saas.util.BaseUtil.showSuccessToast('操作成功');
+            me.refresh()
+        })
+        .catch(function(e) {
+            //失败
+            saas.util.BaseUtil.showErrorToast('操作失败: ' + e.message);
+        });
+    }
+});

+ 25 - 0
frontend/saas-web/app/view/sale/b2b/reconciliation/FormPanelModel.js

@@ -0,0 +1,25 @@
+Ext.define('saas.view.sale.b2b.reconciliation.FormPanelModel', {
+    extend: 'saas.view.core.form.FormPanelModel',
+    alias: 'viewmodel.sale-b2b-reconciliation-formpanel',
+
+    data: {
+        id: 0,
+        base: {
+            bindFields: [], // 绑定字段
+            valid: true, // 单据是否合法
+            editable: false, // 单据是否可编辑
+            codeEditable: false, // 单据编号是否可编辑
+        },
+        auditBtnText: '审核', // 审核按钮默认text
+        showAddBtn: false, // 显示新增按钮
+        showSaveBtn: false, // 显示保存按钮
+        showDeleteBtn: false, // 显示删除按钮
+        showCopyBtn: false, // 显示复制按钮
+        showAuditBtn: false, // 显示审核、反审核按钮
+        showPrintBtn: false, // 显示打印按钮
+        configurable: false, // 显示界面设置按钮
+
+        detailBindeFields: [], // 从表绑定列
+        detailStore: null, // 从表store
+    }
+});

+ 2 - 1
frontend/saas-web/app/view/stock/inventory/EditDataList.js

@@ -37,7 +37,7 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
         bind: '{form.pr_detail}',
         getCondition: function(v) {
             if(v) {
-                return "(upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%' or upper(pr_barnd) like '%"+v.toUpperCase()+"%')";
+                return "(upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%' or upper(pr_brand) like '%"+v.toUpperCase()+"%')";
             }else {
                 return '1 = 1';
             }
@@ -286,6 +286,7 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
 
             store.setPageSize(pageSize);
 
+            debugger
             grid.ownerCt.el.dom.style.left = '8px';
             grid.el.dom.style.padding = '0px'
         },

+ 14 - 0
frontend/saas-web/overrides/grid/column/CheckColumn.js

@@ -34,6 +34,20 @@ Ext.define('saas.override.grid.column.CheckColumn', {
             cellValues.cellRole = me.disabledCls;
             return '<span style="display: none;" class="'+ me.disabledCls +'"></span>'
         }
+        //hideCheckField   hideCheckVal
+        //根据 某个字段  判断该行的checkbox 是否要隐藏 ,后期可拓展
+        if(e.selModel&&e.selModel.hideCheckField){
+            var field = e.selModel.hideCheckField;
+            var checkVal = e.selModel.hideCheckVal;
+            if(a.get(field)==checkVal){
+                cellValues.style = 'display: none;';
+                cellValues.tdCls += ' ' + me.disabledCls;
+                cellValues.innerCls = me.disabledCls;
+                cellValues.classes.push(me.disabledCls);
+                cellValues.cellRole = me.disabledCls;
+                return '<span style="display: none;" class="'+ me.disabledCls +'"></span>'
+            }
+        }
 
         return '<span class="' + cls + '" role="' + me.checkboxAriaRole + '"' + (!me.ariaStaticRoles[me.checkboxAriaRole] ? ' tabIndex="0"' : '') + '></span>';
     }

+ 16 - 4
frontend/saas-web/resources/json/navigation.json

@@ -310,7 +310,10 @@
         "id": "nav-document-2",
         "text": "辅助资料",
         "items": [{
-            "config":"vendorkind",
+            "config": {
+                "kindType": "vendorkind",
+                "kindText": "供应商类型"
+            },
             "id":"document-kind",
             "text": "供应商类型",
             "viewType": "document-kind",
@@ -321,7 +324,10 @@
             "viewType": "document-address-datalist",
             "leaf": true
         }, {
-            "config":"customerkind",
+            "config": {
+                "kindType": "customerkind",
+                "kindText": "客户类型"
+            },
             "id":"document-kind",
             "text": "客户类型",
             "viewType": "document-kind",
@@ -332,7 +338,10 @@
             "viewType": "document-productunit-datalist",
             "leaf": true
         }, {
-            "config":"productkind",
+            "config": {
+                "kindType": "productkind",
+                "kindText": "物料类型"
+            },
             "id":"document-kind",
             "text": "物料类型",
             "viewType": "document-kind",
@@ -343,7 +352,10 @@
             "viewType": "document-productbrand-datalist",
             "leaf": true
         }, {
-            "config":"inoutkind",
+            "config": {
+                "kindType": "inoutkind",
+                "kindText": "收支类别"
+            },
             "id":"document-kind",
             "text": "收支类别",
             "viewType": "document-kind",