Parcourir la source

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

jinsy il y a 7 ans
Parent
commit
9f591640a7
100 fichiers modifiés avec 2936 ajouts et 1579 suppressions
  1. 1 1
      README.md
  2. 7 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/MoneyReportColltroller.java
  3. 10 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/AccountDetailsViewMapper.java
  4. 94 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/AccountDetailsView.java
  5. 9 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VendorAcountView.java
  6. 1 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/MoneyReportService.java
  7. 8 4
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java
  8. 9 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/MoneyReportServiceImpl.java
  9. 48 40
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java
  10. 48 39
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java
  11. 8 4
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java
  12. 8 4
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  13. 27 0
      applications/money/money-server/src/main/resources/mapper/AccountDetailsViewMapper.xml
  14. 1 0
      applications/money/money-server/src/main/resources/mapper/VendorAcountViewMapper.xml
  15. 0 2
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  16. 37 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/StockTakingDTO.java
  17. 34 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/StockTaking.java
  18. 49 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/controller/StocktakingController.java
  19. 19 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/StockTakingMapper.java
  20. 20 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/StocktakingService.java
  21. 57 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/StocktakingServiceImpl.java
  22. 248 0
      applications/storage/storage-server/src/main/resources/mapper/StockTakingMapper.xml
  23. 1 1
      frontend/saas-portal-web/config/env.js
  24. 12 3
      frontend/saas-web/app.json
  25. 28 0
      frontend/saas-web/app/model/money/Verification1.js
  26. 17 2
      frontend/saas-web/app/util/BaseUtil.js
  27. 3 3
      frontend/saas-web/app/util/Errors.js
  28. 155 139
      frontend/saas-web/app/util/FormUtil.js
  29. 2 2
      frontend/saas-web/app/view/auth/LoginController.js
  30. 24 24
      frontend/saas-web/app/view/core/base/GridPanel.js
  31. 3 1
      frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js
  32. 51 0
      frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.scss
  33. 5 4
      frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js
  34. 3 1
      frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js
  35. 1 0
      frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js
  36. 8 13
      frontend/saas-web/app/view/core/dbfind/types/BankInfoDbfindTrigger.js
  37. 6 7
      frontend/saas-web/app/view/core/dbfind/types/BomDbfindTrigger.js
  38. 9 9
      frontend/saas-web/app/view/core/dbfind/types/CustomerDbfindTrigger.js
  39. 7 7
      frontend/saas-web/app/view/core/dbfind/types/EmployeeDbfindTrigger.js
  40. 68 0
      frontend/saas-web/app/view/core/dbfind/types/OriOrderMutiDbfindTrigger.js
  41. 12 12
      frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js
  42. 13 15
      frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js
  43. 7 8
      frontend/saas-web/app/view/core/dbfind/types/VendorDbfindTrigger.js
  44. 10 15
      frontend/saas-web/app/view/core/dbfind/types/WarehouseDbfindTrigger.js
  45. 2 2
      frontend/saas-web/app/view/core/form/DataMultiCombo.js
  46. 21 9
      frontend/saas-web/app/view/core/form/FormPanel.js
  47. 10 10
      frontend/saas-web/app/view/core/form/FormPanelController.js
  48. 3 3
      frontend/saas-web/app/view/core/form/field/DetailGridField.js
  49. 9 9
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  50. 3 3
      frontend/saas-web/app/view/core/report/ReportPanel.js
  51. 35 17
      frontend/saas-web/app/view/document/bom/BasePanel.js
  52. 4 4
      frontend/saas-web/app/view/document/bom/FormController.js
  53. 8 3
      frontend/saas-web/app/view/document/bom/FormPanel.js
  54. 43 90
      frontend/saas-web/app/view/document/customer/BasePanel.js
  55. 4 4
      frontend/saas-web/app/view/document/customer/FormController.js
  56. 14 16
      frontend/saas-web/app/view/document/customer/FormPanel.js
  57. 10 7
      frontend/saas-web/app/view/document/kind/ChildForm.js
  58. 20 21
      frontend/saas-web/app/view/document/kind/Kind.js
  59. 3 2
      frontend/saas-web/app/view/document/kind/KindController.js
  60. 40 61
      frontend/saas-web/app/view/document/product/BasePanel.js
  61. 4 4
      frontend/saas-web/app/view/document/product/FormController.js
  62. 11 8
      frontend/saas-web/app/view/document/product/FormPanel.js
  63. 34 72
      frontend/saas-web/app/view/document/vendor/BasePanel.js
  64. 4 4
      frontend/saas-web/app/view/document/vendor/FormController.js
  65. 12 5
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  66. 19 7
      frontend/saas-web/app/view/home/charts/SaleTrend.js
  67. 1 1
      frontend/saas-web/app/view/main/Main.js
  68. 50 0
      frontend/saas-web/app/view/main/Main.scss
  69. 9 8
      frontend/saas-web/app/view/money/fundtransfer/FormPanel.js
  70. 48 48
      frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js
  71. 5 5
      frontend/saas-web/app/view/money/othreceipts/FormPanel.js
  72. 1 1
      frontend/saas-web/app/view/money/othreceipts/FormPanelController.js
  73. 50 76
      frontend/saas-web/app/view/money/othreceipts/QueryPanel.js
  74. 0 31
      frontend/saas-web/app/view/money/othreceipts/QueryPanelController.js
  75. 4 4
      frontend/saas-web/app/view/money/othspendings/FormPanel.js
  76. 1 1
      frontend/saas-web/app/view/money/othspendings/FormPanelController.js
  77. 54 70
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  78. 0 34
      frontend/saas-web/app/view/money/othspendings/QueryPanelController.js
  79. 19 25
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  80. 5 68
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  81. 42 128
      frontend/saas-web/app/view/money/payBalance/QueryPanel.js
  82. 0 25
      frontend/saas-web/app/view/money/payBalance/QueryPanelController.js
  83. 12 10
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  84. 5 66
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  85. 33 91
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  86. 13 14
      frontend/saas-web/app/view/money/recBalance/QueryPanelController.js
  87. 16 8
      frontend/saas-web/app/view/money/report/AccountBalance.js
  88. 24 20
      frontend/saas-web/app/view/money/report/CustomerCheck.js
  89. 14 7
      frontend/saas-web/app/view/money/report/PayDetail.js
  90. 16 9
      frontend/saas-web/app/view/money/report/RecDetail.js
  91. 25 14
      frontend/saas-web/app/view/money/report/VendorCheck.js
  92. 535 0
      frontend/saas-web/app/view/money/verification/FormPanel.js
  93. 115 0
      frontend/saas-web/app/view/money/verification/FormPanelController.js
  94. 18 0
      frontend/saas-web/app/view/money/verification/FormPanelModel.js
  95. 73 0
      frontend/saas-web/app/view/money/verification/QueryPanel.js
  96. 186 0
      frontend/saas-web/app/view/money/verification/QueryPanelController.js
  97. 5 0
      frontend/saas-web/app/view/money/verification/QueryPanelModel.js
  98. 12 10
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  99. 2 2
      frontend/saas-web/app/view/purchase/purchase/FormPanelController.js
  100. 42 82
      frontend/saas-web/app/view/purchase/purchase/QueryPanel.js

+ 1 - 1
README.md

@@ -107,7 +107,7 @@
 
 > 构建
 
-* [jenkins](http://192.168.0.181:8080/job/saas) **账号** admin **密码** select123***
+* [jenkins](http://192.168.253.3:8080/job/saas) **账号** admin **密码** select123***
 
 > 日志
 

+ 7 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/MoneyReportColltroller.java

@@ -55,4 +55,11 @@ public class MoneyReportColltroller {
         PageInfo listData = moneyReportService.customercheck(page, req);
         return Result.success(listData);
     }
+
+    //冲账明细表
+    @GetMapping("/accountdetails")
+    public Result accountdetails(PageRequest page, ListReqDTO req) {
+        PageInfo listData = moneyReportService.accountdetails(page, req);
+        return Result.success(listData);
+    }
 }

+ 10 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/AccountDetailsViewMapper.java

@@ -0,0 +1,10 @@
+package com.usoftchina.saas.money.mapper;
+
+import com.usoftchina.saas.money.po.AccountDetailsView;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AccountDetailsViewMapper {
+    List<AccountDetailsView> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
+}

+ 94 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/AccountDetailsView.java

@@ -0,0 +1,94 @@
+package com.usoftchina.saas.money.po;
+
+import java.util.Date;
+
+public class AccountDetailsView {
+    private String SL_CODE;
+
+    private String SL_KIND;
+
+    private String VE_NAME;
+
+    private Double SL_AMOUNT;
+
+    private Integer PB_ID;
+
+    private String PB_KIND;
+
+    private String PB_CODE;
+
+    private Double total;
+    private Date date;
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getSL_CODE() {
+        return SL_CODE;
+    }
+
+    public void setSL_CODE(String SL_CODE) {
+        this.SL_CODE = SL_CODE == null ? null : SL_CODE.trim();
+    }
+
+    public String getSL_KIND() {
+        return SL_KIND;
+    }
+
+    public void setSL_KIND(String SL_KIND) {
+        this.SL_KIND = SL_KIND == null ? null : SL_KIND.trim();
+    }
+
+    public String getVE_NAME() {
+        return VE_NAME;
+    }
+
+    public void setVE_NAME(String VE_NAME) {
+        this.VE_NAME = VE_NAME == null ? null : VE_NAME.trim();
+    }
+
+    public Double getSL_AMOUNT() {
+        return SL_AMOUNT;
+    }
+
+    public void setSL_AMOUNT(Double SL_AMOUNT) {
+        this.SL_AMOUNT = SL_AMOUNT;
+    }
+
+    public Integer getPB_ID() {
+        return PB_ID;
+    }
+
+    public void setPB_ID(Integer PB_ID) {
+        this.PB_ID = PB_ID;
+    }
+
+    public String getPB_KIND() {
+        return PB_KIND;
+    }
+
+    public void setPB_KIND(String PB_KIND) {
+        this.PB_KIND = PB_KIND == null ? null : PB_KIND.trim();
+    }
+
+    public String getPB_CODE() {
+        return PB_CODE;
+    }
+
+    public void setPB_CODE(String PB_CODE) {
+        this.PB_CODE = PB_CODE == null ? null : PB_CODE.trim();
+    }
+
+    public Double getTotal() {
+        return total;
+    }
+
+    public void setTotal(Double total) {
+        this.total = total;
+    }
+}

+ 9 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VendorAcountView.java

@@ -35,6 +35,15 @@ public class VendorAcountView {
 
     private Double pd_nettotal;
     private Integer companyId;
+    private String pd_remark;
+
+    public String getPd_remark() {
+        return pd_remark;
+    }
+
+    public void setPd_remark(String pd_remark) {
+        this.pd_remark = pd_remark;
+    }
 
     public Integer getCompanyId() {
         return companyId;

+ 1 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/MoneyReportService.java

@@ -14,4 +14,5 @@ public interface MoneyReportService {
     PageInfo recDetail(PageRequest page, ListReqDTO req);
     PageInfo acountBalance(PageRequest page, ListReqDTO req);
     PageInfo customercheck(PageRequest page, ListReqDTO req);
+    PageInfo accountdetails(PageRequest page, ListReqDTO req);
 }

+ 8 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java

@@ -66,8 +66,10 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
         if (id > 0){
             fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
             baseDTO = getBaseDTOById(id);
-            //日志记录
-            messageLogService.update(baseDTO);
+            if (!("AUDITED".equals(fundtransfer.getFt_statuscode()))) {
+                //日志记录
+                messageLogService.update(baseDTO);
+            }
         }else {
             fundtransfer.setCompanyId(BaseContextHolder.getCompanyId());
             fundtransfer.setFt_recorder(BaseContextHolder.getUserName());
@@ -76,8 +78,10 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             id = fundtransfer.getId();
 
             baseDTO = getBaseDTOById(id);
-            //日志记录
-            messageLogService.save(baseDTO);
+            if (!("AUDITED".equals(fundtransfer.getFt_statuscode()))) {
+                //日志记录
+                messageLogService.save(baseDTO);
+            }
         }
 
         Iterator isdet = fundtransferdetails.iterator();

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

@@ -28,6 +28,8 @@ public class MoneyReportServiceImpl implements MoneyReportService {
     private AcountbalanceViewMapper acountbalanceViewMapper;
     @Autowired
     private CustomerCheckViewMapper customerCheckViewMapper;
+    @Autowired
+    private AccountDetailsViewMapper accountDetailsViewMapper;
 
     @Override
     public PageInfo vendorCheck(PageRequest page, ListReqDTO req) {
@@ -54,6 +56,11 @@ public class MoneyReportServiceImpl implements MoneyReportService {
         return getListDATA(page, req, "customercheck");
     }
 
+    @Override
+    public PageInfo accountdetails(PageRequest page, ListReqDTO req) {
+        return getListDATA(page, req, "accountdetails");
+    }
+
     private PageInfo getListDATA(PageRequest page, ListReqDTO req, String type) {
         //设置默认分页
         if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
@@ -88,6 +95,8 @@ public class MoneyReportServiceImpl implements MoneyReportService {
             list = acountbalanceViewMapper.selectByCondition(con, companyId);
         }else if ("customercheck".equals(type)){
             list = customerCheckViewMapper.selectByCondition(con, companyId);
+        }else if ("accountdetails".equals(type)){
+            list = accountDetailsViewMapper.selectByCondition(con, companyId);
         }
         return list;
     }

+ 48 - 40
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java

@@ -74,8 +74,10 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
         if (othreceipts.getId() > 0){
             othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
             baseDTO = getBaseDTOById(id);
-            //日志记录
-            messageLogService.update(baseDTO);
+            if (!("AUDITED".equals(othreceipts.getOr_statuscode()))) {
+                //日志记录
+                messageLogService.update(baseDTO);
+            }
         }else {
             othreceipts.setCompanyId(BaseContextHolder.getCompanyId());
             othreceipts.setOr_recorder(BaseContextHolder.getUserName());
@@ -84,8 +86,10 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
             othreceiptsMapper.insertSelective(othreceipts);
             id = othreceipts.getId();
             baseDTO = getBaseDTOById(id);
-            //日志记录
-            messageLogService.save(baseDTO);
+            if (!("AUDITED".equals(othreceipts.getOr_statuscode()))) {
+                //日志记录
+                messageLogService.save(baseDTO);
+            }
         }
 
         Iterator isdet = othreceiptsdetail.iterator();
@@ -147,29 +151,31 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
          * cu_recamount=nvl(cu_recamount,0)-rb_rbdamount,
          * cu_leftamount=cu_beginaramount-cu_beginprerecamount+cu_recamount-cu_preamount;
          */
-        Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
-        Double preamount = customerData.getCu_preamount()==null?new Double(0):customerData.getCu_preamount();
-        Double beginapamount = customerData.getCu_beginaramount()==null?new Double(0):customerData.getCu_beginaramount();
-        Double beginprepayamount= customerData.getCu_beginprerecamount()==null?new Double(0):customerData.getCu_beginprerecamount();
-        Double recamount = customerData.getCu_recamount()==null?new Double(0):customerData.getCu_recamount();
-
-        Customer customer = new Customer();
-        customer.setId(Long.valueOf(othreceipts.getOr_custid()));
-        customer.setCu_preamount(preamount);
-        customer.setCu_recamount(recamount-or_amount);
-        customer.setCu_leftamount(beginapamount-beginprepayamount+recamount-or_amount-preamount);
-        recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
-
-        //插入subledger中间表
-        Subledger subledger = new Subledger();
-        subledger.setSl_code(othreceipts.getOr_code());
-        subledger.setSl_kind("其他收入单");
-        subledger.setSl_custid(othreceipts.getOr_custid());
-        subledger.setSl_vendid(0);
-        subledger.setSl_date(othreceipts.getOr_date());
-        subledger.setSl_amount(or_amount);
-        subledger.setCompanyId(BaseContextHolder.getCompanyId());
-        subledgerMapper.insertSelective(subledger);
+        if (othreceipts.getOr_custid() != null && othreceipts.getOr_custid() != 0) {
+            Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
+            Double preamount = customerData.getCu_preamount() == null ? new Double(0) : customerData.getCu_preamount();
+            Double beginapamount = customerData.getCu_beginaramount() == null ? new Double(0) : customerData.getCu_beginaramount();
+            Double beginprepayamount = customerData.getCu_beginprerecamount() == null ? new Double(0) : customerData.getCu_beginprerecamount();
+            Double recamount = customerData.getCu_recamount() == null ? new Double(0) : customerData.getCu_recamount();
+
+            Customer customer = new Customer();
+            customer.setId(Long.valueOf(othreceipts.getOr_custid()));
+            customer.setCu_preamount(preamount);
+            customer.setCu_recamount(recamount - or_amount);
+            customer.setCu_leftamount(beginapamount - beginprepayamount + recamount - or_amount - preamount);
+            recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
+
+            //插入subledger中间表
+            Subledger subledger = new Subledger();
+            subledger.setSl_code(othreceipts.getOr_code());
+            subledger.setSl_kind("其他收入单");
+            subledger.setSl_custid(othreceipts.getOr_custid());
+            subledger.setSl_vendid(0);
+            subledger.setSl_date(othreceipts.getOr_date());
+            subledger.setSl_amount(or_amount);
+            subledger.setCompanyId(BaseContextHolder.getCompanyId());
+            subledgerMapper.insertSelective(subledger);
+        }
 
 
         //计算期间金额
@@ -209,7 +215,6 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
         //删除中间表
         othreceipts = othreceiptsMapper.selectByPrimaryKey(id);
         banksubledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
-        subledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
 
         //更新资金
         Double amount = banksubledgerMapper.selectThisamount(othreceipts.getOr_bankcode());
@@ -242,18 +247,21 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
          * cu_recamount=nvl(cu_recamount,0)-rb_rbdamount,
          * cu_leftamount=cu_beginaramount-cu_beginprerecamount+cu_recamount-cu_preamount;
          */
-        Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
-        Double preamount = customerData.getCu_preamount()==null?new Double(0):customerData.getCu_preamount();
-        Double beginapamount = customerData.getCu_beginaramount()==null?new Double(0):customerData.getCu_beginaramount();
-        Double beginprepayamount= customerData.getCu_beginprerecamount()==null?new Double(0):customerData.getCu_beginprerecamount();
-        Double recamount = customerData.getCu_recamount()==null?new Double(0):customerData.getCu_recamount();
-
-        Customer customer = new Customer();
-        customer.setId(Long.valueOf(othreceipts.getOr_custid()));
-        customer.setCu_preamount(preamount);
-        customer.setCu_recamount(recamount-or_amount);
-        customer.setCu_leftamount(beginapamount+beginprepayamount-recamount+or_amount+preamount);
-        recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
+        if (othreceipts.getOr_custid() != null && othreceipts.getOr_custid() != 0) {
+            Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
+            Double preamount = customerData.getCu_preamount() == null ? new Double(0) : customerData.getCu_preamount();
+            Double beginapamount = customerData.getCu_beginaramount() == null ? new Double(0) : customerData.getCu_beginaramount();
+            Double beginprepayamount = customerData.getCu_beginprerecamount() == null ? new Double(0) : customerData.getCu_beginprerecamount();
+            Double recamount = customerData.getCu_recamount() == null ? new Double(0) : customerData.getCu_recamount();
+
+            Customer customer = new Customer();
+            customer.setId(Long.valueOf(othreceipts.getOr_custid()));
+            customer.setCu_preamount(preamount);
+            customer.setCu_recamount(recamount - or_amount);
+            customer.setCu_leftamount(beginapamount + beginprepayamount - recamount + or_amount + preamount);
+            recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
+            subledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
+        }
 
 
         //计算期间金额

+ 48 - 39
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java

@@ -70,7 +70,9 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
             othspendingsMapper.updateByPrimaryKeySelective(othspendings);
             baseDTO = getBaseDTOById(id);
             //日志记录
-            messageLogService.update(baseDTO);
+            if (!("AUDITED".equals(othspendings.getOs_statuscode()))) {
+                messageLogService.update(baseDTO);
+            }
         }else {
             othspendings.setCompanyId(BaseContextHolder.getCompanyId());
             othspendings.setOs_recorder(BaseContextHolder.getUserName());
@@ -80,8 +82,10 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
             id = othspendings.getId();
 
             baseDTO = getBaseDTOById(id);
-            //日志记录
-            messageLogService.save(baseDTO);
+            if (!("AUDITED".equals(othspendings.getOs_statuscode()))) {
+                //日志记录
+                messageLogService.save(baseDTO);
+            }
         }
 
         Iterator isdet = othspendingsdetails.iterator();
@@ -184,29 +188,31 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
          * ve_payamount=nvl(ve_payamount,0)-pb_pbdamount,
          * ve_leftamount=ve_beginapamount-ve_beginprepayamount+ve_payamount-ve_preamount;
          */
-        Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
-        Double preamount = vendorData.getVe_preamount()==null?new Double(0):vendorData.getVe_preamount();
-        Double beginapamount = vendorData.getVe_beginapamount()==null?new Double(0):vendorData.getVe_beginapamount();
-        Double beginprepayamount= vendorData.getVe_beginprepayamount()==null?new Double(0):vendorData.getVe_beginprepayamount();
-        Double payamount = vendorData.getVe_payamount()==null?new Double(0):vendorData.getVe_payamount();
-
-        Vendor vendor = new Vendor();
-        vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
-        vendor.setVe_preamount(preamount);
-        vendor.setVe_payamount(payamount - bk_amount);
-        vendor.setVe_leftamount(beginapamount-beginprepayamount+payamount-bk_amount-preamount);
-        paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
-
-        //插入subledger中间表
-        Subledger subledger = new Subledger();
-        subledger.setSl_code(othspendings.getOs_code());
-        subledger.setSl_kind("其他支出单");
-        subledger.setSl_custid(0);
-        subledger.setSl_vendid(othspendings.getOs_vendid());
-        subledger.setSl_date(othspendings.getOs_date());
-        subledger.setSl_amount(bk_amount);
-        subledger.setCompanyId(BaseContextHolder.getCompanyId());
-        subledgerMapper.insertSelective(subledger);
+        if (othspendings.getOs_vendid() != null && othspendings.getOs_vendid() != 0) {
+            Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
+            Double preamount = vendorData.getVe_preamount() == null ? new Double(0) : vendorData.getVe_preamount();
+            Double beginapamount = vendorData.getVe_beginapamount() == null ? new Double(0) : vendorData.getVe_beginapamount();
+            Double beginprepayamount = vendorData.getVe_beginprepayamount() == null ? new Double(0) : vendorData.getVe_beginprepayamount();
+            Double payamount = vendorData.getVe_payamount() == null ? new Double(0) : vendorData.getVe_payamount();
+
+            Vendor vendor = new Vendor();
+            vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
+            vendor.setVe_preamount(preamount);
+            vendor.setVe_payamount(payamount - bk_amount);
+            vendor.setVe_leftamount(beginapamount - beginprepayamount + payamount - bk_amount - preamount);
+            paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
+
+            //插入subledger中间表
+            Subledger subledger = new Subledger();
+            subledger.setSl_code(othspendings.getOs_code());
+            subledger.setSl_kind("其他支出单");
+            subledger.setSl_custid(0);
+            subledger.setSl_vendid(othspendings.getOs_vendid());
+            subledger.setSl_date(othspendings.getOs_date());
+            subledger.setSl_amount(bk_amount);
+            subledger.setCompanyId(BaseContextHolder.getCompanyId());
+            subledgerMapper.insertSelective(subledger);
+        }
 
         //计算期间金额
         Statsinfo statsinfo = new Statsinfo();
@@ -241,7 +247,6 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
         //删除中间表
         othspendings = othspendingsMapper.selectByPrimaryKey(id);
         banksubledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单");
-        subledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单");
 
         //资金
         Double amount = banksubledgerMapper.selectThisamount(othspendings.getOs_bankcode());
@@ -273,18 +278,22 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
          * ve_payamount=nvl(ve_payamount,0)-pb_pbdamount,
          * ve_leftamount=ve_beginapamount-ve_beginprepayamount+ve_payamount-ve_preamount;
          */
-        Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
-        Double preamount = vendorData.getVe_preamount()==null?new Double(0):vendorData.getVe_preamount();
-        Double beginapamount = vendorData.getVe_beginapamount()==null?new Double(0):vendorData.getVe_beginapamount();
-        Double beginprepayamount= vendorData.getVe_beginprepayamount()==null?new Double(0):vendorData.getVe_beginprepayamount();
-        Double payamount = vendorData.getVe_payamount()==null?new Double(0):vendorData.getVe_payamount();
-
-        Vendor vendor = new Vendor();
-        vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
-        vendor.setVe_preamount(preamount);
-        vendor.setVe_payamount(payamount + bk_amount);
-        vendor.setVe_leftamount(beginapamount+beginprepayamount-payamount+bk_amount+preamount);
-        paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
+        if (othspendings.getOs_vendid() != null && othspendings.getOs_vendid() != 0) {
+            Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
+            Double preamount = vendorData.getVe_preamount() == null ? new Double(0) : vendorData.getVe_preamount();
+            Double beginapamount = vendorData.getVe_beginapamount() == null ? new Double(0) : vendorData.getVe_beginapamount();
+            Double beginprepayamount = vendorData.getVe_beginprepayamount() == null ? new Double(0) : vendorData.getVe_beginprepayamount();
+            Double payamount = vendorData.getVe_payamount() == null ? new Double(0) : vendorData.getVe_payamount();
+
+            Vendor vendor = new Vendor();
+            vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
+            vendor.setVe_preamount(preamount);
+            vendor.setVe_payamount(payamount + bk_amount);
+            vendor.setVe_leftamount(beginapamount + beginprepayamount - payamount + bk_amount + preamount);
+            paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
+
+            subledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单");
+        }
 
 
         //计算期间金额

+ 8 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java

@@ -74,8 +74,10 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
         if (pbId > 0){
             paybalanceMapper.updateByPrimaryKeySelective(paybalance);
             baseDTO = getBaseDTOById(pbId);
-            //日志记录
-            messageLogService.update(baseDTO);
+            if (!("AUDITED".equals(paybalance.getPb_statuscode()))) {
+                //日志记录
+                messageLogService.update(baseDTO);
+            }
         }else {
             paybalance.setCompanyId(BaseContextHolder.getCompanyId());
             paybalance.setPb_recorder(BaseContextHolder.getUserName());
@@ -84,8 +86,10 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
             paybalanceMapper.insertSelective(paybalance);
             pbId = paybalance.getId();
             baseDTO = getBaseDTOById(pbId);
-            //日志记录
-            messageLogService.save(baseDTO);
+            if (!("AUDITED".equals(paybalance.getPb_statuscode()))) {
+                //日志记录
+                messageLogService.save(baseDTO);
+            }
         }
 
         Iterator isdet = paybalancedet.iterator();

+ 8 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java

@@ -72,8 +72,10 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         if (rbId > 0){
             recbalanceMapper.updateByPrimaryKeySelective(recbalance);
             baseDTO = getBaseDTOById(rbId);
-            //日志记录
-            messageLogService.update(baseDTO);
+            if (!("AUDITED".equals(recbalance.getRb_statuscode()))) {
+                //日志记录
+                messageLogService.update(baseDTO);
+            }
         }else {
             recbalance.setCompanyId(BaseContextHolder.getCompanyId());
             recbalance.setRb_recorder(BaseContextHolder.getUserName());
@@ -83,8 +85,10 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
             rbId = recbalance.getId();
 
             baseDTO = getBaseDTOById(rbId);
-            //日志记录
-            messageLogService.save(baseDTO);
+            if (!("AUDITED".equals(recbalance.getRb_statuscode()))) {
+                //日志记录
+                messageLogService.save(baseDTO);
+            }
         }
 
         Iterator isdet = recbalancedet.iterator();

+ 27 - 0
applications/money/money-server/src/main/resources/mapper/AccountDetailsViewMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.usoftchina.saas.money.mapper.AccountDetailsViewMapper" >
+  <resultMap id="BaseResultMap" type="com.usoftchina.saas.money.po.AccountDetailsView" >
+    <result column="SL_CODE" property="SL_CODE" jdbcType="VARCHAR" />
+    <result column="SL_KIND" property="SL_KIND" jdbcType="VARCHAR" />
+    <result column="VE_NAME" property="VE_NAME" jdbcType="VARCHAR" />
+    <result column="SL_AMOUNT" property="SL_AMOUNT" jdbcType="DOUBLE" />
+    <result column="PB_ID" property="PB_ID" jdbcType="INTEGER" />
+    <result column="PB_KIND" property="PB_KIND" jdbcType="VARCHAR" />
+    <result column="PB_CODE" property="PB_CODE" jdbcType="VARCHAR" />
+    <result column="total" property="total" jdbcType="DOUBLE" />
+    <result column="date" property="date" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <select id="selectByCondition" resultMap="BaseResultMap">
+    select  *  from account_details_view
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  companyId = #{companyId}
+      </if>
+    </where>
+    order by date desc
+  </select>
+</mapper>

+ 1 - 0
applications/money/money-server/src/main/resources/mapper/VendorAcountViewMapper.xml

@@ -19,6 +19,7 @@
     <result column="pd_netprice" property="pd_netprice" jdbcType="DOUBLE" />
     <result column="pd_nettotal" property="pd_nettotal" jdbcType="DOUBLE" />
     <result column="companyId" property="companyId" jdbcType="INTEGER" />
+    <result column="pd_remark" property="pd_remark" jdbcType="VARCHAR"/>
   </resultMap>
 
   <select id="selectByCondition" resultMap="BaseResultMap">

+ 0 - 2
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

@@ -161,8 +161,6 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
             //日志记录
             messageLogService.save(baseDTO);
             return baseDTO;
-        }else{
-           // setUpdateInfo(purchase);
         }
         //更新操作
         purchaseMapper.updateByPrimaryKeySelective(purchase);

+ 37 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/StockTakingDTO.java

@@ -0,0 +1,37 @@
+package com.usoftchina.saas.storage.dto;
+
+import com.usoftchina.saas.base.dto.CommonBaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Created by zdw
+ * 2018-11-20 19:46.
+ */
+@Data
+public class StockTakingDTO extends CommonBaseDTO implements Serializable {
+    private Integer st_prodid;
+
+    private String st_prodcode;
+
+    private String st_proddetail;
+
+    private String st_prodorispeccode;
+
+    private String st_prodkind;
+
+    private String st_produnit;
+
+    private Integer st_whid;
+
+    private String st_whcode;
+
+    private String st_whname;
+
+    private Double st_batchqty;
+
+    private Double st_actqty;
+
+    private Double st_num;
+}

+ 34 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/StockTaking.java

@@ -0,0 +1,34 @@
+package com.usoftchina.saas.storage.po;
+
+import com.usoftchina.saas.base.entity.CommonBaseEntity;
+import lombok.Data;
+import java.io.Serializable;
+
+@Data
+public class StockTaking extends CommonBaseEntity implements Serializable {
+
+    private Integer st_prodid;
+
+    private String st_prodcode;
+
+    private String st_proddetail;
+
+    private String st_prodorispeccode;
+
+    private String st_prodkind;
+
+    private String st_produnit;
+
+    private Integer st_whid;
+
+    private String st_whcode;
+
+    private String st_whname;
+
+    private Double st_batchqty;
+
+    private Double st_actqty;
+
+    private Double st_num;
+
+}

+ 49 - 0
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/controller/StocktakingController.java

@@ -0,0 +1,49 @@
+package com.usoftchina.saas.storage.controller;
+
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.page.PageDefault;
+import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.storage.dto.StockTakingDTO;
+import com.usoftchina.saas.storage.service.MakeService;
+import com.usoftchina.saas.storage.service.StocktakingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/stocktaking")
+public class StocktakingController {
+
+    @Autowired
+    private MakeService makeService;
+    @Autowired
+    private StocktakingService stocktakingService;
+
+
+
+    /**
+     * 盘点查询
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @GetMapping("/list")
+    public Result getListData(@PageDefault(number = 1, size = 10) PageRequest page, ListReqDTO listReqDTO){
+        return Result.success(stocktakingService.getList(page, listReqDTO));
+    }
+
+
+
+    @PostMapping("/save")
+    public Result save(@RequestBody List<StockTakingDTO> list){
+        DocBaseDTO docBaseDTO = stocktakingService.saveOrUpdate(list);
+        return Result.success(docBaseDTO);
+    }
+
+
+
+
+}

+ 19 - 0
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/StockTakingMapper.java

@@ -0,0 +1,19 @@
+package com.usoftchina.saas.storage.mapper;
+
+import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.storage.po.StockTaking;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface StockTakingMapper extends CommonBaseMapper<StockTaking> {
+    int deleteByPrimaryKey(Integer st_id);
+
+    int insertSelective(StockTaking record);
+
+    StockTaking selectByPrimaryKey(Integer st_id);
+
+    int updateByPrimaryKeySelective(StockTaking record);
+
+    List<StockTaking> selectStockTakingBycondition(@Param("con") String con, @Param("companyId") Long companyId);
+}

+ 20 - 0
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/StocktakingService.java

@@ -0,0 +1,20 @@
+package com.usoftchina.saas.storage.service;
+
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.service.CommonBaseService;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.storage.dto.StockTakingDTO;
+import com.usoftchina.saas.storage.mapper.StockTakingMapper;
+import com.usoftchina.saas.storage.po.StockTaking;
+
+import java.util.List;
+
+public interface StocktakingService extends CommonBaseService<StockTakingMapper, StockTaking> {
+
+    PageInfo<StockTaking>  getList(PageRequest page, ListReqDTO listReqDTO);
+
+    DocBaseDTO saveOrUpdate(List<StockTakingDTO> list);
+}

+ 57 - 0
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/StocktakingServiceImpl.java

@@ -0,0 +1,57 @@
+package com.usoftchina.saas.storage.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.storage.dto.StockTakingDTO;
+import com.usoftchina.saas.storage.mapper.StockTakingMapper;
+import com.usoftchina.saas.storage.po.StockTaking;
+import com.usoftchina.saas.storage.service.StocktakingService;
+import com.usoftchina.saas.utils.BeanMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * Created by zdw
+ * 2018-11-20 14:59.
+ */
+@Service
+public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMapper, StockTaking> implements StocktakingService {
+
+    @Override
+    public PageInfo<StockTaking> getList(PageRequest page, ListReqDTO listReqDTO) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        List<StockTaking> stockTakingList = getList(listReqDTO);
+        //取分页信息
+        PageInfo<StockTaking> pageInfo = new PageInfo<StockTaking>(stockTakingList);
+        return pageInfo;
+    }
+
+    @Override
+    @Transactional
+    public DocBaseDTO saveOrUpdate(List<StockTakingDTO> items) {
+        for (StockTakingDTO item : items) {
+            StockTaking stockTaking = BeanMapper.map(item,StockTaking.class);
+            getMapper().updateByPrimaryKeySelective(stockTaking);
+        }
+        DocBaseDTO baseDTO = new DocBaseDTO();
+        return baseDTO;
+    }
+
+    private List<StockTaking> getList(ListReqDTO listReqDTO) {
+        List<StockTaking> list = null;
+        Long companyId = BaseContextHolder.getCompanyId();
+        String con = listReqDTO.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        list = getMapper().selectStockTakingBycondition(con,companyId);
+        return list;
+    }
+}

+ 248 - 0
applications/storage/storage-server/src/main/resources/mapper/StockTakingMapper.xml

@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usoftchina.saas.storage.mapper.StockTakingMapper">
+  <resultMap id="BaseResultMap" type="com.usoftchina.saas.storage.po.StockTaking">
+    <id column="st_id" jdbcType="INTEGER" property="id" />
+    <result column="st_prodid" jdbcType="INTEGER" property="st_prodid" />
+    <result column="st_prodcode" jdbcType="VARCHAR" property="st_prodcode" />
+    <result column="st_proddetail" jdbcType="VARCHAR" property="st_proddetail" />
+    <result column="st_prodorispeccode" jdbcType="VARCHAR" property="st_prodorispeccode" />
+    <result column="st_prodkind" jdbcType="VARCHAR" property="st_prodkind" />
+    <result column="st_produnit" jdbcType="VARCHAR" property="st_produnit" />
+    <result column="st_whid" jdbcType="INTEGER" property="st_whid" />
+    <result column="st_whcode" jdbcType="VARCHAR" property="st_whcode" />
+    <result column="st_whname" jdbcType="VARCHAR" property="st_whname" />
+    <result column="st_batchqty" jdbcType="DOUBLE" property="st_batchqty" />
+    <result column="st_actqty" jdbcType="DOUBLE" property="st_actqty" />
+    <result column="st_num" jdbcType="DOUBLE" property="st_num" />
+    <result column="companyId" jdbcType="INTEGER" property="companyId" />
+    <result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
+    <result column="creatorId" jdbcType="INTEGER" property="creatorId" />
+    <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="updaterName" jdbcType="TIMESTAMP" property="updaterName" />
+    <result column="updaterId" jdbcType="INTEGER" property="updaterId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    st_id, st_prodid, st_prodcode, st_proddetail, st_prodorispeccode, st_prodkind, st_produnit, 
+    st_whid, st_whcode, st_whname, st_batchqty, st_actqty, st_num, companyId, createTime, 
+    creatorName, creatorId, updateTime, updaterName, updaterId
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from stocktaking
+    where st_id = #{st_id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from stocktaking
+    where st_id = #{st_id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insertSelective" parameterType="com.usoftchina.saas.storage.po.StockTaking">
+    <selectKey resultType="java.lang.Long" keyProperty="id">
+      SELECT LAST_INSERT_ID() AS ID
+    </selectKey>
+    insert into stocktaking
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+
+      <if test="st_prodid != null">
+        st_prodid,
+      </if>
+      <if test="st_prodcode != null">
+        st_prodcode,
+      </if>
+      <if test="st_proddetail != null">
+        st_proddetail,
+      </if>
+      <if test="st_prodorispeccode != null">
+        st_prodorispeccode,
+      </if>
+      <if test="st_prodkind != null">
+        st_prodkind,
+      </if>
+      <if test="st_produnit != null">
+        st_produnit,
+      </if>
+      <if test="st_whid != null">
+        st_whid,
+      </if>
+      <if test="st_whcode != null">
+        st_whcode,
+      </if>
+      <if test="st_whname != null">
+        st_whname,
+      </if>
+      <if test="st_batchqty != null">
+        st_batchqty,
+      </if>
+      <if test="st_actqty != null">
+        st_actqty,
+      </if>
+      <if test="st_num != null">
+        st_num,
+      </if>
+      <if test="companyId != null">
+        companyId,
+      </if>
+      <if test="createTime != null">
+        createTime,
+      </if>
+      <if test="creatorName != null">
+        creatorName,
+      </if>
+      <if test="creatorId != null">
+        creatorId,
+      </if>
+      <if test="updateTime != null">
+        updateTime,
+      </if>
+      <if test="updaterName != null">
+        updaterName,
+      </if>
+      <if test="updaterId != null">
+        updaterId,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+
+      <if test="st_prodid != null">
+        #{st_prodid,jdbcType=INTEGER},
+      </if>
+      <if test="st_prodcode != null">
+        #{st_prodcode,jdbcType=VARCHAR},
+      </if>
+      <if test="st_proddetail != null">
+        #{st_proddetail,jdbcType=VARCHAR},
+      </if>
+      <if test="st_prodorispeccode != null">
+        #{st_prodorispeccode,jdbcType=VARCHAR},
+      </if>
+      <if test="st_prodkind != null">
+        #{st_prodkind,jdbcType=VARCHAR},
+      </if>
+      <if test="st_produnit != null">
+        #{st_produnit,jdbcType=VARCHAR},
+      </if>
+      <if test="st_whid != null">
+        #{st_whid,jdbcType=INTEGER},
+      </if>
+      <if test="st_whcode != null">
+        #{st_whcode,jdbcType=VARCHAR},
+      </if>
+      <if test="st_whname != null">
+        #{st_whname,jdbcType=VARCHAR},
+      </if>
+      <if test="st_batchqty != null">
+        #{st_batchqty,jdbcType=DOUBLE},
+      </if>
+      <if test="st_actqty != null">
+        #{st_actqty,jdbcType=DOUBLE},
+      </if>
+      <if test="st_num != null">
+        #{st_num,jdbcType=DOUBLE},
+      </if>
+      <if test="companyId != null">
+        #{companyId,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="creatorName != null">
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="creatorId != null">
+        #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterName != null">
+        #{updaterName,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterId != null">
+        #{updaterId,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.storage.po.StockTaking">
+    update stocktaking
+    <set>
+      <if test="st_prodid != null">
+        st_prodid = #{st_prodid,jdbcType=INTEGER},
+      </if>
+      <if test="st_prodcode != null">
+        st_prodcode = #{st_prodcode,jdbcType=VARCHAR},
+      </if>
+      <if test="st_proddetail != null">
+        st_proddetail = #{st_proddetail,jdbcType=VARCHAR},
+      </if>
+      <if test="st_prodorispeccode != null">
+        st_prodorispeccode = #{st_prodorispeccode,jdbcType=VARCHAR},
+      </if>
+      <if test="st_prodkind != null">
+        st_prodkind = #{st_prodkind,jdbcType=VARCHAR},
+      </if>
+      <if test="st_produnit != null">
+        st_produnit = #{st_produnit,jdbcType=VARCHAR},
+      </if>
+      <if test="st_whid != null">
+        st_whid = #{st_whid,jdbcType=INTEGER},
+      </if>
+      <if test="st_whcode != null">
+        st_whcode = #{st_whcode,jdbcType=VARCHAR},
+      </if>
+      <if test="st_whname != null">
+        st_whname = #{st_whname,jdbcType=VARCHAR},
+      </if>
+      <if test="st_batchqty != null">
+        st_batchqty = #{st_batchqty,jdbcType=DOUBLE},
+      </if>
+      <if test="st_actqty != null">
+        st_actqty = #{st_actqty,jdbcType=DOUBLE},
+      </if>
+      <if test="st_num != null">
+        st_num = #{st_num,jdbcType=DOUBLE},
+      </if>
+      <if test="companyId != null">
+        companyId = #{companyId,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        createTime = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="creatorName != null">
+        creatorName = #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="creatorId != null">
+        creatorId = #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="updateTime != null">
+        updateTime = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterName != null">
+        updaterName = #{updaterName,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterId != null">
+        updaterId = #{updaterId,jdbcType=INTEGER},
+      </if>
+    </set>
+    where st_id = #{id,jdbcType=INTEGER}
+  </update>
+
+
+  <select id="selectStockTakingBycondition" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from stocktaking
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  companyId = #{companyId}
+      </if>
+    </where>
+    order by st_id desc
+  </select>
+
+
+</mapper>

+ 1 - 1
frontend/saas-portal-web/config/env.js

@@ -29,4 +29,4 @@ if (process.env.NODE_ENV == 'production') {
             ssoUrl: 'http://192.168.253.12:32323'
         }
     }
-}
+}

