Kaynağa Gözat

【bug】制造单保存按钮状态无法正确变动的bug

zhuth 7 yıl önce
ebeveyn
işleme
637e5cf52e

+ 39 - 24
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -318,37 +318,52 @@ Ext.define('saas.view.core.form.FormPanel', {
         viewModel = me.getViewModel(),
         viewData = viewModel.getData();
 
-        viewModel.setData(main);
-
-        viewModel.notify();
+        me.setMainData(main);
 
         var detailGrids = me.query('detailGridField');
 
         for (var i = 0; i < detailGrids.length; i++) {
-            var detailData = formData['detail' + i] || [],
-                detail = viewData['detail' + i],
-                grid = detailGrids[i],
-                detnoColumn = grid.detnoColumn,
-                store = detail.detailStore;
-
-            store.removeAll();
-            if (detailData.length > 0) {
-
-                for(var j = 0; j < detailData.length; j++) {
-                    var d = detailData[j];
-                    var o = {};
-                    o[detnoColumn] = j + 1;
-                    var r = store.add(o)[0];
-                    for(var k in d) {
-                        r.set(k, d[k]);
-                    }
-                }
+            var detailData = formData['detail' + i] || [];
+            me.setDetailData(detailData);
+        }
+    },
+
+    setMainData: function(mainData) {
+        var me = this,
+        viewModel = me.getViewModel();
+
+        viewModel.setData(mainData);
+        viewModel.notify();
 
-            }else {
-                // store.
+        me.isValid();
+    },
+
+    setDetailData: function(detailData, index) {
+        index = index || 0;
+
+        var me = this,
+        viewModel = me.getViewModel(),
+        viewData = viewModel.getData(),
+        detailGrids = me.query('detailGridField'),
+        detail = viewData['detail' + index],
+        grid = detailGrids[index],
+        detnoColumn = grid.detnoColumn,
+        store = detail.detailStore;
+
+        store.removeAll();
+        if (detailData.length > 0) {
+
+            for(var j = 0; j < detailData.length; j++) {
+                var d = detailData[j];
+                var o = {};
+                o[detnoColumn] = j + 1;
+                var r = store.add(o)[0];
+                for(var k in d) {
+                    r.set(k, d[k]);
+                }
             }
         }
-        
+
         me.isValid();
     },
 

+ 1 - 1
frontend/saas-web/app/view/stock/make/FormPanelController.js

@@ -143,7 +143,7 @@ Ext.define('saas.view.stock.make.FormPanelController', {
                         mm_price: type == '拆件' ? item.productDTO.pr_purcprice : null
                     })
                 });
-                store.loadData(loadData);
+                form.setDetailData(loadData);
             }
         })
         .catch(function (res) {

+ 1 - 1
frontend/saas-web/app/view/stock/make/FormPanelModel.js

@@ -11,7 +11,7 @@ Ext.define('saas.view.stock.make.FormPanelModel', {
                 items  = store.getData().items,
                 oneuseqty=0;
                 Ext.Array.each(items, function(item, i) {
-                    oneuseqty = item.get('mm_oneuseqty');
+                    oneuseqty = item.get('mm_oneuseqty') || 0;
                     item.set('mm_qty', oneuseqty*v);               
                 });
                 return v;