瀏覽代碼

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

hy 7 年之前
父節點
當前提交
c436039534

+ 1 - 1
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Product.java

@@ -14,7 +14,7 @@ public class Product extends CommonBaseEntity implements Serializable {
     private String pr_unit;
     private String pr_kind;
     private String pr_orispeccode;
-    private long pr_whid;
+    private Long pr_whid;
     private String pr_whcode;
     private String pr_whname;
     private Long pr_zxbzs;

+ 1 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BomServiceImpl.java

@@ -53,7 +53,7 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
         //校验组合件和子件不允许相同
         if (bomDetailList.size() > 0){
             for (BomDetail bomDetail : bomDetailList){
-                if (bom.getBo_mothercode().equals(bomDetail.getProductDTO().getPr_code())){
+                if (bom.getBo_mothercode().equals(bomDetail.getBd_soncode())){
                     throw new BizException(BizExceptionCode.BOM_CODE_REPEAT);
                 }
             }

+ 1 - 5
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -336,16 +336,13 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             if (!Status.ENABLE.getDisplay().equals(product.getPr_status())){
                 throw new BizException(BizExceptionCode.BIZ_BANNED);
             }
-            String code = getMapper().getCodeById(id);
-            product = new Product();
-            product.setId(id);
             product.setPr_status(Status.BANNED.getDisplay());
             product.setPr_statuscode(Status.BANNED.name());
             product.setUpdaterId(BaseContextHolder.getUserId());
             product.setUpdateTime(new Date());
             getMapper().updateByPrimaryKeySelective(product);
             //记录LOG
-            docBaseDTO = generateMsgObj(id, code);
+            docBaseDTO = generateMsgObj(id, product.getPr_code());
             messageLogService.customizeLog(docBaseDTO, Operation.BANNED);
             return docBaseDTO;
         }else{
@@ -365,7 +362,6 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             if (!Status.BANNED.getDisplay().equals(product.getPr_status())){
                 throw new BizException(BizExceptionCode.BIZ_ENABLE);
             }else{
-                product.setId(id);
                 product.setPr_statuscode(Status.ENABLE.name());
                 product.setPr_status(Status.ENABLE.getDisplay());
                 product.setUpdaterId(BaseContextHolder.getUserId());

+ 11 - 6
frontend/saas-web/app/util/BaseUtil.js

@@ -86,11 +86,17 @@ Ext.define('saas.util.BaseUtil', {
          * @param message: 内容
          * @return : Promise
          */
-        showConfirm: function (title, message) {
+        showConfirm: function (title, message, config) {
             return new Ext.Promise(function (resolve, reject) {
-                Ext.MessageBox.confirm(title, message, function (buttonId) {
-                    return resolve(buttonId);
-                });
+                Ext.MessageBox.show(Ext.Object.merge({
+                    title: title,
+                    msg: message,
+                    buttons: Ext.Msg.YESNO,
+                    icon: Ext.Msg.QUESTION,
+                    fn: function (buttonId) {
+                        return resolve(buttonId);
+                    }
+                }, config));
             })
         },
 
@@ -157,13 +163,12 @@ Ext.define('saas.util.BaseUtil', {
                         if (res.success) {
                             return resolve(res);
                         } else {
-                            console.error('server request failure with code ' + res.code + '.');
                             console.error('failure message: ' + res.message);
                             return reject(res);
                         }
                     },
                     failure: function (response, opts) {
-                        console.error('server-side failure with status code ' + response);
+                        console.error('server-side failure.', response);
                         return reject(response);
                     }
                 });

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

@@ -286,6 +286,7 @@ Ext.define('saas.util.FormUtil', {
                         form.fireEvent('load', form, formData);
                     }
                 }).catch(function(res) {
+                    form.clearDirty();
                     saas.util.BaseUtil.showErrorToast(res.message);
                     form.setLoading(false);
                 })

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

@@ -31,7 +31,6 @@ Ext.define('saas.view.core.form.FormPanel', {
     remoteConfig: true, // 是否需要从远端读取form配置
     toolBtns: [], // 自定义按钮
     codeInHeader: true, // 单据编号显示在toolbar
-    closeConfirm: true, // 关闭确认
     invalidText: '表单校验有误,请检查', // 校验未通过提示内容
     dirtyAuditText: '表单数据有修改,是否先保存修改?', // 有修改时点击审核提示内容
     noDirtySaveText: '表单数据无修改', // 无修改点击保存提示内容
@@ -487,7 +486,7 @@ Ext.define('saas.view.core.form.FormPanel', {
         return dirty;
     },
 
-    getDirtyData: function() {
+    getSaveData: function() {
         var me = this,
         viewModel = me.getViewModel(),
         allData = viewModel.getData(),
@@ -508,6 +507,52 @@ Ext.define('saas.view.core.form.FormPanel', {
             main: formData,
         };
 
+        for (var i = 0; i < detailCount; i++) {
+            var g = detailGrids[i];
+            var gridDirtyData = g.getSaveData();
+            var modelDetail = allData['detail' + i];
+            var detailBindFields = modelDetail.detailBindFields;
+
+            Ext.Array.each(gridDirtyData, function(d) {
+                for(k in d) {
+                    if(!Ext.Array.contains(detailBindFields, k)) {
+                        delete d[k];
+                    }
+                }
+            });
+            
+
+            dirtyData['detail' + i] = gridDirtyData;
+        }
+
+        return dirtyData;
+    },
+
+    getDirtyData: function() {
+        var me = this,
+        formF = me.getForm(),
+        viewModel = me.getViewModel(),
+        allData = viewModel.getData(),
+        bindFields = allData.base.bindFields,
+        detailCount = me.detailCount,
+        formData = {},
+        detailGrids = me.query('detailGridField');
+
+        Ext.Array.each(bindFields, function(field) {
+            var v = allData[field];
+            var f = formF.findField(field);
+            if(Ext.isDate(v)) {
+                v = Ext.Date.format(v, 'Y-m-d H:i:s');
+            }
+            if(f && f.isDirty()) {
+                formData[field] = f.originalValue;
+            }
+        });
+
+        var dirtyData = {
+            main: formData,
+        };
+
         for (var i = 0; i < detailCount; i++) {
             var g = detailGrids[i];
             var gridDirtyData = g.getDirtyData();
@@ -544,4 +589,28 @@ Ext.define('saas.view.core.form.FormPanel', {
     beforeUnAudit: function() {
         return true;
     },
+
+    promiseCloseTab: function() {
+        var me = this,
+        controller = me.getController();
+
+        if(me.isDirty()) {
+            return saas.util.BaseUtil.showConfirm('提示', '表单数据有修改,离开前要保存吗?', {
+                buttons: Ext.Msg.YESNOCANCEL
+            }).then(function(yes) {
+                if(yes === 'yes') {
+                    controller.onSave();
+                    return false;
+                }else if(yes === 'no') {
+                    return true;
+                }else {
+                    return false
+                }
+            })
+        }else {
+            return new Promise(function (resolve, reject) {
+                return resolve(true);
+            });
+        }
+    }
 });

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

@@ -169,7 +169,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         modelData = viewModel.getData();
 
         //form里面数据
-        var formData = form.getDirtyData();
+        var formData = form.getSaveData();
 
         var params = {
             main:formData.main

+ 21 - 2
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -69,11 +69,16 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
             listeners: {
                 boxready: function(g) {
                     var f = g.ownerCt,
+                    ih = g.initialConfig.height,
                     c = f.detailCount || 1,
                     fb = f.getBox(),
                     fh = fb.height,
                     h = (fh * 0.5) / c;
 
+                    if(ih) {
+                        g.setMinHeight(ih);
+                        h = ih;
+                    }
                     g.setHeight(h);
                 },
                 edit: function() {
@@ -458,7 +463,7 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         return allData;
     },
 
-    getDirtyData: function() {
+    getSaveData: function() {
         var me = this,
         store = me.getStore(),
         allData = store.getData().items,
@@ -518,5 +523,19 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
             }
         });
         return trueData;
-    }
+    },
+
+    getDirtyData: function() {
+        var me = this,
+        store = me.getStore(),
+        modifiedData = store.getModifiedRecords(),
+        dirtyData = [];
+
+        Ext.Array.each(modifiedData, function(m, index) {
+            var modified = m.modified;
+            dirtyData.push(modified);
+        });
+
+        return dirtyData;
+    },
 });

+ 13 - 9
frontend/saas-web/app/view/core/tab/Controller.js

@@ -32,10 +32,11 @@ Ext.define('saas.view.core.tab.Controller', {
          
                 if (me.fireEvent('beforeclose', me) !== false) {
                     if (me.tabBar) {
-                        if(tabView.closeConfirm && tabView.isDirty()) {
-                            saas.util.BaseUtil.showConfirm('提示', '表单数据有修改,确定要退出吗?')
-                            .then(function(yes) {
-                                if(yes == 'yes') {
+                        if(tabView.fireEvent('beforeclose', tabView) !== false && tabView.promiseCloseTab && typeof tabView.promiseCloseTab == 'function') {
+                            tabView.promiseCloseTab()
+                            .then(function(close) {
+                                console.log();
+                                if(close) {
                                     if (me.tabBar.closeTab(me) === false) {
                                         return;
                                     }
@@ -47,11 +48,14 @@ Ext.define('saas.view.core.tab.Controller', {
                             }
                         }
                     } else {
-                        if(tabView.closeConfirm == 'function' && tabView.isDirty()) {
-                            saas.util.BaseUtil.showConfirm('提示', '表单数据有修改,确定要退出吗?')
-                            .then(function(yes) {
-                                if(yes == 'yes') {
-                                    me.fireClose();
+                        if(tabView.fireEvent('beforeclose', tabView) !== false && tabView.promiseCloseTab && typeof tabView.promiseCloseTab == 'function') {
+                            tabView.promiseCloseTab()
+                            .then(function(close) {
+                                console.log();
+                                if(close) {
+                                    if (me.tabBar.closeTab(me) === false) {
+                                        return;
+                                    }
                                 }
                             });
                         }else {

+ 2 - 0
frontend/saas-web/app/view/document/customer/FormPanel.js

@@ -232,6 +232,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         showCount: false,
         deleteDetailUrl:'/api/document/customer/deletecontact',
         height:145,
+        emptyRows: 3,
         columns : [
             {
                 text : "ID", 
@@ -296,6 +297,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         showCount: false,
         deleteDetailUrl:'/api/document/customer/deleteaddress',
         height:145,
+        emptyRows: 3,
         columns : [
             {
                 text : "ID", 

+ 1 - 1
frontend/saas-web/app/view/money/verification/FormPanelController.js

@@ -566,7 +566,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
         modelData = viewModel.getData();
 
         //form里面数据
-        var formData = form.getDirtyData();
+        var formData = form.getSaveData();
 
         var params = {
             main:formData.main

+ 2 - 2
frontend/saas-web/app/view/stock/inventory/EditDataList.js

@@ -500,7 +500,7 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
     },
     onSave:function(){
         var me = this,
-        gridData = me.getDirtyData();
+        gridData = me.getSaveData();
         if(gridData==null){
             saas.util.BaseUtil.showErrorToast('未修改数据');
         }
@@ -519,7 +519,7 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
             saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
         });        
     },
-    getDirtyData: function() {
+    getSaveData: function() {
         var me = this,
         store = me.getStore(),
         allData = store.getData().items,