فهرست منبع

Merge remote-tracking branch 'origin/dev' into dev

heqinwei 7 سال پیش
والد
کامیت
76ef5f1060
34فایلهای تغییر یافته به همراه292 افزوده شده و 76 حذف شده
  1. 1 1
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/ListReqDTO.java
  2. 2 5
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseReportController.java
  3. 5 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchaseReportMapper.java
  4. 4 3
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseReportService.java
  5. 48 27
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseReportServiceImpl.java
  6. 39 1
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml
  7. 6 6
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  8. 1 1
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/ProdInOutReportMapper.java
  9. 28 0
      frontend/saas-web/app/Application.scss
  10. 19 0
      frontend/saas-web/app/view/core/base/GridPanel.js
  11. 29 0
      frontend/saas-web/app/view/core/base/ImportWindow.js
  12. 1 1
      frontend/saas-web/app/view/core/form/FormPanel.js
  13. 1 1
      frontend/saas-web/app/view/core/form/MseeageLog.js
  14. 1 1
      frontend/saas-web/app/view/document/bom/FormPanel.js
  15. 1 1
      frontend/saas-web/app/view/document/customer/FormPanel.js
  16. 1 1
      frontend/saas-web/app/view/document/product/FormPanel.js
  17. 1 1
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  18. 1 0
      frontend/saas-web/app/view/main/Main.js
  19. 10 0
      frontend/saas-web/app/view/main/Main.scss
  20. 1 1
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  21. 1 1
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  22. 1 1
      frontend/saas-web/app/view/money/report/AccountDetails.js
  23. 2 1
      frontend/saas-web/app/view/money/verification/FormPanel.js
  24. 1 1
      frontend/saas-web/app/view/stock/inventory/EditDataList.js
  25. 1 1
      frontend/saas-web/app/view/stock/stockamount/DataList.js
  26. 7 7
      frontend/saas-web/app/view/sys/config/FormPanel.js
  27. 1 1
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  28. 1 1
      frontend/saas-web/app/view/sys/maxnumbers/DataList.js
  29. 1 1
      frontend/saas-web/app/view/sys/messagelog/DataList.js
  30. 0 7
      frontend/saas-web/app/view/sys/power/GroupGrid.js
  31. 3 2
      frontend/saas-web/app/view/sys/power/OtherField.js
  32. 4 0
      frontend/saas-web/overrides/button/Button.js
  33. 26 0
      frontend/saas-web/overrides/grid/column/Widget.js
  34. 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("}'");

+ 2 - 5
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseReportController.java

@@ -1,6 +1,5 @@
 package com.usoftchina.saas.purchase.controller;
 
-import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.page.PageRequest;
@@ -23,14 +22,12 @@ public class PurchaseReportController {
 
     @GetMapping("/purchasePay")
     public Result PurchasePay(PageRequest page, ListReqDTO req) {
-        PageInfo listData = purchaseReportService.getPurchasePayData(page, req);
-        return Result.success(listData);
+        return Result.success(purchaseReportService.getPurchasePayData(page, req));
     }
 
     @GetMapping("/purchaseDetail")
     public Result PurchaseDetail(PageRequest page, ListReqDTO req) {
-        PageInfo listData = purchaseReportService.getPurchaseDetailData(page, req);
-        return Result.success(listData);
+        return Result.success(purchaseReportService.getPurchaseDetailData(page, req));
     }
 
 }

+ 5 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchaseReportMapper.java

@@ -7,7 +7,11 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 public interface PurchaseReportMapper {
-    List<PurchasePay> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
+    List<PurchasePay> selectPurchasePayByCondition(@Param("con") String con, @Param("companyId") Long companyId);
 
     List<PurchaseReportDetail> selectDetailByCondition(@Param("con") String con, @Param("companyId") Long companyId);
+
+    String selectPurchasePayCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
+
+    String selectDetailCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
 }

+ 4 - 3
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseReportService.java

@@ -1,12 +1,13 @@
 package com.usoftchina.saas.purchase.service;
 
-import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.page.PageRequest;
 
+import java.util.Map;
+
 public interface PurchaseReportService {
 
-    PageInfo getPurchasePayData(PageRequest page, ListReqDTO req);
+    Map<String, Object> getPurchasePayData(PageRequest page, ListReqDTO req);
 
-    PageInfo getPurchaseDetailData(PageRequest page, ListReqDTO req);
+    Map<String, Object> getPurchaseDetailData(PageRequest page, ListReqDTO req);
 }

