Browse Source

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

huangx 7 years ago
parent
commit
f44c13101c
33 changed files with 337 additions and 63 deletions
  1. 1 1
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/ListReqDTO.java
  2. 1 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  3. 9 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  4. 19 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  5. 28 0
      frontend/saas-web/app/Application.scss
  6. 19 0
      frontend/saas-web/app/view/core/base/GridPanel.js
  7. 29 0
      frontend/saas-web/app/view/core/base/ImportWindow.js
  8. 1 1
      frontend/saas-web/app/view/core/form/FormPanel.js
  9. 1 1
      frontend/saas-web/app/view/core/form/MseeageLog.js
  10. 1 1
      frontend/saas-web/app/view/document/bom/FormPanel.js
  11. 1 1
      frontend/saas-web/app/view/document/customer/FormPanel.js
  12. 1 1
      frontend/saas-web/app/view/document/product/FormPanel.js
  13. 1 1
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  14. 1 0
      frontend/saas-web/app/view/main/Main.js
  15. 10 0
      frontend/saas-web/app/view/main/Main.scss
  16. 1 1
      frontend/saas-web/app/view/money/othreceipts/FormPanel.js
  17. 1 1
      frontend/saas-web/app/view/money/report/AccountBalance.js
  18. 1 1
      frontend/saas-web/app/view/money/report/AccountDetails.js
  19. 13 13
      frontend/saas-web/app/view/money/report/PayDetail.js
  20. 13 13
      frontend/saas-web/app/view/money/report/RecDetail.js
  21. 46 0
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanelController.js
  22. 51 6
      frontend/saas-web/app/view/purchase/purchaseOut/FormPanelController.js
  23. 1 1
      frontend/saas-web/app/view/stock/inventory/EditDataList.js
  24. 1 1
      frontend/saas-web/app/view/stock/stockamount/DataList.js
  25. 7 7
      frontend/saas-web/app/view/sys/config/FormPanel.js
  26. 1 1
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  27. 1 1
      frontend/saas-web/app/view/sys/maxnumbers/DataList.js
  28. 1 1
      frontend/saas-web/app/view/sys/messagelog/DataList.js
  29. 0 7
      frontend/saas-web/app/view/sys/power/GroupGrid.js
  30. 3 2
      frontend/saas-web/app/view/sys/power/OtherField.js
  31. 4 0
      frontend/saas-web/overrides/button/Button.js
  32. 26 0
      frontend/saas-web/overrides/grid/column/Widget.js
  33. 43 0
      frontend/saas-web/overrides/grid/feature/Grouping.js

+ 1 - 1
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/ListReqDTO.java

@@ -38,7 +38,7 @@ public class ListReqDTO implements Serializable {
                         fieldSql = new StringBuilder("'{");
                         fieldSql.append("\"" + field + "\":'");
                         fieldSql.append(",");
-                        fieldSql.append(operation + "(" + field + ")");
+                        fieldSql.append("ifnull(" + operation + "(" + field + ")" + ",'0')");
                         fieldSql.append(",");
                         fieldSql.append("',\"operation\":\"" + operation + "\"");
                         fieldSql.append("}'");

+ 1 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -33,6 +33,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
     BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
     BIZ_RELUPDATE_CODEANDNAME(79311,"存在关联单据,不允许更新编号,名称"),
+    BIZ_RELUPDATE_AMOUNT(79312,"存在关联单据,不允许更新期初应收,期初预收"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),

+ 9 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java

@@ -210,8 +210,17 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
                 if (count > 0) {
                     throw new BizException(BizExceptionCode.BIZ_RELUPDATE_CODEANDNAME);
                 }
+
+                //限制关联单据不可修改金额
+                Customer customer1 = getMapper().selectByPrimaryKey(customer.getId());
+                if (customer.getCu_beginaramount() != customer1.getCu_beginaramount() ||
+                        customer.getCu_beginprerecamount() != customer1.getCu_beginprerecamount()){
+                    throw new BizException(BizExceptionCode.BIZ_RELUPDATE_AMOUNT);
+                }
             }
 
+
+
             //检查期初日期是否已结转
             count = getMapper().validFinish(cu_id, companyId);
             if (count > 0) {

+ 19 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java

@@ -186,6 +186,24 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
                 }
             }
 