+ 12 - 3
frontend/saas-web/app.json

@@ -296,7 +296,10 @@
         },*/
         "compressor":null,
         "server": {
-            "basePath": "http://192.168.0.181:8560",
+            "basePath": {
+                "https": "https://saas-api-dev.usoftchina.com:5443",
+                "http": "http://192.168.0.181:8560"
+            },
             "urlPattern": "^\/api\/"
         }
     },
@@ -306,7 +309,10 @@
      */
     "testing": {
         "server": {
-            "basePath": "http://192.168.0.181:8560",
+            "basePath": {
+                "https": "https://saas-api-dev.usoftchina.com:5443",
+                "http": "http://192.168.0.181:8560"
+            },
             "urlPattern": "^\/api\/"
         }
     },
@@ -319,7 +325,10 @@
             "delay": 250
         },
         "server": {
-            "basePath": "http://192.168.0.181:8560",
+            "basePath": {
+                "https": "https://saas-api-dev.usoftchina.com:5443",
+                "http": "http://192.168.0.181:8560"
+            },
             "urlPattern": "^\/api\/"
         }
     },

+ 28 - 0
frontend/saas-web/app/model/money/Verification1.js

@@ -0,0 +1,28 @@
+Ext.define('saas.model.money.Verification1', {
+    extend: 'saas.model.Base',
+    fields: [
+        { name: 'id', type: 'int' },
+        { name: 'vd_id', type: 'int' },
+        { name: 'vd_vcid', type: 'int' },
+        { name: 'vd_detno', type: 'int' },
+        { name: 'vd_ym', type: 'int' },
+        { name: 'vd_slid', type: 'int' },
+        { name: 'vd_slcode', type: 'string' },
+        { name: 'vd_slkind', type: 'string' },
+        { name: 'vd_sldate', type: 'date' },
+        { name: 'vd_amount', type: 'float' },
+        { name: 'vd_nowbalance', type: 'float' },
+        { name: 'vd_remark', type: 'string' },
+        { name: 'companyId', type: 'int' },
+        { name: 'updaterId', type: 'int' },
+        { name: 'vd_text1', type: 'string' },
+        { name: 'vd_text2', type: 'string' },
+        { name: 'vd_text3', type: 'string' },
+        { name: 'vd_text4', type: 'string' },
+        { name: 'vd_text5', type: 'string' },
+        { name: 'creator', type: 'string' },
+        { name: 'creatorId', type: 'int' },
+        { name: 'createTime', type: 'date' },
+        { name: 'updater', type: 'string' },
+    ]
+});

+ 17 - 2
frontend/saas-web/app/util/BaseUtil.js

