Browse Source

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

jinsy 7 years ago
parent
commit
3a536ca779
100 changed files with 1531 additions and 363 deletions
  1. 42 14
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java
  2. 2 2
      applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml
  3. 2 0
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/VendorDTO.java
  4. 10 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Address.java
  5. 2 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java
  6. 2 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/VendorList.java
  7. 4 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/AddressController.java
  8. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/AddressMapper.java
  9. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java
  10. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/AddressService.java
  11. 5 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/AddressServiceImpl.java
  12. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  13. 4 2
      applications/document/document-server/src/main/resources/mapper/AddressMapper.xml
  14. 2 2
      applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml
  15. 16 4
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  16. 1 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  17. 4 1
      applications/money/money-server/src/main/resources/application.yml
  18. 28 25
      applications/money/money-server/src/main/resources/mapper/ProfitdetailMapper.xml
  19. 1 1
      applications/purchase/purchase-server/src/main/resources/application.yml
  20. 1 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  21. 4 1
      applications/sale/sale-server/src/main/resources/application.yml
  22. 1 1
      applications/storage/storage-server/src/main/resources/application.yml
  23. 0 2
      base-servers/sms/sms-server/pom.xml
  24. 1 1
      base-servers/sms/sms-server/src/main/resources/application.yml
  25. 12 0
      base-servers/sms/sms-server/src/main/resources/config/application-docker-test.yml
  26. 10 0
      base-servers/sms/sms-server/src/main/resources/config/application-docker.yml
  27. 17 2
      framework/core/src/main/java/com/usoftchina/saas/utils/RegexpUtils.java
  28. 1 1
      frontend/saas-portal-web/src/components/conenter/company.vue
  29. 3 3
      frontend/saas-web/app.json
  30. 48 15
      frontend/saas-web/app/view/core/base/ImportWindow.js
  31. 456 0
      frontend/saas-web/app/view/core/dbfind/AddMultiDbfindGridPanel.js
  32. 299 0
      frontend/saas-web/app/view/core/dbfind/AddMultiDbfindTrigger.js
  33. 1 1
      frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js
  34. 3 3
      frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js
  35. 56 0
      frontend/saas-web/app/view/core/dbfind/types/AccountDbfindTrigger.js
  36. 105 0
      frontend/saas-web/app/view/core/dbfind/types/ProductAddMultiDbfindTrigger.js
  37. 6 1
      frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js
  38. 6 1
      frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js
  39. 1 1
      frontend/saas-web/app/view/core/dbfind/types/VendorDbfindTrigger.js
  40. 7 7
      frontend/saas-web/app/view/core/form/FormPanelController.js
  41. 4 4
      frontend/saas-web/app/view/core/report/ReportPanel.js
  42. 3 1
      frontend/saas-web/app/view/core/report/ReportPanelController.js
  43. 1 1
      frontend/saas-web/app/view/document/address/DataList.js
  44. 2 2
      frontend/saas-web/app/view/document/bankinformation/DataList.js
  45. 2 2
      frontend/saas-web/app/view/document/bankinformation/Window.js
  46. 1 1
      frontend/saas-web/app/view/document/bom/FormController.js
  47. 2 2
      frontend/saas-web/app/view/document/bom/FormPanel.js
  48. 1 1
      frontend/saas-web/app/view/document/customer/BasePanel.js
  49. 6 6
      frontend/saas-web/app/view/document/customer/FormPanel.js
  50. 4 4
      frontend/saas-web/app/view/document/product/BasePanel.js
  51. 9 0
      frontend/saas-web/app/view/document/product/FormController.js
  52. 5 5
      frontend/saas-web/app/view/document/product/FormPanel.js
  53. 1 1
      frontend/saas-web/app/view/document/vendor/BasePanel.js
  54. 11 5
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  55. 21 1
      frontend/saas-web/app/view/home/HomeModel.js
  56. 21 21
      frontend/saas-web/app/view/home/charts/KeyData.js
  57. 4 4
      frontend/saas-web/app/view/home/charts/MonthIO.js
  58. 4 4
      frontend/saas-web/app/view/home/charts/MonthPurchase.js
  59. 2 2
      frontend/saas-web/app/view/home/charts/MonthSale.js
  60. 7 7
      frontend/saas-web/app/view/home/charts/ProfitDetail.js
  61. 4 4
      frontend/saas-web/app/view/home/charts/PurchaseTrend.js
  62. 4 4
      frontend/saas-web/app/view/home/charts/SaleTrend.js
  63. 4 4
      frontend/saas-web/app/view/home/charts/StockAmount.js
  64. 3 3
      frontend/saas-web/app/view/home/infoCardList/Payment.js
  65. 3 3
      frontend/saas-web/app/view/home/infoCardList/PurchaseIn.js
  66. 4 4
      frontend/saas-web/app/view/home/infoCardList/Recment.js
  67. 4 4
      frontend/saas-web/app/view/home/infoCardList/SaleOut.js
  68. 3 3
      frontend/saas-web/app/view/home/infoCardList/UnauditCheckIn.js
  69. 4 4
      frontend/saas-web/app/view/home/infoCardList/UnauditSaleOut.js
  70. 2 2
      frontend/saas-web/app/view/money/fundtransfer/FormPanel.js
  71. 1 1
      frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js
  72. 2 2
      frontend/saas-web/app/view/money/othreceipts/FormPanel.js
  73. 1 1
      frontend/saas-web/app/view/money/othreceipts/FormPanelController.js
  74. 2 2
      frontend/saas-web/app/view/money/othreceipts/QueryPanel.js
  75. 2 2
      frontend/saas-web/app/view/money/othspendings/FormPanel.js
  76. 2 2
      frontend/saas-web/app/view/money/othspendings/FormPanelController.js
  77. 2 2
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  78. 12 11
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  79. 2 2
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  80. 1 1
      frontend/saas-web/app/view/money/payBalance/QueryPanel.js
  81. 12 11
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  82. 1 1
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  83. 1 1
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  84. 7 5
      frontend/saas-web/app/view/money/report/AccountBalance.js
  85. 4 2
      frontend/saas-web/app/view/money/report/AccountDetails.js
  86. 13 9
      frontend/saas-web/app/view/money/report/CustomerCheck.js
  87. 6 4
      frontend/saas-web/app/view/money/report/OtherIODetail.js
  88. 9 9
      frontend/saas-web/app/view/money/report/PayDetail.js
  89. 10 6
      frontend/saas-web/app/view/money/report/ProfitDetail.js
  90. 9 8
      frontend/saas-web/app/view/money/report/RecDetail.js
  91. 17 11
      frontend/saas-web/app/view/money/report/TotalPayDetail.js
  92. 21 15
      frontend/saas-web/app/view/money/report/TotalRecDetail.js
  93. 12 7
      frontend/saas-web/app/view/money/report/VendorCheck.js
  94. 16 16
      frontend/saas-web/app/view/money/verification/FormPanel.js
  95. 6 6
      frontend/saas-web/app/view/money/verification/FormPanelController.js
  96. 1 1
      frontend/saas-web/app/view/money/verification/QueryPanel.js
  97. 9 9
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  98. 22 0
      frontend/saas-web/app/view/purchase/purchase/FormPanelController.js
  99. 3 3
      frontend/saas-web/app/view/purchase/purchase/QueryPanel.js
  100. 9 9
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js

+ 42 - 14
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java

@@ -14,6 +14,7 @@ import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.saas.utils.DateUtils;
+import com.usoftchina.saas.utils.RegexpUtils;
 import com.usoftchina.saas.utils.StringUtils;
 import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.ss.usermodel.*;
