Ver código fonte

使用Promise控制界面先渲染后加载数据

zhuth 6 anos atrás
pai
commit
7e29341ba6
1 arquivos alterados com 21 adições e 16 exclusões
  1. 21 16
      frontend/pc-web/app/util/FormUtil.js

+ 21 - 16
frontend/pc-web/app/util/FormUtil.js

@@ -5,22 +5,27 @@ Ext.define('school.util.FormUtil', {
         setItems: function(form) {
         setItems: function(form) {
             let me = this,
             let me = this,
             defaultItems = form.defaultItems;
             defaultItems = form.defaultItems;
-
-            let items = [];
-
-            items = me.applyItemsGroup(defaultItems || []);
-            items = me.initItems(items);
-
-            form.configItems = items;
-
-            items = me.applyDefaultItems(form, items);
-
-            form.removeAll();
-            form.addItems(items);
-
-            form.fireEvent('afterSetItems', form, items);
-
-            me.loadData(form);
+            return new Ext.Promise(function (resolve, reject) {
+                let items = [];
+    
+                items = me.applyItemsGroup(defaultItems || []);
+                items = me.initItems(items);
+    
+                form.configItems = items;
+                items = me.applyDefaultItems(form, items);
+
+                return resolve(items);
+            }).then(function(items) {
+                form.removeAll();
+                form.addItems(items);
+                return items;
+            }).then(function(items) {
+                form.fireEvent('afterSetItems', form, items);
+            }).then(function() {
+                me.loadData(form);
+            }).catch(function(e) {
+                school.util.BaseUtil.showErrorToast(e.message);
+            });
         },
         },
 
 
         applyItemsGroup: function(items) {
         applyItemsGroup: function(items) {