Explorar el Código

收/付款单主表限制从表放大镜逻辑完善,主表字段修改时清空从表数据

zhuth hace 7 años
padre
commit
20951f3cb3

+ 4 - 1
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -47,7 +47,10 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         xtype: "vendorDbfindTrigger",
         xtype: "vendorDbfindTrigger",
         name: "pb_vendname",
         name: "pb_vendname",
         fieldLabel: "供应商名称",
         fieldLabel: "供应商名称",
-        allowBlank : false
+        allowBlank : false,
+        listeners: {
+            change: 'clearDetails'
+        }
     },{
     },{
         xtype:"numberfield",
         xtype:"numberfield",
         name:"ve_leftamount",
         name:"ve_leftamount",

+ 59 - 7
frontend/saas-web/app/view/money/payBalance/FormPanelController.js

@@ -132,8 +132,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                 beforequery: function(f) {
                 beforequery: function(f) {
                     var me = this,
                     var me = this,
                     viewModel = me.getViewModel(),
                     viewModel = me.getViewModel(),
-                    rb_custname = viewModel.get('rb_custname');
-                    if(!rb_custname) {
+                    pb_vendname = viewModel.get('pb_vendname');
+                    if(!pb_vendname) {
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         return false;
                         return false;
                     }
                     }
@@ -141,8 +141,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                 beforetriggerclick: function(f) {
                 beforetriggerclick: function(f) {
                     var me = this,
                     var me = this,
                     viewModel = me.getViewModel(),
                     viewModel = me.getViewModel(),
-                    rb_custname = viewModel.get('rb_custname');
-                    if(!rb_custname) {
+                    pb_vendname = viewModel.get('pb_vendname');
+                    if(!pb_vendname) {
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         return false;
                         return false;
                     }
                     }
@@ -169,7 +169,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                 beforequery: function(f) {
                 beforequery: function(f) {
                     var me = this,
                     var me = this,
                     viewModel = me.getViewModel(),
                     viewModel = me.getViewModel(),
-                    rb_custname = viewModel.get('rb_custname');
+                    rb_custname = viewModel.get('pb_vendname');
                     if(!rb_custname) {
                     if(!rb_custname) {
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         return false;
                         return false;
@@ -178,7 +178,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                 beforetriggerclick: function(f) {
                 beforetriggerclick: function(f) {
                     var me = this,
                     var me = this,
                     viewModel = me.getViewModel(),
                     viewModel = me.getViewModel(),
-                    rb_custname = viewModel.get('rb_custname');
+                    rb_custname = viewModel.get('pb_vendname');
                     if(!rb_custname) {
                     if(!rb_custname) {
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
                         return false;
                         return false;
@@ -288,5 +288,57 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         main.pb_auditman = '';
         main.pb_auditman = '';
         main.pb_auditdate = null;
         main.pb_auditdate = null;
         return formData;
         return formData;
-    }
+    },
+
+    /**
+     * 清空所有从表数据
+     */
+    clearDetails: function() {
+        var me = this;
+        
+        me.clearDetail0();
+        me.clearDetail1();
+    },
+
+    /**
+     * 清空第一个从表数据
+     */
+    clearDetail0: function(f, n, o) {
+        var me = this,
+        form = me.getView(),
+        grid = form.query('detailGridField')[0];
+        me.clearDetail(grid);
+    },
+
+    /**
+     * 清空第二个从表数据
+     */
+    clearDetail1: function() {
+        var me = this,
+        form = me.getView(),
+        grid = form.query('detailGridField')[1];
+        me.clearDetail(grid);
+    },
+
+    /**
+     * 清空一个从表数据
+     */
+    clearDetail: function(grid) {
+        var datas = [],
+        emptyRows = grid.emptyRows,
+        detnoColumn = grid.detnoColumn,
+        detno = 0,
+        store = grid.getStore();
+        
+        Ext.Array.each(new Array(emptyRows), function() {
+            detno += 1;
+            var data = {};
+            data[detnoColumn] = detno;
+            datas.push(data);
+        })
+        store.removeAll();
+        store.add(datas);
+        // 不写该方法合计列会错位,这里触发afterEdit事件用来刷新grid
+        store.getAt(0) ? store.afterEdit(store.getAt(0), ['']) : null;
+    },
 });
 });

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

@@ -46,7 +46,10 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
         xtype: "customerDbfindTrigger",
         xtype: "customerDbfindTrigger",
         name: "rb_custname",
         name: "rb_custname",
         fieldLabel: "客户名称",
         fieldLabel: "客户名称",
-        allowBlank : false
+        allowBlank : false,
+        listeners: {
+            change: 'clearDetails'
+        }
     }, {
     }, {
         xtype: "numberfield",
         xtype: "numberfield",
         name: "cu_leftamount",
         name: "cu_leftamount",

+ 53 - 1
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -263,5 +263,57 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         main.rb_auditman = '';
         main.rb_auditman = '';
         main.rb_auditdate = null;
         main.rb_auditdate = null;
         return formData;
         return formData;
-    }
+    },
+
+    /**
+     * 清空所有从表数据
+     */
+    clearDetails: function() {
+        var me = this;
+        
+        me.clearDetail0();
+        me.clearDetail1();
+    },
+
+    /**
+     * 清空第一个从表数据
+     */
+    clearDetail0: function(f, n, o) {
+        var me = this,
+        form = me.getView(),
+        grid = form.query('detailGridField')[0];
+        me.clearDetail(grid);
+    },
+
+    /**
+     * 清空第二个从表数据
+     */
+    clearDetail1: function() {
+        var me = this,
+        form = me.getView(),
+        grid = form.query('detailGridField')[1];
+        me.clearDetail(grid);
+    },
+
+    /**
+     * 清空一个从表数据
+     */
+    clearDetail: function(grid) {
+        var datas = [],
+        emptyRows = grid.emptyRows,
+        detnoColumn = grid.detnoColumn,
+        detno = 0,
+        store = grid.getStore();
+        
+        Ext.Array.each(new Array(emptyRows), function() {
+            detno += 1;
+            var data = {};
+            data[detnoColumn] = detno;
+            datas.push(data);
+        })
+        store.removeAll();
+        store.add(datas);
+        // 不写该方法合计列会错位,这里触发afterEdit事件用来刷新grid
+        store.getAt(0) ? store.afterEdit(store.getAt(0), ['']) : null;
+    },
 });
 });