@@ -54,13 +54,28 @@ Ext.define('saas.util.BaseUtil', {
          * @param title: 标题
          * 
          */
-        showToast: function (content, title) {
+        showSuccessToast: function (content, title) {
             Ext.toast({
+                cls:'x-toast-success',
                 html: content,
                 title: title,
                 closable: false,
                 align: 't',
-                slideDUration: 400,
+                autoCloseDelay:3000,
+                autoClose:true,
+                maxWidth: 400
+            });
+        },
+
+        showErrorToast: function (content, title) {
+            Ext.toast({
+                cls:'x-toast-error',
+                html: content,
+                title: title,
+                closable: false,
+                align: 't',
+                autoCloseDelay:3000,
+                autoClose:true,
                 maxWidth: 400
             });
         },

+ 3 - 3
frontend/saas-web/app/util/Errors.js

@@ -42,16 +42,16 @@ Ext.define('saas.util.Errors', {
                 if (error.code === -32096) {    // READONLY_SESSION
                     // The session is read-only (demo version), let's display a temporary message
                     // and return false since this exception should not be considered as an error.
-                    saas.util.BaseUtil.showToast(error.message);
+                    saas.util.BaseUtil.showErrorToast(error.message);
                     return false;
                 }
                 if (error.code === -32001 && form) {
                     form.setErrors(this.toForm(error));
                 } else {
-                    saas.util.BaseUtil.showToast(error.name + ' Error:' + error.message);
+                    saas.util.BaseUtil.showErrorToast(error.name + ' 错误信息:' + error.message);
                 }
             } else if (Ext.isString(error)) {
-                saas.util.BaseUtil.showToast('Error:' + error);
+                saas.util.BaseUtil.showErrorToast('错误信息:' + error);
             }
 
             return true;

+ 155 - 139
frontend/saas-web/app/util/FormUtil.js

@@ -7,22 +7,11 @@ Ext.define('saas.util.FormUtil', {
         // 模板替换正则
         urlRe: /(.*){viewName}(.*)/g,
 
-        /**
-         * 获得form的字段配置
-         * @param form: form组件
-         * @param url: url
-         */
         setItems: function(form) {
             var me = this,
-            viewName = form.viewName,
-            defaultItems = form.defaultItems,
-            brr = [],
-            formModel = form.getViewModel(),
-            url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
-            
-            brr = brr.concat(form.defaultItems);
+            defaultItems = form.defaultItems;
 
-            saas.util.BaseUtil.request({url, async: false})
+            me.applyCusItemConfig(form)
             .then(function(res) {
                 if(res.success) {
                     var config = res.data || true, items = defaultItems || [];
@@ -34,150 +23,177 @@ Ext.define('saas.util.FormUtil', {
                             });
                             Ext.apply(item, cusItem);
                         });
-                        Ext.Array.each(items, function(item) {
+                        items = me.applyDefaultItems(form, items);
+                    }
+                    form.removeAll();
+                    return form.addItems(items);
+                }else {
+                    return []
+                }
+            })
+            .then(function(items) {
+                form.fireEvent('afterSetItems', form, items);
+            })
+            .then(function() {
+                me.loadData(form);
+            })
+            .catch(function(response) {
+                saas.util.BaseUtil.showErrorToast('加载数据错误:' + response.message);
+                console.error(response);
+            });
 
-                            // 设置必填
-                            if(item.allowBlank==false){
-                                // TODO 需要判断类型
-                                item.beforeLabelTextTpl = "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>";
-                            }
+        },
 
-                            if(item.xtype == 'textfield') {
-                                Ext.applyIf(item, {
-                                    maxLength: 50
-                                });
-                            }
-                            
-                            if(item.xtype == 'datefield') {
-                                Ext.applyIf(item, {
-                                    editable: false,
-                                    format: 'Y-m-d'
-                                });
-                            }
+        /**
+         * 获得form的客户自定义字段配置
+         * @param form: form组件
+         * @param url: url
+         */
 
-                            if(item.xtype == 'numberfield') {
-                                Ext.applyIf(item, {
-                                    hideTrigger: true, // 隐藏trigger
-                                    mouseWheelEnabled: false // 取消滚轮事件
-                                });
-                                // 设置默认值为0
-                                formModel.set(item.name, 0);
-                            }
+        applyCusItemConfig: function(form) {
+            var me = this,
+            viewName = form.viewName,
+            defaultItems = form.defaultItems,
+            url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
+            return saas.util.BaseUtil.request({url, async: false});
+        },
 
-                            // 如果是从表为其绑定store
-                            if(item.xtype == 'detailGridField') {
-                                var index = form.detailCount;
-                                var columns = item.columns,
-                                cnames = columns.filter(function(c) {
-                                    return c.dataIndex && !c.ignore;
-                                }).map(function(c) {
-                                    return c.dataIndex
-                                }),
-                                defaultValueColumns = {};
+        /**
+         * 处理formitems的一些默认配置
+         */
+        applyDefaultItems: function(form, items) {
+            var me = this,
+            formModel = form.getViewModel();
 
-                                Ext.Array.each(columns, function(c) {
+            Ext.Array.each(items, function(item) {
 
-                                    if(c.dataIndex && c.defaultValue) {
-                                        defaultValueColumns[c.dataIndex] = c.defaultValue;
-                                    }
+                // 设置必填
+                if(item.allowBlank==false){
+                    // TODO 需要判断类型
+                    item.beforeLabelTextTpl = "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>";
+                }
 
-                                    // 不可锁定
-                                    Ext.applyIf(c, {
-                                        lockable: false,
-                                        width: 120
-                                    });
+                if(item.xtype == 'textfield') {
+                    Ext.applyIf(item, {
+                        maxLength: 50
+                    });
+                }
+                
+                if(item.xtype == 'datefield') {
+                    Ext.applyIf(item, {
+                        editable: false,
+                        format: 'Y-m-d'
+                    });
+                }
 
-                                    //必填
-                                    Ext.applyIf(c, {
-                                        allowBlank: true
-                                    });
-                                    if(!c.allowBlank){
-                                        c.cls = 'x-grid-necessary';
-                                    }
+                if(item.xtype == 'numberfield') {
+                    Ext.applyIf(item, {
+                        hideTrigger: true, // 隐藏trigger
+                        mouseWheelEnabled: false // 取消滚轮事件
+                    });
+                    // 设置默认值为0
+                    formModel.set(item.name, 0);
+                }
 
-                                    if(c.xtype == 'textfield') {
-                                        Ext.applyIf(c, {
-                                            maxLength: 50
-                                        });
-                                    }else if(c.xtype == 'datecolumn') {
-                                        Ext.applyIf(c, {
-                                            format: 'Y-m-d'
-                                        });
-                                    }else if(c.xtype == 'numbercolumn') {
-                                        Ext.applyIf(c, {
-                                            align: 'end'
-                                        });
-                                    }
-                                    
-                                    var editor = c.editor;
-                                    if(editor) {
-                                        Ext.applyIf(editor, {
-                                            selectOnFocus: true
-                                        });
-                                        if(editor.xtype == 'numberfield') {
-                                            Ext.applyIf(editor, {
-                                                hideTrigger: true, // 隐藏trigger
-                                                mouseWheelEnabled: false // 取消滚轮事件
-                                            });
-                                        }else if(editor.xtype == 'datefield') {
-                                            Ext.apply(editor, {
-                                                format: 'Y-m-d'
-                                            });
-                                            Ext.applyIf(editor, {
-                                                editable: false
-                                            });
-                                        }
-                                    }
-                                });
+                // 如果是从表为其绑定store
+                if(item.xtype == 'detailGridField') {
+                    var index = form.detailCount;
+                    var columns = item.columns,
+                    cnames = columns.filter(function(c) {
+                        return c.dataIndex && !c.ignore;
+                    }).map(function(c) {
+                        return c.dataIndex
+                    }),
+                    defaultValueColumns = {};
 
-                                if(columns[columns.length - 1].flex != 1) {
-                                    columns.push({
-                                        flex: 1,
-                                        allowBlank: true
-                                    });
-                                }
+                    Ext.Array.each(columns, function(c) {
 
-                                cnames.push(item.detnoColumn);
+                        if(c.dataIndex && c.defaultValue) {
+                            defaultValueColumns[c.dataIndex] = c.defaultValue;
+                        }
 
-                                formModel.set('detail' + index + '.detailBindFields', cnames);
-                                item.bind = {
-                                    store: '{detail' + index + '.detailStore}'
-                                };     
-                                formModel.set('detail' + index + '.detailStore', Ext.create('Ext.data.Store', {
-                                    model:item.storeModel,
-                                    data: [],
-                                    listeners: {
-                                        add: function(store, records, index, eOpts) {
-                                            Ext.Array.each(records, function(r) {
-                                                for(k in defaultValueColumns) {
-                                                    r.set(k, defaultValueColumns[k]);
-                                                }
-                                                r.commit();
-                                            });
-                                        }
-                                    }
-                                }));
+                        // 不可锁定
+                        Ext.applyIf(c, {
+                            lockable: false,
+                            width: 120
+                        });
 
-                                form.detailCount++;
+                        //必填
+                        Ext.applyIf(c, {
+                            allowBlank: true
+                        });
+                        if(!c.allowBlank){
+                            c.cls = 'x-grid-necessary';
+                        }
+
+                        if(c.xtype == 'textfield') {
+                            Ext.applyIf(c, {
+                                maxLength: 50
+                            });
+                        }else if(c.xtype == 'datecolumn') {
+                            Ext.applyIf(c, {
+                                format: 'Y-m-d'
+                            });
+                        }else if(c.xtype == 'numbercolumn') {
+                            Ext.applyIf(c, {
+                                align: 'end'
+                            });
+                        }
+                        
+                        var editor = c.editor;
+                        if(editor) {
+                            Ext.applyIf(editor, {
+                                selectOnFocus: true
+                            });
+                            if(editor.xtype == 'numberfield') {
+                                Ext.applyIf(editor, {
+                                    hideTrigger: true, // 隐藏trigger
+                                    mouseWheelEnabled: false // 取消滚轮事件
+                                });
+                            }else if(editor.xtype == 'datefield') {
+                                Ext.apply(editor, {
+                                    format: 'Y-m-d'
+                                });
+                                Ext.applyIf(editor, {
+                                    editable: false
+                                });
                             }
+                        }
+                    });
+
+                    if(columns[columns.length - 1].flex != 1) {
+                        columns.push({
+                            flex: 1,
+                            allowBlank: true
                         });
                     }
-                    return form.addItems(items);
-                }else {
-                    return []
+
+                    cnames.push(item.detnoColumn);
+
+                    formModel.set('detail' + index + '.detailBindFields', cnames);
+                    item.bind = {
+                        store: '{detail' + index + '.detailStore}'
+                    };     
+                    formModel.set('detail' + index + '.detailStore', Ext.create('Ext.data.Store', {
+                        model:item.storeModel,
+                        data: [],
+                        listeners: {
+                            add: function(store, records, index, eOpts) {
+                                Ext.Array.each(records, function(r) {
+                                    for(k in defaultValueColumns) {
+                                        r.set(k, defaultValueColumns[k]);
+                                    }
+                                    r.commit();
+                                });
+                            }
+                        }
+                    }));
+
+                    form.detailCount++;
                 }
-            })
-            .then(function(items) {
-                form.fireEvent('afterSetItems', form, items);
-            })
-            .then(function() {
-                me.loadData(form);
-            })
-            .catch(function(response) {
-                saas.util.BaseUtil.showToast('错误:' + response.message);
-                console.error(response);
             });
 
+            return items;
         },
 
         loadData: function(form) {
@@ -266,7 +282,7 @@ Ext.define('saas.util.FormUtil', {
                         form.initFormData(formData);
                     }
                 }).catch(function(res) {
-                    saas.util.BaseUtil.showToast(res.message);
+                    saas.util.BaseUtil.showErrorToast(res.message);
                     form.setLoading(false);
                 })
             }

+ 2 - 2
frontend/saas-web/app/view/auth/LoginController.js

@@ -39,7 +39,7 @@ Ext.define('saas.view.auth.LoginController', {
             })
             .catch(function(error) {
                 view.isMasked() && view.unmask();
-                saas.util.BaseUtil.showToast(error.message);
+                saas.util.BaseUtil.showErrorToast(error.message);
             });
     },
 
@@ -61,7 +61,7 @@ Ext.define('saas.view.auth.LoginController', {
 				me.fireEvent('login', newSession);
             })
             .catch(function(error) {
-                saas.util.BaseUtil.showToast(error.message);
+                saas.util.BaseUtil.showErrorToast(error.message);
             })
             .then(function() {
                 view.isMasked() && view.unmask();

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

@@ -37,6 +37,18 @@ Ext.define('saas.view.core.base.GridPanel', {
                         type: 'json',
                         rootProperty: 'data.list',
                         totalProperty: 'data.total',
+                    },
+                    listeners: {
+                        exception: function(proxy, response, operation, eOpts) {
+                            if(operation.success) {
+                                if(response.timedout) {
+                                    saas.util.BaseUtil.showErrorToast('请求超时');
+                                }
+                            }else {
+                                console.error('exception: ', response.responseJson);
+                                saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson.message);
+                            }
+                        }
                     }
                 },
                 listeners: {
@@ -82,21 +94,9 @@ Ext.define('saas.view.core.base.GridPanel', {
                     }, {
                         text: '导入',
                         handler: me.onImport,
-                        menu: {
-                            cls:'x-query-menu',
-                            width: 80,
-                            items: [{
-                                text:'导出',
-                                handler:function(){
-                                    me.onExport(this)
-                                }
-                            }],
-                            listeners: {
-                                'mouseleave':function(enu){
-                                    this.hide();
-                                } 
-                            }
-                        }
+                    },{
+                        text:'导出',
+                        handler:me.onExport
                     },{
                         text: '禁用',
                         handler: function(){
@@ -132,13 +132,13 @@ Ext.define('saas.view.core.base.GridPanel', {
                                     }
                                 });
                             }else {
-                                saas.util.BaseUtil.showToast('请至少选择一条明细');
+                                saas.util.BaseUtil.showErrorToast('请至少选择一条明细');
                             }
                         }
-                    }, {
+                    }/* , {
                         text: '刷新',
                         handler: me.onLoad
-                    }]
+                    } */]
                 },{
                     xtype: 'pagingtoolbar',
                     dock: 'bottom',
@@ -160,7 +160,7 @@ Ext.define('saas.view.core.base.GridPanel', {
         var grid = this;
         var data = grid.getGridSelected(type);
         if(!data){
-            saas.util.BaseUtil.showToast('请勾选符合条件的行进行操作。');
+            saas.util.BaseUtil.showErrorToast('请勾选符合条件的行进行操作。');
             return false;
         }
         if(data&&data.length>0){
@@ -172,15 +172,15 @@ Ext.define('saas.view.core.base.GridPanel', {
                     async:false
                 })
                 .then(function() {
-                    saas.util.BaseUtil.showToast('操作成功');
+                    saas.util.BaseUtil.showSuccessToast('操作成功');
                     grid.store.load();
                 })
                 .catch(function(res) {
                     console.error(res);
-                    saas.util.BaseUtil.showToast('操作失败: ' + res.message);
+                    saas.util.BaseUtil.showErrorToast('操作失败: ' + res.message);
                 });
         }else{
-            saas.util.BaseUtil.showToast('请勾选至少一条明细。');
+            saas.util.BaseUtil.showErrorToast('请勾选至少一条明</br>细。');
         }
     },
 
@@ -215,13 +215,13 @@ Ext.define('saas.view.core.base.GridPanel', {
                             .then(function(localJson) {
                                 if(localJson.success){
                                     //解析参数
-                                    saas.util.BaseUtil.showToast('删除成功');
+                                    saas.util.BaseUtil.showSuccessToast('删除成功');
                                     view.ownerCt.store.load();
                                 }
                             })
                             .catch(function(res) {
                                 console.error(res);
-                                saas.util.BaseUtil.showToast('删除失败: ' + res.message);
+                                saas.util.BaseUtil.showErrorToast('删除失败: ' + res.message);
                             });
                         }
                     });

+ 3 - 1
frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js

@@ -74,6 +74,8 @@ Ext.define('saas.view.core.dbfind.DbfindGridPanel', {
                         handler: me.onAddClick.bind(me)
                     }])
                 },{
+                    height:32,
+                    style:'padding: 0;',
                     xtype: 'pagingtoolbar',
                     dock: 'bottom',
                     displayInfo: true,
@@ -90,7 +92,7 @@ Ext.define('saas.view.core.dbfind.DbfindGridPanel', {
             gridBodyBox = grid.body.dom.getBoundingClientRect(),
             gridBodyBoxHeight = gridBodyBox.height;
 
-            var pageSize = Math.floor(gridBodyBoxHeight / 32);
+            var pageSize = Math.floor(gridBodyBoxHeight / 33);
 
             store.setPageSize(pageSize);
         },

+ 51 - 0
frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.scss

@@ -1,3 +1,54 @@
 .x-window-dbfind{
     border:none;
+    .x-window-header{
+        border: none;
+        background-color: #fff;
+    }
+    .x-title-text{
+        padding-left: 7px;
+        font-weight: 550;
+        color: #35baf6;
+    }
+    .x-tbar-page-number .x-form-text{
+        height: 16px !important;
+        min-height: 16px;
+        padding: 0px;
+    }
+    .x-tbar-page-number{
+        width: 40px !important;
+    }
+    .x-title-text::before{
+        margin-left: -10px;
+        content: ' ';
+        display: block;
+        border-style: solid;
+        background-color: #34baf6;
+        position: fixed;
+        width: 0px;
+        margin-top: 2px;
+        height: 10px;
+    }
+    .x-tool-tool-el{
+        color:#35baf6 !important;
+    }
+    .x-window-body{
+        padding-top: 0px !important;
+    }
+    .x-toolbar-default {
+        padding: 6px 0 12px 0px;
+    }
+    .x-grid-header-ct {
+        border: 1px solid #abdaff !important;
+    }
+    .x-grid-body {
+        border-width: 1px;
+        border-color: #abdaff;
+        border-right-width: 1px !important;
+        border-left-width: 1px !important;
+        border-top-width: 0px !important;
+    }
+    .x-grid-paging-toolbar{
+        border: 1px solid #abdaff !important;
+        border-top-width: 0px !important;
+    }
 }

+ 5 - 4
frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js

@@ -5,8 +5,6 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     queryMode: 'local',
     displayField: 'dispaly',
     valueField: 'value',
-    triggerCls: 'x-form-search-trigger',
-    cls:'x-window-dbfind',
     minChars:1, // 设置用户输入字符多少时触发查询
     tpl: '',
     enableKeyEvents:true,
@@ -152,7 +150,8 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
             dbItem.onAddClick = me.onAddClick;
         }
 
-        var win = panel.add(Ext.create('Ext.window.Window', {   
+        var win = panel.add(Ext.create('Ext.window.Window', {  
+            cls:'x-window-dbfind', 
             trigger:f,
             belong:f.ownerCt,  
             modal:true,
@@ -171,7 +170,9 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     },
 
     judge:function(f){
-        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL')>-1||(f.ownerCt.ownerCt&&f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('BASEPANEL')>-1)){
+        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL')>-1
+           ||(f.ownerCt.ownerCt&&(f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('BASEPANEL')>-1
+           ||f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('EDITDATALIST')>-1))){
             f.belong = 'form';
             return f.ownerCt.ownerCt
         }else if(f.ownerCt.xtype.trim().toUpperCase().indexOf('FORM')>-1){

+ 3 - 1
frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js

@@ -39,7 +39,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
             gridBodyBox = grid.body.dom.getBoundingClientRect(),
             gridBodyBoxHeight = gridBodyBox.height;
 
-            var pageSize = Math.floor(gridBodyBoxHeight / 32);
+            var pageSize = Math.floor(gridBodyBoxHeight / 33);
 
             store.setPageSize(pageSize);
         }
@@ -164,6 +164,8 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
                     xtype: 'pagingtoolbar',
                     dock: 'bottom',
                     displayInfo: true,
+                    height:32,
+                    style:'padding: 0;',
                     store: me.store,
                     items:[{
                         xtype:'checkbox',

+ 1 - 0
frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js

@@ -143,6 +143,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
         var height = box.height;
         var width = box.width;
         var win = panel.add(Ext.create('Ext.window.Window', {   
+            cls:'x-window-dbfind', 
             trigger:f,
             belong:f.ownerCt,  
             modal:true,

+ 8 - 13
frontend/saas-web/app/view/core/dbfind/types/BankInfoDbfindTrigger.js

@@ -7,10 +7,10 @@ Ext.define('saas.view.core.dbfind.types.BankInfoDbfindTrigger', {
     addTitle: '资金账户',
     dbtpls: [{
         field: 'bk_bankcode',
-        width: 100
+        width: 150
     }, {
         field: 'bk_bankname',
-        width: 100
+        width: 200
     }],
     dbSearchFields: [{
         emptyText: '查找资金账户',
@@ -30,33 +30,28 @@ Ext.define('saas.view.core.dbfind.types.BankInfoDbfindTrigger', {
         xtype: ""
     }, {
         text: "资金账户",
-        flex: 1,
         dataIndex: "bk_bankcode",
-        width: 120,
+        width: 150,
         xtype: ""
     }, {
         text: "账户名称",
-        flex: 1,
         dataIndex: "bk_bankname",
-        width: 150,
+        width:200,
         xtype: ""
     }, {
         text: "账户类别",
-        flex: 1,
         dataIndex: "bk_type",
-        width: 120,
+        width: 110,
         xtype: ""
     }, {
         text: "账户余额",
-        flex: 1,
         dataIndex: "bk_thisamount",
-        width: 120,
+        width: 110,
         xtype: 'numbercolumn',
     }, {
         text: "建帐日期",
-        flex: 1,
+        xtype: "datecolumn",
         dataIndex: "bk_date",
-        width: 120,
-        xtype: "datecolumn"
+        width: 110
     }]
 });

+ 6 - 7
frontend/saas-web/app/view/core/dbfind/types/BomDbfindTrigger.js

@@ -12,10 +12,10 @@ Ext.define('saas.view.core.dbfind.types.BomDbfindTrigger', {
     //联想设置
     dbtpls: [{
         field: 'bo_mothercode',
-        width: 100
+        width: 150
     }, {
         field: 'bo_mothername',
-        width: 100
+        width: 200
     }],
     
     defaultCondition: "bo_statuscode='OPEN'",
@@ -39,20 +39,19 @@ Ext.define('saas.view.core.dbfind.types.BomDbfindTrigger', {
     }, {
         text: "产品编号",
         dataIndex: "bo_mothercode",
-        width: 200,
+        width: 150,
     }, {
         text: "产品名称",
         width: 200,
         dataIndex: "bo_mothername",
     }, {
         text: "产品规格",
-        width: 200,
+        width: 150,
         dataIndex: "pr_spec",
     }, {
         text: "版本",
-        width: 200,
-        dataIndex: "bo_version",
-        flex: 1
+        width: 80,
+        dataIndex: "bo_version"
     }]
 
 });

+ 9 - 9
frontend/saas-web/app/view/core/dbfind/types/CustomerDbfindTrigger.js

@@ -12,10 +12,10 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
     
     dbtpls: [{
         field: 'cu_code',
-        width: 100
+        width: 150
     }, {
         field: 'cu_name',
-        width: 100
+        width: 200
     }],
     dbSearchFields: [{
         emptyText: '输入客户编号或客户名称',
@@ -43,22 +43,22 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
         conditionCode: 'cu_name',
         text: "客户名称",
         dataIndex: "cu_name",
-        width: 180,
+        width: 200,
         xtype: "",
     }, {
         conditionCode: 'cu_type',
         text: "客户类型",
         dataIndex: "cu_type",
-        width: 150,
+        width: 110,
         xtype: "",
     }, {
         text: "业务员编号",
         dataIndex: "cu_sellercode",
-        width:150
+        width:110
     }, {
         text: "业务员",
         dataIndex: "cu_sellername",
-        width:180
+        width:110
     }, {
         text: "税率",
         dataIndex: "cu_taxrate",
@@ -68,9 +68,9 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
             return Ext.util.Format.number(v, '0');
         }
     }, {
-        text: "承付天数",
+        text: "结算天数",
         dataIndex: "cu_promisedays",
-        width:100,
+        width:110,
         xtype: 'numbercolumn',
         renderer: function (v) {
             return Ext.util.Format.number(v, '0');
@@ -78,7 +78,7 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
     }, {
         text: "额度",
         dataIndex: "cu_credit",
-        width:100,
+        width:110,
         xtype: 'numbercolumn',
     }, {
         text: "客户地址",

+ 7 - 7
frontend/saas-web/app/view/core/dbfind/types/EmployeeDbfindTrigger.js

@@ -11,9 +11,9 @@ Ext.define('saas.view.core.dbfind.types.EmployeeDbfindTrigger', {
     addTitle: '人员资料',
     //联想设置
     dbtpls:[{
-        field:'em_code',width:100
+        field:'em_code',width:150
     },{
-        field:'em_name',width:100
+        field:'em_name',width:110
     }],
     defaultCondition: "em_class='正式'",
     dbSearchFields:[{
@@ -36,23 +36,23 @@ Ext.define('saas.view.core.dbfind.types.EmployeeDbfindTrigger', {
     },{
         text: "人员编号",
         dataIndex: "em_code",
-        width: 200
+        width: 150
     }, {
         text: "人员名称",
         dataIndex: "em_name",
-        width: 200
+        width: 110
     }, {
         text: "类型",
         dataIndex: "em_class",
-        width: 180,
+        width: 110,
     }, {
         text: "手机",
         dataIndex: "em_mobile",
-        width: 180,
+        width: 110,
     }, {
         text: "邮箱",
         dataIndex: "em_email",
-        width: 180,
+        width: 180
     }]
 
 });

+ 68 - 0
frontend/saas-web/app/view/core/dbfind/types/OriOrderMutiDbfindTrigger.js

@@ -0,0 +1,68 @@
+Ext.define('saas.view.core.dbfind.types.OriOrderMutiDbfindTrigger', {
+    extend: 'saas.view.core.dbfind.MultiDbfindTrigger',
+    xtype: 'oriOrderMutiDbfindTrigger',
+/**
+ * 用于资金首付款单明细
+ */
+    dataUrl: '/api/money/subledger/list',
+    addTitle: '源单资料',
+    dbtpls: [{
+        field: 'sl_code',
+        width: 150
+    }],
+    dbSearchFields: [{
+        emptyText: '查找资金账户',
+        xtype: "textfield",
+        name: "search",
+        getCondition: function (v) {
+            return "(upper(bk_bankcode) like '%" + v.toUpperCase() + "%' or upper(bk_bankname) like '%" + v.toUpperCase() + "%')";
+        },
+        allowBlank: true,
+        columnWidth: 0.25
+    }],
+    dbSearchFields:[{
+        emptyText:'输入源单编号',
+        xtype : "textfield",
+        name : "search",
+        getCondition: function(v) {
+            return "(upper(sl_code) like '%"+v.toUpperCase()+"%')";
+        },
+        allowBlank : true,
+        columnWidth : 0.25
+    }],
+    dbColumns:[{
+        "text": "源单id",
+        "hidden": true,
+        "dataIndex": "id",
+        "width": 100,
+        "xtype": "numbercolumn"
+    },{
+        "text": "源单编号",
+        "dataIndex": "sl_code",
+        "width": 150
+    },{
+        "text": "源单类型",
+        "dataIndex": "sl_kind",
+        "width": 110
+    }, {
+        "text": "单据金额",
+        "dataIndex": "sl_orderamount",
+        "width": 110,
+        xtype: 'numbercolumn'
+    }, {
+        "text": "已核销金额",
+        "dataIndex": "sl_yamount",
+        "width": 110,
+        xtype: 'numbercolumn'
+    }, {
+        "text": "未核销金额",
+        "dataIndex": "sl_namount",
+        "width": 110,
+        xtype: 'numbercolumn'
+    },{
+        "text": "单据日期",
+        "dataIndex": "sl_date",
+        "width": 110,
+        xtype: 'datecolumn'
+    }]
+});

+ 12 - 12
frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js

@@ -9,9 +9,9 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     addXtype: 'document-product-formpanel',
     addTitle: '物料资料',
     dbtpls:[{
-        field:'pr_code',width:100
+        field:'pr_code',width:150
     },{
-        field:'pr_detail',width:100
+        field:'pr_detail',width:200
     }],
     defaultCondition: "pr_statuscode='OPEN'",
     dbSearchFields:[{
@@ -32,7 +32,7 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     }, {
         text: "物料编号",       
         dataIndex: "pr_code",
-        width: 200,
+        width: 150,
     }, {
         text: "物料名称",
         width: 200,
@@ -40,11 +40,11 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     }, {
         text: "规格",
         dataIndex: "pr_spec",
-        width: 100,
+        width: 150,
     }, {
         text: "单位",
         dataIndex: "pr_spec",
-        width: 100,
+        width: 80,
     },{
         text: "仓库id",
         dataIndex: "pr_whid",
@@ -61,7 +61,7 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     },{
         text: "总库存数",
         dataIndex: "po_onhand",
-        width: 100,
+        width: 110,
         xtype: 'numbercolumn',
         renderer : function(v) {
             var arr = (v + '.').split('.');
@@ -73,23 +73,23 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     },{
         text: "类型",
         dataIndex: "pr_kind",
-        width: 100,
+        width: 110,
     },{
         text: "型号",
         dataIndex: "pr_orispeccode",
-        width: 100,
+        width: 150,
     },{
         text: "品牌",
         dataIndex: "pr_brand",
-        width: 100,
+        width: 110,
     },{
         text: "供应商",
         dataIndex: "pr_vendname",
-        width: 100,
+        width: 250,
     },{
         text: "最小包装",
         dataIndex: "pr_zxbzs",
-        width: 100,
+        width: 110,
         xtype: 'numbercolumn',
         align: 'end',
         renderer : function(v) {
@@ -104,7 +104,7 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     },{
         text: "L/T",
         dataIndex: "pr_leadtime",
-        width: 100,
+        width: 80
     }]
 
 });

+ 13 - 15
frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js

@@ -35,10 +35,10 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     //联想设置
     dbtpls: [{
         field: 'pr_code',
-        width: 100
+        width: 150
     }, {
         field: 'pr_detail',
-        width: 100
+        width: 200
     }],
     defaultCondition: "pr_statuscode='OPEN'",
     dbSearchFields: [{
@@ -60,7 +60,7 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     }, {
         text: "物料编号",
         dataIndex: "pr_code",
-        width: 200,
+        width: 150,
     }, {
         text: "物料名称",
         width: 200,
@@ -68,15 +68,14 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     }, {
         text: "规格",
         dataIndex: "pr_spec",
-        width: 100,
+        width: 150,
     }, {
         text: "单位",
         dataIndex: "pr_unit",
-        width: 100,
+        width: 80
     }, {
         text: "最新采购单价",
         dataIndex: "pr_purcprice",
-        align: 'end',
         xtype: 'numbercolumn',
         hidden:true,
     }, {
@@ -95,35 +94,34 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     }, {
         text: "总库存数",
         dataIndex: "po_onhand",
-        width: 100,
+        width: 110,
         xtype: 'numbercolumn',
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
             var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
-        },
-        align: 'end'
+        }
     }, {
         text: "类型",
         dataIndex: "pr_kind",
-        width: 100,
+        width: 110
     }, {
         text: "型号",
         dataIndex: "pr_orispeccode",
-        width: 100,
+        width: 150
     }, {
         text: "品牌",
         dataIndex: "pr_brand",
-        width: 100,
+        width: 110
     }, {
         text: "供应商",
         dataIndex: "pr_vendname",
-        width: 100,
+        width: 200
     }, {
         text: "最小包装",
         dataIndex: "pr_zxbzs",
-        width: 100,
+        width: 110,
         xtype: 'numbercolumn',
         renderer : function(v) {
             if(!v) {
@@ -137,7 +135,7 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     }, {
         text: "L/T",
         dataIndex: "pr_leadtime",
-        width: 100,
+        width: 80
     }]
 
 });

+ 7 - 8
frontend/saas-web/app/view/core/dbfind/types/VendorDbfindTrigger.js

@@ -13,9 +13,9 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
 
     //联想设置
     dbtpls:[{
-        field:'ve_code',width:100
+        field:'ve_code',width:150
     },{
-        field:'ve_name',width:100
+        field:'ve_name',width:200
     }],
     defaultCondition: "ve_statuscode='OPEN'",
     dbSearchFields:[{
@@ -33,12 +33,11 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
         text: "供应商ID",
         hidden: true,
         dataIndex: "id",
-        width: 100,
         xtype: "numbercolumn"
     },{
         text: "供应商编号",
         dataIndex: "ve_code",
-        width: 200
+        width: 150
     }, {
         text: "供应商名称",
         dataIndex: "ve_name",
@@ -46,11 +45,11 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
     }, {
         text: "供应商类型",
         dataIndex: "ve_type",
-        width: 180,
+        width: 110,
     }, {
         text: "税率",
         dataIndex: "ve_taxrate",
-        width: 100,
+        width: 80,
         xtype: 'numbercolumn',
         align:'end',
         renderer : function(v) {
@@ -63,9 +62,9 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
             return Ext.util.Format.number(v, format);
         }
     }, {
-        text: "承付天数",
+        text: "结算天数",
         dataIndex: "ve_promisedays",
-        width: 100,
+        width: 110,
         xtype: 'numbercolumn',
         align: 'end', 
         renderer : function(v) {

+ 10 - 15
frontend/saas-web/app/view/core/dbfind/types/WarehouseDbfindTrigger.js

@@ -12,10 +12,10 @@ Ext.define('saas.view.core.dbfind.types.WarehouseDbfindTrigger', {
     defaultCondition: "wh_statuscode='OPEN'",
     dbtpls: [{
         field: 'wh_code',
-        width: 100
+        width: 150
     }, {
         field: 'wh_description',
-        width: 100
+        width: 200
     }],
     dbSearchFields: [{
         emptyText: '输入仓库编号或名称',
@@ -31,24 +31,19 @@ Ext.define('saas.view.core.dbfind.types.WarehouseDbfindTrigger', {
         text: "仓库ID",
         flex: 0,
         dataIndex: "id",
-        hidden:true,
-        xtype: "",
+        hidden:true
     }, {
         text: "仓库编号",
-        flex: 1,
         dataIndex: "wh_code",
-        width: 100,
-        xtype: "",
+        width: 150
     }, {
         text: "仓库名称",
-        flex: 1,
         dataIndex: "wh_description",
-        xtype: "",
+        width: 200
     }, {
         text: "仓库类型",
-        flex: 1,
         dataIndex: "wh_type",
-        xtype: "",
+        width: 110
     }],
 
     onAddClick: function() {
@@ -66,7 +61,7 @@ Ext.define('saas.view.core.dbfind.types.WarehouseDbfindTrigger', {
                 columns: [{
                     text: '编号',
                     dataIndex: 'wh_code',
-                    width: 200
+                    width: 150
                 },{
                     text: '仓库名称',
                     dataIndex: 'wh_description',
@@ -74,7 +69,7 @@ Ext.define('saas.view.core.dbfind.types.WarehouseDbfindTrigger', {
                 },{
                     text: '类型',
                     dataIndex: 'wh_type',
-                    width: 200
+                    width: 110
                 },{  
                     text: '仓库状态码',
                     dataIndex: 'wh_status',
@@ -107,13 +102,13 @@ Ext.define('saas.view.core.dbfind.types.WarehouseDbfindTrigger', {
                             })
                             .then(function(localJson) {
                                 if(localJson.success){
-                                    saas.util.BaseUtil.showToast('操作成功');
+                                    saas.util.BaseUtil.showSuccessToast('操作成功');
                                     grid.store.load();
                                 }
                             })
                             .catch(function(res) {
                                 console.error(res);
-                                saas.util.BaseUtil.showToast('操作失败: ' + res.message);
+                                saas.util.BaseUtil.showErrorToast('操作失败: ' + res.message);
                             });
                         }
                     }]

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

@@ -36,12 +36,12 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
                             datas.push(o);
                         });
                     }else{
-                        saas.util.BaseUtil.showToast('下拉框读取数据为空!');
+                        saas.util.BaseUtil.showErrorToast('下拉框读取数据为空!');
                     }
                     me.datas = datas;
                 },
                 failure: function (response, opts) {
-                    saas.util.BaseUtil.showToast('上传失败: ' + response.responseText);
+                    saas.util.BaseUtil.showErrorToast('上传失败: ' + response.responseText);
                 }
             });
         }

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

@@ -49,7 +49,7 @@ Ext.define('saas.view.core.form.FormPanel', {
         auditTexts = me.auditTexts;
         me._deleteMsg = '删除的'+me._title+'将不能恢复,请确认是否删除?';
         me.initViewModel();
-        saas.util.FormUtil.setItems(me);
+        me.initFormItems();
 
         me.defaultBtns = me.defaultBtns || [{
             cls: 'x-formpanel-btn-orange',
@@ -128,6 +128,11 @@ Ext.define('saas.view.core.form.FormPanel', {
         me.callParent(arguments);
     },
 
+    initFormItems: function() {
+        var me = this;
+        saas.util.FormUtil.setItems(me);
+    },
+
     getToolBarItems: function() {
         var me = this, items = [];
         var codeHeaderItems = [{
@@ -232,7 +237,8 @@ Ext.define('saas.view.core.form.FormPanel', {
     addItems: function (items) {
         var me = this;
         me.setBindFields(items);
-        return me.add(items);
+        var formItems = me.formItems = me.add(items);
+        return formItems;
     },
 
     /**
@@ -337,11 +343,11 @@ Ext.define('saas.view.core.form.FormPanel', {
 
         Ext.Array.each(items, function (item) {
             var xtype = item.xtype,
-                bind = item.bind,
-                name = item.name,
-                ignore = item.ignore,
-                defaultValue = item.defaultValue;
-
+            bind = item.bind,
+            name = item.name,
+            ignore = item.ignore,
+            defaultValue = item.defaultValue;
+            
             if (xtype == 'detailGridField') {
                 item.listeners = item.listeners || {};
                 item.listeners.validChange = function() {
@@ -414,7 +420,10 @@ Ext.define('saas.view.core.form.FormPanel', {
     isValid: function() {
         var me = this;
         var viewModel = me.getViewModel();
-        var valid = me.getForm().isValid();
+        var formItems = me.formItems;
+        var valid = !!Ext.Array.findBy(formItems, function(f) {
+            return f.isValid();
+        });
         var detailGrids = me.query('detailGridField');
 
         for(var i = 0; i < detailGrids.length; i++) {
@@ -430,6 +439,7 @@ Ext.define('saas.view.core.form.FormPanel', {
 
     isDirty: function () {
         var me = this,
+        formItems = me.formItems,
         detailGrids = me.query('detailGridField'),
         dirty = false;
 
@@ -442,7 +452,9 @@ Ext.define('saas.view.core.form.FormPanel', {
         }
 
         if(!dirty) {
-            dirty = me.callParent();
+            dirty = !!Ext.Array.findBy(formItems, function(f) {
+                return f.isDirty();
+            });
         }
 
         return dirty;

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

@@ -95,12 +95,12 @@ Ext.define('saas.view.core.form.FormPanelController', {
                             var mainTab = Ext.getCmp('main-tab-panel');
                             mainTab.getActiveTab().close();
                             //解析参数
-                            saas.util.BaseUtil.showToast('删除成功');
+                            saas.util.BaseUtil.showSuccessToast('删除成功');
                         }
                     })
                     .catch(function(res) {
                         console.error(res);
-                        saas.util.BaseUtil.showToast('删除失败: ' + res.message);
+                        saas.util.BaseUtil.showErrorToast('删除失败: ' + res.message);
                     });
                 }
             });
@@ -113,7 +113,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            saas.util.BaseUtil.showToast(form.invalidText);
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
             return false;
         }
 
@@ -159,7 +159,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 var code = localJson.data.code;
                 form.initId = id;
                 saas.util.FormUtil.loadData(form);
-                saas.util.BaseUtil.showToast('保存成功');
+                saas.util.BaseUtil.showSuccessToast('保存成功');
 
                 var newId = form.xtype + '-' + id;
                 var newTitle = form._title + '(' + code + ')';
@@ -171,7 +171,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
             form.fireEvent('aftersave', false, form, res);
         });
     },
@@ -197,7 +197,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var valid = form.isValid();
 
         if(!valid) {
-            saas.util.BaseUtil.showToast(form.invalidText);
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
             return false;
         }
 
@@ -252,7 +252,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 }
                 saas.util.FormUtil.loadData(form);
                 form.setEditable(false);
-                saas.util.BaseUtil.showToast('审核成功' + (localJson.message ? ': ' + localJson.message : ''));
+                saas.util.BaseUtil.showSuccessToast('审核成功' + (localJson.message ? ': ' + localJson.message : ''));
                 form.fireEvent('afteraudit', true, form, localJson);
             }
         })
@@ -270,7 +270,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 saas.util.BaseUtil.refreshTabTitle(newId, newTitle);
                 saas.util.FormUtil.loadData(form);
             }
-            saas.util.BaseUtil.showToast('审核失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('审核失败: ' + res.message);
             form.fireEvent('afteraudit', false, form, res);
         });
     },
@@ -305,13 +305,13 @@ Ext.define('saas.view.core.form.FormPanelController', {
         .then(function(localJson) {
             if(localJson.success){
                 //解析参数
-                saas.util.BaseUtil.showToast('反审核成功');
+                saas.util.BaseUtil.showSuccessToast('反审核成功');
                 saas.util.FormUtil.loadData(form);
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('反审核失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('反审核失败: ' + res.message);
         });
     },
 

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

@@ -201,7 +201,7 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         selectedRecord = me.selModel.lastSelected,
         datas = [];
 
-        num = num || 3
+        num = num || 3;
 
         //当前行后序号全部加1
         var detno = selectedRecord ? selectedRecord.data[detnoColumn] : 0;
@@ -295,12 +295,12 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
                         store.remove(selectedRecord);
                         me.fireEvent('validChange');
                         //解析参数
-                        saas.util.BaseUtil.showToast('删除成功');
+                        saas.util.BaseUtil.showSuccessToast('删除成功');
                     })
                     .catch(function() {
                         me.fireEvent('validChange');
                         //失败
-                        saas.util.BaseUtil.showToast('删除失败');
+                        saas.util.BaseUtil.showErrorToast('删除失败');
                     });
                 }else {
                     throw new Error();

+ 9 - 9
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -81,13 +81,13 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                         exception: function(proxy, response, operation, eOpts) {
                             if(operation.success) {
                                 if(response.timedout) {
-                                    saas.util.BaseUtil.showToast('请求超时');
+                                    saas.util.BaseUtil.showErrorToast('请求超时');
                                 }
                             }else {
                                 if(response.timedout) {
-                                    saas.util.BaseUtil.showToast('请求超时');
+                                    saas.util.BaseUtil.showErrorToast('请求超时');
                                 }else{
-                                    saas.util.BaseUtil.showToast('查询失败:' + response.responseJson.message);
+                                    saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson.message);
                                 }
                             }
                         }
@@ -359,7 +359,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             }
         })
         .catch(function(res) {
-            saas.util.BaseUtil.showToast('导出失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('导出失败: ' + res.message);
         });
     },
     onCloseOrder:function(me){
@@ -378,7 +378,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 }
             });
         }else{
-            saas.util.BaseUtil.showToast('请勾选至少一条明细。');
+            saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
         }
     },
     vastOperation :function(type){
@@ -394,18 +394,18 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             })
             .then(function(res) {
                 if(res.data){
-                    saas.util.BaseUtil.showToast(res.data);
+                    saas.util.BaseUtil.showSuccessToast(res.data);
                 }else{
-                    saas.util.BaseUtil.showToast('操作成功');
+                    saas.util.BaseUtil.showSuccessToast('操作成功');
                 }
                 me.getStore().loadPage(1);
             })
             .catch(function(res) {
                 console.error(res);
-                saas.util.BaseUtil.showToast('操作失败: ' + res.message);
+                saas.util.BaseUtil.showErrorToast('操作失败: ' + res.message);
             });
         }else{
-            saas.util.BaseUtil.showToast('请勾选至少一条明细。');
+            saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
         }
     },
     /** */

+ 3 - 3
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -199,11 +199,11 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     exception: function(proxy, response, operation, eOpts) {
                         if(operation.success) {
                             if(response.timedout) {
-                                saas.util.BaseUtil.showToast('请求超时');
+                                saas.util.BaseUtil.showErrorToast('请求超时');
                             }
                         }else {
                             console.error('exception: ', response.responseJson);
-                            saas.util.BaseUtil.showToast('请求错误:' + response.responseJson);
+                            saas.util.BaseUtil.showErrorToast('请求错误:' + response.responseJson);
                         }
                     }
                 }
@@ -254,7 +254,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
 
         Ext.Array.each(columns, function(c) {
             c.columns || Ext.applyIf(c, {
-                width: 120
+                width: 110
             });
 
             if(c.xtype == 'datecolumn') {

+ 35 - 17
frontend/saas-web/app/view/document/bom/BasePanel.js

@@ -7,28 +7,46 @@ Ext.define('saas.view.document.bom.BasePanel', {
 
     deleteMoreMsg: '删除的BOM资料将不能恢复,请确认是否删除?',
     deleteOneMsg: '删除的BOM资料将不能恢复,请确认是否删除?',
-    searchField:[{ 
+    searchField:[{
         xtype : "textfield", 
         name : "bo_mothercode", 
-        emptyText : "产品编号", 
-        width:120
+        width:150, 
+        emptyText:'产品编号或名称',
+        getCondition: function(value) {
+           return  ' (bo_mothername like\'%' + value + '%\'' 
+                +' or bo_mothercode like \'%'+value+'%\' ) ';
+        }
     },{
-        xtype : "textfield", 
-        name : "bo_mothername", 
-        emptyText : "产品名称", 
-        width:120
-    },{
-        xtype : "textfield", 
-        name : "bo_status", 
-        emptyText : "产品状态",    
-        width:100
+        xtype: 'combobox',
+        name: 'bo_statuscode',
+        queryMode: 'local',
+        displayField: 'bo_status',
+        valueField: 'bo_statuscode',
+        emptyText :'状态',
+        editable:false,
+        width:90,
+        store: Ext.create('Ext.data.ArrayStore', {
+        fields: ['bo_statuscode', 'bo_status'],
+        data: [
+            ["ALL", "全部"],
+            ["OPEN", "已开启"],
+            ["CLOSE", "已关闭"]
+        ]
+        }),
+        getCondition: function(value) {
+            if(value == 'ALL'||value==null) {
+                return '1=1';
+            }else {
+                return 'bo_statuscode=\'' + value + '\'';
+            }
+        }
+    
     }],
 
     //字段属性
     _formXtype:'document-bom-formpanel',
     _title:'BOM资料',
     _deleteUrl:'/api/document/bom/delete/',
-    // _dataUrl:'/api/ducument/customer/list',
     _batchOpenUrl:'/api/document/bom/batchOpen',
     _batchCloseUrl:'/api/document/bom/batchClose',
     _batchDeleteUrl:'/api/document/bom/batchDelete',
@@ -51,17 +69,17 @@ Ext.define('saas.view.document.bom.BasePanel', {
         },{
             text : "产品编号", 
             dataIndex : "bo_mothercode",
-            width : 200.0,
+            width : 150.0,
         }, 
         {
             text : "产品名称", 
             dataIndex : "bo_mothername", 
-            width : 120.0, 
+            width :200.0, 
         }, 
         {
             text : "产品状态", 
             dataIndex : "bo_status", 
-            width : 120.0, 
+            width : 90.0, 
         }, 
         {
             text : "产品状态码", 
@@ -71,7 +89,7 @@ Ext.define('saas.view.document.bom.BasePanel', {
         {   
             text : "产品版本", 
             dataIndex : "bo_version", 
-            width : 120.0, 
+            width :80.0, 
         }]
     },
 

+ 4 - 4
frontend/saas-web/app/view/document/bom/FormController.js

@@ -86,12 +86,12 @@ Ext.define('saas.view.document.bom.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 //viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('启用成功');
+                saas.util.BaseUtil.showSuccessToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -109,11 +109,11 @@ Ext.define('saas.view.document.bom.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 // viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('关闭成功');
+                saas.util.BaseUtil.showSuccessToast('关闭成功');
             }
         })
         .catch(function(res) {
-            saas.util.BaseUtil.showToast('关闭失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('关闭失败: ' + res.message);
         });
     }
 });

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

@@ -102,7 +102,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
                 allowBlank:false,
                 text : "物料编号", 
                 dataIndex : "bd_soncode", 
-                width : 160, 
+                width : 150, 
                 editor : {
                     displayField : "display", 
                     editable : true, 
@@ -127,7 +127,8 @@ Ext.define('saas.view.document.bom.FormPanel', {
                 hidden: true,
             }, {
                 text : "物料名称", 
-                dataIndex : "pr_detail",
+                dataIndex : "pr_detail", 
+                width : 200,
                 ignore:true,
                 renderer: function (v, m, r) {
                     if(!v){
@@ -137,7 +138,8 @@ Ext.define('saas.view.document.bom.FormPanel', {
                 }
             }, {
                 text : "物料规格", 
-                dataIndex : "pr_spec",
+                dataIndex : "pr_spec", 
+                width : 150,
                 ignore:true,
                 renderer: function (v, m, r) {
                     if(!v){
@@ -148,10 +150,12 @@ Ext.define('saas.view.document.bom.FormPanel', {
             }, {
                 text : "单位", 
                 dataIndex : "bd_unit", 
+                width : 80 
             },
             {
                 allowBlank:false,
                 text : "用量", 
+                width : 80, 
                 dataIndex : "bd_baseqty",
                 editor : {
                     xtype : "numberfield",
@@ -167,6 +171,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
             }, {
                 text : "替代料", 
                 dataIndex : "bd_replace", 
+                width : 250, 
                 editor : {
                     displayField : "display", 
                     editable : true, 

+ 43 - 90
frontend/saas-web/app/view/document/customer/BasePanel.js

@@ -9,56 +9,21 @@ Ext.define('saas.view.document.customer.BasePanel', {
     deleteOneMsg: '删除的客户资料将不能恢复,请确认是否删除?',
 
     searchField:[{
-        xtype:'customerDbfindTrigger',
-        name : "cu_code", 
-        emptyText : "客户编号", 
-        width:140,
-    },{
         xtype : "textfield", 
         name : "cu_name", 
-        emptyText : "客户名称", 
-        width:140,
+        width:150, 
+        emptyText:'客户编号或名称',
+        getCondition: function(value) {
+           return  ' (cu_code like\'%' + value + '%\'' 
+                +' or cu_name like \'%'+value+'%\' ) ';
+        }
     },{
         xtype : "remotecombo", 
         storeUrl:'/api/document/customerkind/getCombo',
         name : "cu_type", 
-        emptyText : "客户类型", 
-        width:140,
+        emptyText : "类型", 
+        width:110,
         hiddenBtn:true
-    },{
-        xtype : "textfield", 
-        name : "cu_sellername", 
-        emptyText : "业务员", 
-        width:120,
-    },{
-        xtype : "textfield", 
-        name : "cu_promisedays", 
-        emptyText : "承付天数", 
-        width:120,
-        getCondition: function(value) {
-            if(value.indexOf("=")>=0||value.indexOf("<")>=0||value.indexOf(">")>=0){
-                return ' cu_promisedays ' + value;
-            }else if(value){
-                return ' cu_promisedays = ' + value;
-            }else{
-                return '1=1';
-            }
-        }
-    },{
-        xtype : "textfield", 
-        name : "cu_credit", 
-        emptyText : "额度", 
-        width:70,
-        dataIndex : "cu_credit",
-        getCondition: function(value) {
-            if(value.indexOf("=")>=0||value.indexOf("<")>=0||value.indexOf(">")>=0){
-                return ' cu_credit ' + value;
-            }else if(value){
-                return ' cu_credit = ' + value;
-            }else{
-                return '1=1';
-            }
-        }
     },{
         xtype: 'combobox',
         name: 'cu_statuscode',
@@ -67,7 +32,7 @@ Ext.define('saas.view.document.customer.BasePanel', {
         valueField: 'cu_statuscode',
         emptyText :'状态',
         editable:false,
-        width:100,
+        width:90,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['cu_statuscode', 'cu_status'],
         data: [
@@ -83,9 +48,15 @@ Ext.define('saas.view.document.customer.BasePanel', {
                 return 'cu_statuscode=\'' + value + '\'';
             }
         }
+    },{
+        xtype : "textfield", 
+        name : "cu_sellername", 
+        emptyText : "业务员", 
+        width:110
     }],
 
     //字段属性
+    caller:'Customer',
     _formXtype:'document-customer-formpanel',
     _title:'客户资料',
     _deleteUrl:'/api/document/customer/delete/',
@@ -106,73 +77,55 @@ Ext.define('saas.view.document.customer.BasePanel', {
             xtype : "numbercolumn", 
         },{
             text : "客户编号", 
-            width : 200.0, 
+            width : 150.0, 
             dataIndex : "cu_code"
         }, 
         {
             text : "客户名称", 
+            width : 250.0, 
             dataIndex : "cu_name"
-        }, 
-        {
-            text : "客户UU", 
-            dataIndex : "cu_uu"
-        }, 
-        {
+        }, {
+            text : "状态", 
+            dataIndex : "cu_status", 
+            width : 90.0
+        }, {
             text : "类型", 
-            dataIndex : "cu_type" 
-        }, 
-        {
-            text : "业务员编号", 
-            dataIndex : "cu_sellercode"
-        }, 
-        {
-            text : "业务员", 
-            dataIndex : "cu_sellername"
-        },{
+            dataIndex : "cu_type", 
+            width : 110.0
+        }, {
             text : "税率", 
             dataIndex : "cu_taxrate", 
-            xtype: 'numbercolumn'
-        }, {
-            text: '应收款余额',
-            dataIndex: 'cu_leftamount',
-            width: 120,
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn', 
+            width : 110.0, 
+            renderer : function(v) {
+                return Ext.util.Format.number(v, '0');
+            }
         }, {
-            text : "承付天数", 
+            text : "结算天数", 
             xtype: 'numbercolumn',
             dataIndex : "cu_promisedays", 
             renderer : function(v) {
                 return Ext.util.Format.number(v, '0');
             }
-        }, 
-        {
-            text : "额度", 
+        }, {
+            text: '应收余额',
             xtype: 'numbercolumn',
-            dataIndex : "cu_credit", 
+            dataIndex: 'cu_leftamount',
+            width: 120,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
-                var xr = (new Array(arr[1].length)).fill('0');
+                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 : "cu_status", 
-        }, 
-        {
-            text : "客户状态码", 
-            dataIndex : "cu_statuscode", 
-            hidden:true
-        }, 
-        {
-            text : "默认客户地址", 
-            dataIndex : "ca_address", 
-            hidden:true
-        }, 
-        {
-            text : "默认客户联系人", 
-            dataIndex : "cc_name", 
-            hidden:true
+            text : "业务员", 
+            dataIndex : "cu_sellername",
+            width: 110
+        }, {
+            text : "备注", 
+            dataIndex : "cu_text1",
+            width: 250
         }]
     },
 

+ 4 - 4
frontend/saas-web/app/view/document/customer/FormController.js

@@ -28,7 +28,7 @@ Ext.define('saas.view.document.customer.FormController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                saas.util.BaseUtil.showToast('启用成功');
+                saas.util.BaseUtil.showSuccessToast('启用成功');
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
@@ -36,7 +36,7 @@ Ext.define('saas.view.document.customer.FormController', {
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -54,11 +54,11 @@ Ext.define('saas.view.document.customer.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('禁用成功');
+                saas.util.BaseUtil.showSuccessToast('禁用成功');
             }
         })
         .catch(function(res) {
-            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('禁用失败: ' + res.message);
         });
     }
 });

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

@@ -213,6 +213,11 @@ Ext.define('saas.view.document.customer.FormPanel', {
         allowBlank : true, 
         hidden:true,
         columnWidth : 0
+    },{
+        fieldLabel : "备注", 
+        xtype:'textfield',
+        name : "cu_text1",
+        columnWidth : 0.75
     }, {
         xtype : "detailGridField", 
         storeModel:'saas.model.document.customercontact',
@@ -239,8 +244,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "cc_name", 
-                xtype : "", 
-                items : null
+                width:110  
             },
             {
                 allowBlank:false,
@@ -250,8 +254,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "cc_tel", 
-                xtype : "", 
-                items : null
+                width:110 
             },
             {
                 allowBlank:true,
@@ -260,8 +263,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "cc_qq", 
-                xtype : "", 
-                items : null
+                width:110 
             },
             {
                 text : "邮箱", 
@@ -269,8 +271,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "cc_email", 
-                xtype : "", 
-                items : null
+                width:180 
             },
             {
                 editor : {
@@ -306,7 +307,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     }
                 }, 
                 text : "默认联系人", 
-                width : 200.0, 
+                width:110 ,
                 dataIndex : "cc_default", 
                 xtype : "",
                 renderer: function (v, m, r) {
@@ -344,8 +345,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "ca_address", 
-                xtype : "", 
-                items : null
+                width:110 
             },  
             {
                 allowBlank:true,
@@ -354,8 +354,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "ca_person", 
-                xtype : "", 
-                items : null   
+                width:110   
             },
             {
                 allowBlank:true,
@@ -365,8 +364,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                     hideTrigger:true,
                 },
                 dataIndex : "ca_phone", 
-                xtype : "", 
-                items : null   
+                width:110  
             },
             {
                 editor : {
@@ -403,7 +401,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
                 }, 
                 text : "默认地址", 
                 dataIndex : "ca_default", 
-                xtype : "",
+                width:110,
                 renderer: function (v, m, r) {
                     if(v=='0'){
                         return '';

+ 10 - 7
frontend/saas-web/app/view/document/kind/ChildForm.js

@@ -4,6 +4,7 @@
 Ext.define('KitchenSink.view.binding.ChildForm', {
     extend: 'Ext.window.Window',
     xtype: 'document-kind-childwin',
+    cls:'x-window-dbfind',
     layout: 'fit',
     modal: true,
     width: 500,
@@ -334,13 +335,15 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '联系电话',
                 name: 'em_mobile',
-                allowBlank:false,
+                allowBlank:true,
+                beforeLabelTextTpl: '',
                 maxLength: 20
             },{
                 xtype:'textfield',
                 fieldLabel: '邮箱',
                 name: 'em_email', 
-                allowBlank:false,  
+                allowBlank:true,  
+                beforeLabelTextTpl: '',
                 maxLength: 20
             },{
                 value:'正式',
@@ -489,14 +492,14 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                         typeof combo.setValue == 'function' && combo.setValue(params._value);
                     });
                 }
-                saas.util.BaseUtil.showToast('保存成功');
+                saas.util.BaseUtil.showSuccessToast('保存成功');
                 form.ownerCt.close();
             }
         })
         .catch(function(res) {
             me.setLoading(false);
             console.error(res);
-            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
         });
     },
     onCancel:function(){
@@ -529,7 +532,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         o = o.substring(0,o.length-1);
 
         if(o==""){
-            saas.util.BaseUtil.showToast('关联角色未选择,无法保存!')
+            saas.util.BaseUtil.showErrorToast('关联角色未选择,无法保存!')
         }
 
         var _params = {
@@ -550,7 +553,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         .then(function(localJson) {
             me.setLoading(false);
             if(localJson.success){
-                saas.util.BaseUtil.showToast('保存成功');
+                saas.util.BaseUtil.showSuccessToast('保存成功');
                 form.ownerCt._parent.store.load()
                 form.ownerCt.close();
             }
@@ -558,7 +561,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         .catch(function(res) {
             me.setLoading(false);
             console.error(res);
-            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
         });
     }
 });

+ 20 - 21
frontend/saas-web/app/view/document/kind/Kind.js

@@ -201,25 +201,22 @@ Ext.define('saas.view.document.kind.Kind', {
             columns: [{
                 text : "单据名称", 
                 width : 200.0, 
-                dataIndex : "mn_caller", 
-                xtype : "", 
+                dataIndex : "mn_caller" 
             }, 
             {
                 text : "单据前缀", 
                 dataIndex : "mn_leadcode", 
-                width : 120.0, 
-                xtype : "", 
+                width : 150.0
             }, 
             {
                 text : "单据规则", 
                 dataIndex : "mn_rule", 
-                width : 220.0, 
-                xtype : "", 
+                width : 250.0
             },{
                 text : "流水长度", 
                 dataIndex : "mn_number", 
-                width : 120.0, 
-                xtype : "", 
+                width : 90.0,
+                xtype: 'numbercolumn',
             }],
             keyField:'id',
             reqUrl:'/api/commons/number/save'
@@ -228,7 +225,7 @@ Ext.define('saas.view.document.kind.Kind', {
             columns: [ {
                 text : "编号", 
                 dataIndex : "code", 
-                width : 120.0, 
+                width : 150.0, 
                 xtype : "", 
             },{
                 text : "角色名称", 
@@ -239,8 +236,7 @@ Ext.define('saas.view.document.kind.Kind', {
             {
                 text : "角色描述", 
                 dataIndex : "description", 
-                width : 120.0, 
-                xtype : "", 
+                width : 250.0
             }
            ],
             keyField:'id',
@@ -252,10 +248,13 @@ Ext.define('saas.view.document.kind.Kind', {
                 dataIndex:'accountId',
             },{
                 dataIndex: 'roleNames',
+                width: 150
             },{
                 dataIndex: 'mobile',
+                width: 110
             },{
                 dataIndex: 'email',
+                width: 110
             }],
             reqUrl:'/api/account/account/bind/roles',
         },
@@ -263,19 +262,19 @@ Ext.define('saas.view.document.kind.Kind', {
             columns: [{
                 text: '人员编号',
                 dataIndex: 'em_code',
-                width: 200
+                width: 150
             },{
                 text: '人员名称',
                 dataIndex: 'em_name',
-                width: 200
+                width: 110
             },{
                 text: '联系电话',
                 dataIndex: 'em_mobile',
-                width: 200
+                width: 110
             },{  
                 text: '邮箱',
                 dataIndex: 'em_email',
-                width: 200
+                width: 180
             },{
                 text: '人员状态',
                 dataIndex: 'em_class',
@@ -304,13 +303,13 @@ Ext.define('saas.view.document.kind.Kind', {
                         })
                         .then(function(localJson) {
                             if(localJson.success){
-                                saas.util.BaseUtil.showToast('操作成功');
+                                saas.util.BaseUtil.showSuccessToast('操作成功');
                                 grid.store.load();
                             }
                         })
                         .catch(function(res) {
                             console.error(res);
-                            saas.util.BaseUtil.showToast('操作失败: ' + res.message);
+                            saas.util.BaseUtil.showErrorToast('操作失败: ' + res.message);
                         });
                     }
                 }]
@@ -323,7 +322,7 @@ Ext.define('saas.view.document.kind.Kind', {
             columns: [{
                 text: '编号',
                 dataIndex: 'wh_code',
-                width: 200
+                width: 150
             },{
                 text: '仓库名称',
                 dataIndex: 'wh_description',
@@ -331,7 +330,7 @@ Ext.define('saas.view.document.kind.Kind', {
             },{
                 text: '类型',
                 dataIndex: 'wh_type',
-                width: 200
+                width: 110
             },{  
                 text: '仓库状态码',
                 dataIndex: 'wh_status',
@@ -364,13 +363,13 @@ Ext.define('saas.view.document.kind.Kind', {
                         })
                         .then(function(localJson) {
                             if(localJson.success){
-                                saas.util.BaseUtil.showToast('操作成功');
+                                saas.util.BaseUtil.showSuccessToast('操作成功');
                                 grid.store.load();
                             }
                         })
                         .catch(function(res) {
                             console.error(res);
-                            saas.util.BaseUtil.showToast('操作失败: ' + res.message);
+                            saas.util.BaseUtil.showErrorToast('操作失败: ' + res.message);
                         });
                     }
                 }]

+ 3 - 2
frontend/saas-web/app/view/document/kind/KindController.js

@@ -31,6 +31,7 @@ Ext.define('saas.view.document.kind.KindController', {
         grid.reconfigure(store, columns);
         if(store) store.reload();
         vm.set('title', button.typeText);
+        grid.ownerCt.ownerCt.setTitle(button.typeText+'查询');
     },
     onAdd:function(b){
         var dk = b.ownerCt.ownerCt;
@@ -84,13 +85,13 @@ Ext.define('saas.view.document.kind.KindController', {
                 })
                 .then(function(localJson) {
                     if(localJson.success){
-                        saas.util.BaseUtil.showToast('删除成功');
+                        saas.util.BaseUtil.showSuccessToast('删除成功');
                         grid.store.load();
                     }
                 })
                 .catch(function(res) {
                     console.error(res);
-                    saas.util.BaseUtil.showToast('删除失败: ' + res.message);
+                    saas.util.BaseUtil.showErrorToast('删除失败: ' + res.message);
                 });
             }
         });

+ 40 - 61
frontend/saas-web/app/view/document/product/BasePanel.js

@@ -9,38 +9,22 @@ Ext.define('saas.view.document.product.BasePanel', {
     deleteOneMsg: '删除的物料将不能恢复,请确认是否删除?',
 
     searchField:[{
-        xtype : "productDbfindTrigger", 
-        name : "pr_code", 
-        emptyText : "物料编号", 
-        width:120
-    },{ 
         xtype : "textfield", 
         name : "pr_detail", 
-        emptyText : "物料名称", 
-        width:120
-    },{
-        xtype : "textfield", 
-        name : "pr_spec", 
-        emptyText : "规格",    
-        width:100
-    },{
-        editable:false,
+        width:150, 
+        emptyText:'物料编号或名称',
+        getCondition: function(value) {
+           return  ' (pr_code like\'%' + value + '%\'' 
+                +' or pr_detail like \'%'+value+'%\' ) ';
+        }
+    }, {
+        editable:true,
         hiddenBtn:true,
         xtype : "remotecombo", 
         storeUrl: '/api/document/producttype/getCombo',
         name : "pr_kind", 
-        emptyText : "物料类型",
-        width:120
-    },{
-        xtype : "textfield", 
-        name : "pr_brand", 
-        emptyText : "品牌", 
-        width:100
-    },{
-        xtype : "textfield", 
-        name : "pr_orispeccode", 
-        emptyText : "型号", 
-        width:100
+        emptyText : "类型",
+        width:110,
     }, {
         xtype: 'combobox',
         name: 'pr_statuscode',
@@ -48,7 +32,7 @@ Ext.define('saas.view.document.product.BasePanel', {
         displayField: 'pr_status',
         valueField: 'pr_statuscode',
         emptyText :'状态',
-        width:100,
+        width:90,
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['pr_statuscode', 'pr_status'],
@@ -65,6 +49,11 @@ Ext.define('saas.view.document.product.BasePanel', {
                 return 'pr_statuscode=\'' + value + '\'';
             }
         }
+    }, {
+        xtype : "textfield", 
+        name : "pr_brand", 
+        emptyText : "品牌", 
+        width:110
     }],
 
     //字段属性
@@ -87,25 +76,33 @@ Ext.define('saas.view.document.product.BasePanel', {
             xtype : "numbercolumn", 
         },{
             text : "物料编号", 
-            width : 200.0, 
-            dataIndex : "pr_code"
+            dataIndex : "pr_code", 
+            width : 150.0
         }, {
             text : "物料名称", 
             dataIndex : "pr_detail", 
-            width : 120.0
+            width : 200.0
         }, {
             text : "规格", 
-            dataIndex : "pr_spec"
+            dataIndex : "pr_spec", 
+            width : 150.0
         }, {
             text : "类型", 
-            dataIndex : "pr_kind"
+            dataIndex : "pr_kind", 
+            width : 110.0
         }, {
             text : "单位", 
-            dataIndex : "pr_unit"
+            dataIndex : "pr_unit", 
+            width : 80.0 
+        }, {
+            text : "品牌", 
+            dataIndex : "pr_brand", 
+            width : 110.0 
         }, {
-            text : "总库存数", 
+            text : "总库存", 
             dataIndex : "po_onhand",
             xtype: 'numbercolumn',
+            width : 110.0,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
@@ -116,6 +113,7 @@ Ext.define('saas.view.document.product.BasePanel', {
             text : "标准单价", 
             dataIndex : "pr_standardprice",
             xtype: 'numbercolumn',
+            width : 110.0,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -126,6 +124,7 @@ Ext.define('saas.view.document.product.BasePanel', {
             text : "最新采购单价", 
             dataIndex : "pr_purcprice",
             xtype: 'numbercolumn',
+            width : 110.0,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -134,9 +133,10 @@ Ext.define('saas.view.document.product.BasePanel', {
             }, 
             width : 200.0, 
         }, {
-            text : "最新出库价", 
+            text : "最新出库价", 
             dataIndex : "pr_saleprice",
             xtype: 'numbercolumn',
+            width : 110.0,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -145,34 +145,13 @@ Ext.define('saas.view.document.product.BasePanel', {
             }, 
             width : 200.0, 
         }, {
-            text : "型号", 
-            dataIndex : "pr_orispeccode", 
-            width : 200.0, 
-        }, {
-            text : "品牌", 
-            dataIndex : "pr_brand", 
-            width : 150.0, 
-        }, {
-            text : "供应商", 
-            dataIndex : "pr_vendname", 
-            width : 150.0,
-        }, {
-            text : "最小包装", 
-            dataIndex : "pr_zxbzs",
-            xtype: 'numbercolumn',
-            renderer : function(v) {
-                return Ext.util.Format.number(v, '0');
-            }
-        }, {
-            text : "L/T", 
-            dataIndex : "pr_leadtime",
-            xtype: 'numbercolumn',
-            renderer : function(v) {
-                return Ext.util.Format.number(v, '0');
-            }
+            text : "备注", 
+            dataIndex : "pr_text1",
+            width :250.0
         }, {
             text : "状态", 
-            dataIndex : "pr_status"
+            dataIndex : "pr_status",
+            width : 90.0
         }]
     },
 

+ 4 - 4
frontend/saas-web/app/view/document/product/FormController.js

@@ -74,12 +74,12 @@ Ext.define('saas.view.document.product.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('启用成功');
+                saas.util.BaseUtil.showSuccessToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -97,12 +97,12 @@ Ext.define('saas.view.document.product.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('禁用成功');
+                saas.util.BaseUtil.showSuccessToast('禁用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('禁用失败: ' + res.message);
         });
     },
     amount_change:function() {

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

@@ -14,7 +14,6 @@ Ext.define('saas.view.document.product.FormPanel', {
     _statusField: 'pr_status',
     _statusCodeField: 'pr_statuscode',
     _readUrl:'/api/document/product/read/',
-    //_saveUrl:'/api/document/product/save',
     _saveUrl:'/api/document/product/save',
     _openUrl:'/api/document/product/open',
     _closeUrl:'/api/document/product/close',
@@ -203,6 +202,11 @@ Ext.define('saas.view.document.product.FormPanel', {
         name: 'pr_leadtime',
         minValue: 0,
         maxLength: 10
+    },{
+        xtype : "textfield", 
+        name : "pr_text1", 
+        fieldLabel : "备注",
+        columnWidth: 1
     }, {
         xtype: 'checkbox',
         fieldLabel: '期初设置',
@@ -234,9 +238,8 @@ Ext.define('saas.view.document.product.FormPanel', {
             dataIndex : "pd_whcode", 
             editor : {
                 xtype : "warehouseDbfindTrigger"
-            },
-            xtype : "", 
-            items : null
+            }, 
+            width : 150
         },
         {
             allowBlank:true,
@@ -244,7 +247,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             editable:false,
             text : "仓库名称", 
             dataIndex : "pd_whname", 
-            xtype : "", 
+            width : 200
         },{
             allowBlank:true,
             hidden:true,
@@ -257,7 +260,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             text : "期初数量", 
             dataIndex : "pd_num", 
             xtype: 'numbercolumn',
-            width : 120.0,
+            width : 110.0,
             allowBlank : false,
             editor : {
                 xtype : "numberfield",
@@ -286,7 +289,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             dataIndex : "pd_price", 
             allowBlank:false,
             xtype: 'numbercolumn',
-            width : 120.0,
+            width : 110.0,
             allowBlank : false,
             editor : {
                 xtype : "numberfield",
@@ -314,7 +317,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             text : "期初总价", 
             dataIndex : "pd_amount", 
             xtype: 'numbercolumn',
-            width : 120.0,
+            width : 110.0,
             allowBlank : true,
             renderer : function(v) {
                 var arr = (v + '.').split('.');

+ 34 - 72
frontend/saas-web/app/view/document/vendor/BasePanel.js

@@ -8,36 +8,21 @@ Ext.define('saas.view.document.vendor.BasePanel', {
     deleteOneMsg: '删除的供应商资料将不能恢复,请确认是否删除?',
 
     searchField:[{
-        xtype : "vendorDbfindTrigger", 
-        name : "ve_code", 
-        emptyText : "供应商编号", 
-        width:140,
-    },{
         xtype : "textfield", 
         name : "ve_name", 
-        emptyText : "供应商名称", 
-        width:140,
+        width:150, 
+        emptyText:'供应商编号或名称',
+        getCondition: function(value) {
+           return  ' (ve_code like\'%' + value + '%\'' 
+                +' or ve_name like \'%'+value+'%\' ) ';
+        }
     },{
         xtype : "remotecombo", 
         storeUrl:'/api/document/vendorkind/getCombo',
         name : "ve_type", 
-        emptyText : "供应商类型", 
-        width:140,
+        emptyText : "类别", 
+        width:110,
         hiddenBtn:true
-    },{
-        xtype : "textfield", 
-        name : "ve_promisedays", 
-        emptyText : "承付天数", 
-        width:120,
-        getCondition: function(value) {
-            if(value.indexOf("=")>=0||value.indexOf("<")>=0||value.indexOf(">")>=0){
-                return ' ve_promisedays '+value;
-            }else if(value){
-                return ' ve_promisedays = '+value;
-            }else{
-                return '1=1';
-            }
-        } 
     },{
         xtype: 'combobox',
         name: 've_statuscode',
@@ -45,7 +30,7 @@ Ext.define('saas.view.document.vendor.BasePanel', {
         displayField: 've_status',
         valueField: 've_statuscode',
         emptyText :'状态',
-        width:100,
+        width:90,
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['ve_statuscode', 've_status'],
@@ -67,7 +52,6 @@ Ext.define('saas.view.document.vendor.BasePanel', {
     //字段属性
     _formXtype:'document-vendor-formpanel',
     _title:'供应商资料',
-    // _dataUrl:'/api/ducument/vendor/list',
     _deleteUrl:'/api/document/vendor/delete/',
     _batchOpenUrl:'/api/document/vendor/batchOpen',
     _batchCloseUrl:'/api/document/vendor/batchClose',
@@ -85,65 +69,39 @@ Ext.define('saas.view.document.vendor.BasePanel', {
             xtype : "numbercolumn", 
         },{
             text : "供应商编号", 
-            width : 200.0, 
-            dataIndex : "ve_code", 
-            xtype : "", 
-        }, 
-        {
+            width : 150.0, 
+            dataIndex : "ve_code" 
+        }, {
             text : "供应商名称", 
             dataIndex : "ve_name", 
-            width : 120.0, 
-            xtype : "", 
-        }, 
-        {
+            width : 250.0
+        }, {
+            text : "状态", 
+            dataIndex : "ve_status", 
+            width : 90.0
+        }, {
             text : "类型", 
             dataIndex : "ve_type", 
-            width : 120.0, 
-            xtype : "", 
-        }, 
-        {
-            text : "供应商状态码", 
-            dataIndex : "ve_statuscode", 
-            width : 0, 
-            xtype : ""
-        },               
-        {
+            width : 110.0 
+        }, {
             text : "税率", 
+            xtype: 'numbercolumn', 
             dataIndex : "ve_taxrate", 
-            width : 120.0, 
-            xtype : "",
-            align:'end'
+            width : 80.0, 
+            renderer : function(v) {
+                return Ext.util.Format.number(v, '0');
+            }
         }, {
-            text : "承付天数", 
+            text : "结算天数", 
             xtype: 'numbercolumn',
             dataIndex : "ve_promisedays", 
-            width : 120.0, 
-            align:'end', 
+            width : 110.0, 
             renderer : function(v) {
                 return Ext.util.Format.number(v, '0');
             }
-        }, {
-            text : "纳税人识别号", 
-            dataIndex : "ve_nsrzh", 
-            width : 120.0, 
-            xtype : ""
-        }, {
-            text : "开户银行", 
-            dataIndex : "ve_bankcode", 
-            width : 120.0, 
-            xtype : ""
-        }, {
-            text : "银行账户", 
-            dataIndex : "ve_bankaccount", 
-            width : 120.0, 
-            xtype : ""
-        }, {
-            text : "状态", 
-            dataIndex : "ve_status", 
-            width : 120.0, 
-            xtype : ""
         },{
-            text: '应收款余额',
+            text: '应付余额',
+            xtype: 'numbercolumn',
             dataIndex : 've_leftamount',
             width : 120,
             renderer : function(v) {
@@ -151,7 +109,11 @@ Ext.define('saas.view.document.vendor.BasePanel', {
                 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 : "ve_text1", 
+            width : 250.0
         }]
     },
 

+ 4 - 4
frontend/saas-web/app/view/document/vendor/FormController.js

@@ -30,12 +30,12 @@ Ext.define('saas.view.document.vendor.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('启用成功');
+                saas.util.BaseUtil.showSuccessToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -53,12 +53,12 @@ Ext.define('saas.view.document.vendor.FormController', {
                 form.initId = localJson.data.id;
                 saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                saas.util.BaseUtil.showToast('禁用成功');
+                saas.util.BaseUtil.showSuccessToast('禁用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('禁用失败: ' + res.message);
         });
     }
 });

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

@@ -137,7 +137,9 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         allowBlank : true, 
         columnWidth : 0.25,
         minValue:0,
-        decimalPrecision: 0, 
+        maxLength: 8,
+        enforceMaxLength: true,
+        decimalPrecision: 0
     },{
         xtype : "textfield", 
         name : "ve_nsrzh", 
@@ -186,6 +188,11 @@ Ext.define('saas.view.document.vendor.FormPanel', {
             var format = '0.' + xr.join();
             return Ext.util.Format.number(v, format);
         },  
+    },{
+        fieldLabel : "备注", 
+        xtype:'textfield',
+        name : "ve_text1",
+        columnWidth : 1
     }, {
         xtype : "detailGridField", 
         storeModel:'saas.model.document.vendorcontact',
@@ -212,7 +219,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "vc_name", 
-                xtype : "", 
+                width:110
             },
             {
                 allowBlank:false,
@@ -222,7 +229,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "vc_tel", 
-                xtype : "", 
+                width:110 
             },
             {
                 allowBlank:true,
@@ -231,7 +238,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "vc_qq", 
-                xtype : "", 
+                width:110
             },
             {
                 text : "邮箱", 
@@ -239,7 +246,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
                     xtype : "textfield"
                 },
                 dataIndex : "vc_email", 
-                xtype : "", 
+                width:180
             },
             {
                 editor : {

+ 19 - 7
frontend/saas-web/app/view/home/charts/SaleTrend.js

@@ -18,7 +18,7 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                 bind: {
                     captions: {
                         title: {
-                            text: '销售趋势图',
+                            text: '近六月销售趋势图',
                             style: {
                                 'font-size': '14px',
                                 'color': '#485465',
@@ -71,14 +71,17 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                     },
                 }],
                 series: [{
-                    tooltip: {
-                        trackMouse: true,
-                        renderer: me.onSeriesTooltipRender
-                    },
                     type: 'line',
                     smooth: true,
+                    title: '销售额',
                     xField: 'x',
                     yField: 'sale',
+                    label: {
+                        field: 'sale',
+                        display: 'over',
+                        fontSize: '12px',
+                        strokeStyle: '#A3D0EE',
+                    },
                     marker: {
                         radius: 0,
                         lineWidth: 0
@@ -95,13 +98,23 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                         fillStyle: '#53A8E2',
                         fillOpacity: 0.1,
                     },
+                    tooltip: {
+                        trackMouse: true,
+                        renderer: me.onSeriesTooltipRender
+                    },
                     // renderer: me.onSeriesRenderer
                 }, {
                     type: 'line',
                     smooth: true,
                     title: '销售回款',
                     xField: 'x',
-                    yField: ['saleback'],
+                    yField: 'saleback',
+                    label: {
+                        field: 'saleback',
+                        display: 'over',
+                        fontSize: '12px',
+                        strokeStyle: '#D54F65',
+                    },
                     tooltip: {
                         trackMouse: true,
                         renderer: me.onSeriesTooltipRender
@@ -165,7 +178,6 @@ Ext.define('saas.view.home.charts.SaleTrend', {
     },
 
     itemhighlightchange: function(chart, newHighlightItem, oldHighlightItem) {
-        debugger;
         this.setSeriesLineWidth(newHighlightItem, 4);
         this.setSeriesLineWidth(oldHighlightItem, 2);
     },

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

@@ -96,7 +96,7 @@ Ext.define('saas.view.main.Main', {
                             }
                         },{
                             text: '客服热线',
-                            iconCls:'x-fa fa-phone-o sa-navicon',
+                            iconCls:'x-fa fa-phone sa-navicon',
                             menu:{
                                 cls:'sa-nav-menu',
                                 items:[{

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

@@ -314,3 +314,53 @@ body > .x-mask {
     overflow: hidden;
     white-space: nowrap;
 }
+
+.x-toast-success{
+    border-color: #adeaa4 !important;
+    border-radius: 4px !important;
+    .x-window-body{
+        background: #f3ffef !important;
+        border-color: #f3ffef !important;
+    }
+    .x-autocontainer-innerCt{
+        color: #3ec12a;
+        padding: 4px 30px 4px 46px !important;
+    }
+    .x-autocontainer-innerCt::before{
+        margin-left: -19px;
+        margin-top: 1px;
+        content: ' ';
+        width: 16px;
+        position: absolute;
+        display: block;
+        height: 16px;
+        background: url(../../../../resources/images/default/toast_over.png) 0 0 no-repeat; 
+        background-size: 16px 16px;
+        background-position: center;
+    }
+}
+
+.x-toast-error{
+    border-color: #f39d70 !important;
+    border-radius: 4px !important;
+    .x-window-body{
+        background: #fdefcd !important;
+        border-color: #fdefcd !important;
+    }
+    .x-autocontainer-innerCt{
+        color: #ea800e;
+        padding: 4px 30px 4px 46px !important;
+    }
+    .x-autocontainer-innerCt::before{
+        margin-left: -19px;
+        margin-top: 1px;
+        content: ' ';
+        width: 16px;
+        position: absolute;
+        display: block;
+        height: 16px;
+        background: url(../../../../resources/images/default/toast_close.png) 0 0 no-repeat; 
+        background-size: 16px 16px;
+        background-position: center;
+    }
+}

+ 9 - 8
frontend/saas-web/app/view/money/fundtransfer/FormPanel.js

@@ -51,7 +51,7 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
                 editor : {
                     xtype : "numberfield"
                 },
-                width : 120.0,
+                width : 110.0,
                 items : null,
                 hidden: true
             }, {
@@ -69,6 +69,7 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
                 xtype : "", 
                 items : null,
                 editor : {
+                    xtype : "bandinfoDbfindTrigger",
                     displayField : "display", 
                     editable : true, 
                     format : "", 
@@ -78,8 +79,7 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
                     positiveNum : false, 
                     queryMode : "local", 
                     store : null, 
-                    valueField : "value", 
-                    xtype : "bandinfoDbfindTrigger"
+                    valueField : "value"
                 }
             },{
                 text : "转出账户余额", 
@@ -115,11 +115,12 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
             },{
                 text : "转入账户余额", 
                 dataIndex : "bk_inthisamount", 
-                ignore:true
+                ignore:true,
+                width : 150.0
             }, {
                 text : "本次转出金额", 
                 xtype: 'numbercolumn',
-                dataIndex : "ftd_nowbalance", 
+                dataIndex : "ftd_nowbalance",
                 width : 150.0, 
                 editor : {
                     xtype : "numberfield",
@@ -140,7 +141,7 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
                 }
             }, {
                 text : "结算方式",
-                width : 150.0,
+                width : 110.0,
                 dataIndex : "ftd_paymethod",
                 editor : {
                     xtype:'combo',
@@ -164,14 +165,14 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
              {
                 text : "结算号",
                 dataIndex : "ftd_paycode",
-                width : 110,
+                width : 150,
                 editor:{
                     xtype: ''
                 }
             },{
                 text : "备注", 
                 dataIndex : "ftd_remark",
-                width : 120.0, 
+                width : 250.0, 
                 items : null,
                 editor : {
                     xtype : ""

+ 48 - 48
frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js

@@ -8,18 +8,27 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
     viewName: 'money-fundtransfer-querypanel',
     
     queryFormItems: [{
-        xtype : "textfield",
-        name : "ft_code",
-        fieldLabel : "单据编号",
+        xtype: 'textfield',
+        name:'ft_code',
+        fieldLabel: '单号',
+        emptyText:'请输入单号'
     },{
         xtype : "condatefield",
         name : "ft_date",
-        fieldLabel : "单据日期",
+        fieldLabel : "日期",
         columnWidth: 0.5
+    } ,{
+        xtype : "bandinfoDbfindTrigger",
+        name : "ftd_bankname",
+        fieldLabel : "转出账号",
+    },{
+        xtype : "bandinfoDbfindTrigger",
+        name : "ftd_inbankname",
+        fieldLabel : "转入账号",
     },{
         xtype: 'combobox',
         name: 'ft_statuscode',
-        fieldLabel: '审核状态',
+        fieldLabel: '单据状态',
         queryMode: 'local',
         displayField: 'ft_status',
         valueField: 'ft_statuscode',
@@ -41,20 +50,13 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
             }
         }
     },{
-        xtype : "bandinfoDbfindTrigger",
-        name : "ftd_bankname",
-        fieldLabel : "转出账号",
-    },{
-        xtype : "bandinfoDbfindTrigger",
-        name : "ftd_inbankname",
-        fieldLabel : "转入账号",
-    },{
-        name : "ft_status",
+        name : "ftd_paymethod",
         fieldLabel : "结算方式",
         xtype:'combo',
         queryMode: 'local',
         displayField: 'display',
         valueField: 'value',
+        emptyText :'全部',
         store:Ext.create('Ext.data.Store', {
             fields: ['value', 'display'],
             data : [
@@ -66,16 +68,15 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
                 {value:"支付宝转账", display:"支付宝转账"},
                 {value:"微信转账", display:"微信转账"}
             ]
-        })
-    },{
-        xtype: 'textfield',
-        name: 'creatorName',
-        fieldLabel: '录入人'
-    },{
-        xtype : "textfield",
-        name : "ft_auditman",
-        fieldLabel : "审核人",
-    }],
+        }),
+        getCondition: function(value) {
+            if(!value) {
+                return '1=1';
+            }else {
+                return 'ftd_paymethod like \'%' + value + '\'%';
+            }
+        }
+    } ],
     moreQueryFormItems: [],
     queryGridConfig: {
         idField: 'id',
@@ -84,7 +85,6 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         addXtype: 'money-fundtransfer-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/fundtransfer/',
-        // baseVastUrl: 'http://192.168.253.35:8880/fundtransfer/',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
@@ -92,37 +92,25 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         }, {
             text: '单据编号',
             dataIndex: 'ft_code',
-            width: 200
+            width: 150
         }, {
-            text: '单据日期',
+            text: '日期',
             dataIndex: 'ft_date',
             xtype: 'datecolumn',
-            width: 200
-        },{
-            text: '审核状态',
-            dataIndex: 'ft_status',
-            width: 120
-        }, {
-            text: '录入人',
-            dataIndex: 'ft_recorder',
-            width: 120
+            width: 110
         }, {
-            text: '审核人',
-            dataIndex: 'ft_auditman',
-            width: 120
-        },{
             text: '转出账户',
             dataIndex: 'ftd_bankname',
-            width: 120
-        }, {
+            width: 150
+        } , {
             text: '转入账户',
             dataIndex: 'ftd_inbankname',
-            width: 120
+            width: 150
         }, {
             text: '金额',
             xtype: 'numbercolumn',
             dataIndex: 'ftd_nowbalance',
-            width: 120,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -132,16 +120,28 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         }, {
             text: '结算方式',
             dataIndex: 'ftd_paymethod',
-            width: 120
+            width: 150
         }, {
             text: '结算号',
             dataIndex: 'ftd_paycode',
-            width: 120
+            width: 0
+        },{
+            text: '审核状态',
+            dataIndex: 'ft_status',
+            width: 90
+        }, {
+            text: '录入人',
+            dataIndex: 'creatorName',
+            width: 110
+        }, {
+            text: '审核人',
+            dataIndex: 'ft_auditman',
+            width: 110
         }, {
             text: '备注',
-            dataIndex: 'ftd_remark',
+            dataIndex: 'ft_remark',
             width: 250
-        }],
+        } ],
         relativeColumn: []
     }
 });

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

@@ -38,7 +38,7 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
          xtype : "customerDbfindTrigger", 
          name : "or_custname", 
          fieldLabel : "客户名称",
-         allowBlank : false
+         // allowBlank : false
      }, {
          xtype : 'hidden',
          name : 'or_bankid', 
@@ -79,12 +79,12 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                     readOnly: true
                 },
                 // defaultValue: Ext.Date.format(new Date(), 'Ym'),
-                width : 120.0,
+                width : 110.0,
                 hidden: true,
                 items : null
             }, {
                 text : "收入类别", 
-                width : 200.0, 
+                width : 150.0, 
                 dataIndex : "ord_type",
                 items : null,
                 hiddenBtn:false,//true 则会关闭新增按钮功能
@@ -113,7 +113,7 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                 text : "金额", 
                 xtype: 'numbercolumn',
                 dataIndex : "ord_nowbalance", 
-                width : 120.0, 
+                width : 110.0, 
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2
@@ -134,7 +134,7 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
             }, {
                 text : "备注", 
                 dataIndex : "ord_remark",
-                width : 220, 
+                width : 250, 
                 editor : {
                     xtype : "textarea"
                 }

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

@@ -50,7 +50,7 @@ Ext.define('saas.view.money.othreceipts.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            saas.util.BaseUtil.showToast(form.invalidText);
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
             return false;
         }
 

+ 50 - 76
frontend/saas-web/app/view/money/othreceipts/QueryPanel.js

@@ -7,54 +7,50 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
 
     viewName: 'money-othreceipts-querypanel',
     
-    queryFormItems: [{
-        xtype: 'hidden',
-        name: 'or_id',
-        fieldLabel: 'ID',
-        allowBlank: true,
-        columnWidth: 0
-    }, {
-        xtype : 'hidden',
-        name : 'or_custid', 
-        fieldLabel : '客户ID'
-   }, {
+    queryFormItems: [ {
         xtype: 'textfield',
         name: 'or_code',
-        fieldLabel: '单据编号',
-    }, {
-        xtype: 'hidden',
-        name: 'or_custcode',
-        fieldLabel: '客户编号'
-    }, {
-        xtype: 'customerDbfindTrigger',
-        name: 'or_custname',
-        fieldLabel: '客户名称',
-    },{
-        xtype: 'textfield',
-        name: 'creatorName',
-        fieldLabel: '录入人'
-    },{
-        xtype: 'textfield',
-        name: 'or_auditman',
-        fieldLabel: '审核人'
+        fieldLabel: '单号/客户/账号',
+        emptyText:'请输入单号/客户/账号',
+        labelWidth: 100,
+        getCondition: function(value) {
+           return  ' (or_code like\'%' + value + '%\'' 
+                +' or or_custcode like \'%'+value+'%\''
+                +' or or_custname like \'%'+value+'%\''
+                +' or or_bankcode like \'%'+value+'%\''
+                +' or or_bankname like \'%'+value+'%\''
+                +') ';
+        }
     },  {
-        xtype: 'bandinfoDbfindTrigger',
-        name: 'or_bankname',
-        fieldLabel: '结算账户'
-    }, {
         xtype: 'condatefield',
         name: 'or_date',
-        fieldLabel: '单据日期',
+        fieldLabel: '日期',
         columnWidth: 0.5,
         operation: 'between'
-    },{
+    } , {
+        name: 'ord_type',
+        fieldLabel: '收入类别',
+        xtype : "remotecombo",
+        columnWidth: 0.25,
+        emptyText :'全部',
+        storeUrl:'/api/document/fundinouttype/getCombo?condition=收入',
+        hiddenBtn:true,//true 则会关闭新增按钮功能
+        getCondition: function(value) {
+            if(!value) {
+                return '1=1';
+            }else {
+                return 'ord_type like \'%' + value + '%\'';
+            }
+        }
+    }, {
         xtype: 'combobox',
         name: 'or_statuscode',
-        fieldLabel: '审核状态',
+        fieldLabel: '状态',
         queryMode: 'local',
         displayField: 'or_status',
         valueField: 'or_statuscode',
         emptyText :'全部',
+        columnWidth: 0.25,
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['or_statuscode', 'or_status'],
@@ -71,12 +67,6 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
                 return 'or_statuscode=\'' + value + '\'';
             }
         }
-    }, {
-        name: 'ord_type',
-        fieldLabel: '收入类别',
-        xtype : "remotecombo",
-        storeUrl:'/api/document/fundinouttype/getCombo?condition=收入',
-        hiddenBtn:true//true 则会关闭新增按钮功能
     }],
     moreQueryFormItems: [],
     queryGridConfig: {
@@ -89,66 +79,50 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
-            hidden:true,
-            xtype: 'numbercolumn'
+            hidden:true
         }, {
             text: '单据编号',
             dataIndex: 'or_code',
-            width: 200
-        },{
-            text: '单据日期',
+            width: 150
+        }  ,{
+            text: '日期',
             dataIndex: 'or_date',
             xtype: 'datecolumn',
-            width: 200
+            width: 110
         }, {
-            text: '审核状态',
-            dataIndex: 'or_status',
-            width: 120
-        },  {
             text: '客户名称',
             dataIndex: 'or_custname',
-            width: 120
+            width: 250
         },  {
             text: '结算账户',
             dataIndex: 'or_bankname',
-            width: 120
-        },{
+            width: 150
+        }, {
             text: '收款金额',
             xtype: 'numbercolumn',
             dataIndex: 'or_amount',
-            width: 120,
+            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);
             }
-        },{
+        }, {
+            text: '单据状态',
+            dataIndex: 'or_status',
+            width: 90
+        }, {
             text: '录入人',
-            dataIndex: 'or_recorder',
-            width: 120
+            dataIndex: 'creatorName',
+            width: 110
         },{
             text: '审核人',
             dataIndex: 'or_auditman',
-            width: 120
-        }, {
-            text: '收入类别',
-            dataIndex: 'ord_type',
-            width: 120
-        }, {
-            text: '明细金额',
-            xtype: 'numbercolumn',
-            dataIndex: 'ord_nowbalance',
-            width: 120,
-            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);
-            }
-        }, {
+            width: 110
+        },  {
             text: '备注',
-            dataIndex: 'ord_remark',
+            dataIndex: 'or_remark',
             width: 250
         }],
         relativeColumn: []

+ 0 - 31
frontend/saas-web/app/view/money/othreceipts/QueryPanelController.js

@@ -4,37 +4,6 @@ Ext.define('saas.view.money.othreceipts.QueryPanelController', {
     init: function (form) {
         var me = this;
         this.control({
-            //放大镜赋值关系 以及 tpl模板
-            'customerDbfindTrigger[name=or_custname]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        dbfinds:[{
-                            from:'id',to:'or_custid',ignore:true
-                        },{
-                            from:'cu_code',to:'or_custcode'
-                        },{
-                            from:'cu_name',to:'or_custname'
-                        }],
-                    }) ;   
-
-                }
-          },
-            //放大镜赋值关系 以及 tpl模板
-            'bandinfoDbfindTrigger[name=or_bankname]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        dbfinds:[{
-                            from:'bk_bankcode',to:'or_bankcode'
-                        },{
-                            from:'bk_bankname',to:'or_bankname'
-                        },{
-                            from:'id',to:'or_bankid',ignore:true
-                        }],
-                    });
-
-                }
-            }
         });
-
     }
 });

+ 4 - 4
frontend/saas-web/app/view/money/othspendings/FormPanel.js

@@ -38,7 +38,7 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
          xtype : "vendorDbfindTrigger",
          name : "os_vendname", 
          fieldLabel : "供应商名称",
-         allowBlank : false
+         // allowBlank : false
      }, {
         xtype : 'hidden',
          name : 'os_bankid', 
@@ -79,12 +79,12 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
                     readOnly:true
                 },
                 // defaultValue: Ext.Date.format(new Date(), 'Ym'),
-                width : 120.0, 
+                width : 110.0, 
                 hidden: true,
                 items : null
             }, {
                 text : "支出类别", 
-                width : 200.0, 
+                width : 150.0, 
                 dataIndex : "osd_type",
                 items : null,
                 hiddenBtn:false,//true 则会关闭新增按钮功能
@@ -113,7 +113,7 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
                 text : "金额", 
                 xtype: 'numbercolumn',
                 dataIndex : "osd_nowbalance", 
-                width : 120.0,
+                width : 110.0,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2

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

@@ -53,7 +53,7 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            saas.util.BaseUtil.showToast(form.invalidText);
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
             return false;
         }
 

+ 54 - 70
frontend/saas-web/app/view/money/othspendings/QueryPanel.js

@@ -12,44 +12,51 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
         name: 'os_id',
         fieldLabel: 'ID',
         allowBlank: true,
-        columnWidth: 0
-    }, {
-        xtype : 'hidden',
-        name : 'os_vendid', 
-        fieldLabel : '供应商ID'
-   }, {
-        xtype : 'textfield',
-        name : 'os_code',
-        fieldLabel : '单据编号',
-    }, {
-        xtype: 'hidden',
-        name: 'os_vendcode',
-        fieldLabel: '供应商编号',
-    }, {
-        xtype: 'vendorDbfindTrigger',
-        name: 'os_vendname',
-        fieldLabel: '供应商名称'
+        columnWidth: 0,
+        getCondition: function(value) {
+            return 'os_id=' + value;
+        }
     },{
         xtype: 'textfield',
-        name: 'creatorName',
-        fieldLabel: '录入人'
-    }, {
-        xtype: 'hidden',
-        name: 'os_auditman',
-        fieldLabel: '审核人',
-    }, {
-        xtype: 'bandinfoDbfindTrigger',
-        name: 'os_bankname',
-        fieldLabel: '结算账户',
+        name: 'os_code',
+        fieldLabel: '单号/客户/账号',
+        emptyText:'请输入单号/客户/账号',
+        labelWidth: 100,
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return  ' (os_code like\'%' + value + '%\'' 
+                +' or os_vendcode like \'%'+value+'%\''
+                +' or os_vendname like \'%'+value+'%\''
+                +' or os_bankcode like \'%'+value+'%\''
+                +' or os_bankname like \'%'+value+'%\''
+                +') ';
+            }
+        }
     },{
         xtype: 'condatefield',
         name: 'os_date',
         columnWidth: 0.5,
-        fieldLabel: '单据日期'
+        fieldLabel: '日期'
+    },{
+        name: 'ord_type',
+        fieldLabel: '支出类别',
+        xtype : "remotecombo",
+        emptyText :'全部',
+        storeUrl:'/api/document/fundinouttype/getCombo?condition=支出',
+        hiddenBtn:true,//true 则会关闭新增按钮功能
+        getCondition: function(value) {
+            if(!value) {
+                return '1=1';
+            }else {
+                return 'ord_type like \'%' + value + '%\'';
+            }
+        }
     },{
         xtype: 'combobox',
         name: 'os_statuscode',
-        fieldLabel: '审核状态',
+        fieldLabel: '状态',
         queryMode: 'local',
         displayField: 'os_status',
         valueField: 'os_statuscode',
@@ -70,12 +77,6 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
                 return 'os_statuscode=\'' + value + '\'';
             }
         }
-    },{
-        name: 'ord_type',
-        fieldLabel: '支出类别',
-        xtype : "remotecombo",
-        storeUrl:'/api/document/fundinouttype/getCombo?condition=支出',
-        hiddenBtn:true//true 则会关闭新增按钮功能
     }],
     moreQueryFormItems: [],
     queryGridConfig: {
@@ -85,7 +86,6 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
         addXtype: 'money-othspendings-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/othspendings/',
-        // baseVastUrl: 'http://192.168.253.35:8880/othspendings/',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
@@ -94,41 +94,28 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
         }, {
             text: '单据编号',
             dataIndex: 'os_code',
-            width: 200
+            width: 150
         }, {
-            text: '单据日期',
+            text: '日期',
             dataIndex: 'os_date',
             xtype: 'datecolumn',
-            width: 200
+            width: 110
         },{
             text: '审核状态',
             dataIndex: 'os_status',
-            width: 120
+            width: 90
         }, {
             text: '供应商',
             dataIndex: 'os_vendname',
-            width: 120
+            width:250
         },{
             text: '结算账户',
             dataIndex: 'os_bankname',
-            width: 120
+            width: 150
         },{
             text: '付款金额',
             dataIndex: 'os_amount',
-            width: 120
-        },{
-            text: '录入人',
-            dataIndex: 'os_recorder',
-            width: 120
-        }, {
-            text: '支出类别',
-            dataIndex: 'osd_type',
-            width: 200
-        }, {
-            text: '金额',
-            dataIndex: 'osd_nowbalance',
-            xtype: 'numbercolumn',
-            width: 120,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -136,24 +123,21 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
                 return Ext.util.Format.number(v, format);
             }
         }, {
-            text: '备注',
-            dataIndex: 'osd_remark',
-            width: 120
+            text: '单据状态',
+            dataIndex: 'os_status',
+            width: 90
         },{
-            text: '金额',
-            xtype: 'numbercolumn',
-            dataIndex: 'os_amount',
-            hidden:true,
-            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);
-            },
+            text: '录入人',
+            dataIndex: 'creatorName',
+            width: 110
+        }, {
+            text: '审核人',
+            dataIndex: 'os_auditman',
+            width: 110
         }, {
             text: '备注',
             dataIndex: 'os_remark',
-            hidden:true
+            width: 250
         }],
         relativeColumn: []
     }

+ 0 - 34
frontend/saas-web/app/view/money/othspendings/QueryPanelController.js

@@ -4,40 +4,6 @@ Ext.define('saas.view.money.othspendings.QueryPanelController', {
     init: function (form) {
         var me = this;
         this.control({
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=os_vendname]':{
-                beforerender: function (f) {
-                    Ext.apply(f, {
-                        dbfinds: [{
-                            from: 'id',
-                            to: 'os_vendid'
-                        }, {
-                            from: 've_code',
-                            to: 'os_vendcode'
-                        }, {
-                            from: 've_name',
-                            to: 'os_vendname'
-                        }],
-                    });
-
-                }
-            },
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=os_bankname]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        dbfinds:[{
-                            from:'bk_bankcode',to:'os_bankcode'
-                        },{
-                            from:'bk_bankname',to:'os_bankname'
-                        },{
-                            from:'id',to:'os_bankid',ignore:true
-                        }],
-                    }); 
-
-                }
-            }
         });
-
     }
 });

+ 19 - 25
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -100,11 +100,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             dataIndex: 'pd_ym',
             hidden:true,
             defaultValue: Ext.Date.format(new Date(), 'Ym'),
-            // editor: {
-            //     xtype: 'hidden',
-                // xtype: 'textfield,
-                // xtype: 'datefield''
-            // }
+            width : 110.0
         }, {
             text: '结算账户ID',
             dataIndex: 'pd_bankid',
@@ -112,6 +108,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         }, {
             text: '资金账户',
             dataIndex: 'pd_bankname',
+            width : 200.0,
             allowBlank : false,
             editor:{
                 xtype:'bandinfoDbfindTrigger'
@@ -124,6 +121,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             text: "付款金额",
             xtype: 'numbercolumn',
             dataIndex: "pd_amount",
+            width : 110.0,
             editor : {
                 xtype : "numberfield",
                 decimalPrecision: 2
@@ -144,6 +142,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         }, {
             text: "结算方式",
             dataIndex: "pd_paymethod",
+            width :200.0,
             editor : {
                 xtype:'combo',
                 queryMode: 'local',
@@ -165,6 +164,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         }, {
             text: "结算号",
             dataIndex: "pd_paycode",
+            width : 150.0,
             editor:{
                 xtype:'textfield'
             }
@@ -197,7 +197,8 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             hidden: true
         }, {
             text: '来源单号',
-            dataIndex: 'pbd_slcode',
+            dataIndex: 'pbd_slcode', 
+            width : 150,
             editor:{
                 displayField : "display",
                 editable : true,
@@ -209,7 +210,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
                 queryMode : "local",
                 store : null,
                 valueField : "value",
-                xtype : "multidbfindtrigger",
+                xtype : "oriOrderMutiDbfindTrigger",
                 listeners:{
                     beforetriggerclick:'vendnamechange'
                 }
@@ -217,19 +218,18 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
 
         }, {
             text: "业务类型",
-            dataIndex: "pbd_slkind"
+            dataIndex: "pbd_slkind", 
+            width : 110
         }, {
             text: "单据日期",
             dataIndex: "pbd_sldate",
-            xtype: 'datecolumn'
+            xtype: 'datecolumn', 
+            width : 110
         }, {
             text: "单据金额",
             xtype: 'numbercolumn',
-            dataIndex: "pbd_amount",
-            // editor : {
-            //     xtype : "numberfield",
-            //     decimalPrecision: 2
-            // },
+            dataIndex: "pbd_amount", 
+            width : 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -246,12 +246,9 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         }, {
             text: "已核销金额",
             xtype: 'numbercolumn',
-            dataIndex: "sl_yamount",
+            dataIndex: "sl_yamount", 
+            width : 110,
             ignore:true,
-            // editor : {
-            //     xtype : "numberfield",
-            //     decimalPrecision: 2
-            // },
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -269,11 +266,8 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             text: "未核销金额",
             xtype: 'numbercolumn',
             dataIndex: "sl_namount",
-            ignore:true,
-            // editor : {
-            //     xtype : "numberfield",
-            //     decimalPrecision: 2
-            // },
+            ignore:true, 
+            width : 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -291,7 +285,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             text: "本次核销金额",
             xtype: 'numbercolumn',
             dataIndex: "pbd_nowbalance",
-            width: 150,
+            width: 120,
             editor : {
                 xtype : "numberfield",
                 decimalPrecision: 2

+ 5 - 68
frontend/saas-web/app/view/money/payBalance/FormPanelController.js

@@ -27,11 +27,9 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
 
                 }
             },
-            'multidbfindtrigger[name=pbd_slcode]': {
+            'oriOrderMutiDbfindTrigger[name=pbd_slcode]': {
                 beforerender: function (f) {
                     Ext.apply(f, {
-                        dataUrl: '/api/money/subledger/list',
-                        addTitle: '源单资料',
                         dbfinds: [{
                             from: 'id',
                             to: 'pbd_slid'
@@ -57,69 +55,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                             from:'sl_namount',
                             to:'pbd_nowbalance'
                         }],
-                        dbtpls: [{
-                            field: 'sl_code',
-                            width: 100
-                        }],
-                        defaultCondition: "sl_vendid<>0 and sl_kind in ('期初余额','采购验收单','采购验退单') and sl_namount<>0" ,
-                        dbSearchFields:[{
-                            emptyText:'输入源单编号',
-                            xtype : "textfield",
-                            name : "search",
-                            getCondition: function(v) {
-                                return "(upper(sl_code) like '%"+v.toUpperCase()+"%')";
-                            },
-                            allowBlank : true,
-                            columnWidth : 0.25
-                        }],
-                        dbColumns:[{
-                            "text": "源单id",
-                            "hidden": true,
-                            "dataIndex": "id",
-                            "width": 100,
-                            "xtype": "numbercolumn"
-                        },{
-                            "text": "源单编号",
-                            "flex": 1,
-                            "dataIndex": "sl_code",
-                            "width": 100
-                        },{
-                            "text": "源单类型",
-                            "flex": 1,
-                            "dataIndex": "sl_kind",
-                            "width": 100
-                        }, {
-                            "text": "单据金额",
-                            "flex": 1,
-                            "dataIndex": "sl_orderamount",
-                            "width": 100,
-                            xtype: 'numbercolumn',
-                            align:'end'
-                        }, {
-                            "text": "已核销金额",
-                            "flex": 1,
-                            "dataIndex": "sl_yamount",
-                            "width": 150,
-                            xtype: 'numbercolumn',
-                            align:'end',
-                            "items": null
-                        }, {
-                            "text": "未核销金额",
-                            "flex": 1,
-                            "dataIndex": "sl_namount",
-                            "width": 100,
-                            xtype: 'numbercolumn',
-                            align:'end'
-                        },{
-                            "text": "单据日期",
-                            "flex": 1,
-                            "dataIndex": "sl_date",
-                            "width": 120,
-                            xtype: 'datecolumn',
-                            align:'end'
-                        }]
+                        defaultCondition: "sl_vendid<>0 and sl_kind in ('期初余额','采购验收单','采购验退单') and sl_namount<>0" 
                     });
-
                 }
             },
             'dbfindtrigger[name=pd_bankname]':{
@@ -177,13 +114,13 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                saas.util.BaseUtil.showToast('转单成功');
+                saas.util.BaseUtil.showSuccessToast('转单成功');
               
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
         });
      },
 
@@ -196,7 +133,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            saas.util.BaseUtil.showToast(form.invalidText);
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
             return false;
         }
 

+ 42 - 128
frontend/saas-web/app/view/money/payBalance/QueryPanel.js

@@ -8,17 +8,27 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
     viewName: 'money-paybalance-querypanel',
     
     queryFormItems: [{
+        xtype: 'hidden',
+        name: 'pb_id',
+        fieldLabel: 'ID',
+        allowBlank: true,
+        getCondition: function(value) {
+            return 'pb_id=' + value;
+        }
+    }, {
         xtype: 'textfield',
         name: 'pb_code',
-        fieldLabel: '单据编号',
-    },{
-        xtype: 'vendorDbfindTrigger',
-        name: 'pb_vendname',
-        fieldLabel: '供应商名称',
-    },{
-        xtype: 'textfield',
-        name: 'pb_manname',
-        fieldLabel: '付款人',
+        fieldLabel: '单号/供应商',
+        emptyText :'请输入单号或供应商',
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return  ' (pb_code like\'%' + value + '%\' '
+                +' or pb_vendcode like \'%'+value+'%\' '
+                +' or pb_vendname like \'%'+value+'%\') ';
+            }
+        }
     },{
         xtype: 'bandinfoDbfindTrigger',
         name: 'pd_bankname',
@@ -26,13 +36,13 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
     },{
         xtype: 'condatefield',
         name: 'pb_date',
-        fieldLabel: '单据日期',
+        fieldLabel: '日期',
         columnWidth: 0.5,
         operation: 'between'
     },{
         xtype: 'combobox',
         name: 'pb_statuscode',
-        fieldLabel: '审核状态',
+        fieldLabel: '状态',
         queryMode: 'local',
         displayField: 'name',
         valueField: 'value',
@@ -62,43 +72,26 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         addXtype: 'money-paybalance-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/paybalance/',
-        // baseVastUrl: 'http://192.168.253.35:8880/paybalance/',
-        baseColumn: [{
+        baseColumn: [
+        {
             text: 'id',
             dataIndex: 'id',
-            width: 100,
+            width: 0,
             xtype: 'numbercolumn',
             hidden:true
         }, {
-            text: '单据编号',
+            text: '付款单号',
             dataIndex: 'pb_code',
-            width: 200
+            width: 150
         }, {
-            text: '单据日期',
+            text: '日期',
             dataIndex: 'pb_date',
             xtype: 'datecolumn',
-            width: 160
-        }, {
-            text: '审核状态',
-            dataIndex: 'pb_status',
-            width: 120
+            width: 110
         }, {
-            text: '供应商编号',
-            dataIndex: 'pb_vendcode',
-            width: 200,
-            hidden:true
-        }, {
-            text: '供应商',
+            text: '供应商名称',
             dataIndex: 'pb_vendname',
-            width: 120,
-        }, {
-            text: '付款人',
-            dataIndex: 'pb_manname',
-            width: 120,
-        }, {
-            text: '资金账户',
-            dataIndex: 'pd_bankname',
-            width: 120,
+            width: 250,
         },{
             text: '付款金额',
             xtype: 'numbercolumn',
@@ -111,100 +104,21 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
                 return Ext.util.Format.number(v, format);
             },
         }, {
-            text: '结算方式',
-            dataIndex: 'pd_paymethod',
-            width: 120,
-        },{
-            text: '结算号',
-            dataIndex: 'pd_paycode',
-            width: 120
-        },  {
-            text: '备注',
-            dataIndex: 'pd_remark',
-            width: 120,
-        },{
-            text: '付款总额',
-            dataIndex: 'pb_pdamount',
-            width: 120,
-            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);
-            }
-        },{
-            text: '源单编号',
-            dataIndex: 'pbd_slcode',
-            width: 0
-        },{
-            text: '业务类别',
-            dataIndex: 'pbd_slkind',
-            width: 0
-        },{
-            text: '单据日期',
-            dataIndex: 'pbd_sldate',
-            width: 0,
-            xtype:'datecolumn'
-        },{
-            text: '单据金额',
-            dataIndex: 'pbd_amount',
-            width: 0,
-            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);
-            },
-        },{
-            text: '本次核销金额',
-            dataIndex: 'pbd_nowbalance',
-            width: 0,
-            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);
-            }
-        },{
-            text: '本次核销金额',
-            xtype: 'numbercolumn',
-            dataIndex: 'pb_pbdamount',
-            width: 0,
-            hidden:true,
-            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);
-            },
+            text: '单据状态',
+            dataIndex: 'pb_status',
+            width: 90
         }, {
-            text: '本次预付款',
-            dataIndex: 'pb_preamount',
-            width: 0,
-            hidden:true,
-            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);
-            }
+            text: '付款人',
+            dataIndex: 'pb_manname',
+            width: 110
         }, {
-            text: '整单折扣',
-            dataIndex: 'pb_discounts',
-            width: 0,
-            hidden:true
+            text: '单据状态',
+            dataIndex: 'pb_status',
+            width: 90
         }, {
-            text: '已核销金额',
-            xtype: 'numbercolumn',
-            dataIndex: 'pb_havebalance',
-            width: 0,
-            hidden:true,
-            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);
-            },
+            text: '备注',
+            dataIndex: 'pb_remark',
+            width: 250
         }],
         relativeColumn: []
     },

+ 0 - 25
frontend/saas-web/app/view/money/payBalance/QueryPanelController.js

@@ -5,30 +5,6 @@ Ext.define('saas.view.money.paybalance.QueryPanelController', {
     init: function (form) {
         var me = this;
         this.control({
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pb_vendname]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        dbfinds:[{
-                            from:'ve_name',to:'pb_vendname'
-                        }],
-                    }) ;   
-
-                }
-            },
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pd_prodcode]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        dbfinds:[{
-                            from:'pr_code',to:'pd_prodcode'
-                        }, {
-                            from:'pr_detail',to:'pr_detail'
-                        }],
-                    }) ;   
-
-                }
-            },
             'dbfindtrigger[name=pd_bankname]':{
                 beforerender: function (f) {
                     Ext.apply(f, {
@@ -43,7 +19,6 @@ Ext.define('saas.view.money.paybalance.QueryPanelController', {
                             to: 'pd_bankname'
                         }],
                     });
-
                 }
             }
         });

+ 12 - 10
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -93,14 +93,11 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             text: '期间',
             dataIndex: 'rd_ym',
             defaultValue: Ext.Date.format(new Date(), 'Ym'),
-            // editor: {
-            //     xtype: 'numberfield'
-            // },
+            width : 110,
             hidden: true
         }, {
             text: '资金账户ID',
             dataIndex: 'rd_bankid',
-            width : 100.0, 
             editor: {
                 xtype: 'numberfield'
             },
@@ -108,7 +105,6 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
         }, {
             text: '资金账户编号',
             dataIndex: 'rd_bankcode',
-            width : 100.0, 
             editor: {
                 xtype: 'textfield'
             },
@@ -125,6 +121,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             text: "收款金额",
             xtype: 'numbercolumn',
             dataIndex: "rd_amount",
+            width : 110.0,
             editor : {
                 xtype : "numberfield",
                 decimalPrecision: 2
@@ -145,6 +142,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
         }, {
             text: "结算方式",
             dataIndex: "rd_paymethod",
+            width : 150.0,
             editor : {
                 xtype:'combo',
                 queryMode: 'local',
@@ -173,7 +171,6 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             text: "备注",
             dataIndex: "rd_remark",
             width: 250,
-            flex:1,
             editor: {
                 xtype: 'textfield'
             }
@@ -217,22 +214,25 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
                 queryMode : "local",
                 store : null,
                 valueField : "value",
-                xtype : "multidbfindtrigger",
+                xtype : "oriOrderMutiDbfindTrigger",
                 listeners:{
                     beforetriggerclick:'custnamechange'
                 }
             }
         }, {
             text: "业务类型",
-            dataIndex: "rbd_slkind"
+            dataIndex: "rbd_slkind",
+            width:110
         }, {
             text: "单据日期",
             dataIndex: "rbd_sldate",
-            xtype: 'datecolumn'
+            xtype: 'datecolumn',
+            width:110
         }, {
             text: "单据金额",
             xtype: 'numbercolumn',
             dataIndex: "rbd_amount",
+            width:110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -250,6 +250,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             text: "已核销金额",
             xtype: 'numbercolumn',
             dataIndex: "sl_yamount",
+            width:110,
             ignore:true,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
@@ -268,6 +269,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             text: "未核销金额",
             xtype: 'numbercolumn',
             dataIndex: "sl_namount",
+            width:110,
             ignore:true,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
@@ -286,7 +288,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             text: "本次核销金额",
             xtype: 'numbercolumn',
             dataIndex: "rbd_nowbalance",
-            width:200,
+            width:120,
             editor : {
                 xtype : "numberfield",
                 decimalPrecision: 2

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

@@ -37,11 +37,9 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
 
                 }
             },
-            'multidbfindtrigger[name=rbd_slcode]': {
+            'oriOrderMutiDbfindTrigger[name=rbd_slcode]': {
                 beforerender: function (f) {
                     Ext.apply(f, {
-                        dataUrl: '/api/money/subledger/list',
-                        addTitle: '源单单据',
                         dbfinds: [{
                             from: 'id',
                             to: 'rbd_slid',ignore:true
@@ -67,66 +65,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                             from: 'sl_namount',
                             to: 'rbd_nowbalance'
                         }],
-                        dbtpls: [{
-                            field: 'sl_code',
-                            width: 100
-                        }],
-                        defaultCondition: "sl_custid<>0 and sl_kind in ('期初余额','出货单','销售退货单') and sl_namount<>0",
-                        dbSearchFields:[{
-                            emptyText:'输入源单编号',
-                            xtype : "textfield",
-                            name : "search",
-                            getCondition: function(v) {
-                                return "(upper(sl_code) like '%"+v.toUpperCase()+"%')";
-                            },
-                            allowBlank : true,
-                            columnWidth : 0.25
-                        }],
-                        dbColumns:[{
-                            "text": "源单id",
-                            "hidden": true,
-                            "dataIndex": "id",
-                            "width": 100,
-                            "xtype": "numbercolumn"
-                        },{
-                            "text": "源单编号",
-                            "dataIndex": "sl_code",
-                            "width": 180
-                        }, {
-                            "text": "源单类型",
-                            "flex": 1,
-                            "dataIndex": "sl_kind",
-                            "width": 100
-                        },{
-                            "text": "单据金额",
-                            "flex": 1,
-                            "dataIndex": "sl_orderamount",
-                            "width": 100,
-                            xtype: 'numbercolumn',
-                            align:'end'
-                        }, {
-                            "text": "已核销金额",
-                            "flex": 0,
-                            "dataIndex": "sl_yamount",
-                            "width": 200,
-                            "items": null,
-                            xtype: 'numbercolumn',
-                            align:'end'
-                        }, {
-                            "text": "未核销金额",
-                            "flex": 1,
-                            "dataIndex": "sl_namount",
-                            "width": 100,
-                            xtype: 'numbercolumn',
-                            align:'end'
-                        },{
-                            "text": "单据日期",
-                            "flex": 1,
-                            "dataIndex": "sl_date",
-                            "width": 120,
-                            xtype: 'datecolumn',
-                            align:'end'
-                        }]
+                        defaultCondition: "sl_custid<>0 and sl_kind in ('期初余额','出货单','销售退货单') and sl_namount<>0"
                     });
 
                 }
@@ -168,13 +107,13 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                saas.util.BaseUtil.showToast('转单成功');
+                saas.util.BaseUtil.showSuccessToast('转单成功');
               
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
         });
      },
     onSave: function() {
@@ -186,7 +125,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            saas.util.BaseUtil.showToast(form.invalidText);
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
             return false;
         }
 

+ 33 - 91
frontend/saas-web/app/view/money/recBalance/QueryPanel.js

@@ -8,39 +8,33 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
     viewName: 'money-recbalance-querypanel',
     
     queryFormItems: [{
-        xtype: 'hidden',
-        name: 'rb_id',
-        fieldLabel: 'ID',
-        allowBlank: true,
-        getCondition: function(value) {
-            return 'rb_id=' + value;
-        }
-    }, {
         xtype: 'textfield',
         name: 'rb_code',
-        fieldLabel: '单据编号',
-    }, {
-        xtype: 'customerDbfindTrigger',
-        name: 'rb_custname',
-        fieldLabel: '客户名',
-    }, {
-        xtype: 'textfield',
-        name: 'rb_manname',
-        fieldLabel: '收款人',
+        fieldLabel: '单号/客户',
+        emptyText :'请输入单号或者客户',
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return  ' (rd_code like\'%' + value + '%\' '
+                +' or rb_custcode like \'%'+value+'%\' '
+                +' or rb_custname like \'%'+value+'%\') ';
+            }
+        }
     },{
-        xtype: 'textfield',
+        xtype: 'bandinfoDbfindTrigger',
         name: 'rd_bankname',
         fieldLabel: '资金账户',
-    },  {
+    },{
         xtype: 'condatefield',
         name: 'rb_date',
-        fieldLabel: '单据日期',
+        fieldLabel: '日期',
         columnWidth: 0.5,
         operation: 'between'
     },{
         xtype: 'combobox',
         name: 'rb_statuscode',
-        fieldLabel: '审核状态',
+        fieldLabel: '状态',
         queryMode: 'local',
         displayField: 'name',
         valueField: 'value',
@@ -70,7 +64,6 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
         addXtype: 'money-recbalance-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/recbalance/',
-        // baseVastUrl: 'http://192.168.253.35:8880/recbalance/',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
@@ -78,35 +71,20 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
             xtype: 'numbercolumn',
             hidden: true
         }, {
-            text: '单据编号',
+            text: '付款单号',
             dataIndex: 'rb_code',
-            width: 200
-        }, {
-            text: '审核状态',
-            dataIndex: 'rb_status',
-            width: 120
+            width: 150
         }, {
-            text: '单据日期',
+            text: '日期',
             dataIndex: 'rb_date',
             xtype: 'datecolumn',
-            width: 200
-        }, {
-            text: '客户编号',
-            dataIndex: 'rb_custcode',
-            hidden: true
+            width: 110
         }, {
             text: '客户名称',
             dataIndex: 'rb_custname',
-        }, {
-            text: '收款人',
-            dataIndex: 'rb_manname',
-            width: 120,
-        }, {
-            text: '资金账户',
-            dataIndex: 'rd_bankname',
-            width: 120,
+            width: 250,
         },{
-            text: '款金额',
+            text: '付款金额',
             xtype: 'numbercolumn',
             dataIndex: 'rd_amount',
             width: 120,
@@ -115,57 +93,21 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
                 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: 'rb_status',
+            width: 90
+        }, {
+            text: '收款人',
+            dataIndex: 'rb_manname',
+            width: 110
         }, {
-            text: '结算方式',
-            dataIndex: 'rd_paymethod',
-            width: 120,
-        },{
-            text: '结算号',
-            dataIndex: 'rd_paycode',
-            width: 120,
-        },{
             text: '备注',
-            dataIndex: 'rd_remark',
-            width: 120,
-        },{
-            text: '收款总额',
-            dataIndex: 'rb_rdamount',
-            xtype: 'numbercolumn',
-            width: 120,
-            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);
-            },
-        },{
-            text: '源单编号',
-            dataIndex: 'rbd_slcode',
-            hidden:true
-        },{
-            text: '业务类别',
-            dataIndex: 'rbd_slkind',
-            hidden:true
-        },{
-            text: '单据日期',
-            dataIndex: 'rbd_sldate',
-            xtype: 'datecolumn',
-            hidden:true
-        },{
-            text: '单据金额',
-            dataIndex: 'rbd_amount',
-            xtype: 'numbercolumn',
-            hidden:true
-        },{
-            text: '本次核销金额',
-            dataIndex: 'rbd_nowbalance',
-            xtype: 'numbercolumn',
-            hidden:true
-        },
-        ]
+            dataIndex: 'rb_remark',
+            width: 250
+        }]
     },
-
     // override
     getQueryMode: function() {
         return 'MAIN';

+ 13 - 14
frontend/saas-web/app/view/money/recBalance/QueryPanelController.js

@@ -5,23 +5,22 @@ Ext.define('saas.view.money.recBalance.QueryPanelController', {
     init: function (form) {
         var me = this;
         this.control({
-            'dbfindtrigger[name=rb_custname]':{
-                beforerender:function(f){
-                    Ext.apply(f,{
-                        //赋值
-                        dbfinds:[{
-                            from: 'id', to: 'rb_custid',ignore:true
+            'dbfindtrigger[name=rd_bankname]':{
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'rd_bankid',ignore:true
                         }, {
-                            from:'cu_code', to:'rb_custcode'
+                            from: 'bk_bankcode',
+                            to: 'rd_bankcode'
                         },{
-                            from:'cu_name', to:'rb_custname'
-                        },{
-                            from:'cu_leftamount', to:'cu_leftamount'
-                        }]
-                    }) ;
-
+                            from: 'bk_bankname',
+                            to: 'rd_bankname'
+                        }],
+                    });
                 }
-            },
+            }
         });
 
     }

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

@@ -29,7 +29,7 @@ Ext.define('saas.view.money.report.AccountBalance', {
          {
             text: '账户编号',
             dataIndex: 'bankcode',
-            width: 200
+            width: 150
         }, {
             text: '账户名称',
             dataIndex: 'bankname',
@@ -38,14 +38,16 @@ Ext.define('saas.view.money.report.AccountBalance', {
             text: '日期',
             dataIndex: 'date',
             xtype:'datecolumn',
-            width: 200
+            width: 110
         }, {
             text: '业务类型',
-            dataIndex: 'kind'
+            dataIndex: 'kind',
+            width: 110
         },{
             text:'收入',
-            dataIndex:'outamount',
+            dataIndex:'inamount',
             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');
@@ -61,8 +63,9 @@ Ext.define('saas.view.money.report.AccountBalance', {
             }
         },{
             text:'支出',
-            dataIndex:'inamount',
+            dataIndex:'outamount',
             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');
@@ -80,6 +83,7 @@ Ext.define('saas.view.money.report.AccountBalance', {
             text: '账户余额',
             dataIndex: 'thisamount',
             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');
@@ -88,12 +92,16 @@ Ext.define('saas.view.money.report.AccountBalance', {
             }
         }, {
             text: '往来单位',
-            dataIndex: 'bcode'
+            dataIndex: 'bcode',
+            width: 150
         }, {
             text: '收付款人',
-            dataIndex: 'bmanname'
+            dataIndex: 'bmanname',
+            width: 110
         }, {
             text: '备注',
-            dataIndex: 'remark'
+            dataIndex: 'remark',
+            width: 250,
+            flex:1
         }]
 });

+ 24 - 20
frontend/saas-web/app/view/money/report/CustomerCheck.js

@@ -33,56 +33,57 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
         }, {
             text: '单号',
             dataIndex: 'pi_inoutno',
-            width: 200
+            width: 150
         }, {
             text: '单据类型',
             dataIndex: 'pi_class',
-            width: 200
+            width: 110
         }, {
             text: '单据日期',
             dataIndex: 'pi_date',
-            xtype: 'datecolumn'
+            xtype: 'datecolumn',
+            width: 110
         }, {
             text: '序号',
             dataIndex: 'pd_pdno',
-            xtype: 'numbercolumn'
-        },{
-            text:'客户编号',
-            dataIndex:'pi_vendcode',
-            hidden: true
-        },{
-            text:'客户名称',
-            dataIndex:'pi_vendname',
-            hidden: true
+            xtype: 'numbercolumn',
+            width: 80
         },{
             text: '物料编号',
-            width: 200,
+            width: 150,
             dataIndex: 'pr_code'
         }, {
             text: '物料名称',
-            dataIndex: 'pr_detail'
+            dataIndex: 'pr_detail',
+            width: 200
         }, {
             text: '物料规格',
-            dataIndex: 'pr_spec'
+            dataIndex: 'pr_spec',
+            width: 150
         }, {
             text: '单位',
-            dataIndex: 'pd_unit'
+            dataIndex: 'pd_unit',
+            width: 80
         }, {
             text: '数量',
             xtype: 'numbercolumn',
             dataIndex: 'qty',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '单价',
             dataIndex: 'pd_orderprice',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '税率',
             dataIndex: 'pd_taxrate',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 80
         }, {
             text: '金额',
             xtype: 'numbercolumn',
+            width: 110,
             dataIndex: 'pd_total',
             xtype: 'numbercolumn',
             renderer : function(v) {
@@ -100,10 +101,12 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
             }
         }, {
             text: '不含税单价',
+            width: 110,
             dataIndex: 'pd_netprice',
             xtype: 'numbercolumn'
         }, {
             text: '不含税金额',
+            width: 110,
             xtype: 'numbercolumn',
             dataIndex: 'pd_nettotal',
             xtype: 'numbercolumn',
@@ -122,6 +125,7 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
             }
         }, {
             text: '备注',
-            dataIndex: 'pd_remark'
+            dataIndex: 'pd_remark',
+            width: 250
         }]
 });

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

@@ -32,10 +32,11 @@ Ext.define('saas.view.money.report.PayDetail', {
         }, {
             text: '单号',
             dataIndex: 'pi_inoutno',
-            width: 200
+            width: 150
         },{
             text:'供应商编号',
-            dataIndex:'pi_vendcode'
+            dataIndex:'pi_vendcode',
+            width: 150
         },{
             text:'供应商名称',
             width: 200,
@@ -43,20 +44,22 @@ Ext.define('saas.view.money.report.PayDetail', {
         }, {
             text: '单据类型',
             dataIndex: 'pi_class',
-            width: 200
+            width: 110
         }, {
             text: '单据日期',
             xtype: 'datecolumn',
             dataIndex: 'pb_date',
+            width: 110
         }, {
             text: '采购员',
-            dataIndex: 'pu_buyercode'
+            dataIndex: 'pu_buyercode',
+            width: 110
         },{
             text: '期初应付余额',
             xtype: 'numbercolumn',
             dataIndex: 've_beginapamount',
             xtype: 'numbercolumn',
-            width: 140,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -75,7 +78,7 @@ Ext.define('saas.view.money.report.PayDetail', {
             xtype: 'numbercolumn',
             dataIndex: 'pb_pdamount',
             xtype: 'numbercolumn',
-            width: 140,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -94,6 +97,7 @@ Ext.define('saas.view.money.report.PayDetail', {
             xtype: 'numbercolumn',
             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');
@@ -111,9 +115,11 @@ Ext.define('saas.view.money.report.PayDetail', {
             text: '应付日期',
             xtype: 'datecolumn',
             dataIndex: 'mustdate',
+            width: 110
         }, {
             text: '单据总金额',
             xtype: 'numbercolumn',
+            width: 110,
             dataIndex: 'pi_total',
             xtype: 'numbercolumn',
             renderer : function(v) {
@@ -131,6 +137,7 @@ Ext.define('saas.view.money.report.PayDetail', {
             }
         }, {
             text: '备注',
-            dataIndex: 'pi_remark'
+            dataIndex: 'pi_remark',
+            width: 250
         }]
 });

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

@@ -33,11 +33,11 @@ Ext.define('saas.view.money.report.RecDetail', {
         }, {
             text: '单号',
             dataIndex: 'pi_inoutno',
-            width: 200
+            width: 150
         }, {
             text: '客户编号',
             dataIndex: 'pi_custcode',
-            width: 200
+            width: 150
         }, {
             text: '客户名称',
             dataIndex: 'pi_custname',
@@ -45,23 +45,25 @@ Ext.define('saas.view.money.report.RecDetail', {
         }, {
             text: '单据类型',
             dataIndex: 'pi_class',
-            width: 200
+            width: 110
         },{
             text: '业务员',
             dataIndex: 'pu_buyername',
-            width: 200
+            width: 110
         }, {
             text: '单据日期',
             dataIndex: 'rb_date',
-            width: 200,
+            width: 110
         }, {
             text: '序号',
             dataIndex: 'pd_pdno',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 80
         },{
             text:'期初应收',
             dataIndex:'cu_beginaramount',
             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');
@@ -80,6 +82,7 @@ Ext.define('saas.view.money.report.RecDetail', {
             xtype: 'numbercolumn',
             dataIndex:'pb_pdamount',
             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');
@@ -98,6 +101,7 @@ Ext.define('saas.view.money.report.RecDetail', {
             xtype: 'numbercolumn',
             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');
@@ -114,13 +118,16 @@ Ext.define('saas.view.money.report.RecDetail', {
         }, {
             text: '应收日期',
             dataIndex: 'mustdate',
-            xtype:'datecolumn'
+            xtype:'datecolumn',
+            width: 110
         }, {
             text: '单据总金额',
             dataIndex: 'pi_total',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '备注',
-            dataIndex: 'pd_unit'
+            dataIndex: 'pd_unit',
+            width: 250
         }]
 });

+ 25 - 14
frontend/saas-web/app/view/money/report/VendorCheck.js

@@ -33,45 +33,50 @@ Ext.define('saas.view.money.report.VendorCheck', {
         }, {
             text: '单号',
             dataIndex: 'pi_inoutno',
-            width: 180
+            width: 150
         }, {
             text: '单据类型',
             dataIndex: 'pi_class',
-            width: 180
+            width: 110
         }, {
             text: '单据日期',
             dataIndex: 'pi_date',
             xtype:'datecolumn',
+            width: 110
         }, {
             text: '序号',
-            dataIndex: 'pd_pdno'
+            dataIndex: 'pd_pdno',
+            width: 80
         },{
             text:'供应商编号',
             dataIndex:'pi_vendcode',
-            width: 180
+            width: 150
         },{
             text:'供应商名称',
             dataIndex:'pi_vendname',
-            width: 180
+            width: 200
         },{
             text: '物料编号',
             dataIndex: 'pr_code',
-            width: 200
+            width: 150
         }, {
             text: '物料名称',
             dataIndex: 'pr_detail',
-            width: 180
+            width: 200
         }, {
             text: '物料规格',
-            dataIndex: 'pr_spec'
+            dataIndex: 'pr_spec',
+            width: 150
         }, {
             text: '单位',
-            dataIndex: 'pr_unit'
+            dataIndex: 'pd_unit',
+            width: 80
         }, {
             text: '采购数量',
             xtype: 'numbercolumn',
             dataIndex: 'qty',
             xtype: 'numbercolumn',
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
@@ -88,16 +93,19 @@ Ext.define('saas.view.money.report.VendorCheck', {
         }, {
             text: '单价',
             dataIndex: 'pd_orderprice',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '税率',
             dataIndex: 'pd_taxrate',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 80
         }, {
             text: '金额',
             xtype: 'numbercolumn',
             dataIndex: 'pd_total',
             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');
@@ -114,13 +122,16 @@ Ext.define('saas.view.money.report.VendorCheck', {
         }, {
             text: '不含税单价',
             dataIndex: 'pd_netprice',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '不含税金额',
             dataIndex: 'pd_nettotal',
-            xtype: 'numbercolumn'
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '备注',
-            dataIndex: 'pd_remark'
+            dataIndex: 'pd_remark',
+            width: 250
         }]
 });

+ 535 - 0
frontend/saas-web/app/view/money/verification/FormPanel.js

@@ -0,0 +1,535 @@
+Ext.define('saas.view.money.verification.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    // extend: 'Ext.panel.Panel',
+    xtype: 'money-verification-formpanel',
+
+    controller: 'money-verification-formpanel',
+    viewModel: 'money-verification-formpanel',
+
+    viewName: 'money-verification-formpanel',
+
+    caller: 'Verification',
+
+    //字段属性
+    _title: '核销单',
+    _idField: 'vc_id',
+    _codeField: 'vc_code',
+    _statusField: 'vc_status',
+    _statusCodeField: 'vc_statuscode',
+
+    _readUrl: '/api/money/verification/read/',
+    _saveUrl: '/api/money/verification/save/',
+    _auditUrl: '/api/money/verification/audit/',
+    _unAuditUrl: '/api/money/verification/unAudit/',
+    _deleteUrl: '/api/money/verification/delete/',
+
+    defatulType: 'receipts_offset_receivable',
+
+    etc: {
+
+        /**
+         * 预收:receipts
+         * 预付:prepaid
+         * 应收:receivable
+         * 应付:payable
+         */
+
+        // base
+        base: [{
+            xtype: 'combo',
+            name: 'vc_kind',
+            fieldLabel: '业务类型',
+            editable: false,
+            store: [
+                ['receipts_offset_receivable', '预收冲应收'],
+                ['prepaid_offset_payable', '预付冲应付'],
+                ['receivable_offset_payable', '应收冲应付'],
+                ['receivable_to_receivable', '应收转应收'],
+                ['payable_to_payable', '应付转应付']
+            ]
+        }],
+
+        detail1: {
+            xtype: "detailGridField",
+            storeModel: 'saas.model.money.Verification1',
+            detnoColumn: 'vd_detno',
+            deleteDetailUrl: '/api/money/verification/deleteDetail1/',
+            columnWidth: 1,
+            columns: [{
+                text: 'ID',
+                dataIndex: 'id',
+                hidden: true
+            }, {
+                text: '来源ID',
+                dataIndex: 'vd_slid',
+                hidden: true
+            }, {
+                text: '来源单号',
+                dataIndex: 'vd_slcode',
+                width: 150,
+                editor:{
+                    displayField : "display",
+                    editable : true,
+                    format : "",
+                    hideTrigger : false,
+                    maxLength : 100.0,
+                    minValue : null,
+                    positiveNum : false,
+                    queryMode : "local",
+                    store : null,
+                    valueField : "value",
+                    xtype : "multidbfindtrigger"
+                }
+            }, {
+                text: '业务类型',
+                dataIndex: "vd_slkind",
+                width: 110
+            }, {
+                text: "单据日期",
+                dataIndex: "vd_sldate",
+                xtype: 'datecolumn',
+                width: 110
+            }, {
+                text: "单据金额",
+                xtype: 'numbercolumn',
+                dataIndex: "vd_amount",
+                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);
+                }
+            }, {
+                text: "已核销金额",
+                xtype: 'numbercolumn',
+                dataIndex: "sl_yamount",
+                width: 110,
+                ignore:true,
+                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: 'numbercolumn',
+                dataIndex: "sl_namount",
+                width: 110,
+                ignore:true,
+                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: 'numbercolumn',
+                dataIndex: "vd_nowbalance",
+                width: 150,
+                editor : {
+                    xtype : "numberfield",
+                    decimalPrecision: 2
+                },
+                allowBlank : false,
+                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);
+                }
+            }]
+        },
+        detail2: {
+            xtype: "detailGridField",
+            storeModel: 'saas.model.money.Verification1',
+            detnoColumn: 'vd_detno',
+            deleteDetailUrl: '/api/money/verification/deleteDetail2/',
+            columnWidth: 1,
+            columns: [{
+                text: 'ID',
+                dataIndex: 'id',
+                hidden: true
+            }, {
+                text: '来源ID',
+                dataIndex: 'vd_slid',
+                hidden: true
+            }, {
+                text: '来源单号',
+                dataIndex: 'vd_slcode',
+                width: 150,
+                editor:{
+                    displayField : "display",
+                    editable : true,
+                    format : "",
+                    hideTrigger : false,
+                    maxLength : 100.0,
+                    minValue : null,
+                    positiveNum : false,
+                    queryMode : "local",
+                    store : null,
+                    valueField : "value",
+                    xtype : "multidbfindtrigger"
+                }
+            }, {
+                text: '业务类型',
+                dataIndex: "vd_slkind",
+                width: 110
+            }, {
+                text: "单据日期",
+                dataIndex: "vd_sldate",
+                xtype: 'datecolumn',
+                width: 110
+            }, {
+                text: "单据金额",
+                xtype: 'numbercolumn',
+                dataIndex: "vd_amount",
+                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);
+                }
+            }, {
+                text: "已核销金额",
+                xtype: 'numbercolumn',
+                dataIndex: "sl_yamount",
+                width: 110,
+                ignore:true,
+                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: 'numbercolumn',
+                dataIndex: "sl_namount",
+                width: 110,
+                ignore:true,
+                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: 'numbercolumn',
+                dataIndex: "vd_nowbalance",
+                width:150,
+                editor : {
+                    xtype : "numberfield",
+                    decimalPrecision: 2
+                },
+                allowBlank : false,
+                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);
+                }
+            }]
+        },
+        other: {
+            fieldLabel: '备注',
+            xtype: 'textfield',
+            columnWidth: 1,
+            name: 'vc_remark'
+        },
+
+        // 预收冲应收
+        receipts_offset_receivable : {
+            main: [{
+                xtype: 'hidden',
+                fieldLabel: '客户id',
+                name: 'vc_custid',
+            }, {
+                fieldLabel: '客户编号',
+                xtype: 'hidden',
+                name: 'vc_custcode',
+            }, {
+                fieldLabel: '客户名称',
+                xtype: 'customerDbfindTrigger',
+                name: 'vc_custname',
+            }, {
+                fieldLabel: '日期',
+                xtype: 'datefield',
+                name: 'vc_date'
+            }],
+            details: ['detail1', 'detail2']
+        },
+
+        // 预付冲应付
+        prepaid_offset_payable: {
+            main: [{
+                xtype: 'hidden',
+                name: 'vc_vendid',
+                fieldLabel: '供应商ID'
+            }, {
+                xtype: "hidden",
+                name: "vc_vendcode",
+                fieldLabel: "供应商编号"
+            }, {
+                xtype: "vendorDbfindTrigger",
+                name: "vc_vendname",
+                fieldLabel: "供应商名称",
+                allowBlank : false
+            }, {
+                fieldLabel: '日期',
+                xtype: 'datefield',
+                name: 'vc_date'
+            }],
+            details: ['detail1', 'detail2']
+        },
+
+        // 应收冲应付
+        receivable_offset_payable: {
+            main: [{
+                fieldLabel: '客户id',
+                xtype: 'textfield',
+                name: 'vc_custid',
+                hidden: true
+            }, {
+                fieldLabel: '客户编号',
+                xtype: 'textfield',
+                name: 'vc_custcode',
+                hidden: true
+            }, {
+                fieldLabel: '客户名称',
+                xtype: 'customerDbfindTrigger',
+                name: 'vc_custname',
+            }, {
+                xtype: 'hidden',
+                name: 'vc_vendid',
+                fieldLabel: '供应商ID'
+            }, {
+                xtype: "hidden",
+                name: "vc_vendcode",
+                fieldLabel: "供应商编号"
+            }, {
+                xtype: "vendorDbfindTrigger",
+                name: "vc_vendname",
+                fieldLabel: "供应商名称",
+                allowBlank : false
+            }, {
+                fieldLabel: '日期',
+                xtype: 'datefield',
+                name: 'vc_date'
+            }],
+            details: ['detail1', 'detail2']
+        },
+
+        // 应收转应收
+        receivable_to_receivable: {
+            main: [{
+                fieldLabel: '转出客户id',
+                xtype: 'textfield',
+                name: 'vc_outcustid',
+                hidden: true
+            }, {
+                fieldLabel: '转出客户编号',
+                xtype: 'textfield',
+                name: 'vc_outcustcode',
+                hidden: true
+            }, {
+                fieldLabel: '转出客户',
+                xtype: 'customerDbfindTrigger',
+                name: 'vc_outcustname',
+            }, {
+                fieldLabel: '转入客户id',
+                xtype: 'textfield',
+                name: 'vc_turncustid',
+                hidden: true
+            }, {
+                fieldLabel: '转入客户编号',
+                xtype: 'textfield',
+                name: 'vc_turncustcode',
+                hidden: true
+            }, {
+                fieldLabel: '转入客户',
+                xtype: 'customerDbfindTrigger',
+                name: 'vc_turncustname',
+            }, {
+                fieldLabel: '日期',
+                xtype: 'datefield',
+                name: 'vc_date'
+            }],
+            details: ['detail1']
+        },
+
+        // 应付转应付
+        payable_to_payable: {
+            main: [{
+                fieldLabel: '转出供应商id',
+                xtype: 'textfield',
+                name: 'vc_outvendid',
+                hidden: true
+            }, {
+                fieldLabel: '转出供应商编号',
+                xtype: 'textfield',
+                name: 'vc_outvendcode',
+                hidden: true
+            }, {
+                fieldLabel: '转出供应商',
+                xtype: 'vendorDbfindTrigger',
+                name: 'vc_outvendname',
+            }, {
+                fieldLabel: '转入供应商id',
+                xtype: 'textfield',
+                name: 'vc_turnvendid',
+                hidden: true
+            }, {
+                fieldLabel: '转入供应商编号',
+                xtype: 'textfield',
+                name: 'vc_turnvendcode',
+                hidden: true
+            }, {
+                fieldLabel: '转入供应商',
+                xtype: 'vendorDbfindTrigger',
+                name: 'vc_turnvendname',
+            }, {
+                fieldLabel: '日期',
+                xtype: 'datefield',
+                name: 'vc_date'
+            }],
+            details: ['detail1']
+        }
+    },
+
+    // initComponent: function() {
+    //     this.callParent(arguments);
+    // },
+
+    initFormItems: function() {
+        var me = this,
+        cusItems = me.cusItems,
+        defaultItems = me.getAcitveItems(),
+        FormUtil = saas.util.FormUtil;
+        
+        me.detailCount = 0;
+        if(cusItems) {
+            var items = defaultItems || [];
+            Ext.Array.each(cusItems, function(cusItem) {
+                var item = items.find(function(item) {
+                    return item.name == cusItem.name;
+                });
+                Ext.apply(item, cusItem);
+            });
+            items = FormUtil.applyDefaultItems(me, items);
+            me.removeAll();
+            me.addItems(items);
+            FormUtil.loadData(me);
+        }else {
+            FormUtil.applyCusItemConfig(me)
+            .then(function(res) {
+                if(res.success) {
+                    var config = res.data || true, items = defaultItems || [];
+                    if(config) {
+                        cusItems = config.items || [];
+                        me.cusItems = cusItems;
+                        Ext.Array.each(cusItems, function(cusItem) {
+                            var item = items.find(function(item) {
+                                return item.name == cusItem.name;
+                            });
+                            Ext.apply(item, cusItem);
+                        });
+                        items = FormUtil.applyDefaultItems(me, items);
+                    }
+                    me.removeAll();
+                    return me.addItems(items);
+                }
+            })
+            .then(function(items) {
+                me.fireEvent('afterSetItems', me, items);
+            })
+            .then(function() {
+                FormUtil.loadData(me);
+            })
+            .catch(function(response) {
+                saas.util.BaseUtil.showToast('错误:' + response.message);
+                console.error(response);
+            });
+        }
+    },
+
+    getAcitveItems: function() {
+        var me = this,
+        acitveType = me.acitveType || me.defatulType,
+        etc = me.etc,
+        acitveEtc = etc[acitveType],
+        mainItems =  acitveEtc.main,
+        details = acitveEtc.details,
+        base = etc.base,
+        detail1 = etc.detail1,
+        detail2 = etc.detail2,
+        other = etc.other,
+        items = [];
+
+        base[0].defaultValue = acitveType;
+
+        items = Ext.Array.merge(base, mainItems, (details[0] ? [detail1] : []), (details[1] ? [detail2] : []), [other] );
+
+        return items;
+    },
+});

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

@@ -0,0 +1,115 @@
+Ext.define('saas.view.money.verification.FormPanelController', {
+    extend: 'saas.view.core.form.FormPanelController',
+    alias: 'controller.money-verification-formpanel',
+
+    init: function (form) {
+        var me = this;
+        this.control({
+            // 客户
+            'dbfindtrigger[name=vc_custname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        //赋值 
+                        dbfinds:[{
+                            from: 'id', to: 'vc_custid',ignore:true
+                        }, {
+                            from:'cu_code', to:'vc_custcode'
+                        },{
+                            from:'cu_name', to:'vc_custname'
+                        }],
+                    }) ;   
+
+                }
+            },
+            // 转出客户
+            'dbfindtrigger[name=vc_outcustname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        //赋值 
+                        dbfinds:[{
+                            from: 'id', to: 'vc_outcustid',ignore:true
+                        }, {
+                            from:'cu_code', to:'vc_outcustcode'
+                        },{
+                            from:'cu_name', to:'vc_outcustname'
+                        }],
+                    }) ;   
+
+                }
+            },
+            // 转入客户
+            'dbfindtrigger[name=vc_turncustname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        //赋值 
+                        dbfinds:[{
+                            from: 'id', to: 'vc_turncustid',ignore:true
+                        }, {
+                            from:'cu_code', to:'vc_turncustcode'
+                        },{
+                            from:'cu_name', to:'vc_turncustname'
+                        }],
+                    }) ;   
+
+                }
+            },
+            // 供应商
+            'dbfindtrigger[name=vc_vendname]':{
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'vc_vendid',
+                            ignore: true
+                        }, {
+                            from: 've_code',
+                            to: 'vc_vendcode'
+                        }, {
+                            from: 've_name',
+                            to: 'vc_vendname'
+                        }],
+                    });
+
+                }
+            },
+            // 转出供应商
+            'dbfindtrigger[name=vc_outvendname]':{
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'vc_outvendid',
+                            ignore: true
+                        }, {
+                            from: 've_code',
+                            to: 'vc_outvendcode'
+                        }, {
+                            from: 've_name',
+                            to: 'vc_outvendname'
+                        }],
+                    });
+
+                }
+            },
+            // 转入供应商
+            'dbfindtrigger[name=vc_turnvendname]':{
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'vc_turncustid',
+                            ignore: true
+                        }, {
+                            from: 've_code',
+                            to: 'vc_turnvendcode'
+                        }, {
+                            from: 've_name',
+                            to: 'vc_turnvendname'
+                        }],
+                    });
+
+                }
+            },
+        });
+    },
+});

+ 18 - 0
frontend/saas-web/app/view/money/verification/FormPanelModel.js

@@ -0,0 +1,18 @@
+Ext.define('saas.view.money.verification.FormPanelModel', {
+    extend: 'saas.view.core.form.FormPanelModel',
+    alias: 'viewmodel.money-verification-formpanel',
+
+    formulas: {
+        vc_kind_change: {
+            bind: '{vc_kind}',
+            get: function(v) {
+                var form = this.getView();
+                form.acitveType = v;
+                form.initFormItems();
+
+                return v;
+            }
+        }
+    }
+
+});

+ 73 - 0
frontend/saas-web/app/view/money/verification/QueryPanel.js

@@ -0,0 +1,73 @@
+Ext.define('saas.view.money.verification.QueryPanel', {
+    extend: 'saas.view.core.query.QueryPanel',
+    xtype: 'money-verification-querypanel',
+
+    controller: 'money-verification-querypanel',
+    viewModel: 'money-verification-querypanel',
+
+    viewName: 'money-verification-querypanel',
+    
+    queryFormItems: [{
+        xtype: 'hidden',
+        name: 'rb_id',
+        fieldLabel: 'ID',
+        allowBlank: true,
+        getCondition: function(value) {
+            return 'rb_id=' + value;
+        }
+    }, {
+        xtype: 'textfield',
+        name: 'rb_code',
+        fieldLabel: '单据编号'
+    }, {
+        xtype: 'condatefield',
+        name: 'rb_date',
+        fieldLabel: '日期',
+        columnWidth: 0.5,
+        operation: 'between'
+    }],
+    moreQueryFormItems: [],
+    queryGridConfig: {
+        idField: 'id',
+        codeField: 'rb_code',
+        addTitle: '收款单',
+        addXtype: 'money-recbalance-formpanel',
+        defaultCondition:'',
+        baseVastUrl: '/api/money/recbalance/',
+        baseColumn: [{
+            text: 'id',
+            dataIndex: 'id',
+            xtype: 'numbercolumn',
+            hidden: true
+        }, {
+            text: '单据编号',
+            dataIndex: 'rb_code',
+            width: 150
+        }, {
+            text: '单据状态',
+            dataIndex: 'rb_status',
+            width: 90
+        }, {
+            text: '日期',
+            dataIndex: 'rb_date',
+            xtype: 'datecolumn',
+            width: 110
+        }, {
+            text: '客户名称',
+            dataIndex: 'rb_custname',
+            width: 150
+        }, {
+            text: '收款人',
+            dataIndex: 'rb_manname',
+            xtype: 'numbercolumn',
+            width: 110
+        }, {
+            text: '收款金额',
+            dataIndex: 'rb_rdamount',
+            xtype: 'numbercolumn',
+            width: 110,
+            flex: 1,
+            hidden: true
+        }]
+    }
+});

+ 186 - 0
frontend/saas-web/app/view/money/verification/QueryPanelController.js

@@ -0,0 +1,186 @@
+Ext.define('saas.view.money.verification.QueryPanelController', {
+    extend: 'saas.view.core.query.QueryPanelController',
+    alias: 'controller.money-verification-querypanel',
+    
+    init: function (form) {
+        var me = this;
+        this.control({
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pu_vendname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl: '/api/document/vendor/list',
+                        addXtype: 'document-vendor-formpanel',
+                        addTitle: '供应商资料',
+                        dbfinds:[{
+                            from:'ve_code',to:'pu_vendcode'
+                        },{
+                            from:'ve_name',to:'pu_vendname'
+                        }],
+                        dbtpls:[{
+                            field:'ve_code',width:100
+                        },{
+                            field:'ve_name',width:100
+                        }],
+                        defaultCondition: "ve_statuscode='OPEN'",
+                        dbSearchFields:[{
+                            emptyText:'输入供应商编号或名称',
+                            xtype : "textfield", 
+                            name : "search", 
+                            getCondition: function(v) {
+                                return "(upper(ve_code) like '%"+v.toUpperCase()+"%' or upper(ve_name) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true, 
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "供应商ID",
+                            "hidden": true,
+                            "dataIndex": "id",
+                            "width": 100,
+                            "xtype": "numbercolumn"
+                        },{
+                            "text": "供应商编号",
+                            "flex": 1,
+                            "dataIndex": "ve_code",
+                            "width": 100
+                        }, {
+                            "text": "供应商名称",
+                            "flex": 1,
+                            "dataIndex": "ve_name",
+                            "width": 100
+                        }, {
+                            "text": "供应商类型",
+                            "flex": 0,
+                            "dataIndex": "ve_type",
+                            "width": 200,
+                            "items": null
+                        }, {
+                            "text": "税率",
+                            "flex": 1,
+                            "dataIndex": "ve_taxrate",
+                            "width": 100
+                        }, {
+                            "text": "承付天数",
+                            "flex": 1,
+                            "dataIndex": "ve_promisedays",
+                            "width": 100
+                        }, {
+                            "text": "纳税人识别号",
+                            "flex": 1,
+                            "dataIndex": "ve_bankaccount",
+                            "width": 100
+                        }, {
+                            "text": "开户银行",
+                            "flex": 1,
+                            "dataIndex": "ve_bankaccount",
+                            "width": 100
+                        }, {
+                            "text": "银行账户",
+                            "flex": 1,
+                            "dataIndex": "ve_bankcode",
+                            "width": 100
+                        }]
+                    }) ;   
+
+                }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pd_prodcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        conditionCode:'pr_code',
+                        dataUrl: '/api/document/product/list',
+                        addXtype: 'document-product-formpanel',
+                        addTitle: '物料资料',
+                        dbfinds:[{
+                            from:'pr_code',to:'pd_prodcode',
+                        }, {
+                            from:'pr_detail',to:'pr_detail'
+                        }],
+                        dbtpls:[{
+                            field:'pr_code',width:100
+                        },{
+                            field:'pr_detail',width:100
+                        }],
+                        defaultCondition: "pr_statuscode='OPEN'",
+                        dbSearchFields:[{
+                            emptyText:'输入物料编号、名称或规格',
+                            xtype : "textfield", 
+                            name : "search", 
+                            width: 200,
+                            getCondition: function(v) {
+                                return "(upper(pr_spec) like '%" + v.toUpperCase()+"%' or upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true, 
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "物料ID",
+                            "hidden": true,
+                            "dataIndex": "id",
+                        }, {
+                            "text": "物料编号",       
+                            "dataIndex": "pr_code",
+                            "width": 200,
+                        }, {
+                            "text": "物料名称",
+                            "width": 200,
+                            "dataIndex": "pr_detail",
+                        }, {
+                            "text": "规格",
+                            "dataIndex": "pr_spec",
+                            "width": 100,
+                        }, {
+                            "text": "单位",
+                            "dataIndex": "pr_spec",
+                            "width": 100,
+                        },{
+                            "text": "仓库id",
+                            "dataIndex": "pr_whid",
+                            "hidden": true,
+                        },{
+                            "text": "仓库编号",
+                            "dataIndex": "pr_whcode",
+                            "hidden": true,
+                        },{
+                            "text": "仓库",
+                            "dataIndex": "pr_whname",
+                            "width": 200,
+                        },{
+                            "text": "总库存数",
+                            "dataIndex": "po_onhand",
+                            "width": 100,
+                        },{
+                            "text": "类型",
+                            "dataIndex": "pr_kind",
+                            "width": 100,
+                        },{
+                            "text": "型号",
+                            "dataIndex": "pr_orispeccode",
+                            "width": 100,
+                        },{
+                            "text": "品牌",
+                            "dataIndex": "pr_brand",
+                            "width": 100,
+                        },{
+                            "text": "供应商",
+                            "dataIndex": "pr_vendname",
+                            "width": 100,
+                        },{
+                            "text": "最小包装",
+                            "dataIndex": "pr_zxbzs",
+                            "width": 100,
+                        },{
+                            "text": "L/T",
+                            "dataIndex": "pr_leadtime",
+                            "width": 100,
+                        }]   
+                    }) ;   
+
+                }
+            }
+        });
+
+    }
+});

