Sfoglia il codice sorgente

beforeSave/beforeDelete/beforeAudit/beforeUnaudit

zhuth 7 anni fa
parent
commit
edbc0928a3

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

@@ -179,23 +179,6 @@ Ext.define('saas.view.core.form.FormPanel', {
         return items;
     },
 
-    isValid: function() {
-        var me = this;
-        var viewModel = me.getViewModel();
-        var valid = me.getForm().isValid();
-        var detailGrids = me.query('detailGridField');
-
-        for(var i = 0; i < detailGrids.length; i++) {
-            var g = detailGrids[i];
-            if(!g.isValid()) {
-                valid = false;
-                break;
-            }
-        }
-        viewModel.set('base.valid', valid);
-        return valid;
-    },
-
     /**
      * 一些初始化viewModel的方法
      */
@@ -415,6 +398,23 @@ Ext.define('saas.view.core.form.FormPanel', {
     },
 
     //overriders
+    isValid: function() {
+        var me = this;
+        var viewModel = me.getViewModel();
+        var valid = me.getForm().isValid();
+        var detailGrids = me.query('detailGridField');
+
+        for(var i = 0; i < detailGrids.length; i++) {
+            var g = detailGrids[i];
+            if(!g.isValid()) {
+                valid = false;
+                break;
+            }
+        }
+        viewModel.set('base.valid', valid);
+        return valid;
+    },
+
     isDirty: function () {
         var me = this,
         detailGrids = me.query('detailGridField'),
@@ -437,5 +437,21 @@ Ext.define('saas.view.core.form.FormPanel', {
 
     getDirtyData: function() {
         return this.getForm().getDirtyData();
-    }
+    },
+
+    beforeSave: function() {
+        return true;
+    },
+
+    beforeDelete: function() {
+        return true;
+    },
+
+    beforeAudit: function() {
+        return true;
+    },
+
+    beforeUnAudit: function() {
+        return true;
+    },
 });

+ 18 - 0
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -82,6 +82,11 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var id = viewModel.get(form._idField);
         var code = viewModel.get(form._codeField);
         if(id&&id.value!=0){
+
+            if(!form.beforeDelete()) {
+                return false;
+            }
+
             deleteWarn(form._deleteMsg,function(btn){
                 if(btn == 'yes'){
                     me.BaseUtil.request({
@@ -115,6 +120,10 @@ Ext.define('saas.view.core.form.FormPanelController', {
             return false;
         }
 
+        if(!form.beforeSave()) {
+            return false;
+        }
+
         me.save();
     },
 
@@ -196,6 +205,10 @@ Ext.define('saas.view.core.form.FormPanelController', {
             showToast(form.invalidText);
             return false;
         }
+
+        if(!form.beforeAudit()) {
+            return false;
+        }
         
         //form里面数据
         var formData = form.getFormData();
@@ -263,6 +276,11 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var id = viewModel.get(form._idField);
         var code = viewModel.get(form._codeField);
         if(id&&id.value!=0){
+
+            if(!form.beforeUnAudit()) {
+                return false;
+            }
+
             me.BaseUtil.request({
                 url: form._unAuditUrl+id,
                 method: 'POST',