+ 48 - 27
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseReportServiceImpl.java

@@ -1,16 +1,21 @@
 package com.usoftchina.saas.purchase.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.purchase.mapper.PurchaseReportMapper;
 import com.usoftchina.saas.purchase.service.PurchaseReportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author: guq
@@ -23,43 +28,59 @@ public class PurchaseReportServiceImpl implements PurchaseReportService{
     private PurchaseReportMapper purchaseReportMapper;
 
     @Override
-    public PageInfo getPurchasePayData(PageRequest page, ListReqDTO req) {
-        return getListDATA(page, req, "PurchasePay");
-    }
-
-    @Override
-    public PageInfo getPurchaseDetailData(PageRequest page, ListReqDTO req) {
-        return getListDATA(page, req, "PurchaseReportDetail");
-    }
-
-    private PageInfo getListDATA(PageRequest page, ListReqDTO req, String type) {
-        //设置默认分页
-        if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
-            page = new PageRequest();
-            page.setNumber(1);
-            page.setSize(10);
-        }
+    public Map<String, Object> getPurchasePayData(@PageDefault(size = 10)PageRequest page, ListReqDTO req) {
         PageHelper.startPage(page.getNumber(), page.getSize());
-        //查询数据
-        List lists = getListByType(req, type);
+        Map<String,Object> map = new HashMap<>();
+        List list = null;
+        Long companyId = BaseContextHolder.getCompanyId();
+        String con = req.getFinalCondition();
+        String calculateFieldsSql = req.getCalculateFieldsSql();
+        JSONArray arr = null;
+        if (null == con) {
+            con = "1=1";
+        }
+        list = purchaseReportMapper.selectPurchasePayByCondition(con, companyId);
         //取分页信息
-        PageInfo pageInfo = new PageInfo(lists);
-        return pageInfo;
+        PageInfo pageInfo = new PageInfo(list);
+        //取对应计算数据
+        if (!StringUtils.isEmpty(calculateFieldsSql)) {
+            String res = purchaseReportMapper.selectPurchasePayCalculateFields(calculateFieldsSql, con, companyId);
+            try {
+                arr = JSONArray.parseArray(res);
+            } catch (Exception e) {
+            }
+        }
+        map.put("list", pageInfo);
+        map.put("calculate", arr);
+        return map;
     }
 
-    private List getListByType(ListReqDTO req, String type) {
+    @Override
+    public Map<String, Object> getPurchaseDetailData(@PageDefault(size = 10)PageRequest page, ListReqDTO req) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        Map<String,Object> map = new HashMap<>();
         List list = null;
         Long companyId = BaseContextHolder.getCompanyId();
-        companyId = 1l;
         String con = req.getFinalCondition();
+        String calculateFieldsSql = req.getCalculateFieldsSql();
+        JSONArray arr = null;
         if (null == con) {
             con = "1=1";
         }
-        if ("PurchasePay".equals(type)) {
-            list = purchaseReportMapper.selectByCondition(con, companyId);
-        } else if ("PurchaseReportDetail".equals(type)){
-            list = purchaseReportMapper.selectDetailByCondition(con, companyId);
+        list = purchaseReportMapper.selectDetailByCondition(con, companyId);
+        //取分页信息
+        PageInfo pageInfo = new PageInfo(list);
+        //取对应计算数据
+        if (!StringUtils.isEmpty(calculateFieldsSql)) {
+            String res = purchaseReportMapper.selectDetailCalculateFields(calculateFieldsSql, con, companyId);
+            try {
+                arr = JSONArray.parseArray(res);
+            } catch (Exception e) {
+            }
         }
-        return list;
+        map.put("list", pageInfo);
+        map.put("calculate", arr);
+        return map;
     }
+
 }

+ 39 - 1
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml

@@ -100,7 +100,7 @@
     <result column="pr_text4" property="pr_text4"/>
     <result column="pd_accepttotal" property="pd_accepttotal"/>
   </resultMap>
-  <select id="selectByCondition" resultMap="BaseResultMap">
+  <select id="selectPurchasePayByCondition" resultMap="BaseResultMap">
     select  *  from purchasepay_view
     <where>
       <if test="con != null">
@@ -125,4 +125,42 @@
       </if>
     </where>  order by pu_date desc
   </select>
+
+
+  <select id="selectPurchasePayCalculateFields" resultType="string">
+    select   ${fields}  from purchasepay_view
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  companyId = #{companyId}
+      </if>
+    </where>
+    order by pb_id desc
+  </select>
+
+  <select id="selectDetailCalculateFields" resultType="string">
+    select   ${fields}  from purchase left join purchasedetail on pu_id=pd_puid
+    left join product on pd_prodid=pr_id
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and   purchase.companyId = #{companyId}
+      </if>
+    </where>  order by pu_date desc
+  </select>
+
+
+
+
+
+
+
+
+
+
+
 </mapper>

+ 6 - 6
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -571,20 +571,20 @@ public class SaleServiceImpl implements SaleService{
         Long purchaseId = purchase.getId();
         for (SaleList detail : dateilList){
             PurchaseDetailDTO purchaseDetail = new PurchaseDetailDTO();
-            Double taxPrice = detail.getPr_purcprice()==null?new Double(0):Double.valueOf(detail.getPr_purcprice());
-            Double taxrate = detail.getSd_taxrate()==null?new Double(0):detail.getSd_taxrate();
+            Double Price = detail.getPr_purcprice()==null?new Double(0):Double.valueOf(detail.getPr_purcprice());
+            Double taxRate = detail.getSd_taxrate()==null?new Double(0):detail.getSd_taxrate();
             Double qty = detail.getSd_qty()==null?new Double(0):detail.getSd_qty();
             purchaseDetail.setPd_prodid(Long.valueOf(String.valueOf(detail.getSd_prodid())));
             purchaseDetail.setPd_prodcode(detail.getSd_prodcode());
             purchaseDetail.setPd_detno(detail.getSd_detno());
             purchaseDetail.setPd_qty(detail.getSd_qty());
-            purchaseDetail.setPd_price(taxPrice/(1+taxrate/100));
+            purchaseDetail.setPd_price(Price);
             purchaseDetail.setPd_salecode(sale.getSa_code());
             purchaseDetail.setPd_saledetno(detail.getSd_detno());
             purchaseDetail.setPd_saleid(sale.getId());
-            purchaseDetail.setPd_taxrate(taxrate);
-            purchaseDetail.setPd_taxprice(taxPrice);
-            purchaseDetail.setPd_taxtotal(taxPrice*qty);
+            purchaseDetail.setPd_taxrate(taxRate);
+            purchaseDetail.setPd_taxprice(Price*(1+taxRate/100));
+            purchaseDetail.setPd_taxtotal((Price*(1+taxRate/100))*qty);
             purchaseDetail.setCompanyId(BaseContextHolder.getCompanyId());
             purchaseDetail.setCreatorId(BaseContextHolder.getUserId());
             purchaseDetail.setCreateTime(new Date());

+ 1 - 1
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/ProdInOutReportMapper.java

@@ -18,5 +18,5 @@ public interface ProdInOutReportMapper {
 
     String selectProdiodetailCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
 
-    String selectProdinoutCountCalculateFields(String calculateFieldsSql, String con, Long companyId);
+    String selectProdinoutCountCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
 }

+ 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/payBalance/FormPanelController.js

@@ -146,7 +146,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';
 
-            saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存?')
+            saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次核销金额,是否仍要保存?')
             .then(function(y) {
                 if(y == 'yes') {
                     me.save();

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

@@ -139,7 +139,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';
 
-            saas.util.BaseUtil.showConfirm('提示', '收款金额' + t + '于本次折扣后核销金额,是否仍要保存?')
+            saas.util.BaseUtil.showConfirm('提示', '收款金额' + t + '于本次核销金额,是否仍要保存?')
                 .then(function(y) {
                     if(y == 'yes') {
                         me.save();

+ 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: {

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

@@ -543,7 +543,8 @@ Ext.define('saas.view.money.verification.FormPanel', {
 
         defaultConditions: {
             receipts_offset_receivable: ['ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)<>0 and ifnull(sl_namount,0)<>0',
-                'ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0 and sl_kind in (\'期初余额\',\'出货单\',\'销售退货单\')'],
+                'ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0 ' +
+                'and sl_kind in (\'期初余额\',\'出货单\',\'销售退货单\')'],
             prepaid_offset_payable: ['ifnull(sl_vendid,0)={vc_vendid} and ifnull(sl_preamount,0)<>0 and ifnull(sl_namount,0)<>0',
                 'ifnull(sl_vendid,0)={vc_vendid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0'],
             receivable_offset_payable: ['ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0',

+ 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;
+    }
+
+});