Browse Source

单据审核不可编辑

zhuth 7 years ago
parent
commit
217db23923

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

@@ -111,7 +111,7 @@ Ext.define('saas.view.core.form.FormPanel', {
                 }, {
                     xtype: 'button',
                     bind: {
-                        text: '{auditBtnText}'
+                        text: '{base.auditBtnText}'
                     },
                     handler: "auditBtnClick",
 
@@ -137,17 +137,19 @@ Ext.define('saas.view.core.form.FormPanel', {
 
         if (statusCodeField) {
             var o = {};
-            o['auditBtnText'] = {
+            o['bindEditable'] = {
                 bind: '{' + statusCodeField + '}',
                 get: function(value) {
                     viewModel.set(statusField, value == 'AUDITED' ? '已审核' : '未审核');
-                    return value == 'AUDITED' ? '反审核' : '审核'
+                    viewModel.set('base.auditBtnText', value == 'AUDITED' ? '反审核' : '审核');
+                    me.setEditable(value != 'AUDITED');
+                    return value;
                 }
             };
             viewModel.setFormulas(o);
             viewModel.set(statusCodeField, "UNAUDITED");
         } else {
-            viewModel.set('auditBtnText', "审核");
+            viewModel.set('base.auditBtnText', "审核");
         }
     },
 
@@ -250,4 +252,27 @@ Ext.define('saas.view.core.form.FormPanel', {
         });
         viewModel.set('base.bindFields', bindFields);
     },
+    setEditable: function(able) {
+        var me = this,
+        viewModel = me.getViewModel(),
+        items = me.getForm().getFields().items;
+
+        var detailGrids = me.query('detailGridField');
+
+        Ext.Array.each(detailGrids, function(g) {
+            var columns = g.columns;
+            Ext.Array.each(columns, function(c) {
+                var e = c.getEditor();
+                if(e) {
+                    typeof e.setDisabled == 'function' && e.setDisabled(!able);
+                }
+            });
+        });
+
+        Ext.Array.each(items, function(item) {
+            if(typeof item.setEditable == 'function') {
+                typeof item.setDisabled == 'function' && item.setDisabled(!able);
+            }
+        });
+    }
 });

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

@@ -189,7 +189,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
                     form.initId = localJson.data.id;
                 }
                 form.FormUtil.loadData(form);
-                viewModel.set('base.editable', false);
+                form.setEditable(false);
                 showToast('审核成功');
             }
         })

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

@@ -8,6 +8,7 @@ Ext.define('saas.view.core.form.FormPanelModel', {
             bindFields: [], // 绑定字段
             editable: true, // 单据是否可编辑
             codeEditable: false, // 单据编号是否可编辑
+            auditBtnText: '审核',
         },
         detailBindeFields: [], // 从表绑定列
         detailStore: null, // 从表store