@@ -163,27 +164,28 @@ public class ExcelServiceImpl implements ExcelService{
                        List<TempletSet> main = columns.get(position);
                        for (TempletSet set : main) {
                            //取excel值
-                           if ("true".equals(set.getNecessary())) {
+                           value = data.get(set.getDescription());
+                          /* if ("true".equals(set.getNecessary())) {
                                value = data.get("*" + set.getDescription());
                            } else {
                                value = data.get(set.getDescription());
-                           }
+                           }*/
                            //取编号字段
-                           if (set.isCodefield() && !data.get("*" + set.getDescription()).equals("")) {
+                           if (set.isCodefield() && !"".equals(value)) {
                                mainData = new JSONObject();
                                codeValue = value;
                                difference = true;
                                validateCode.add(codeValue);
                            }
                            //检查是否是同一单
-                           if (set.isCodefield() && data.get("*" + set.getDescription()).equals("")) {
+                           if (set.isCodefield() && "".equals(value)) {
                                difference = false;
                                break;
                            }
                            //检查主表必填字段是否完整
                            if (difference) {
                                dd.setDd_codevalue(codeValue);
-                               if ("true".equals(set.getNecessary()) && data.get("*" + set.getDescription()).equals("")) {
+                               if ("true".equals(set.getNecessary()) && "".equals(value)) {
                                    err.append("第" + (i + 3) + "行 " + set.getDescription() + " 必填字段未填写!<br/> ");
                                    break;
                                }
@@ -196,9 +198,18 @@ public class ExcelServiceImpl implements ExcelService{
                                    break;
                                }
                            }
-                           //如果为数字类型且为空默认赋值0
-                           if ("number".equals(set.getType()) && StringUtils.isEmpty(value)) {
-                                value = "0";
+                           //如果为数字类型且为空默认赋值0,检测是否为数字类型
+                           if ("number".equals(set.getType())) {
+                               if (StringUtils.isEmpty(value)) {
+                                   value = "0";
+                               } else {
+                                   Boolean numner = isNumner(value);
+                                   if (!numner) {
+                                       err.append("第" + (i + 3) + "行 " + set.getDescription() + " 数字格式不正确!<br/> ");
+                                       break;
+                                   }
+                               }
+
                            }
                            //插入主表数据
                            if (null != mainData) {
@@ -216,11 +227,12 @@ public class ExcelServiceImpl implements ExcelService{
                        detailData = new JSONObject();
                        for (TempletSet set : detail) {
                            //取excel值
-                           if ("true".equals(set.getNecessary())) {
+                           value = data.get(set.getDescription());
+                          /* if ("true".equals(set.getNecessary())) {
                                value = data.get("*" + set.getDescription());
                            } else {
                                value = data.get(set.getDescription());
-                           }
+                           }*/
                            if ("true".equals(set.getNecessary()) && value.equals("")) {
                                detailData = null;
                                //err.append("第" + (i + 3) + "行 " + set.getDescription() + " 必填字段未填写!<br/> ");
@@ -284,6 +296,19 @@ public class ExcelServiceImpl implements ExcelService{
     }
 
 
+    private Boolean isNumner(String str) {
+        for(int i=str.length() - 1; i>=0; i--){
+            int chr=str.charAt(i);
+            if(chr < 48 || chr >  57) {
+                if (chr == 46) {
+                    continue;
+                }
+                return false;
+            }
+
+        }
+        return true;
+    }
 
 
     private boolean validateDateFormat(String date) {
@@ -333,6 +358,7 @@ public class ExcelServiceImpl implements ExcelService{
             switch(cell.getCellType()){
                 case Cell.CELL_TYPE_NUMERIC:{
                     cellValue = String.valueOf(cell.getNumericCellValue());
+                    cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
                     //判断是否为INT类型
                     if (Double.valueOf(cellValue.toString()).intValue() - Double.valueOf(cellValue.toString()) == 0) {
                         return cellValue.toString().substring(0, cellValue.toString().indexOf("."));
@@ -344,14 +370,17 @@ public class ExcelServiceImpl implements ExcelService{
                     if(DateUtil.isCellDateFormatted(cell)){
                         //转换为日期格式YYYY-mm-dd
                         cellValue = cell.getDateCellValue();
+                        cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
                     }else{
                         //数字
                         cellValue = String.valueOf(cell.getNumericCellValue());
+                        cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
                     }
                     break;
                 }
                 case Cell.CELL_TYPE_STRING:{
                     cellValue = cell.getRichStringCellValue().getString();
+                    cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
                     break;
                 }
                 default:
@@ -464,16 +493,15 @@ public class ExcelServiceImpl implements ExcelService{
 
     private CellStyle getCellStyle(SXSSFWorkbook workbook, boolean main) {
         CellStyle style = workbook.createCellStyle();
-        style.setFillBackgroundColor((short) 18);
-        style.setFillPattern(FillPatternType.LEAST_DOTS);
         Font font = workbook.createFont();
         font.setFontName("仿宋_GB2312");// 字体
         font.setFontHeightInPoints((short) 12);// 字号
+        font.setBold(true);
         font.setColor((short)64);// 颜色
         style.setFont(font);
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
         style.setAlignment(HorizontalAlignment.CENTER);
-        style.setFillForegroundColor(HSSFColor.GREEN.index);
-        style.setFillBackgroundColor(main ? HSSFColor.LIGHT_YELLOW.index : HSSFColor.PALE_BLUE.index);
+        style.setFillForegroundColor(main ? HSSFColor.LIGHT_YELLOW.index : HSSFColor.PALE_BLUE.index);
         style.setBorderBottom(BorderStyle.MEDIUM);
         style.setBorderLeft(BorderStyle.MEDIUM);
         style.setBorderRight(BorderStyle.MEDIUM);

+ 2 - 2
applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml

@@ -126,7 +126,7 @@
         pi_custcode,max(pi_custname) custname,max(ifnull(cu_shortname,'')) shortname  from prodinout left join prodiodetail on pi_id=pd_piid left join customer on cu_id=pi_custid
         where
         pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId}
-        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,4) t
+        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,5) t
         )five_profit_,
 	  (
 	    #其它的数据
@@ -143,7 +143,7 @@
         pi_custcode,max(pi_custname) custname,prodinout.companyid from prodinout left join prodiodetail on pi_id=pd_piid left join customer on cu_id=pi_custid
          where
         pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId}
-        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,4) b)a2_
+        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,5) b)a2_
        )
        ) other_profit_
       )

+ 2 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/VendorDTO.java

@@ -27,4 +27,6 @@ public class VendorDTO extends CommonBaseDTO implements Serializable{
 
     private String ve_buyername;
 
+    private String ve_address;
+
 }

+ 10 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Address.java

@@ -19,6 +19,16 @@ public class Address extends CommonBaseEntity implements Serializable {
 
     private String ad_address;
 
+    private Long ad_default;
+
+    public Long getAd_default() {
+        return ad_default;
+    }
+
+    public void setAd_default(Long ad_default) {
+        this.ad_default = ad_default;
+    }
+
     public String getAd_text1() {
         return ad_text1;
     }

+ 2 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java

@@ -113,4 +113,6 @@ public class Vendor extends CommonBaseEntity implements Serializable{
 
     private String ve_buyername;
 
+    private String ve_address;
+
 }

+ 2 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/VendorList.java

@@ -104,6 +104,8 @@ public class VendorList implements Serializable {
 
     private String ve_buyername;
 
+    private String ve_address;
+
     /* 从表字段 */
 
     private Integer vc_veid;

+ 4 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/AddressController.java

@@ -33,6 +33,10 @@ public class AddressController {
         return Result.success();
     }
 
+    @GetMapping("/getDefault")
+    public Result getDefault(){
+        return Result.success(addressService.getDefault());
+    }
 
 
     @PostMapping("/batchDelete")

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/AddressMapper.java

@@ -34,4 +34,6 @@ public interface AddressMapper extends CommonBaseMapper<Address> {
     int getCountFromPurchase(@Param("id") Long id, @Param("companyId") Long companyId);
 
     void setDefault(@Param("id") Long id, @Param("companyId") Long companyId);
+
+    Address getDefault(@Param("companyId") Long companyId);
 }

+ 2 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.document.mapper;
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.document.entities.Bankinformation;
+import com.usoftchina.saas.page.PageDefault;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -25,7 +26,7 @@ public interface BankinformationMapper extends CommonBaseMapper<Bankinformation>
 
     List<ComboDTO> getCombo(@Param("companyId") Long companyId);
     String selectBankcode(@Param("bk_bankcode") String bk_bankcode, @Param("companyId") Long companyId);
-    Long selectBankId(String bk_bankcode);
+    Long selectBankId(@Param("bk_bankcode") String bk_bankcode, @Param("companyId") Long companyId);
 
     void check(Map<String, Object> map);
 

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/AddressService.java

@@ -19,4 +19,6 @@ public interface AddressService extends CommonBaseService<AddressMapper, Address
     DocBaseDTO saveData(Address address);
 
     void setDefault(Long id);
+
+    Address getDefault();
 }

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

@@ -63,6 +63,11 @@ public class AddressServiceImpl extends CommonBaseServiceImpl<AddressMapper, Add
         getMapper().setDefault(id,BaseContextHolder.getCompanyId());
     }
 
+    @Override
+    public Address getDefault(){
+        return getMapper().getDefault(BaseContextHolder.getCompanyId());
+    }
+
     /**
      * 通过主键删除
      * @param id

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

@@ -95,7 +95,7 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
                 }
             }
 
-            Long id = bankinformationMapper.selectBankId(bankinformation.getBk_bankcode());
+            Long id = bankinformationMapper.selectBankId(bankinformation.getBk_bankcode(), BaseContextHolder.getCompanyId());
             if (bktion != null){
                 if (id.equals(bankinformation.getId())){
                     bankinformationMapper.updateByPrimaryKeySelective(bankinformation);

+ 4 - 2
applications/document/document-server/src/main/resources/mapper/AddressMapper.xml

@@ -11,6 +11,7 @@
     <result column="ad_text3" jdbcType="VARCHAR" property="ad_text3" />
     <result column="ad_text4" jdbcType="VARCHAR" property="ad_text4" />
     <result column="ad_text5" jdbcType="VARCHAR" property="ad_text5" />
+    <result column="ad_default" jdbcType="INTEGER" property="ad_default" />
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.document.entities.Address">
     <result column="ad_address" jdbcType="LONGVARCHAR" property="ad_address" />
@@ -215,7 +216,8 @@
     update address set ad_default = 1 where ad_id=#{id} and companyId=#{companyId};
     update address set ad_default = 0 where ad_id!=#{id} and companyId=#{companyId};
   </update>
-
-
+  <select id="getDefault" parameterType="long" resultType="com.usoftchina.saas.document.entities.Address">
+      SELECT * FROM ADDRESS WHERE AD_DEFAULT = 1 AND COMPANYID = #{companyId}
+  </select>
 
 </mapper>

+ 2 - 2
applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -329,8 +329,8 @@
         bk_bankcode = #{bk_bankcode,jdbcType=VARCHAR} and companyId = #{companyId}
     </select>
 
-  <select id="selectBankId" parameterType="java.lang.String" resultType="java.lang.Long">
-        select bk_id from bankinformation where bk_bankcode = #{bk_bankcode,jdbcType=VARCHAR}
+  <select id="selectBankId" resultType="java.lang.Long">
+        select bk_id from bankinformation where bk_bankcode = #{bk_bankcode,jdbcType=VARCHAR} and companyId = #{companyId}
    </select>
 
   <select id="selectamount" parameterType="java.lang.Long" resultType="java.lang.Double">

+ 16 - 4
applications/document/document-server/src/main/resources/mapper/VendorMapper.xml

@@ -31,6 +31,7 @@
         <result column="ve_beginym" property="ve_beginym" jdbcType="INTEGER" />
         <result column="ve_preamount" property="ve_preamount" jdbcType="DOUBLE" />
         <result column="ve_remark" property="ve_remark" jdbcType="VARCHAR" />
+        <result column="ve_address" property="ve_address" jdbcType="VARCHAR" />
     </resultMap>
     <resultMap id="VendorDTOResultMapper" type="com.usoftchina.saas.document.dto.VendorDTO">
         <id column="ve_id" property="id" jdbcType="INTEGER" />
@@ -40,6 +41,7 @@
         <result column="ve_type" property="ve_type" jdbcType="VARCHAR" />
         <result column="ve_status" property="ve_status" jdbcType="VARCHAR" />
         <result column="ve_remark" property="ve_remark" jdbcType="VARCHAR" />
+        <result column="ve_address" property="ve_address" jdbcType="VARCHAR" />
     </resultMap>
 
     <select id="getVendorsByCondition" resultMap="VendorDTOResultMapper">
@@ -73,6 +75,7 @@
         <result column="ve_status" property="ve_status" jdbcType="VARCHAR" />
         <result column="ve_statuscode" property="ve_statuscode" jdbcType="VARCHAR" />
         <result column="ve_leftamount" property="ve_leftamount" jdbcType="INTEGER" />
+        <result column="ve_address" property="ve_address" jdbcType="VARCHAR" />
         <result column="ve_text1" property="ve_text1" jdbcType="VARCHAR" />
         <result column="ve_text2" property="ve_text2" jdbcType="VARCHAR" />
         <result column="ve_text3" property="ve_text3" jdbcType="VARCHAR" />
@@ -112,7 +115,7 @@
         ve_promisedays, ve_taxrate, ve_nsrzh, ve_bankaccount, ve_bankcode, ve_status, ve_statuscode,
         companyId, updaterId, updateTime, ve_text1,
         ve_text2, ve_text3, ve_text4, ve_text5, ve_payamount, ve_leftamount, ve_beginym, ve_preamount,ve_remark,
-        ve_buyerid,ve_buyercode,ve_buyername
+        ve_buyerid,ve_buyercode,ve_buyername,ve_address
     </sql>
     <select id="selectByPrimaryKey" resultMap="VendorResultMapper" parameterType="java.lang.Long" >
         select
@@ -230,7 +233,10 @@
                 ve_buyercode,
             </if>
             <if test="ve_buyername!=null">
-                ve_buyername
+                ve_buyername,
+            </if>
+            <if test="ve_address!=null">
+                ve_address
             </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides="," >
@@ -334,7 +340,10 @@
                 #{ve_buyercode,jdbcType=VARCHAR},
             </if>
             <if test="ve_buyername != null">
-                #{ve_buyername,jdbcType=VARCHAR}
+                #{ve_buyername,jdbcType=VARCHAR},
+            </if>
+            <if test="ve_address != null">
+                #{ve_address,jdbcType=VARCHAR}
             </if>
         </trim>
     </insert>
@@ -432,7 +441,10 @@
                 ve_buyercode = #{ve_buyercode,jdbcType=VARCHAR},
             </if>
             <if test="ve_buyername != null" >
-                ve_buyername = #{ve_buyername,jdbcType=VARCHAR}
+                ve_buyername = #{ve_buyername,jdbcType=VARCHAR},
+            </if>
+            <if test="ve_address != null">
+                ve_address = #{ve_address,jdbcType=VARCHAR}
             </if>
         </set>
         where ve_id = #{id}

+ 1 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java

@@ -809,7 +809,7 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
 
         DocBaseDTO baseDTO = new DocBaseDTO();
         baseDTO.setId(id);
-        baseDTO.setCode(code);
+        baseDTO.setCode(nowverification.getVc_code());
         baseDTO.setName("Verification");
         //日志
         messageLogService.unAudit(baseDTO);

+ 4 - 1
applications/money/money-server/src/main/resources/application.yml

@@ -73,4 +73,7 @@ logging:
   level:
      com.usoftchina.saas.money.mapper : debug
 auth:
-  public-key: auth/pub.key
+  public-key: auth/pub.key
+ribbon:
+  ReadTimeout: 6000
+  ConnectTimeout: 6000

+ 28 - 25
applications/money/money-server/src/main/resources/mapper/ProfitdetailMapper.xml

@@ -25,11 +25,11 @@
 	a.pi_custname,
 	a.cu_type,
 	a.cu_sellername,
-	a.saamount,
-	a.netamount,
-	a.costamount,
-SUM(a.netamount - a.costamount) as profit,
-(SUM(a.netamount - a.costamount)/IFNULL(netamount,SUM(netamount - costamount))) as profitpresent
+	  IFNULL(a.saamount,0) as saamount,
+	  IFNULL(a.netamount,0) as netamount,
+	  IFNULL(a.costamount,0) as costamount,
+	  IFNULL(SUM(a.netamount - a.costamount),0) as profit,
+	  IFNULL((SUM(a.netamount - a.costamount)/IFNULL(a.netamount,SUM(a.netamount - a.costamount))),0) as profitpresent
 
 FROM
 	(
@@ -38,15 +38,15 @@ FROM
 			pi_custname,
 	        cu_type,
 			cu_sellername,
-			SUM(
-				pd_sendprice * (pd_outqty - pd_inqty)
-			) AS saamount,
-			SUM(
-				pd_netprice * (pd_outqty - pd_inqty)
-			) AS netamount,
-			SUM(
-				pd_price * (pd_outqty - pd_inqty)
-			) AS costamount
+	  SUM(
+	  IFNULL(pd_sendprice,0) * (IFNULL(pd_outqty,0) - IFNULL(pd_inqty,0))
+	  ) AS saamount,
+	  SUM(
+	  IFNULL(pd_netprice,0) * (IFNULL(pd_outqty,0) - IFNULL(pd_inqty,0))
+	  ) AS netamount,
+	  SUM(
+	  IFNULL(pd_price,0) * (IFNULL(pd_outqty,0) - IFNULL(pd_inqty,0))
+	  ) AS costamount
 		FROM
 			prodinout,
 			prodiodetail,
@@ -61,13 +61,15 @@ FROM
     </where>
 		and	pi_id = pd_piid
 		AND pi_custid = cu_id and pi_status = '已审核' and
-prodinout.companyid= prodiodetail.companyid and prodiodetail.companyid = prodinout.companyid
+prodinout.companyid= prodiodetail.companyid
 		GROUP BY
 			pi_custcode,
 			pi_custname,
 	        cu_type,
 			cu_sellername
-	) a GROUP BY
+	) a
+	  where saamount + netamount + costamount != 0
+	  GROUP BY
 			a.pi_custcode,
 			a.pi_custname,
 	        a.cu_type,
@@ -84,11 +86,11 @@ prodinout.companyid= prodiodetail.companyid and prodiodetail.companyid = prodino
 		a.pi_custname,
 		a.cu_type,
 		a.cu_sellername,
-		a.saamount,
-		a.netamount,
-		a.costamount,
-		SUM(a.netamount - a.costamount) as profit,
-		(SUM(a.netamount - a.costamount)/IFNULL(netamount,SUM(netamount - costamount))) as profitpresent
+		IFNULL(a.saamount,0) as saamount,
+		IFNULL(a.netamount,0) as netamount,
+		IFNULL(a.costamount,0) as costamount,
+		IFNULL(SUM(a.netamount - a.costamount),0) as profit,
+		IFNULL((SUM(a.netamount - a.costamount)/IFNULL(a.netamount,SUM(a.netamount - a.costamount))),0) as profitpresent
 
 		FROM
 		(
@@ -98,13 +100,13 @@ prodinout.companyid= prodiodetail.companyid and prodiodetail.companyid = prodino
 		cu_type,
 		cu_sellername,
 		SUM(
-		pd_sendprice * (pd_outqty - pd_inqty)
+		IFNULL(pd_sendprice,0) * (IFNULL(pd_outqty,0) - IFNULL(pd_inqty,0))
 		) AS saamount,
 		SUM(
-		pd_netprice * (pd_outqty - pd_inqty)
+		IFNULL(pd_netprice,0) * (IFNULL(pd_outqty,0) - IFNULL(pd_inqty,0))
 		) AS netamount,
 		SUM(
-		pd_price * (pd_outqty - pd_inqty)
+		IFNULL(pd_price,0) * (IFNULL(pd_outqty,0) - IFNULL(pd_inqty,0))
 		) AS costamount
 		FROM
 		prodinout,
@@ -126,7 +128,8 @@ prodinout.companyid= prodiodetail.companyid and prodiodetail.companyid = prodino
 		pi_custname,
 		cu_type,
 		cu_sellername
-		) a GROUP BY
+		) a
+		GROUP BY
 		a.pi_custcode,
 		a.pi_custname,
 		a.cu_type,

+ 1 - 1
applications/purchase/purchase-server/src/main/resources/application.yml

@@ -73,4 +73,4 @@ auth:
   public-key: auth/pub.key
 ribbon:
   ReadTimeout: 6000
-  ConnectTimeout: 2000
+  ConnectTimeout: 6000

+ 1 - 1
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java

@@ -414,7 +414,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         if (null == con) {
             con = "1=1";
         }
-        if (null == req || StringUtils.isEmpty(req.getMode()) || "Main".equals(req.getMode())) {
+        if (null == req || StringUtils.isEmpty(req.getMode()) || "MAIN".equals(req.getMode())) {
             list = prodInOutListMapper.selectProdInOutListByCondition(con, companyId);
         } else {
             list = prodInOutListMapper.selectProdInOutBycondition(con, companyId);

+ 4 - 1
applications/sale/sale-server/src/main/resources/application.yml

@@ -68,4 +68,7 @@ mybatis:
   type-aliases-package: com.usoftchina.saas.commons.po
   mapper-locations: classpath:mapper/*.xml
 auth:
-  public-key: auth/pub.key
+  public-key: auth/pub.key
+ribbon:
+  ReadTimeout: 6000
+  ConnectTimeout: 6000

+ 1 - 1
applications/storage/storage-server/src/main/resources/application.yml

@@ -73,4 +73,4 @@ auth:
   public-key: auth/pub.key
 ribbon:
   ReadTimeout: 6000
-  ConnectTimeout: 2000
+  ConnectTimeout: 6000

+ 0 - 2
base-servers/sms/sms-server/pom.xml

@@ -27,12 +27,10 @@
         <dependency>
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>sms-dto</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>sms-api</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 1 - 1
base-servers/sms/sms-server/src/main/resources/application.yml

@@ -60,7 +60,7 @@ management:
     health:
       show-details: always
 server:
-  port: 8680
+  port: 8700
   tomcat:
     uri-encoding: UTF-8
 info:

+ 12 - 0
base-servers/sms/sms-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-sms-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8700

+ 10 - 0
base-servers/sms/sms-server/src/main/resources/config/application-docker.yml

@@ -0,0 +1,10 @@
+eureka:
+  instance:
+    hostname: saas-sms-server
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server:8500/eureka/
+spring:
+  rabbitmq:
+    virtual-host: docker

+ 17 - 2
framework/core/src/main/java/com/usoftchina/saas/utils/RegexpUtils.java

@@ -12,7 +12,7 @@ public class RegexpUtils {
     private static final String HK_MOBILE_EXP = "^(5|6|8|9)\\d{7}$";
     private static final String EMAIL_EXP = "^\\w+([-.]\\w+)*@\\w+([-]\\w+)*\\.(\\w+([-]\\w+)*\\.)*[a-z]{2,4}$";
     private static final String SPECCHARACTER_EXP = "[\\\\s~·`!!@#¥$%^……&*(())\\\\-——\\\\-_=+【\\\\[\\\\]】{{}}\\\\|、\\\\\\\\;;::‘'“”\\\",,《<。.》>、/??]";
-
+    private static final String SPECIALCHARACTER_EXP = "[`~!@#$%^&*()+=|{}':;',\\[\\]<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
     /**
      * 匹配手机号码
      *
@@ -57,7 +57,7 @@ public class RegexpUtils {
     }
 
     /**
-     * 特殊字符替换
+     * 特殊字符替换含小写字母
      * @param str
      * @return
      */
@@ -66,4 +66,19 @@ public class RegexpUtils {
         Matcher m = p.matcher(str);
         return m.replaceAll("");
     }
+
+
+    /**
+     * 特殊字符替换
+     * @param obj
+     * @return
+     */
+    public static String replaceSpecialCharacter(Object obj){
+        if (StringUtils.isEmpty(obj)) {
+            return "";
+        }
+        Pattern p = Pattern.compile(SPECIALCHARACTER_EXP);
+        Matcher m = p.matcher(obj.toString());
+        return m.replaceAll("");
+    }
 }

+ 1 - 1
frontend/saas-portal-web/src/components/conenter/company.vue

@@ -73,7 +73,7 @@
                     </div>
                     <div>
                         <span v-if = "d.default_" class="gs-btn2 gs-btn3">默认企业</span>
-                        <span v-if="d.saas_" @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
+                        <span v-else @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
                     </div>
                 </div>
             </div>

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

@@ -278,8 +278,8 @@
     "builds": {
         "dev": {
             "server": {
-                "accountCenter":"http://192.168.0.181:8000",
-                "accountEnterprise":"http://192.168.0.181:8000/#/enterprise",
+                "accountCenter":"https://saas-dev.usoftchina.com:5443",
+                "accountEnterprise":"https://saas-dev.usoftchina.com:5443/#/enterprise",
                 "basePath": {
                     "https": "https://saas-api-dev.usoftchina.com:5443",
                     "http": "http://192.168.0.181:8560"
@@ -293,7 +293,7 @@
                 "accountEnterprise": "https://saas-test.usoftchina.com:5443/#/enterprise",
                 "basePath": {
                     "https": "https://saas-api-test.usoftchina.com:5443",
-                    "http": "http://192.168.0.181:8575"
+                    "http": "http://trade-test.usoftchina.com:5443"
                 },
                 "urlPattern": "^\/api\/"
             }

+ 48 - 15
frontend/saas-web/app/view/core/base/ImportWindow.js

@@ -75,6 +75,7 @@ Ext.define('saas.view.core.base.ImportWindow', {
         hidden:true,
         name:'over',
         text:'完成',
+        disabled:true,
         handler:function(b){
             var form = b.ownerCt.ownerCt;
             var id = form.importId;
@@ -96,7 +97,10 @@ Ext.define('saas.view.core.base.ImportWindow', {
                         form.setLoading(false);
                         var res = Ext.decode(response.responseText);
                         if(!res.success){
-                            saas.util.BaseUtil.showErrorToast('导入数据失败:' + res.message);
+                            var upload = form.down('[name=upload]');
+                            upload.reset();
+                            form.dockedItems.items[1].down('[name=over]').setDisabled(true);
+                            form.down('[name=messagedetail]').setHtml(res.message + '</br></br><span style="color:#ff0000">请修改后重新上传</span>');
                         }else{
                             //刷新界面
                             var g = form.ownerCt.down('grid');
@@ -106,8 +110,12 @@ Ext.define('saas.view.core.base.ImportWindow', {
                     },
                     failure: function (response, opts) {
                         form.setLoading(false);
+                        var upload = form.down('[name=upload]');
+                        upload.reset();
+                        form.dockedItems.items[1].down('[name=over]').setDisabled(true);
                         var res = Ext.decode(response.responseText);
                         saas.util.BaseUtil.showErrorToast('导入数据失败: ' + res.message);
+                        
                     }
                 });
             }else{
@@ -160,7 +168,7 @@ Ext.define('saas.view.core.base.ImportWindow', {
                     width: 240,
                     labelWidth:160,
                     buttonOnly:true,
-                    fieldLabel:'客户导入模板下载',
+                    fieldLabel:'导入模板下载',
                     name:'download',
                     xtype: 'filefield',
                     buttonText: '下载模板',
@@ -181,7 +189,8 @@ Ext.define('saas.view.core.base.ImportWindow', {
                     collapsible: false,
                     items: [{
                         xtype : 'fieldcontainer',
-                        html: me.showDetail?me.showDetail:'请配置showDetail属性',
+                        html: '1.下载模板后打开</br>2.查看模板内说明、并修改模板内容,保存后点击下一步按钮</br>3.上传Excel文件,此时会校验文件的字段格式,有问题则需要修改错误数据后再次上传文件</br>4.校验成功后'+
+                        '点击完成按钮将数据进行数据库校验'
                     }]
                 },{
                     hidden:true,
@@ -205,14 +214,38 @@ Ext.define('saas.view.core.base.ImportWindow', {
                         }).on('change', me.onFileChange, me);
                     },
                     listeners: {
-                        afterrender:function(field,ops){
-                            // var fileEl = field.fileInputEl.dom;
-                            // fileEl.setAttribute("accept","image/*");
-                        },
                         change: function(field){
                             var form = field.ownerCt.ownerCt;
                             var myForm = field.ownerCt;
                             var fileEl = field.fileInputEl.dom;
+                            var file = fileEl.files[0];
+                            var type = file.name.substring(file.name.lastIndexOf('.'),file.name.length);
+                            if(type.indexOf('xlsx')<0||type.indexOf('xls')<0){
+                                saas.util.BaseUtil.showErrorToast('文件格式不正确,只能选择xlsx或xls格式的文件进行上传');
+                                field.reset();
+                                return;
+                            }
+
+                            //导入权限校验
+                            var hasPower = false;
+                            Ext.Ajax.request({
+                                url: 'http://192.168.253.41:8560/api/commons/'+form.ownerCt.caller+'/import',
+                                async:false,
+                                method: 'GET',
+                                success: function(response, opts) {
+                                    var data = Ext.decode(response.responseText);
+                                    if(data.success){
+                                        hasPower = true
+                                    }
+                                },
+                                failure: function(response, opts) {}
+                            }); 
+                            if(!hasPower){
+                                field.reset();
+                                saas.util.BaseUtil.showErrorToast('上传失败:没有 导入 权限');
+                                return false;
+                            }
+                            
                             var fd = new FormData();
                             fd.append('file', fileEl.files[0]);
                             fd.append('caller', myForm.ownerCt.ownerCt.caller);
@@ -235,22 +268,21 @@ Ext.define('saas.view.core.base.ImportWindow', {
                                     if(res.success){
                                         var id = res.data;
                                         if(id){
-                                            saas.util.BaseUtil.showSuccessToast('上传成功');
+                                            field.ownerCt.down('[name=messagedetail]').setHtml('文件名: ' + file.name + ' 导入格式校验成功!</br></br>请点击 <span style="color:#35baf6">完成</span> 执行数据库校验');
                                             form.importId = id;
+                                            field.ownerCt.ownerCt.dockedItems.items[1].down('[name=over]').setDisabled(false)
                                         }else{
-                                            field.setValue('');
+                                            field.reset();
                                             saas.util.BaseUtil.showErrorToast('上传失败:后台未返回信息');
                                         }
                                     }else{
-                                        field.setValue('');
-                                        field.setRawValue('');
-                                        field.value = '';
-                                        saas.util.BaseUtil.showErrorToast('上传失败: ' + res.message);
+                                        field.reset();
+                                        field.ownerCt.down('[name=messagedetail]').setHtml(res.message + '</br><span style="color:#ff0000">请修改后重新上传</span>');
                                     }
                                 },
                                 failure: function (response, opts) {
                                     form.setLoading(false);
-                                    field.setValue('');
+                                    field.reset();
                                     var res = Ext.decode(response.responseText);
                                     saas.util.BaseUtil.showErrorToast('上传失败: ' + res.message);
                                 }
@@ -265,8 +297,9 @@ Ext.define('saas.view.core.base.ImportWindow', {
                     name:'message',
                     collapsible: false,
                     items: [{
+                        name:'messagedetail',
                         xtype : 'fieldcontainer',
-                        html: '暂无',
+                        html:'暂无导入信息'
                     }]
                 }]
             }]

+ 456 - 0
frontend/saas-web/app/view/core/dbfind/AddMultiDbfindGridPanel.js

@@ -0,0 +1,456 @@
+Ext.define('saas.view.core.dbfind.AddMultiDbfindGridPanel', {
+    extend: 'Ext.grid.Panel',
+    xtype: 'addmultidbfindgridpanel',
+
+    dataUrl: '',
+    dbSearchFields: [],
+    condition:'',
+    selectRecordArr:[],
+
+    selModel: {
+        checkOnly:true,
+        type:'checkboxmodel',
+        ignoreRightMouseSelection : false,
+        listeners:{
+            select:function(selModel,record,c,d){
+                if(!selModel.noChange){
+                    var selectRecordArr = selModel.view.ownerCt.selectRecordArr;
+                    selectRecordArr.push(record);
+                }
+            },
+            deselect:function(selModel,record){
+                if(!selModel.noChange){
+                    var selectRecordArr = selModel.view.ownerCt.selectRecordArr;
+                    var index = -1;
+                    index = selectRecordArr.findIndex(function(f){
+                        return f.id==record.id
+                    });
+                    if(index>-1){
+                        selectRecordArr.splice(index,1);
+                    }
+                }
+            }
+         }
+    },
+    
+    listeners:{
+        boxready: function(grid, width, height, eOpts) {
+            var store = grid.getStore(),
+            gridBodyBox = grid.body.dom.getBoundingClientRect(),
+            gridBodyBoxHeight = gridBodyBox.height;
+
+            var pageSize = Math.floor(gridBodyBoxHeight / 33);
+
+            store.setPageSize(pageSize);
+        },
+        itemdblclick:function( view, record, item, index, e, eOpts ) {
+            var grid = view.ownerCt;
+            var index = -1;
+            index = grid.selectRecordArr.findIndex(function(f){
+                return f.id==record.id
+            });
+            grid.selModel.noChange = true;
+            if(index==-1){
+                grid.selectRecordArr.push(record);
+                grid.selModel.select(grid.selectRecordArr);
+                // grid.store.loadPage(grid.store.currentPage);
+                grid.updateLayout();
+                grid.view.updateLayout();
+                Ext.resumeLayouts();
+            }else{
+                grid.selectRecordArr.splice(index,1);
+                grid.selModel.deselect(record);
+            }
+            grid.selModel.noChange = false;
+        }
+    },
+
+    initComponent: function() {
+        var me = this;
+        me.selectRecordArr = [];
+        if(me.columns){
+            var fields = me.columns.map(column => column.dataIndex);
+            me.store = Ext.create('Ext.data.Store',{
+                fields:fields,
+                autoLoad: true,
+                pageSize: 6,
+                data: [],
+                proxy: {
+                    type: 'ajax',
+                    url: me.dataUrl,
+                    timeout:8000,
+                    actionMethods: {
+                        read: 'GET'
+                    },
+                    reader: {
+                        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: {
+                    beforeload: function (store, op) {
+                        var condition = me.condition;
+                        if (Ext.isEmpty(condition)) {
+                            condition = [];
+                        }
+                        //添加默认条件
+                        if(me.ownerCt.trigger.defaultCondition) {
+                            condition.push({
+                                type: 'condition',
+                                value: me.ownerCt.trigger.defaultCondition
+                            });
+                        }
+                        Ext.apply(store.proxy.extraParams, {
+                            number: op._page,
+                            size: store.pageSize,
+                            condition: JSON.stringify(condition)
+                        });
+                    }
+                }
+            });
+
+            Ext.apply(me, {
+                dockedItems:[{
+                    xtype:'toolbar',
+                    dock:'top',
+                    items:me.getSearchFields().concat([{
+                        xtype:'button',
+                        text:'查询',
+                        handler:function(b){
+                            var grid = me,items=[];
+                            grid.condition = '';
+                            Ext.Array.each(grid.dbSearchFields,function(f) {
+                                var field = b.ownerCt.down('[name='+f.name+']')
+                                items.push(field);
+                            });
+                            grid.condition = grid.getCondition(items);
+                            grid.store.loadPage(1);
+                            grid.selModel.noChange = true;
+                            grid.selModel.deselectAll();
+                            grid.selModel.select(grid.selectRecordArr);
+                            grid.selModel.noChange = false;
+                        }
+                    },'->',{
+                        text:'确定',
+                        cls:'x-formpanel-btn-blue',
+                        handler:function(b){
+                            var grid = me;//grid
+                            var selectRecordArr = grid.selectRecordArr;
+                            var dbfinds = grid.dbfinds;
+                            //点开放大镜的行
+                            var mainGrid = grid.dbfindtrigger.column.ownerCt.ownerCt;
+                            var rec = mainGrid.selModel.getLastSelected();
+                            var nowRec = mainGrid.store.getData().getByKey(rec.id);
+                            var v = '';
+                            Ext.Array.each(selectRecordArr,function(record,_index) {
+                                    v = v + record.get(dbfinds[0].from)+','
+                            });
+                            if(v.length>0){
+                                nowRec.set(dbfinds[0].to,v.substring(0,v.length-1));
+                            }
+                            mainGrid.up('detailGridField').fireEvent('edit');
+                            grid.ownerCt.close();
+                        }
+                    },{
+                        xtype:'button',
+                        text:'新增',
+                        handler:function(b){
+                            var grid = me;
+                            var trigger = grid.ownerCt.trigger;
+                            saas.util.BaseUtil.openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
+                        },
+                        listeners:{
+                            afterrender:function(b){
+                                var grid = me;
+                                var trigger = grid.ownerCt.trigger;
+                                if(!trigger.addXtype||trigger.addXtype==''){
+                                    b.hide();
+                                }
+                            }
+                        }
+                    }])
+                },{
+                    xtype: 'pagingtoolbar',
+                    dock: 'bottom',
+                    displayInfo: true,
+                    height:32,
+                    style:'padding: 0;',
+                    store: me.store,
+                    items:[{
+                        xtype:'checkbox',
+                        id:'showSelectRecord',
+                        boxLabel:'已选中数据',
+                        handler:function(b){
+                            var grid = me;
+                            if(b.checked){
+                                grid.store.loadData(grid.selectRecordArr);
+                                grid.selModel.noChange = true;
+                                grid.selModel.deselectAll();
+                                grid.selModel.select(grid.selectRecordArr);
+                                grid.selModel.noChange = false;
+                                //刷新展示数据
+                                var dataCount = grid.selectRecordArr.length,msg;
+                                var display = b.ownerCt.child('#displayItem');
+                                if (dataCount === 0) {
+                                    msg = b.ownerCt.emptyMsg;
+                                } else {
+                                    msg = Ext.String.format(
+                                        b.ownerCt.displayMsg,
+                                        1,
+                                        dataCount,
+                                        dataCount
+                                    );
+                                }
+                                display.setText(msg);
+                                b.ownerCt.child('#inputItem').setValue(1);
+                                b.ownerCt.child("#afterTextItem").setText('页,共'+dataCount+'页');
+                            }else{
+                                grid.selModel.noChange = true;
+                                grid.selModel.deselectAll();
+                                grid.selModel.select(grid.selectRecordArr);
+                                grid.selModel.noChange = false;
+                                grid.store.loadPage(1);
+                            }
+                        }
+                    }],
+                    moveFirst: function() {
+                        if(Ext.getCmp('showSelectRecord').checked==false){
+                            if (this.fireEvent('beforechange', this, 1) !== false) {
+                                this.store.loadPage(1);
+                                this.ownerCt.selModel.noChange = true;
+                                this.ownerCt.selModel.deselectAll();
+                                this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
+                                this.ownerCt.selModel.noChange = false;
+                                return true;
+                            }
+                        }
+                        return false;
+                    },
+                    movePrevious: function() {
+                        var me = this,
+                            store = me.store,
+                            prev = store.currentPage - 1;
+                        if(Ext.getCmp('showSelectRecord').checked==false){
+                            if (prev > 0) {
+                                if (me.fireEvent('beforechange', me, prev) !== false) {
+                                    store.previousPage();
+                                    this.ownerCt.selModel.noChange = true;
+                                    this.ownerCt.selModel.deselectAll();
+                                    this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
+                                    this.ownerCt.selModel.noChange = false;
+                                    return true;
+                                }
+                            }
+                        }
+                        return false;
+                    },
+                    moveNext: function() {
+                        var me = this,
+                            store = me.store,
+                            total = me.getPageData().pageCount,
+                            next = store.currentPage + 1;
+                        if(Ext.getCmp('showSelectRecord').checked==false){
+                            if (next <= total) {
+                                if (me.fireEvent('beforechange', me, next) !== false) {
+                                    store.nextPage();
+                                    this.ownerCt.selModel.noChange = true;
+                                    this.ownerCt.selModel.deselectAll();
+                                    this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
+                                    this.ownerCt.selModel.noChange = false;
+                                    return true;
+                                }
+                            }
+                        }
+                        return false;
+                    },
+                    moveLast: function() {
+                        var me = this,
+                            last = me.getPageData().pageCount;
+                        if(Ext.getCmp('showSelectRecord').checked==false){
+                            if (me.fireEvent('beforechange', me, last) !== false) {
+                                me.store.loadPage(last);
+                                this.ownerCt.selModel.noChange = true;
+                                this.ownerCt.selModel.deselectAll();
+                                this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
+                                this.ownerCt.selModel.noChange = false;
+                                return true;
+                            }
+                        }
+                        return false;
+                    },
+                    doRefresh: function() {
+                        var me = this,
+                            store = me.store,
+                            current = store.currentPage;
+                        if(Ext.getCmp('showSelectRecord').checked==false){
+                            if (me.fireEvent('beforechange', me, current) !== false) {
+                                store.loadPage(current);
+                                this.ownerCt.selModel.noChange = true;
+                                this.ownerCt.selModel.deselectAll();
+                                this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
+                                this.ownerCt.selModel.noChange = false;
+                                return true;
+                            }
+                        }
+                        return false;
+                    },
+                    updateInfo: function() {
+                        var me = this,
+                            displayItem = me.child('#displayItem'),
+                            store = me.store,
+                            pageData = me.getPageData(),
+                            count, msg;
+                        if (displayItem) {
+                            count = store.getCount();
+                            if (count === 0) {
+                                msg = me.emptyMsg;
+                            } else {
+                                msg = Ext.String.format(me.displayMsg, pageData.fromRecord, pageData.toRecord, pageData.total);
+                            }
+                            displayItem.setText(msg);
+                        }
+                    }
+                }]
+            });
+        }
+        me.callParent(arguments);
+    },
+
+    getSearchFields: function() {
+        var me = this,
+        searchFields = me.dbSearchFields;
+
+        Ext.Array.each(searchFields, function(f) {
+            f.enableKeyEvents = true;
+            f.listeners = {
+                keydown: function(th, e, eOpts) {
+                    if(e.keyCode == 13) {
+                        me.condition = '', items = [];
+                        Ext.Array.each(searchFields,function(f) {
+                            var field = th.ownerCt.down('[name='+f.name+']')
+                            items.push(field);
+                        });
+                        me.condition = me.getCondition(items);
+                        me.store.loadPage(1);
+                    }
+                }
+            }
+        });
+
+        return searchFields;
+    },
+
+     /**
+     * 获得过滤条件
+     */
+    getCondition: function(items) {
+        var me = this,
+        conditions = [];
+
+        for(var i = 0; i < items.length; i++) {
+            var item = items[i];
+            var field = item.name,
+            func = item.getCondition,
+            value = item.value,
+            condition;
+
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
+                }
+                conditions.push(condition);
+            }
+        };
+        return conditions;
+    },
+
+    getDefaultFieldType: function(xtype) {
+        var type;
+
+        if(Ext.Array.contains(['numberfield'], xtype)) {
+            type = 'number';
+        }else if(Ext.Array.contains(['datefield', 'condatefield'], xtype)) {
+            type = 'date';
+        }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo', 'radiofield', 'radio'], xtype)) {
+            type = 'enum';
+        }else {
+            type = 'string';
+        }
+
+        return type;
+    },
+
+    getDefaultFieldOperation: function(xtype) {
+        var operation;
+
+        if(Ext.Array.contains(['numberfield'], xtype)) {
+            operation = '=';
+        }else if(Ext.Array.contains(['datefield'], xtype)) {
+            operation = '=';
+        }else if(Ext.Array.contains(['condatefield'], xtype)) {
+            operation = 'between';
+        }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo'], xtype)) {
+            operation = 'in';
+        }else {
+            operation = 'like';
+        }
+
+        return operation;
+    },
+
+    /**
+     * 处理部分字段值
+     */
+    getConditionValue: function(xtype, value) {
+        var conditionValue;
+        if(xtype == 'datefield') {
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        }else if(xtype == 'condatefield') {
+            var from = value.from,
+            to = value.to;
+
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
+        }else if(xtype == 'combobox' || xtype == 'combo') {
+            conditionValue = '\'' + value + '\'';
+        }else if(xtype == 'multicombo') {
+            conditionValue = value.map(function(v) {
+                return '\'' + v.value + '\'';
+            }).join(',');
+        }else {
+            conditionValue = value;
+        }
+
+        return conditionValue;
+    }
+});

+ 299 - 0
frontend/saas-web/app/view/core/dbfind/AddMultiDbfindTrigger.js

@@ -0,0 +1,299 @@
+/**
+ *  选中的数据会按照主字段,号隔开
+ */
+Ext.define('saas.view.core.dbfind.AddMultiDbfindTrigger', {
+	extend: 'Ext.form.ComboBox',
+	alias: 'widget.addmultidbfindtrigger',
+	triggerCls: 'x-form-search-trigger',
+    queryMode: 'local',
+    displayField: 'dispaly',
+    valueField: 'value',
+    triggerCls: 'x-form-search-trigger',
+    minChars:1, // 设置用户输入字符多少时触发查询
+    tpl: '',
+    enableKeyEvents:true,
+    initComponent:function() {
+        var me = this;
+        me.store=Ext.create('Ext.data.Store', {
+            fields: ['display','value'],
+            data : [{
+                'display':me.value,
+                'value':me.value
+            }]
+        });
+        this.callParent();
+    },
+    //输入值之后进行模糊查询
+    doQuery: function(queryString, forceAll, rawQuery) {
+        if(!this.fireEvent('beforequery', this)) {
+            return;
+        };
+    	queryString = queryString || '';
+    	var me = this;
+        me.judge(me);
+        var field=[];
+        var sfield='';
+        var dbfinds=me.dbfinds;
+        var dbtpls=me.dbtpls;
+        me.lastQueryValue=queryString;
+        if(queryString.trim()==''){
+            me.collapse( );
+        }else{
+            if(!dbfinds||!dbtpls){
+                me.collapse( );
+            }else{                   
+                //加载tpl模板
+                if(dbtpls.length>0){
+                    var span="";
+                    var width=0;
+                    for(var i=0;i<dbtpls.length;i++){
+                        if(i==0){
+                            span=span+'<span style="width:'+dbtpls[i].width+'px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;float:left;">{'+dbtpls[i].field+'}</span>';//display:block;
+                        }else{
+                            span=span+'<span style="padding:0 0 0 20px;width:'+dbtpls[i].width+'px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;float:left;">{'+dbtpls[i].field+'}</span>';
+                        }
+                        if(dbtpls[i].dbField=="true"){
+                            me.searchFieldArray=dbtpls[i].field;
+                        }
+                        width=width+dbtpls[i].width+20;
+                        field.push(dbtpls[i].field);
+                        sfield=sfield+dbtpls[i].field+',';
+                    }
+                    me.defaultListConfig.minWidth=width+10;
+                    me.defaultListConfig.maxHeight=210;
+                    me.defaultListConfig.autoScroll=true;
+                    me.searchField=sfield.substring(0,sfield.length-1);
+                    me.tpl=Ext.create('Ext.XTemplate',
+                            '<ul style="padding-left: 0px;"><tpl for=".">',
+                            '<li role="option" class="x-boundlist-item" style="list-style:none;">' ,
+                            '<div style="height:30px;">',
+                            ''+span+'',
+                            '</li>',
+                        '</tpl></ul>'
+                    );
+                    me.store.setFields(field);
+                }
+            }
+            //加载数据
+            var data,dbCondition=[];
+            if(me.dbfinds){
+                var dbtplcondition = "";
+                for (let index = 0; index < dbfinds.length; index++) {
+                    var item = dbfinds[index].from;
+                    if(!dbfinds[index].ignore){
+                        dbtplcondition+= "upper("+item+") like '%"+queryString.toUpperCase()+"%' or ";
+                    }
+                }
+                dbtplcondition = "(" + dbtplcondition.substring(0,dbtplcondition.length-4) + ")";
+                if(dbtplcondition.length>0){
+                    dbCondition = [{
+                        type: 'condition',
+                        value:dbtplcondition
+                    }];
+                }
+            }
+            //添加默认条件
+            if(me.defaultCondition) {
+                dbCondition.push({
+                    type: 'condition',
+                    value: me.defaultCondition
+                });
+            }
+            Ext.Ajax.request({
+                url: me.dataUrl,
+                params: {
+                    number: 1,
+                    size: 10,
+                    condition:JSON.stringify(dbCondition),
+                    page: 1,
+                    start: 0,
+                    limit: 10
+                },
+                method: 'GET',
+                success: function(response, opts) {
+                    data = Ext.decode(response.responseText);
+                    data = data.data?data.data.list:[];
+                    if(data!=null && data.length>0 && me.store && field.length>0){
+                        me.store.loadData(data,false);
+                        me.expand();
+                    }else{
+                        me.store.removeAll();
+                        me.collapse();
+                    }
+                },
+                failure: function(response, opts) {}
+            });                
+        }
+        return true;
+    },
+    onTriggerClick:function(f){
+        if(!this.fireEvent('beforetriggerclick', this)) {
+            return;
+        };
+        f.blur(f);
+        //判断dbfindtrigger归属
+        f.judge(f);
+        var panel = f.up('core-tab-panel'),panelEl;
+        if(!f.column&&f.ownerCt.ownerCt.id.indexOf('window-')>-1){
+            panelEl = f.ownerCt.ownerCt.getEl();
+        }else{
+            panelEl = panel.getEl()
+        }
+        var box = panelEl.getBox();
+        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,
+            height: height * 0.8,
+            width: width * 0.8,
+            title: '查找' + f.addTitle,
+            scrollable: true,
+            bodyPadding: 10,
+            constrain: true,
+            closable: true,
+            layout:'fit',
+            renderTo:Ext.getCmp('main-tab-panel').getActiveTab().getEl(),
+            items:[{
+                xtype:'addmultidbfindgridpanel',
+                columns: f.dbColumns,
+                dataUrl: f.dataUrl,
+                dbfinds: f.dbfinds,
+                belong: f.belong,
+                dbSearchFields:f.dbSearchFields?f.dbSearchFields:[],
+                dbfindtrigger:f
+            }]
+        }));
+        win.show();
+    },
+
+    listeners: {
+        // blur:function(f,e){
+        //     var me = f,data;
+        //     var dbfinds = me.dbfinds;
+        //     if(f.value&&f.value!=''){
+        //         //添加默认条件
+        //         var searchField = null;
+        //         var dbCondition = [];
+        //         if(me.defaultCondition) {
+        //             dbCondition.push({
+        //                 type: 'condition',
+        //                 value: me.defaultCondition
+        //             });
+        //         }
+        //         for (let index = 0; index < dbfinds.length; index++) {
+        //             var item = dbfinds[index].to;
+        //             if(item==me.name){
+        //                 searchField = dbfinds[index].from;
+        //             }
+        //         }
+        //         dbCondition.push({
+        //             type: 'condition',
+        //             value: searchField + "='"+me.value+"'"
+        //         });
+        //         Ext.Ajax.request({
+        //             url: me.dataUrl,
+        //             async:false,
+        //             params: {
+        //                 number: 1,
+        //                 size: 1,
+        //                 condition:JSON.stringify(dbCondition),
+        //                 page: 1,
+        //                 start: 0,
+        //                 limit: 10
+        //             },
+        //             method: 'GET',
+        //             success: function(response, opts) {
+        //                 data = Ext.decode(response.responseText);
+        //                 data = data.data?data.data.list:[];
+        //             },
+        //             failure: function(response, opts) {}
+        //         }); 
+        //     }
+        //     if(!f.value||f.value==''||data.length>1||data.length==0){
+        //         if(dbfinds&&dbfinds.length>0){
+        //             if(me.belong=='grid'){
+        //                 for (let index = 0; index < dbfinds.length; index++) {
+        //                     var item = dbfinds[index];
+        //                     var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
+        //                     var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
+        //                     if(nowRec.get(item.to)&&nowRec.get(item.to)!=""){
+        //                         nowRec.set(item.to,null);
+        //                     }
+        //                     if(nowRec.modified){
+        //                         delete nowRec.modified[item.to];
+        //                     }
+        //                     if(JSON.stringify(nowRec.modified)=="{}"){
+        //                         nowRec.dirty = false
+        //                     }
+        //                     if(me.name==item.to){
+        //                         me.column.getEditor().setValue('');
+        //                     }
+        //                 }
+        //             }
+        //         }
+        //     }else if(data.length==1){
+        //         if(dbfinds&&dbfinds.length>0){
+        //             if(me.belong=='grid'){
+        //                 for (let index = 0; index < dbfinds.length; index++) {
+        //                     var item = dbfinds[index];
+        //                     var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
+        //                     var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
+        //                     nowRec.set(item.to,data[0][item.from]);
+        //                     if(me.name==item.to){
+        //                         me.column.getEditor().setValue(data[0][item.from]);
+        //                     }
+        //                 }
+        //             }
+        //         }
+        //     }
+        // },
+        select:function(combo,record,eOpts){
+            var me = combo;
+            var dbfinds = me.dbfinds;
+            if(dbfinds&&dbfinds.length>0){
+                if(me.belong=='grid'){
+                    for (let index = 0; index < dbfinds.length; index++) {
+                        var item = dbfinds[index];
+                        var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
+                        var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
+                        nowRec.set(item.to,record.get(item.from));
+                        if(me.name==item.to){
+                            me.column.getEditor().setValue(record.get(item.from));
+                        }
+                    }
+                }else if(me.belong=='form'){
+                    for (let index = 0; index < dbfinds.length; index++) {
+                        var item = dbfinds[index];
+                        var field = me.ownerCt.down('[name='+item.to+']');
+                        if(field){
+                            var val = record.get(item.from);
+                            if(field.xtype=='dbfindtrigger'){
+                                field.setRawValue(val);
+                                field.value = val;
+                                field.lastTriggerValue=val;
+                            }else{
+                                field.setValue(val);
+                            }    
+                        }
+                    }
+                }
+            }
+        }
+    },
+
+    judge:function(f){
+        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL')>-1){
+            f.belong = 'form';
+            return f.ownerCt.ownerCt
+        }else if(f.ownerCt.xtype.trim().toUpperCase().indexOf('FORMPANEL')>-1){
+            f.belong = 'form';
+            return f.ownerCt
+        }else if(f.column){
+            f.belong = 'grid';
+            return f.column.ownerCt.ownerCt.ownerCt
+        }
+    }
+});

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

@@ -209,7 +209,7 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
                 }
                 dbCondition.push({
                     type: 'condition',
-                    value: searchField + " like '%"+me.value+"%'"
+                    value: searchField + "='"+me.value+"'"
                 });
                 Ext.Ajax.request({
                     url: me.dataUrl,

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

@@ -148,8 +148,8 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
             trigger:f,
             belong:f.ownerCt,  
             modal:true,
-            height: '80%',
-            width: '80%',
+            height: height * 0.8,
+            width: width * 0.8,
             title: '查找' + f.addTitle,
             scrollable: true,
             bodyPadding: 10,
@@ -192,7 +192,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
                 }
                 dbCondition.push({
                     type: 'condition',
-                    value: searchField + " like '%"+me.value+"%'"
+                    value: searchField + "='"+me.value+"'"
                 });
                 Ext.Ajax.request({
                     url: me.dataUrl,

+ 56 - 0
frontend/saas-web/app/view/core/dbfind/types/AccountDbfindTrigger.js

@@ -0,0 +1,56 @@
+/**
+ * 账户资料放大镜
+ */
+Ext.define('saas.view.core.dbfind.types.AccountDbfindTrigger', {
+    extend: 'saas.view.core.dbfind.DbfindTrigger',
+    xtype: 'accountDbfindTrigger',
+
+    //数据接口
+    dataUrl:'/api/account/account/accountRole/list',
+    addXtype: 'sys-account-datalist',
+    addTitle: '账户资料',
+    //联想设置
+    dbtpls:[{
+        field:'realname',width:150
+    }],
+    defaultCondition: "d.status=1",
+    dbSearchFields:[{
+        emptyText:'输入账户名称或真实姓名',
+        xtype : "textfield", 
+        name : "search", 
+        getCondition: function(v) {
+            return "(upper(username) like '%"+v.toUpperCase()+"%' or upper(realname) like '%"+v.toUpperCase()+"%')";
+        },
+        allowBlank : true, 
+        width:300
+    }],
+    //放大镜窗口列表
+    dbColumns:[{
+        text: "账户ID",
+        hidden: true,
+        dataIndex: "id",
+        hidden:true,
+        xtype: "numbercolumn"
+    },{
+        text: "账号名称",
+        dataIndex: "username",
+        hidden:true
+    }, {
+        text: "姓名",
+        dataIndex: "realname",
+        width: 110
+    }, {
+        text: "联系电话",
+        dataIndex: "mobile",
+        width: 110,
+    }, {
+        text: "邮箱",
+        dataIndex: "email",
+        width: 250,
+    }, {
+        text: "岗位角色",
+        dataIndex: "roleNames",
+        width: 200
+    }]
+
+});

+ 105 - 0
frontend/saas-web/app/view/core/dbfind/types/ProductAddMultiDbfindTrigger.js

@@ -0,0 +1,105 @@
+/**
+ * 物料资料放大镜(多选)
+ */
+Ext.define('saas.view.core.dbfind.types.ProductAddMultiDbfindTrigger', {
+    extend: 'saas.view.core.dbfind.AddMultiDbfindTrigger',
+    xtype: 'productAddMultiDbfindTrigger',
+
+    //数据接口
+    dataUrl: '/api/document/product/list',
+    addXtype: 'document-product-formpanel',
+    addTitle: '物料资料',
+    //联想设置
+    dbtpls: [{
+        field: 'pr_code',
+        width: 150
+    }, {
+        field: 'pr_detail',
+        width: 200
+    }],
+    defaultCondition: "pr_statuscode='ENABLE'",
+    dbSearchFields: [{
+        emptyText: '输入物料编号、名称或规格',
+        width: 200,
+        xtype: "textfield",
+        name: "search",
+        allowBlank: true,
+        width:300,
+        getCondition: function (v) {
+            return "(upper(pr_code) like '%" + v.toUpperCase() + "%' or upper(pr_detail) like '%" + v.toUpperCase() + "%' or upper(pr_spec) like '%" + v.toUpperCase() + "%')";
+        }
+    }],
+    //窗口列设置
+    dbColumns: [{
+        text: "物料ID",
+        hidden: true,
+        dataIndex: "id"
+    }, {
+        text: "物料编号",       
+        dataIndex: "pr_code",
+        width: 150
+    },{
+        text: "类型",
+        dataIndex: "pr_kind",
+        width: 110
+    },{
+        text: "物料名称",
+        width: 200,
+        dataIndex: "pr_detail"
+    }, {
+        text : "型号", 
+        dataIndex : "pr_orispeccode", 
+        width : 150.0
+    }, {
+        text : "规格", 
+        dataIndex : "pr_spec", 
+        width : 150.0
+    },{
+        text: "品牌",
+        dataIndex: "pr_brand",
+        width: 110
+    },{
+        text: "库存",
+        dataIndex: "po_onhand",
+        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);
+        },
+    },{
+        text: "单位",
+        dataIndex: "pr_unit",
+        width: 80
+    }, {
+        text: "采购提前期",
+        dataIndex: "pr_leadtime",
+        hidden: true
+    }, {
+        text: "仓库id",
+        dataIndex: "pr_whid",
+        hidden: true
+    }, {
+        text: "仓库编号",
+        dataIndex: "pr_whcode",
+        hidden: true
+    }, {
+        text: "仓库",
+        dataIndex: "pr_whname",
+        width: 200,
+        hidden: true
+    }, {
+        text: "最新采购单价",
+        dataIndex: "pr_purcprice",
+        xtype: 'numbercolumn',
+        hidden:true
+    }, {
+        text: "最新出货单价",
+        dataIndex: "pr_saleprice",
+        xtype: 'numbercolumn',
+        hidden:true
+    }]
+
+});

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

@@ -61,7 +61,7 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },{
@@ -95,5 +95,10 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
         dataIndex: "pr_saleprice",
         xtype: 'numbercolumn',
         hidden:true
+    }, {
+        text: "成本单价",
+        dataIndex: "po_avprice",
+        xtype: 'numbercolumn',
+        hidden:true
     }]
 });

+ 6 - 1
frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js

@@ -68,7 +68,7 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     },{
@@ -102,6 +102,11 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
         dataIndex: "pr_saleprice",
         xtype: 'numbercolumn',
         hidden:true
+    }, {
+        text: "成本单价",
+        dataIndex: "po_avprice",
+        xtype: 'numbercolumn',
+        hidden:true
     }]
 
 });

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

@@ -61,7 +61,7 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
             }
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

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

@@ -62,13 +62,13 @@ Ext.define('saas.view.core.form.FormPanelController', {
         // 单据状态为录入状态(未审核)
         main[form._statusCodeField] = auditTexts.unAuditCode;
         main[form._statusField] = auditTexts.unAuditText;
-        //录入人,录入日期,审核人,审核日期清空
-        main['creatorId'] = undefined;
-        main['creatorName'] = undefined;
-        main['createTime'] = undefined;
-        main['updaterId'] = undefined;
-        main['updaterName'] = undefined;
-        main['updateTime'] = undefined;
+        //重设录入人,录入日期,审核人,审核日期
+        main['creatorId'] = saas.util.BaseUtil.getCurrentUser().id;
+        main['creatorName'] = saas.util.BaseUtil.getCurrentUser().realname;
+        main['createTime'] = Ext.Date.format(new Date(), 'Y-m-d H:i:s');
+        main['updaterId'] = saas.util.BaseUtil.getCurrentUser().id;
+        main['updaterName'] = saas.util.BaseUtil.getCurrentUser().realname;
+        main['updateTime'] = Ext.Date.format(new Date(), 'Y-m-d H:i:s');
         main[form._auditmanField] = undefined;
         main[form._auditdateField] = undefined;
 

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

@@ -81,13 +81,13 @@ Ext.define('saas.view.core.report.ReportPanel', {
                                 items: [{
                                     text: 'Excel xlsx',
                                     cfg: {
-                                        type: 'excel07',
+                                        type: 'excel',
                                         ext: 'xlsx'
                                     }
                                 }, {
                                     text: 'Excel xlsx (包含分组合计)',
                                     cfg: {
-                                        type: 'excel07',
+                                        type: 'excel',
                                         ext: 'xlsx',
                                         includeGroups: true,
                                         includeSummary: true
@@ -334,11 +334,11 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     renderer: function (v) {
                         var arr = (v + '.').split('.');
                         var xr = (new Array(arr[1].length)).fill('0');
-                        var format = '0.' + xr.join();
+                        var format = '0.' + xr.join('');
                         return Ext.util.Format.number(v, format);
                     },
                     exportStyle:{
-                        format: 'Total',
+                        format: c.exportFormat || 'Total',
                         alignment: {
                             horizontal: 'Right'
                         }

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

@@ -37,7 +37,9 @@ Ext.define('saas.view.core.report.ReportPanelController', {
         grid.store.load(function(records, operation, success) {
             if(btn.cfg.isPrint){
                 me.printHtml(grid.getDocumentData(cfg));
-            }else  grid.saveDocumentAs(cfg);
+            }else  {
+                grid.saveDocumentAs(cfg);
+            }
             grid.store.exportPageSize = null;
             grid.store.exportNumber = null;
             grid.store.load(function(records, operation, success) {

+ 1 - 1
frontend/saas-web/app/view/document/address/DataList.js

@@ -7,7 +7,7 @@ Ext.define('saas.view.document.address.DataList', {
     viewModel: 'document-address-datalist',
     defaultType:'address',
     windowType:'document-address-window',
-    _openUrl:'api/',
+    _openUrl:'/api/document/address/setDefault',
     tbar: ['->',{
         xtype:'button',
         text:'新增',

+ 2 - 2
frontend/saas-web/app/view/document/bankinformation/DataList.js

@@ -41,7 +41,7 @@ Ext.define('saas.view.document.bankinformation.DataList', {
                 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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 },
                 flex: 1
@@ -52,7 +52,7 @@ Ext.define('saas.view.document.bankinformation.DataList', {
                 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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 },
                 flex: 1

+ 2 - 2
frontend/saas-web/app/view/document/bankinformation/Window.js

@@ -26,7 +26,7 @@ Ext.define('saas.view.document.bankinformation.Window', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             },
             flex: 1
@@ -37,7 +37,7 @@ Ext.define('saas.view.document.bankinformation.Window', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             },
             flex: 1

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

@@ -42,7 +42,7 @@ Ext.define('saas.view.document.bom.FormController', {
                     }) ;   
                 }
             },
-            'productMultiDbfindTrigger[name=bd_replace]':{
+            'productAddMultiDbfindTrigger[name=bd_replace]':{
                 beforerender:function(f){
                     Ext.apply(f,{
                         //放大镜赋值设置

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

@@ -169,7 +169,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
                 renderer : function(v) {
                     var arr = (v + '.').split('.');
                     var xr = (new Array(arr[1].length)).fill('0');
-                    var format = '0.' + xr.join();
+                    var format = '0.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -187,7 +187,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
                     queryMode : "local", 
                     store : null, 
                     valueField : "value", 
-                    xtype : "productMultiDbfindTrigger"
+                    xtype : "productAddMultiDbfindTrigger"
                 }
             }, {
                 text : "备注", 

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

@@ -119,7 +119,7 @@ Ext.define('saas.view.document.customer.BasePanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

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

@@ -38,7 +38,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         xtype: 'textfield',
         name: 'cu_shortname',
         fieldLabel: '客户简称',
-        allowBlank: true,
+        allowBlank: false,
         columnWidth: 0.25
     },{
         xtype: 'textfield',
@@ -102,7 +102,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     },{ 
@@ -117,7 +117,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },   
     },{
@@ -149,7 +149,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -185,7 +185,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         allowBlank : true, 
         columnWidth : 0.25
     },{
-        xtype:'textfield',
+        xtype:'hidden',
         name : "cu_uu", 
         fieldLabel : "客户UU", 
         allowBlank : true, 
@@ -203,7 +203,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     },{

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

@@ -102,7 +102,7 @@ Ext.define('saas.view.document.product.BasePanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                var format = '0.' + xr.join();
+                var format = '0.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         },{
@@ -117,7 +117,7 @@ Ext.define('saas.view.document.product.BasePanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -128,7 +128,7 @@ Ext.define('saas.view.document.product.BasePanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-                var format = '0.' + xr.join();
+                var format = '0.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -139,7 +139,7 @@ Ext.define('saas.view.document.product.BasePanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-                var format = '0.' + xr.join();
+                var format = '0.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

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

@@ -65,6 +65,15 @@ Ext.define('saas.view.document.product.FormController', {
         // 单据状态为录入状态(未审核)
         main[form._statusCodeField] = auditTexts.unAuditCode;
         main[form._statusField] = auditTexts.unAuditText;
+        //重设录入人,录入日期,审核人,审核日期
+        main['creatorId'] = saas.util.BaseUtil.getCurrentUser().id;
+        main['creatorName'] = saas.util.BaseUtil.getCurrentUser().realname;
+        main['createTime'] = Ext.Date.format(new Date(), 'Y-m-d H:i:s');
+        main['updaterId'] = saas.util.BaseUtil.getCurrentUser().id;
+        main['updaterName'] = saas.util.BaseUtil.getCurrentUser().realname;
+        main['updateTime'] = Ext.Date.format(new Date(), 'Y-m-d H:i:s');
+        main[form._auditmanField] = undefined;
+        main[form._auditdateField] = undefined;
 
         for(var k in main) {
             // 主表日期改为当前日期

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

@@ -272,14 +272,14 @@ Ext.define('saas.view.document.product.FormPanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                var format = '0.' + xr.join();
+                var format = '0.' + 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 > 3 ? 3 : arr[1].length)).fill('0');
-                var format = '0.' + xr.join();
+                var format = '0.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         },
@@ -301,7 +301,7 @@ Ext.define('saas.view.document.product.FormPanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-                var format = '0.' + xr.join();
+                var format = '0.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             },
         },
@@ -315,14 +315,14 @@ Ext.define('saas.view.document.product.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }]

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

@@ -113,7 +113,7 @@ Ext.define('saas.view.document.vendor.BasePanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

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

@@ -38,7 +38,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         xtype: 'textfield',
         name: 've_shortname',
         fieldLabel: '供应商简称',
-        allowBlank: true,
+        allowBlank: false,
         columnWidth: 0.25
     },{
         xtype: 'textfield',
@@ -108,7 +108,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     },{ 
@@ -123,7 +123,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },    
     },{
@@ -165,7 +165,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         allowBlank : true, 
         columnWidth : 0.25
     },{
-        xtype:'textfield',
+        xtype:'hidden',
         name : "ve_uu", 
         fieldLabel : "供应商UU", 
         allowBlank : true, 
@@ -191,7 +191,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },  
     },
@@ -210,6 +210,12 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         name : "ve_buyerid", 
         fieldLabel : "采购员ID",
         defaultValue:saas.util.BaseUtil.getCurrentUser().id
+    },{
+        xtype : "textfield", 
+        name : "ve_address", 
+        fieldLabel : "地址", 
+        allowBlank : true, 
+        columnWidth : 1
     },{
         fieldLabel : "备注", 
         xtype:'textfield',

+ 21 - 1
frontend/saas-web/app/view/home/HomeModel.js

@@ -82,7 +82,17 @@ Ext.define('saas.view.home.HomeModel', {
                     var p = Ext.getCmp('infocard');
                         p && p.setLoading(false);
                     var sum = Ext.util.Format.number(s.sum('y'), '0.00') || 0;
-                    Ext.getCmp('home').getViewModel().set('month_sale_amount', sum)
+                    Ext.getCmp('home').getViewModel().set('month_sale_amount', sum);
+
+                    s.each(function(r) {
+                        var z = r.get('z'),
+                        x = r.get('x');
+                        if(!z) {
+                            r.set('z', x.length > 3 ? (x.substr(0,3) + '...') : x);
+                        }else {
+                            r.set('z', z.length > 3 ? (z.substr(0,3) + '...') : z);
+                        }
+                    });
                 }
             }
         },
@@ -349,6 +359,16 @@ Ext.define('saas.view.home.HomeModel', {
                 load: function(s, d) {
                     var p = Ext.getCmp('profit_detail');
                         p && p.setLoading(false);
+
+                    s.each(function(r) {
+                        var z = r.get('z'),
+                        x = r.get('x');
+                        if(!z) {
+                            r.set('z', x.length > 3 ? (x.substr(0,3) + '...') : x);
+                        }else {
+                            r.set('z', z.length > 3 ? (z.substr(0,3) + '...') : z);
+                        }
+                    });
                 }
             } 
         },

+ 21 - 21
frontend/saas-web/app/view/home/charts/KeyData.js

@@ -105,27 +105,27 @@ Ext.define('saas.view.home.charts.KeyData', {
                 itemclick: function(th, record, item, index, e, eOpts) {
                     saas.util.BaseUtil.openTab(record.get('viewType'), record.get('title'), record.get('id'));
                 },
-                itemmouseenter: function(th, record, item, index, e, eOpts) {
-                    var tip = th.tip;
-                    if(!tip) {
-                        var tip = Ext.create('Ext.tip.ToolTip', {
-                            target: th.el,
-                            minWidth: 100,
-                            title: record.get('label'),
-                            html: record.get('value'),
-                            showOnTap: true,
-                            trackMouse: true
-                        });
-                        th.tip = tip;
-                        tip.showAt(e.getXY());
-                    }
-                },
-                itemmouseleave: function(th, record, item, index, e, eOpts) {
-                    var tip = th.tip;
-                    if(tip) {
-                        th.tip = Ext.destroy(th.tip);
-                    }
-                }
+                // itemmouseenter: function(th, record, item, index, e, eOpts) {
+                //     var tip = th.tip;
+                //     if(!tip) {
+                //         var tip = Ext.create('Ext.tip.ToolTip', {
+                //             target: th.el,
+                //             minWidth: 100,
+                //             title: record.get('label'),
+                //             html: record.get('value'),
+                //             showOnTap: true,
+                //             trackMouse: true
+                //         });
+                //         th.tip = tip;
+                //         tip.showAt(e.getXY());
+                //     }
+                // },
+                // itemmouseleave: function(th, record, item, index, e, eOpts) {
+                //     var tip = th.tip;
+                //     if(tip) {
+                //         th.tip = Ext.destroy(th.tip);
+                //     }
+                // }
             }
         });
 

+ 4 - 4
frontend/saas-web/app/view/home/charts/MonthIO.js

@@ -51,10 +51,10 @@ Ext.define('saas.view.home.charts.MonthIO', {
                     },
                     grid: {
                         even: {
-                            stroke: '#F7F8FA'
+                            stroke: '#E2E7ED'
                         },
                         odd: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         }
                     },
                     style: {
@@ -70,7 +70,7 @@ Ext.define('saas.view.home.charts.MonthIO', {
                         fillStyle: '#485465'
                     },
                     style: {
-                        fill: '#F7F8FA',
+                        fill: '#E2E7ED',
                         strokeStyle: 'transparent'
                     },
                 }],
@@ -102,6 +102,6 @@ Ext.define('saas.view.home.charts.MonthIO', {
         var fieldIndex = Ext.Array.indexOf(item.series.getYField(), item.field),
         type = item.series.getTitle()[fieldIndex];
 
-        tooltip.setHtml(type + record.get('x') + record.get(item.field));
+        tooltip.setHtml(type + record.get('x') + ': ' + Ext.util.Format.number(record.get(item.field), '0,000.00') + '万元');
     },
 });

+ 4 - 4
frontend/saas-web/app/view/home/charts/MonthPurchase.js

@@ -30,7 +30,7 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                         fillStyle: '#485465',
                     },
                     style: {
-                        fill: '#F7F8FA',
+                        fill: '#E2E7ED',
                         strokeStyle: 'transparent'
                     },
                     renderer: me.onCategoryLabelRender
@@ -41,10 +41,10 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                     adjustByMajorUnit: true,
                     grid: {
                         even: {
-                            stroke: '#F7F8FA'
+                            stroke: '#E2E7ED'
                         },
                         odd: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         }
                     },
                     label: {
@@ -85,7 +85,7 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
     },
 
     onBarTipRender: function (tooltip, record, item) {
-        tooltip.setHtml(record.get('x') + ': ' + record.get('y') + '万元');
+        tooltip.setHtml(record.get('x') + ': ' + Ext.util.Format.number(record.get('y'), '0,000.00') + '万元');
     },
 
 });

+ 2 - 2
frontend/saas-web/app/view/home/charts/MonthSale.js

@@ -64,7 +64,7 @@ Ext.define('saas.view.home.charts.MonthSale', {
                     angleField: 'y',
                     donut: 55,
                     label: {
-                        field: 'x',
+                        field: 'z',
                         display: 'inside',
                         renderer: me.onLabelRender,
                         color: '#fff',
@@ -102,6 +102,6 @@ Ext.define('saas.view.home.charts.MonthSale', {
     },
 
     onSeriesTooltipRender: function (tooltip, record, item) {
-        tooltip.setHtml(record.get('x') + ': ' + record.get('y'));
+        tooltip.setHtml(record.get('x') + ': ' + Ext.util.Format.number(record.get('y'), '0,000.00'));
     }
 });

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

@@ -23,14 +23,14 @@ Ext.define('saas.view.home.charts.ProfitDetail', {
                 },
                 axes: [{
                     type: 'category',
-                    fields: ['x'],
+                    fields: ['z'],
                     position: 'bottom',
                     label: {
                         fontSize: '12px',
                         fillStyle: '#485465',
                     },
                     style: {
-                        fill: '#F7F8FA',
+                        fill: '#E2E7ED',
                         strokeStyle: 'transparent'
                     },
                     renderer: me.onCategoryLabelRender
@@ -41,10 +41,10 @@ Ext.define('saas.view.home.charts.ProfitDetail', {
                     adjustByMajorUnit: true,
                     grid: {
                         even: {
-                            stroke: '#F7F8FA'
+                            stroke: '#E2E7ED'
                         },
                         odd: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         }
                     },
                     label: {
@@ -60,7 +60,7 @@ Ext.define('saas.view.home.charts.ProfitDetail', {
                 }],
                 series: [{
                     type: 'bar',
-                    xField: 'x',
+                    xField: 'z',
                     yField: ['y'],
                     bind: {
                         style: {
@@ -81,11 +81,11 @@ Ext.define('saas.view.home.charts.ProfitDetail', {
     },
 
     onCategoryLabelRender: function(axis, label, layoutContent, lastLabel) {
-        return label.substr(0,2) + '...';
+        return label;
     },
 
     onBarTipRender: function (tooltip, record, item) {
-        tooltip.setHtml(record.get('x') + ': ' + record.get('y') + '万元');
+        tooltip.setHtml(record.get('x') + ': ' + Ext.util.Format.number(record.get('y'), '0,000.00') + '万元');
     },
 
 });

+ 4 - 4
frontend/saas-web/app/view/home/charts/PurchaseTrend.js

@@ -34,7 +34,7 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
                         fillStyle: '#485465'
                     },
                     style: {
-                        fill: '#F7F8FA',
+                        fill: '#E2E7ED',
                         strokeStyle: 'transparent'
                     },
                     renderer: me.categoryRender
@@ -44,10 +44,10 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
                     position: 'left',
                     grid: {
                         even: {
-                            stroke: '#F7F8FA'
+                            stroke: '#E2E7ED'
                         },
                         odd: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         }
                     },
                     label: {
@@ -88,7 +88,7 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
     },
 
     onBarTipRender: function (tooltip, record, item) {
-        tooltip.setHtml(record.get('x') + '月: ' + record.get('y') + '万元');
+        tooltip.setHtml(record.get('x') + '月: ' + Ext.util.Format.number(record.get('y'), '0,000.00') + '万元');
     },
 
     categoryRender: function(axis, label, layoutContext, lastLabel) {

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

@@ -40,7 +40,7 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                         fillStyle: '#485465',
                     },
                     style: {
-                        fill: '#F7F8FA',
+                        fill: '#E2E7ED',
                         strokeStyle: 'transparent'
                     },
                     renderer: me.categoryRender
@@ -50,10 +50,10 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                     position: 'left',
                     grid: {
                         even: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         },
                         odd: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         }
                     },
                     label: {
@@ -173,7 +173,7 @@ Ext.define('saas.view.home.charts.SaleTrend', {
     },
 
     onSeriesTooltipRender: function (tooltip, record, item) {
-        tooltip.setHtml(record.get('x') + '月: ' + record.get(item.series.getYField()) + '万元');
+        tooltip.setHtml(record.get('x') + '月: ' + Ext.util.Format.number(record.get(item.series.getYField()), '0,000.00') + '万元');
     },
 
     categoryRender: function(axis, label, layoutContext, lastLabel) {

+ 4 - 4
frontend/saas-web/app/view/home/charts/StockAmount.js

@@ -34,7 +34,7 @@ Ext.define('saas.view.home.charts.StockAmount', {
                         fillStyle: '#485465'
                     },
                     style: {
-                        fill: '#F7F8FA',
+                        fill: '#E2E7ED',
                         strokeStyle: 'transparent'
                     },
                     renderer: me.categoryRender
@@ -44,10 +44,10 @@ Ext.define('saas.view.home.charts.StockAmount', {
                     position: 'left',
                     grid: {
                         even: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         },
                         odd: {
-                            stroke: '#F7F8FA',
+                            stroke: '#E2E7ED',
                         }
                     },
                     label: {
@@ -82,7 +82,7 @@ Ext.define('saas.view.home.charts.StockAmount', {
     },
 
     onBarTipRender: function (tooltip, record, item) {
-        tooltip.setHtml(record.get('x') + '月: ' + record.get('y') + '万元');
+        tooltip.setHtml(record.get('x') + '月: ' + Ext.util.Format.number(record.get('y'), '0,000.00') + '万元');
     },
 
     categoryRender: function(axis, label, layoutContext, lastLabel) {

+ 3 - 3
frontend/saas-web/app/view/home/infoCardList/Payment.js

@@ -75,7 +75,7 @@ Ext.define('saas.view.home.infoCardList.Payment', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -89,7 +89,7 @@ Ext.define('saas.view.home.infoCardList.Payment', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
         width: 110
@@ -109,7 +109,7 @@ Ext.define('saas.view.home.infoCardList.Payment', {
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }],

+ 3 - 3
frontend/saas-web/app/view/home/infoCardList/PurchaseIn.js

@@ -71,7 +71,7 @@ Ext.define('saas.view.home.infoCardList.PurchaseIn', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -87,7 +87,7 @@ Ext.define('saas.view.home.infoCardList.PurchaseIn', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -106,7 +106,7 @@ Ext.define('saas.view.home.infoCardList.PurchaseIn', {
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

+ 4 - 4
frontend/saas-web/app/view/home/infoCardList/Recment.js

@@ -76,7 +76,7 @@ Ext.define('saas.view.home.infoCardList.Recment', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -87,7 +87,7 @@ Ext.define('saas.view.home.infoCardList.Recment', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -98,7 +98,7 @@ Ext.define('saas.view.home.infoCardList.Recment', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -117,7 +117,7 @@ Ext.define('saas.view.home.infoCardList.Recment', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

+ 4 - 4
frontend/saas-web/app/view/home/infoCardList/SaleOut.js

@@ -67,7 +67,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -78,7 +78,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -89,7 +89,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -100,7 +100,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {

+ 3 - 3
frontend/saas-web/app/view/home/infoCardList/UnauditCheckIn.js

@@ -75,7 +75,7 @@ Ext.define('saas.view.home.infoCardList.UnauditCheckIn', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
@@ -89,7 +89,7 @@ Ext.define('saas.view.home.infoCardList.UnauditCheckIn', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
         width: 110
@@ -109,7 +109,7 @@ Ext.define('saas.view.home.infoCardList.UnauditCheckIn', {
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }],

+ 4 - 4
frontend/saas-web/app/view/home/infoCardList/UnauditSaleOut.js

@@ -73,7 +73,7 @@ Ext.define('saas.view.home.infoCardList.UnauditSaleOut', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -84,7 +84,7 @@ Ext.define('saas.view.home.infoCardList.UnauditSaleOut', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -95,7 +95,7 @@ Ext.define('saas.view.home.infoCardList.UnauditSaleOut', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -114,7 +114,7 @@ Ext.define('saas.view.home.infoCardList.UnauditSaleOut', {
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

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

@@ -134,14 +134,14 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {

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

@@ -106,7 +106,7 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             },
         }, {

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

@@ -125,14 +125,14 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {

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

@@ -59,7 +59,7 @@ Ext.define('saas.view.money.othreceipts.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {

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

@@ -124,7 +124,7 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -174,7 +174,7 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

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

@@ -125,14 +125,14 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {

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

@@ -37,7 +37,7 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {
@@ -51,7 +51,7 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         },{

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

@@ -121,7 +121,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -171,7 +171,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

+ 12 - 11
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -63,7 +63,8 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
     },{
         xtype: 'textfield',
         name: 'pb_manname',
-        fieldLabel: '付款人'
+        fieldLabel: '付款人',
+        defaultValue: saas.util.BaseUtil.getCurrentUser().realname
     }, {
         xtype: 'hidden',
         name: 'pb_pdamount',
@@ -131,14 +132,14 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -235,14 +236,14 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -254,14 +255,14 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -273,14 +274,14 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -296,14 +297,14 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

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

@@ -38,7 +38,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {
@@ -52,7 +52,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         },{

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

@@ -141,7 +141,7 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             },
         } ,{

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

@@ -70,7 +70,8 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
     }, {
         xtype: "textfield",
         name: "rb_manname",
-        fieldLabel: "收款人"
+        fieldLabel: "收款人",
+        defaultValue: saas.util.BaseUtil.getCurrentUser().realname
     }, {
         xtype: "numberfield",
         name: "rb_discounts",
@@ -135,14 +136,14 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -242,14 +243,14 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -261,14 +262,14 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -280,14 +281,14 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -303,14 +304,14 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             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();
+                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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }]

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

@@ -59,7 +59,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {

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

@@ -132,7 +132,7 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {

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

@@ -46,37 +46,39 @@ Ext.define('saas.view.money.report.AccountBalance', {
     }, {
         text: '收入',
         dataIndex: 'inamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '支出',
         dataIndex: 'outamount',
         xtype: 'numbercolumn',
+        exportFormat: '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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },
@@ -88,7 +90,7 @@ Ext.define('saas.view.money.report.AccountBalance', {
     //     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();
+    //         var format = '0,000.' + xr.join('');
     //         return Ext.util.Format.number(v, format);
     //     }
     // },

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

@@ -89,23 +89,25 @@ Ext.define('saas.view.money.report.AccountDetails', {
     }, {
         text: '本期核销金额',
         dataIndex: 'sl_amount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 130,
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '总金额',
         dataIndex: 'total',
         xtype: 'numbercolumn',
+        exportFormat: '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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }],

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

@@ -74,28 +74,31 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
     }, {
         text: '数量',
         xtype: 'numbercolumn',
+        exportFormat: 'Quantity',
         dataIndex: 'qty',
         width: 110,
         renderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '单价',
         dataIndex: 'pd_orderprice',
+        exportFormat: 'Price',
         xtype: 'numbercolumn',
         width: 110,
         renderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '税率',
         dataIndex: 'pd_taxrate',
+        exportFormat: 'Integer',
         xtype: 'numbercolumn',
         width: 80,
         renderer: function(v) {
@@ -104,50 +107,51 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
     }, {
         text: '金额',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         width: 110,
         dataIndex: 'pd_total',
-        xtype: 'numbercolumn',
         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();
+            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();
+        //     var format = '0,000.' + xr.join('');
         //     return Ext.util.Format.number(v, format);
         // }
     }, {
         text: '不含税单价',
         width: 110,
         dataIndex: 'pd_netprice',
+        exportFormat: 'Price',
         xtype: 'numbercolumn',
         renderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '不含税金额',
         width: 110,
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'pd_nettotal',
-        xtype: 'numbercolumn',
         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();
+            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();
+        //     var format = '0,000.' + xr.join('');
         //     return Ext.util.Format.number(v, format);
         // }
     }, {

+ 6 - 4
frontend/saas-web/app/view/money/report/OtherIODetail.js

@@ -82,35 +82,37 @@ Ext.define('saas.view.money.report.OtherIODetail', {
     }, {
         text: '收入',
         dataIndex: 'bl_income',
+        exportFormat: 'Amount',
         width: 150,
         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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '支出',
         dataIndex: 'bl_spending',
+        exportFormat: 'Amount',
         width: 150,
         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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

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

@@ -61,58 +61,58 @@ Ext.define('saas.view.money.report.PayDetail', {
     },{
         text: '增加应付',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'pd_addpay',
-        xtype: 'numbercolumn',
         width: 180,
         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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '增加预付',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'pd_addpre',
-        xtype: 'numbercolumn',
         width: 180,
         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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '应付余额',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'pd_remain',
-        xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
         summaryType: 'last',
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
         mySummaryRenderer: function(grid, column, datas) {

+ 10 - 6
frontend/saas-web/app/view/money/report/ProfitDetail.js

@@ -53,59 +53,63 @@ Ext.define('saas.view.money.report.ProfitDetail', {
     }, {
         text: '销售总额',
         dataIndex: 'saamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '不含税金额',
         dataIndex: 'netamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
         text: '成本金额',
         dataIndex: 'costamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {
         text: '毛利润',
         dataIndex: 'profit',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

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

@@ -68,57 +68,58 @@ Ext.define('saas.view.money.report.RecDetail', {
     },{
         text:'增加应收',
         dataIndex:'rd_addrec',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },{
         text:'增加预收',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex:'rd_addpre',
-        xtype: 'numbercolumn',
         width: 180,
         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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },{
         text: '应收余额',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'rd_remain',
-        xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
         summaryType: 'last',
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
         mySummaryRenderer: function(grid, column, datas) {

+ 17 - 11
frontend/saas-web/app/view/money/report/TotalPayDetail.js

@@ -36,89 +36,95 @@ Ext.define('saas.view.money.report.TotalPayDetail', {
     reportColumns: [{
         text: '供应商编号',
         dataIndex: 'vm_vendcode',
-        width: 200
+        width: 190
     }, {
         text: '供应商名称',
         dataIndex: 'vm_vendname',
-        width: 200,
+        width: 210,
     }, {
         text: '期初预付',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'vm_beginpreamount',
-        width: 150,
+        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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },{
         text: '期初应付',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'vm_beginamount',
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '本期应付',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'vm_nowamount',
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '本期核销',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'vm_nowpayamount',
         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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '预付余额',
         dataIndex: 'vm_endpreamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },{
         text: '应付余额',
         dataIndex: 'vm_endamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

+ 21 - 15
frontend/saas-web/app/view/money/report/TotalRecDetail.js

@@ -36,82 +36,88 @@ Ext.define('saas.view.money.report.TotalRecDetail', {
     reportColumns: [{
         text: '客户编号',
         dataIndex: 'cm_custcode',
-        width: 200
+        width: 190
     }, {
         text: '客户名称',
         dataIndex: 'cm_custname',
-        width: 200,
+        width: 210,
     }, {
         text: '期初预收',
         dataIndex: 'cm_beginpreamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
-        width: 150,
+        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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     },{
         text: '期初应收',
         dataIndex: 'cm_beginamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
-        width: 150,
+        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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '本期应收',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'cm_nowamount',
-        width: 150,
+        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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '本期核销',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'cm_nowpayamount',
-        width: 150,
+        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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '预收余额',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         dataIndex: 'cm_endpreamount',
-        width: 150,
+        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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '应收余额',
         dataIndex: 'cm_endamount',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
-        width: 150,
+        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();
+            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();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {

+ 12 - 7
frontend/saas-web/app/view/money/report/VendorCheck.js

@@ -84,28 +84,31 @@ Ext.define('saas.view.money.report.VendorCheck', {
     }, {
         text: '数量',
         dataIndex: 'qty',
+        exportFormat: 'Quantity',
         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');
-            var format = '0.' + xr.join();
+            var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '单价',
         dataIndex: 'pd_orderprice',
+        exportFormat: 'Price',
         xtype: 'numbercolumn',
         width: 110,
         renderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '税率',
         dataIndex: 'pd_taxrate',
+        exportFormat: 'Integer',
         xtype: 'numbercolumn',
         width: 80,
         renderer: function(v) {
@@ -114,42 +117,44 @@ Ext.define('saas.view.money.report.VendorCheck', {
     }, {
         text: '金额',
         xtype: 'numbercolumn',
+        exportFormat: 'Amount',
         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');
-            var format = '0,000.' + xr.join();
+            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();
+        //     var format = '0,000.' + xr.join('');
         //     return Ext.util.Format.number(v, format);
         // }
     }, {
         text: '不含税单价',
         dataIndex: 'pd_netprice',
+        exportFormat: 'Price',
         xtype: 'numbercolumn',
         width: 110,
         renderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
     }, {
         text: '不含税金额',
         dataIndex: 'pd_nettotal',
+        exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
+            var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
     }, {

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

@@ -108,14 +108,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -127,14 +127,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -146,14 +146,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -169,14 +169,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }]
@@ -230,14 +230,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -249,14 +249,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -268,14 +268,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -291,14 +291,14 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }]

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

@@ -60,7 +60,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {
@@ -148,7 +148,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {
@@ -214,7 +214,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {
@@ -228,7 +228,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         },{
@@ -301,7 +301,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         }, {
@@ -315,7 +315,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
                                 }
                                 var arr = (v + '.').split('.');
                                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                                var format = '0.' + xr.join();
+                                var format = '0.' + xr.join('');
                                 return Ext.util.Format.number(v, format);
                             }
                         },{

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

@@ -126,7 +126,7 @@ Ext.define('saas.view.money.verification.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }]

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

@@ -145,14 +145,14 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                         renderer : function(v) {
                             var arr = (v + '.').split('.');
                             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                            var format = '0.' + xr.join();
+                            var format = '0.' + 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 > 3 ? 3 : arr[1].length)).fill('0');
-                            var format = '0.' + xr.join();
+                            var format = '0.' + xr.join('');
                             return Ext.util.Format.number(v, format);
                         }
                     },
@@ -169,7 +169,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                         renderer : function(v) {
                             var arr = (v + '.').split('.');
                             var xr = (new Array(arr[1].length > 8 ? 8 :(arr[1].length < 2? 2 : arr[1].length))).fill('0');
-                            var format = '0,000.' + xr.join();
+                            var format = '0,000.' + xr.join('');
                             return Ext.util.Format.number(v, format);
                         },
                     },
@@ -187,14 +187,14 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                         renderer : function(v) {
                             var arr = (v + '.').split('.');
                             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                            var format = '0.' + xr.join();
+                            var format = '0.' + 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 > 3 ? 3 : arr[1].length)).fill('0');
-                            var format = '0.' + xr.join();
+                            var format = '0.' + xr.join('');
                             return Ext.util.Format.number(v, format);
                         }
                     }, 
@@ -236,14 +236,14 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                         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();
+                            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();
+                            var format = '0,000.' + xr.join('');
                             return Ext.util.Format.number(v, format);
                         }
                     }, 
@@ -260,14 +260,14 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                         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();
+                            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();
+                            var format = '0,000.' + xr.join('');
                             return Ext.util.Format.number(v, format);
                         }
                     },

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

@@ -62,6 +62,28 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
 
                 }
             },
+            'remotecombo[name=pu_shipaddresscode]':{
+                afterrender:function(f){
+                    if(f.ownerCt.initId==0){
+                        //读取默认地址
+                        saas.util.BaseUtil.request({
+                            url: '/api/document/address/getDefault',
+                            method: 'GET',
+                        })
+                        .then(function (localJson) {
+                            var data = localJson.data;
+                            if(data&&data.ad_address){
+                                f.setValue(data.ad_address)
+                            }else{
+                                saas.util.BaseUtil.showErrorToast('未设置默认采购交货地址,维护后新增会自动给采购交货地址赋默认值');
+                            }
+                        })
+                        .catch(function (res) {
+                            saas.util.BaseUtil.showErrorToast('获取默认采购交货地址失败' + res.message);
+                        });
+                    }
+                }
+            }
         });
     },
 

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

@@ -207,7 +207,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             },
         }, {
@@ -223,7 +223,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-                var format = '0,000.' + xr.join();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         }, {
@@ -242,7 +242,7 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
             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();
+                var format = '0,000.' + xr.join('');
                 return Ext.util.Format.number(v, format);
             }
         },{

+ 9 - 9
frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js

@@ -169,14 +169,14 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
                 renderer : function(v) {
                     var arr = (v + '.').split('.');
                     var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                    var format = '0.' + xr.join();
+                    var format = '0.' + 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 > 3 ? 3 : arr[1].length)).fill('0');
-                    var format = '0.' + xr.join();
+                    var format = '0.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             }, {
@@ -192,14 +192,14 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
                 renderer : function(v) {
                     var arr = (v + '.').split('.');
                     var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-                    var format = '0.' + xr.join();
+                    var format = '0.' + 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 > 3 ? 3 : arr[1].length)).fill('0');
-                    var format = '0.' + xr.join();
+                    var format = '0.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             },{
@@ -246,7 +246,7 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
                 renderer : function(v) {
                     var arr = (v + '.').split('.');
                     var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-                    var format = '0,000.' + xr.join();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 },
             }, {
@@ -276,14 +276,14 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             },
@@ -300,14 +300,14 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
                 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();
+                    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();
+                    var format = '0,000.' + xr.join('');
                     return Ext.util.Format.number(v, format);
                 }
             },

Some files were not shown because too many files changed in this diff