+ 5 - 0
frontend/saas-web/app/view/money/verification/QueryPanelModel.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.money.verification.QueryPanelModel', {
+    extend: 'saas.view.core.query.QueryPanelModel',
+    alias: 'viewmodel.money-verification-querypanel'
+
+});

+ 12 - 10
frontend/saas-web/app/view/purchase/purchase/FormPanel.js

@@ -105,7 +105,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
             },
             {
                 text : "物料编号", 
-                width : 200.0, 
+                width : 150.0, 
                 dataIndex : "pd_prodcode", 
                 xtype : "", 
                 items : null,
@@ -116,6 +116,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
             },
             {
                 text : "名称", 
+                width : 200.0, 
                 dataIndex : "pr_detail",
                 ignore:true,
                 renderer: function (v, m, r) {
@@ -131,7 +132,8 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
             },
             {
                 text : "规格", 
-                dataIndex : "pr_spec",
+                dataIndex : "pr_spec", 
+                width : 150.0,
                 ignore:true,
                 renderer: function (v, m, r) {
                     if(!v){
@@ -144,7 +146,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "数量", 
                 dataIndex : "pd_qty", 
                 xtype: 'numbercolumn',
-                width : 120.0,
+                width : 110.0,
                 allowBlank : false,
                 editor : {
                     xtype : "numberfield",
@@ -169,7 +171,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "单价", 
                 xtype: 'numbercolumn',
                 dataIndex : "pd_price", 
-                width : 120.0,
+                width : 110.0,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 8,
@@ -211,7 +213,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "税率", 
                 xtype: 'numbercolumn',
                 dataIndex : "pd_taxrate", 
-                width : 120.0,
+                width : 80.0,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 0,
@@ -225,7 +227,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "需求日期", 
                 dataIndex : "pd_delivery", 
                 xtype:'datecolumn',
-                width : 120.0, 
+                width : 110.0, 
                 editor : {
                     xtype : "datefield",
                     editable : false, 
@@ -236,7 +238,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "含税金额", 
                 xtype: 'numbercolumn',
                 dataIndex : "pd_total", 
-                width : 120.0, 
+                width : 110.0, 
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2,
@@ -260,7 +262,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "未税金额", 
                 xtype: 'numbercolumn',
                 dataIndex : "pd_taxtotal", 
-                width : 120.0,
+                width : 110.0,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2,
@@ -284,7 +286,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 text : "最小包装数", 
                 xtype: 'numbercolumn',
                 dataIndex : "pr_zxbzs",
-                align: 'end',
+                width : 110.0,
                 ignore:true,
                 renderer: function (v, m, r) {
                     if(!v){
@@ -296,7 +298,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
             {
                 text : "关联销售单号", 
                 dataIndex : "pd_salecode", 
-                width : 120.0
+                width : 150.0
             },{
                 text : "备注", 
                 dataIndex : "pd_remark",

+ 2 - 2
frontend/saas-web/app/view/purchase/purchase/FormPanelController.js

@@ -75,12 +75,12 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
                 saas.util.BaseUtil.openTab('purchase-purchasein-formpanel',name+"("+codeValue+")",codeValue+intValue, {
                     initId: intValue
                 });
-                saas.util.BaseUtil.showToast('转单成功');    
+                saas.util.BaseUtil.showSuccessToast('转单成功');    
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
         });
      }
 });

+ 42 - 82
frontend/saas-web/app/view/purchase/purchase/QueryPanel.js

@@ -18,33 +18,27 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'pu_code',
-        fieldLabel: '单据编号'
-    }, {
-        xtype: 'condatefield',
-        name: 'pu_date',
-        fieldLabel: '单据日期',
-        columnWidth: 0.5,
-        operation: 'between'
-    }, {
-        xtype: 'textfield',
-        name: 'pu_vendcode',
-        fieldLabel: '供应商编号',
-        hidden:true
-    }, {
-        xtype: 'vendorDbfindTrigger',
-        name: 'pu_vendname',
-        fieldLabel: '供应商名称',
-        emptyText:'输入供应商编号或名称'
+        fieldLabel: '单号/供应商',
+        emptyText:'请输入单号或供应商',
+        getCondition: function(value) {
+            return  ' (pu_code like\'%' + value + '%\' or pu_vendcode like \'%'+value+'%\' or pu_vendname like \'%'+value+'%\') ';
+        }
     }, {
         xtype: 'textfield',
         name: 'pd_prodcode',
         fieldLabel: '物料编号',
         showDetail: true,
         hidden:true
+    }, {
+        xtype: 'condatefield',
+        name: 'pu_date',
+        fieldLabel: '日期',
+        columnWidth: 0.5,
+        operation: 'between'
     }, {
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
-        fieldLabel: '物料名称',
+        fieldLabel: '物料',
         showDetail: true,
         emptyText:'输入物料编号或名称',
     }, {
@@ -75,6 +69,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
         xtype: 'multicombo',
         name: 'pu_acceptstatuscode',
         fieldLabel: '业务状态',
+        emptyText :'全部',
         datas: [
             ["TURNIN", "已入库"],
             ["UNTURNIN", "未入库"],
@@ -93,114 +88,80 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
         {
             text: 'id',
             dataIndex: 'pu_id',
-            width: 100,
+            width: 0,
             xtype: 'numbercolumn',
             hidden:true
         }, {
             text: '采购单号',
             dataIndex: 'pu_code',
-            width: 200
-        },{
-            text: '供应商编号',
-            dataIndex: 'pu_vendcode',
-            width: 120
+            width: 150
         },{
             text: '供应商名称',
             dataIndex: 'pu_vendname',
-            width: 120
+            width:250
+        }, {
+            text: '总金额',
+            dataIndex: 'pu_total',
+            xtype: 'numbercolumn',
+            width: 110
         }, {
             text: '审核状态',
             dataIndex: 'pu_status',
-            width: 120
+            width: 90
         },{
             text: '业务状态',
             dataIndex: 'pu_acceptstatus',
-            width: 120
+            width: 90
         },{
             text: '单据日期',
             dataIndex: 'pu_date',
             xtype: 'datecolumn',
-            width: 200
-        }, {
-            text: '总额',
-            dataIndex: 'pu_total',
-            xtype: 'numbercolumn',
-            width: 120
+            width: 110
         },{
             text: '制单人',
             dataIndex: 'creatorName',
-            width: 120
+            width: 110
         },{
             text: '审核人',
             dataIndex: 'pu_auditman',
-            width: 120
+            width: 110
         },{
             text: '关联销售单',
             dataIndex: 'pu_salecode',
-            width: 120
-        }, {
-            text: '录入人ID',
-            dataIndex: 'creatorId',
-            hidden:true
-        }, {
-            text: '录入人',
-            dataIndex: 'creatorName',
-            hidden:true
-        }, {
-            text: '录入日期',
-            dataIndex: 'createTime',
-            xtype: 'datecolumn',
-            hidden:true
-        }, {
-            text: '更新人ID',
-            dataIndex: 'updaterId',
-            hidden:true
-        }, {
-            text: '更新人',
-            dataIndex: 'updater',
-            hidden:true
-        }, {
-            text: '更新日期',
-            dataIndex: 'updateTime',
-            xtype: 'datecolumn',
-            hidden:true
+            width: 150
         }],
         relativeColumn: [
         {
             text: 'id',
             dataIndex: 'pu_id',
-            width: 100,
+            width: 0,
             hidden: true
         }, {
             text: '采购单号',
             dataIndex: 'pu_code',
-            width: 200
-        },{
-            text: '供应商编号',
-            dataIndex: 'pu_vendcode',
-            width: 120
+            width: 150
         },{
             text: '供应商名称',
             dataIndex: 'pu_vendname',
-            width: 120
+            width: 150
         }, {
             text: '审核状态',
             dataIndex: 'pu_status',
-            width: 120
+            width: 90
         },{
             text: '业务状态',
             dataIndex: 'pu_acceptstatus',
-            width: 120
+            width: 90
         }, {
             text: '单据日期',
             dataIndex: 'pu_date',
             xtype: 'datecolumn',
-            width: 200
+            width: 110
         }, {
             text: '序号',
             dataIndex: 'pd_detno',
             xtype: 'numbercolumn',
-            width: 120, 
+            width: 80, 
             renderer : function(v) {
                 return Ext.util.Format.number(v, '0');
             }
@@ -211,20 +172,20 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
         },{
             text: '物料名称',
             dataIndex: 'pr_detail',
-            width: 180
+            width: 200
         }, {
             text: '物料规格',
             dataIndex: 'pr_spec',
-            width: 180
+            width: 150
         }, {
             text: '单位',
             dataIndex: 'pr_unit',
-            width: 100
+            width: 80
         },{
             text: '采购数量',
             dataIndex: 'pd_qty',
             xtype: 'numbercolumn',
-            width: 100,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
@@ -232,16 +193,15 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
                 return Ext.util.Format.number(v, format);
             },
         }, {
-            // text: '交货日期',
             text: '需求日期',
             dataIndex: 'pd_delivery',
             xtype: 'datecolumn',
-            width: 200
+            width: 110
         },{
             text: '单价',
             dataIndex: 'pd_price',
             xtype: 'numbercolumn',
-            width: 100,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -252,7 +212,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             text: '税率',
             dataIndex: 'pd_taxrate',
             xtype: 'numbercolumn',
-            width: 100,
+            width: 80,
             renderer : function(v) {
                 return Ext.util.Format.number(v, '0');
             },
@@ -260,7 +220,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             text: '金额',
             dataIndex: 'pd_total',
             xtype: 'numbercolumn',
-            width: 100,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff