zhuth 6 лет назад
Родитель
Сommit
1b0bedf67e

+ 2 - 0
frontend/saas-web/app/util/FormUtil.js

@@ -11,6 +11,8 @@ Ext.define('saas.util.FormUtil', {
             let me = this,
             defaultItems = form.defaultItems;
 
+            // form.add(defaultItems);
+
             saas.util.ViewUtil.getViewConfig(form.viewName)
             .then(function(cfg) {
                 if(cfg) {

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

@@ -15,7 +15,7 @@ Ext.define('saas.util.ViewUtil', {
                 url = me.getCfgUrl.replace(me.urlRe, '$1' + viewName);
             return saas.util.BaseUtil.request({
                     url,
-                    async: false
+                    async: true
                 })
                 .then(function (res) {
                     let cfg = me.decodeViewConfig(res.data);

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

@@ -50,7 +50,6 @@ Ext.define('saas.view.core.form.FormPanel', {
         auditTexts = me.auditTexts;
         me._deleteMsg = '删除的'+me._title+'将不能恢复,请确认是否删除?';
         me.initViewModel();
-        me.initFormItems();
 
         me.defaultBtns = me.defaultBtns || [{
             cls: 'x-formpanel-btn-blue',
@@ -144,6 +143,8 @@ Ext.define('saas.view.core.form.FormPanel', {
             },
         });
         me.callParent(arguments);
+
+        me.initFormItems();
     },
 
     initFormItems: function() {

+ 52 - 20
frontend/saas-web/app/view/money/verification/FormPanel.js

@@ -39,28 +39,60 @@ Ext.define('saas.view.money.verification.FormPanel', {
         me.defaultItems = Ext.Array.clone(defaultItems);
         me.detailCount = 0;
 
+        me.setLoading(true);
         saas.util.ViewUtil.getViewConfig(me.viewName)
-            .then(function (cfg) {
-                let items = defaultItems || [];
-
-                me.cusCfg = cfg;
-
-                items = FormUtil.initItems(items);
-                items = FormUtil.applyCusMainItemConfig(items, cfg);
-                items = FormUtil.applyCusDetailItemConfig(items, cfg);
-
-                me.configItems = items;
-
-                items = FormUtil.applyDefaultItems(me, items);
-                me.removeAll();
-                return me.addItems(items);
-            })
-            .then(function (items) {
-                me.fireEvent('afterSetItems', me, items);
-            })
-            .then(function () {
+        .then(function (cfg) {
+            me.setLoading(false);
+            let items = defaultItems || [];
+
+            me.cusCfg = cfg;
+
+            items = FormUtil.initItems(items);
+            items = FormUtil.applyCusMainItemConfig(items, cfg);
+            items = FormUtil.applyCusDetailItemConfig(items, cfg);
+
+            me.configItems = items;
+
+            items = FormUtil.applyDefaultItems(me, items);
+            me.removeAll();
+            return me.addItems(items);
+        })
+        .then(function (items) {
+            me.fireEvent('afterSetItems', me, items);
+        })
+        .then(function () {
+            if(!me._loaded) {
+                me._loaded = true;
                 FormUtil.loadData(me);
-            })
+            }else {
+                let viewModel = me.getViewModel();
+                let code = viewModel.get(me._codeField);
+                let detailGrids = me.query('detailGridField');
+
+                let o = {};
+                o[me._codeField] = code;
+
+                let formData = {main: {}};
+                Ext.apply(formData.main, o);
+                Ext.Array.each(detailGrids, function(grid, index) {
+                    let detno = 0;
+                    let detnoColumn = grid.detnoColumn;
+                    let datas = [];
+                    let emptyRows = grid.emptyRows;
+                    
+                    Ext.Array.each(new Array(emptyRows), function() {
+                        detno += 1;
+                        let data = {};
+                        data[detnoColumn] = detno;
+                        datas.push(data);
+                    })
+                    formData['detail' + index] = datas;
+                });
+
+                me.initFormData(formData);
+                me.fireEvent('load', me, formData);
+            }
+        })
     },
 
     getAcitveItems: function () {