+            //有关联时不可修改名称编号
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("v_id",main.getId());
+            map.put("v_code", ve_code);
+            map.put("v_type","vend");
+            map.put("v_companyid",BaseContextHolder.getCompanyId());
+            map.put("v_res","");
+            vendorMapper.check(map);
+            Object result =  map.get("v_res");
+            if(!StringUtils.isEmpty(result)){
+                //限制关联单据不可修改金额
+                Vendor vendor = getMapper().selectByPrimaryKey(main.getId());
+                if (vendor.getVe_beginapamount() != main.getVe_beginapamount() ||
+                        vendor.getVe_beginprepayamount() != main.getVe_beginprepayamount()){
+                    throw new BizException(BizExceptionCode.BIZ_RELUPDATE_AMOUNT);
+                }
+            }
+
             //检查期初日期是否已结转
             count = getMapper().validFinish(mainId,companyId);
             if (count>0) {
@@ -294,6 +312,7 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         }
     }
 
+
     /**
      * 关闭
      * @param id

+ 28 - 0
frontend/saas-web/app/Application.scss

@@ -128,11 +128,32 @@ body.launching {
 .x-btn.x-btn-menu-active.x-btn-default-toolbar-small,
 .x-btn.x-btn-pressed.x-btn-default-toolbar-small,
 .x-btn-over.x-btn-default-toolbar-small {
+  border-color: #1592ca;
   background: #34BAF6;
   opacity: 0.72;
 }
 
 .x-btn-over{
+  .x-btn-wrap{
+    .x-btn-button{
+      .x-btn-inner{
+        color:#fff;
+      }
+    }
+  }
+}
+
+.x-btn-pressed{
+  .x-btn-wrap{
+    .x-btn-button{
+      .x-btn-inner{
+        color:#fff !important;
+      }
+    }
+  }
+}
+
+.x-btn-menu-active{
   .x-btn-wrap{
     .x-btn-button{
       .x-btn-inner{
@@ -149,6 +170,13 @@ body.launching {
   border:1px solid #34BAF6;
 }
 
+.x-segmented-button-item .x-keyboard-mode .x-btn-focus.x-btn-default-toolbar-small {
+  background: #34BAF6 !important;
+  border:1px solid #34BAF6 !important;
+  opacity: 1;
+  box-shadow: none;
+}
+
 .x-keyboard-mode .x-btn-focus.x-btn-over.x-btn-default-toolbar-small {
   background: #34BAF6;
   box-shadow: none;

+ 19 - 0
frontend/saas-web/app/view/core/base/GridPanel.js

@@ -164,6 +164,25 @@ Ext.define('saas.view.core.base.GridPanel', {
 
     onImport:function(){
         var grid = this.ownerCt.ownerCt;
+        var form = grid.ownerCt,panelEl = form.getEl();
+        var box = panelEl.getBox();
+        var height = box.height;
+        var width = box.width;
+        var win = form.add(Ext.create('saas.view.core.base.ImportWindow', {  
+            cls:'x-window-dbfind', 
+            belong:form,  
+            modal:true,
+            height: height * 0.8,
+            width: width * 0.8,
+            title: form._title + '导入',
+            scrollable: true,
+            bodyPadding: 10,
+            constrain: true,
+            closable: true,
+            layout:'fit',
+            renderTo:form.getEl()
+        }));
+        win.show();
     },
 
     onExport:function(me){

+ 29 - 0
frontend/saas-web/app/view/core/base/ImportWindow.js

@@ -1,6 +1,35 @@
 Ext.define('saas.view.core.base.ImportWindow', {
     extend: 'Ext.window.Window',
     xtype: 'importwindow',
+    layout:'fit',
+
+    requires: [
+        'Ext.container.ButtonGroup'
+    ],
+
+    items:[{
+        xtype:'panel',
+        layout:'column',
+        defaults:{
+            columnWidth:1
+        },
+        tbar:['->',{
+            width:300,
+            text:'下载模板并填写'
+        },{
+            width:300,
+            text:'上传导入文件'
+        },'->'],
+        items:[{
+            xtype:'container',
+            html:'asddddddddddddddddddddd',
+        },{
+            xtype:'fieldset',
+            items:[{
+                text:'asddddddddddddddddddddd'
+            }]
+        }]
+    }],
 
     initComponent: function() {
         var me = this;

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

@@ -52,7 +52,7 @@ Ext.define('saas.view.core.form.FormPanel', {
         me.initFormItems();
 
         me.defaultBtns = me.defaultBtns || [{
-            cls: 'x-formpanel-btn-orange',
+            cls: 'x-formpanel-btn-blue',
             xtype: 'button',
             text: '新增',
             hidden: true,

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

@@ -13,7 +13,7 @@ Ext.define('saas.view.core.form.MseeageLog', {
         xtype: 'textfield',
         emptyText : '操作人员'
     },{
-        cls:'x-formpanel-btn-orange',
+        cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
         listeners: {

+ 1 - 1
frontend/saas-web/app/view/document/bom/FormPanel.js

@@ -23,7 +23,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
     codeInHeader: false,
 
     defaultButtons:[{
-        cls: 'x-formpanel-btn-orange',
+        cls: 'x-formpanel-btn-blue',
         xtype: 'button',
         text: '新增',
         bind: {

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

@@ -415,7 +415,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
             }]
     }],
     defaultButtons:[{
-        cls: 'x-formpanel-btn-orange',
+        cls: 'x-formpanel-btn-blue',
         xtype: 'button',
         text: '新增',
         bind: {

+ 1 - 1
frontend/saas-web/app/view/document/product/FormPanel.js

@@ -336,7 +336,7 @@ Ext.define('saas.view.document.product.FormPanel', {
     }],
 
     defaultButtons:[{
-        cls: 'x-formpanel-btn-orange',
+        cls: 'x-formpanel-btn-blue',
         xtype: 'button',
         text: '新增',
         bind: {

+ 1 - 1
frontend/saas-web/app/view/document/vendor/FormPanel.js

@@ -298,7 +298,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
     ],
 
     defaultButtons:[{
-        cls: 'x-formpanel-btn-orange',
+        cls: 'x-formpanel-btn-blue',
         xtype: 'button',
         text: '新增',
         bind: {

+ 1 - 0
frontend/saas-web/app/view/main/Main.js

@@ -45,6 +45,7 @@ Ext.define('saas.view.main.Main', {
                 },{
                     reference: 'mainprofile',
                     arrowVisible: false,
+                    cls:'x-main-master',
                     ui: 'header',
                     bind: {
                         text: '{company.name}'

+ 10 - 0
frontend/saas-web/app/view/main/Main.scss

@@ -364,3 +364,13 @@ body > .x-mask {
         background-position: center;
     }
 }
+
+.x-main-master{
+    .x-btn-wrap{
+        .x-btn-button{
+            .x-btn-inner{
+                color:#999 !important;
+            }
+        }
+    }
+}

+ 1 - 1
frontend/saas-web/app/view/money/othreceipts/FormPanel.js

@@ -137,7 +137,7 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                 dataIndex : "ord_remark",
                 width : 250, 
                 editor : {
-                    xtype : "textarea"
+                    xtype : "textfield"
                 }
             }
         ]

+ 1 - 1
frontend/saas-web/app/view/money/report/AccountBalance.js

@@ -92,7 +92,7 @@ Ext.define('saas.view.money.report.AccountBalance', {
             }
         }, {
             text: '往来单位',
-            dataIndex: 'bcode',
+            dataIndex: 'bname',
             width: 150
         }, {
             text: '收付款人',

+ 1 - 1
frontend/saas-web/app/view/money/report/AccountDetails.js

@@ -40,7 +40,7 @@ Ext.define('saas.view.money.report.AccountDetails', {
             xtype: 'textfield',
             emptyText : '客户名称'
     },{
-        cls:'x-formpanel-btn-orange',
+        cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
         listeners: {

+ 13 - 13
frontend/saas-web/app/view/money/report/PayDetail.js

@@ -98,19 +98,19 @@ Ext.define('saas.view.money.report.PayDetail', {
             dataIndex: 'mustpay',
             xtype: 'numbercolumn',
             width: 110,
-            renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
-                return Ext.util.Format.number(v, format);
-            },
-            summaryType: 'sum',
-            summaryRenderer: function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
-                return Ext.util.Format.number(v, format);
-            }
+            // renderer : function(v) {
+            //     var arr = (v + '.').split('.');
+            //     var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            //     var format = '0,000.' + xr.join();
+            //     return Ext.util.Format.number(v, format);
+            // },
+            // summaryType: 'sum',
+            // summaryRenderer: function(v) {
+            //     var arr = (v + '.').split('.');
+            //     var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            //     var format = '0,000.' + xr.join();
+            //     return Ext.util.Format.number(v, format);
+            // }
         }, {
             text: '应付日期',
             xtype: 'datecolumn',

+ 13 - 13
frontend/saas-web/app/view/money/report/RecDetail.js

@@ -102,19 +102,19 @@ Ext.define('saas.view.money.report.RecDetail', {
             dataIndex: 'mustpay',
             xtype: 'numbercolumn',
             width: 110,
-            renderer : function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
-                return Ext.util.Format.number(v, format);
-            },
-            summaryType: 'sum',
-            summaryRenderer: function(v) {
-                var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
-                return Ext.util.Format.number(v, format);
-            }
+            // renderer : function(v) {
+            //     var arr = (v + '.').split('.');
+            //     var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            //     var format = '0,000.' + xr.join();
+            //     return Ext.util.Format.number(v, format);
+            // },
+            // summaryType: 'sum',
+            // summaryRenderer: function(v) {
+            //     var arr = (v + '.').split('.');
+            //     var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            //     var format = '0,000.' + xr.join();
+            //     return Ext.util.Format.number(v, format);
+            // }
         }, {
             text: '应收日期',
             dataIndex: 'mustdate',

+ 46 - 0
frontend/saas-web/app/view/purchase/purchaseIn/FormPanelController.js

@@ -92,7 +92,53 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanelController', {
             }],
             renderTo:this.ownerCmp.ownerCt.getEl()
         }).show();
+    },
+    initCopyData: function(formData) {
+        var me = this;
+        var form = this.getView();
+        var detailCount = form.detailCount;
+        var main = formData.main;
+        var auditTexts = form.auditTexts;
+
+        // 单号、id清空
+        main[form._idField] = 0;
+        main[form._codeField] = '';
+        //采购单id,采购单号清空
+        main['pi_puid'] = 0;
+        main['pi_pucode'] = '';
+
+        // 单据状态为录入状态(未审核)
+        main[form._statusCodeField] = auditTexts.unAuditCode;
+        main[form._statusField] = auditTexts.unAuditText;
+
+        for(var k in main) {
+            // 主表日期改为当前日期
+            if(saas.util.BaseUtil.isDateString(main[k])) {
+                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
+            }
+        }
+
+        for(var j = 0; j < detailCount; j++) {
+            var detail = formData['detail' + j];
+            for(var x = 0; x < detail.length; x ++) {
+                var d = detail[x];
+
+                for(var k in d) {
+                    // 从表id清空
+                    delete d['id'];
+                    //采购单号清空
+                    delete d['pd_orderid'];
+                    delete d['pd_ordercode'];
+                    delete d['pd_orderdetno'];
 
+                    // 从表日期清空
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
+                        d[k] = '';
+                    }
+                }
+            }
+        }
+        return me.myInitCopyData(formData);;
     },
     turnOut: function() {
         var me = this,

+ 51 - 6
frontend/saas-web/app/view/purchase/purchaseOut/FormPanelController.js

@@ -67,11 +67,6 @@ Ext.define('saas.view.purchase.purchaseOut.FormPanelController', {
 
                 }
             }
-
-
-
-
-
         });
 
     },
@@ -97,6 +92,56 @@ Ext.define('saas.view.purchase.purchaseOut.FormPanelController', {
             }],
             renderTo:this.ownerCmp.ownerCt.getEl()
         }).show();
+    },
+    initCopyData: function(formData) {
+        var me = this;
+        var form = this.getView();
+        var detailCount = form.detailCount;
+        var main = formData.main;
+        var auditTexts = form.auditTexts;
 
-    }
+        // 单号、id清空
+        main[form._idField] = 0;
+        main[form._codeField] = '';
+        //采购单id,采购单号清空
+        main['pi_puid'] = 0;
+        main['pi_pucode'] = '';
+        //采购验收单id清空
+        main['pi_ioid'] = 0;
+        main['pi_iocode'] = '';
+        // 单据状态为录入状态(未审核)
+        main[form._statusCodeField] = auditTexts.unAuditCode;
+        main[form._statusField] = auditTexts.unAuditText;
+
+        for(var k in main) {
+            // 主表日期改为当前日期
+            if(saas.util.BaseUtil.isDateString(main[k])) {
+                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
+            }
+        }
+
+        for(var j = 0; j < detailCount; j++) {
+            var detail = formData['detail' + j];
+            for(var x = 0; x < detail.length; x ++) {
+                var d = detail[x];
+
+                for(var k in d) {
+                    // 从表id清空
+                    delete d['id'];
+                    //采购单号清空
+                    delete d['pd_orderid'];
+                    delete d['pd_ordercode'];
+                    delete d['pd_orderdetno'];
+                    //采购验收单清空
+                    delete d['pd_ioid'];
+
+                    // 从表日期清空
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
+                        d[k] = '';
+                    }
+                }
+            }
+        }
+        return me.myInitCopyData(formData);;
+    }    
 });

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

@@ -81,7 +81,7 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
             from:'pr_detail',to:'pr_detail'
         }]
     },{
-        cls:'x-formpanel-btn-orange',
+        cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
         listeners: {

+ 1 - 1
frontend/saas-web/app/view/stock/stockamount/DataList.js

@@ -35,7 +35,7 @@ Ext.define('saas.view.stock.stockamount.DataList', {
         xtype: 'textfield',
         emptyText : '仓库名称'
     },{
-        cls:'x-formpanel-btn-orange',
+        cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
         listeners: {

+ 7 - 7
frontend/saas-web/app/view/sys/config/FormPanel.js

@@ -427,13 +427,13 @@ Ext.define('saas.view.sys.config.FormPanel', {
             showLogoPhoto.show();
         }
         //文件名称
-        // var viewModel = form.getViewModel();
-        // if(viewModel.data.fileInfoList&&viewModel.data.fileInfoList.length!=0){
-        //     var logo = viewModel.data.fileInfoList[0].logo;
-        //     var logoName = logo.name + "  (" + Ext.util.Format.fileSize(logo.size) + ")";
-        //     var signet = viewModel.data.fileInfoList[0].signet;
-        //     var signetName = signet.name + "  (" + Ext.util.Format.fileSize(signet.size) + ")";
-        // }
+        var viewModel = form.getViewModel();
+        if(viewModel.data.fileInfoList&&viewModel.data.fileInfoList.length!=0){
+            var logo = viewModel.data.fileInfoList[0].logo;
+            var logoName = logo.name + "  (" + Ext.util.Format.fileSize(logo.size) + ")";
+            var signet = viewModel.data.fileInfoList[0].signet;
+            var signetName = signet.name + "  (" + Ext.util.Format.fileSize(signet.size) + ")";
+        }
     },
 
     lookPic:function(img){

+ 1 - 1
frontend/saas-web/app/view/sys/guide/FormPanel.js

@@ -270,7 +270,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
             width:0.5*width,
             buttons: [{
                 text: '我知道了',
-                cls:'x-formpanel-btn-orange',
+                cls:'x-formpanel-btn-blue',
                 handler: function(b) {
                     var scope = b.ownerCt.ownerCt;
                     if(xtype=='begin'&&value=='false'){

+ 1 - 1
frontend/saas-web/app/view/sys/maxnumbers/DataList.js

@@ -24,7 +24,7 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
         xtype: 'textfield',
         emptyText : '单据前缀'
     },{
-        cls:'x-formpanel-btn-orange',
+        cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
         listeners: {

+ 1 - 1
frontend/saas-web/app/view/sys/messagelog/DataList.js

@@ -23,7 +23,7 @@ Ext.define('saas.view.sys.messagelog.DataList', {
         xtype: 'textfield',
         emptyText : '操作人员'
     },{
-        cls:'x-formpanel-btn-orange',
+        cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
         listeners: {

+ 0 - 7
frontend/saas-web/app/view/sys/power/GroupGrid.js

@@ -15,11 +15,8 @@ Ext.define('saas.view.sys.power.GroupGrid', {
         style:'background:#fff;border-color:#34baf6'
     }],
     features : [Ext.create('Ext.grid.feature.Grouping',{
-        collapseTip:null,
         collapsible:false,
-        expandTip:null,
 		showSummaryRow: false,
-        startCollapsed: false,
         groupHeaderTpl: Ext.create('Ext.XTemplate',
             '<div>{rows:this.formatName}</div>',
             {
@@ -29,7 +26,6 @@ Ext.define('saas.view.sys.power.GroupGrid', {
             }
         )
 	})],
-    initId:0,
     dataUrl:'/api/account/role/power/resource',
     selModel: {
         showHeaderCheckbox:false,
@@ -164,7 +160,6 @@ Ext.define('saas.view.sys.power.GroupGrid', {
             dataIndex:'other',
             xtype: 'widgetcolumn',
             menuDisabled:true,
-            producesHTML: false,
             widget: {
                 xtype: 'powerotherfield',
                 bind:'{record.other}'
@@ -198,9 +193,7 @@ Ext.define('saas.view.sys.power.GroupGrid', {
                     return other;
                 }}
             ],
-            groupDir:'ASC',
             groupField:'moduleId',
-            clearRemovedOnLoad : true,
             proxy: {
                 timeout:8000,
                 type: 'ajax',

+ 3 - 2
frontend/saas-web/app/view/sys/power/OtherField.js

@@ -16,8 +16,9 @@ Ext.define('saas.view.sys.power.OtherField', {
     },
     setItems:function(v){
         if(v){
+            var f = this;
             var len = v.length,items=[];
-            if(this.items.length>0)this.removeAll(true);
+            if(f.items.length>0)f.removeAll(true);
             for (i = 0; i < len; i++) {
                 items.push({
                    boxLabel:v[i].name,
@@ -44,7 +45,7 @@ Ext.define('saas.view.sys.power.OtherField', {
                    }
                 });
             }
-            this.add(items);
+            f.add(items);
         }
     }
 });

+ 4 - 0
frontend/saas-web/overrides/button/Button.js

@@ -0,0 +1,4 @@
+Ext.define('saas.override.button.Button', {
+    override: 'Ext.button.Button',
+    focusable:false,
+});

+ 26 - 0
frontend/saas-web/overrides/grid/column/Widget.js

@@ -0,0 +1,26 @@
+Ext.define('saas.override.grid.column.Widget', {
+    override: 'Ext.grid.column.Widget',
+
+    onCellsResized: function(newWidth) {
+        var me = this,
+            liveWidgets = me.ownerGrid.getManagedWidgets(me.getId()),
+            len = liveWidgets.length,
+            view = me.getView(),
+            i, cell;
+        if (!me.isFixedSize && me.rendered && view && view.viewReady) {
+            cell = view.getEl().down(me.getCellInnerSelector());
+            if (cell) {
+                // Subtract innerCell padding width
+                newWidth -= parseInt(me.getCachedStyle(cell, 'padding-left'), 10) + parseInt(me.getCachedStyle(cell, 'padding-right'), 10);
+                for (i = 0; i < len; ++i) {
+                    if(liveWidgets[i]){
+                        liveWidgets[i].ownerLayout = null;
+                        liveWidgets[i].setWidth(newWidth);
+                        liveWidgets[i].ownerLayout = view.componentLayout;
+                    }
+                }
+            }
+        }
+    }
+
+});

+ 43 - 0
frontend/saas-web/overrides/grid/feature/Grouping.js

@@ -0,0 +1,43 @@
+Ext.define('saas.override.grid.feature.Grouping', {
+    override: 'Ext.grid.feature.Grouping',
+
+    getMetaGroup: function(group) {
+        var me = this,
+            id = me.getId == null ? me.id : me.getId(),
+            key, metaGroup, Model, modelData, groupPlaceholder, aggregateRecord, groupingContext;
+        // Get the group from a member record or the group name
+        if (group.isModel || typeof group === 'string') {
+            group = me.getGroup(group);
+        }
+        if (group) {
+            key = group.getGroupKey();
+            groupingContext = group.$groupingContext || (group.$groupingContext = {});
+            metaGroup = groupingContext[id];
+            if (!metaGroup) {
+                Model = me.getGridStore().getModel();
+                // Add a placeholder record which represents the group if collapsed.
+                modelData = {};
+                modelData[me.getGroupField()] = key;
+                // Create the two records a group needs to produce a UI.
+                // One to represent a collapsed group.
+                // And one to append to the end of an expanded group.
+                groupPlaceholder = new Model(modelData);
+                groupPlaceholder.isNonData = groupPlaceholder.isCollapsedPlaceholder = true;
+                groupPlaceholder.groupKey = key;
+                aggregateRecord = new Ext.data.Model(modelData);
+                aggregateRecord.isNonData = aggregateRecord.isSummary = true;
+                aggregateRecord.groupKey = key;
+                metaGroup = groupingContext[id] = {
+                    placeholder: groupPlaceholder,
+                    isCollapsed: false,
+                    lastGroup: null,
+                    lastGroupGeneration: null,
+                    lastFilterGeneration: null,
+                    aggregateRecord: aggregateRecord
+                };
+            }
+        }
+        return metaGroup;
+    }
+
+});