Browse Source

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

hy 7 years ago
parent
commit
caebe0f095
76 changed files with 758 additions and 551 deletions
  1. 31 31
      README.md
  2. 4 4
      applications/commons/commons-server/src/main/resources/application.yml
  3. 4 4
      applications/document/document-server/src/main/resources/application.yml
  4. 4 4
      applications/money/money-server/src/main/resources/application.yml
  5. 4 4
      applications/purchase/purchase-server/src/main/resources/application.yml
  6. 2 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutDTO.java
  7. 2 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/SaleDTO.java
  8. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java
  9. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/po/Sale.java
  10. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  11. 4 4
      applications/sale/sale-server/src/main/resources/application.yml
  12. 1 0
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml
  13. 13 0
      applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml
  14. 4 4
      applications/storage/storage-server/src/main/resources/application.yml
  15. 3 3
      base-servers/account/account-server/src/main/resources/application.yml
  16. 1 1
      base-servers/admin-server/src/main/resources/application.yml
  17. 3 3
      base-servers/auth/auth-server/src/main/resources/application.yml
  18. 4 4
      base-servers/datacenter/datacenter-server/src/main/resources/application.yml
  19. 4 4
      base-servers/file/file-server/src/main/resources/application.yml
  20. 2 2
      base-servers/gateway-server/src/main/resources/application.yml
  21. 4 4
      base-servers/mail/mail-server/src/main/resources/application.yml
  22. 3 3
      base-servers/sms/sms-server/src/main/resources/application.yml
  23. 2 2
      base-servers/socket/socket-server/src/main/resources/application.yml
  24. 3 3
      base-servers/ui-server/src/main/resources/application.yml
  25. 1 1
      base-servers/ui-server/src/test/java/com/usoftchina/saas/ui/controller/co/CoViewControllerTest.java
  26. 1 1
      base-servers/zipkin-server/src/main/resources/application.yml
  27. 1 1
      base-servers/zipkin-server/src/main/resources/config/application-docker-test.yml
  28. 1 1
      base-servers/zipkin-server/src/main/resources/config/application-docker.yml
  29. 4 0
      frontend/saas-web/Readme.md
  30. 1 1
      frontend/saas-web/app.json
  31. 1 1
      frontend/saas-web/app/util/BaseUtil.js
  32. 110 26
      frontend/saas-web/app/util/FormUtil.js
  33. 172 168
      frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js
  34. 46 48
      frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js
  35. 20 0
      frontend/saas-web/app/view/core/form/FormPanel.scss
  36. 1 1
      frontend/saas-web/app/view/core/form/MultiCombo.js
  37. 5 0
      frontend/saas-web/app/view/core/report/ReportPanel.scss
  38. 8 8
      frontend/saas-web/app/view/document/bankinformation/DataList.js
  39. 2 2
      frontend/saas-web/app/view/document/bom/BasePanel.js
  40. 1 1
      frontend/saas-web/app/view/document/bom/FormPanel.js
  41. 47 32
      frontend/saas-web/app/view/document/customer/FormPanel.js
  42. 65 47
      frontend/saas-web/app/view/document/product/FormPanel.js
  43. 33 22
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  44. 2 2
      frontend/saas-web/app/view/main/Navigation.js
  45. 8 8
      frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js
  46. 5 5
      frontend/saas-web/app/view/money/othreceipts/QueryPanel.js
  47. 5 5
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  48. 5 5
      frontend/saas-web/app/view/money/payBalance/QueryPanel.js
  49. 5 5
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  50. 5 2
      frontend/saas-web/app/view/money/report/VendorCheck.js
  51. 5 5
      frontend/saas-web/app/view/money/verification/QueryPanel.js
  52. 1 1
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js
  53. 1 0
      frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js
  54. 1 1
      frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js
  55. 1 0
      frontend/saas-web/app/view/purchase/purchaseOut/QueryPanel.js
  56. 1 1
      frontend/saas-web/app/view/purchase/report/PurchasePay.js
  57. 7 11
      frontend/saas-web/app/view/sale/report/SaleProfit.js
  58. 8 1
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  59. 1 1
      frontend/saas-web/app/view/sale/sale/QueryPanel.js
  60. 1 1
      frontend/saas-web/app/view/sale/saleIn/FormPanel.js
  61. 1 1
      frontend/saas-web/app/view/sale/saleIn/QueryPanel.js
  62. 1 1
      frontend/saas-web/app/view/sale/saleOut/FormPanel.js
  63. 1 1
      frontend/saas-web/app/view/sale/saleOut/QueryPanel.js
  64. 5 12
      frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js
  65. 1 1
      frontend/saas-web/app/view/stock/make/FormPanel.js
  66. 8 8
      frontend/saas-web/app/view/stock/make/QueryPanel.js
  67. 1 1
      frontend/saas-web/app/view/stock/otherIn/FormPanel.js
  68. 7 7
      frontend/saas-web/app/view/stock/otherIn/QueryPanel.js
  69. 1 1
      frontend/saas-web/app/view/stock/otherOut/FormPanel.js
  70. 7 7
      frontend/saas-web/app/view/stock/otherOut/QueryPanel.js
  71. 3 3
      frontend/saas-web/app/view/stock/report/DataList.js
  72. 10 4
      frontend/saas-web/app/view/stock/report/ProdinoutCount.js
  73. 7 2
      frontend/saas-web/app/view/stock/report/Prodiodetail.js
  74. 1 1
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  75. 13 1
      frontend/saas-web/index.html
  76. 1 1
      pom.xml

+ 31 - 31
README.md

@@ -81,40 +81,40 @@
 
 
 | 数据库      | 类型   | 地址   |  账号  |  密码  |  说明  |
 | 数据库      | 类型   | 地址   |  账号  |  密码  |  说明  |
 | --------   | :-----: | :-----:  | :----:  | :----: | :------  |
 | --------   | :-----: | :-----:  | :----:  | :----: | :------  |
-| saas_account | mysql | 192.168.0.172:3306 |  root  | select111*** |  账户中心  |
-| saas_auth | mysql | 192.168.0.172:3306 |  root  | select111*** |  鉴权系统  |
-| saas_file | mysql | 192.168.0.172:3306 |  root  | select111*** |  文件系统  |
-| saas_mail | mysql | 192.168.0.172:3306 |  root  | select111*** |  邮件系统  |
-| saas_biz | mysql | 192.168.0.172:3306 |  root  | select111*** |  业务系统  |
-| saas_ui | mongo | 192.168.0.183:27017 |    |  |  UI配置  |
+| saas_account | mysql | 10.1.81.54:3306 |  root  | select111*** |  账户中心  |
+| saas_auth | mysql | 10.1.81.54:3306 |  root  | select111*** |  鉴权系统  |
+| saas_file | mysql | 10.1.81.54:3306 |  root  | select111*** |  文件系统  |
+| saas_mail | mysql | 10.1.81.54:3306 |  root  | select111*** |  邮件系统  |
+| saas_biz | mysql | 10.1.81.54:3306 |  root  | select111*** |  业务系统  |
+| saas_ui | mongo | 10.1.81.63:27017 |    |  |  UI配置  |
 
 
 > 中间件
 > 中间件
 
 
 | 类型 | 地址 | 账号 | 密码 | 说明 |
 | 类型 | 地址 | 账号 | 密码 | 说明 |
 | ---- | :----: | :----: | :----: | ---- |
 | ---- | :----: | :----: | :----: | ---- |
-| rabbitmq | 192.168.0.176:5672 | saas | select123*** | 消息中间件 [控制台](http://192.168.0.176:15672)|
-| redis | 192.168.0.182:6379 | | | 内存数据库 |
+| rabbitmq | 10.1.81.75:5672 | saas | select123*** | 消息中间件 [控制台](http://10.1.81.75:15672)|
+| redis | 10.1.81.62:6379 | | | 内存数据库 |
 
 
 
 
 > 服务器
 > 服务器
 
 
 | IP      |  账号  |  密码  |  环境  |  资源  |
 | IP      |  账号  |  密码  |  环境  |  资源  |
 | --------   | :----:  | :----: | :------:  | :------:  |
 | --------   | :----:  | :----: | :------:  | :------:  |
-| 192.168.0.172 |  root  | select123*** |  CentOS7, MySQL  | Cpu: 8, Mem: 16G, Disk: 80G |
-| 192.168.0.176 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
-| 192.168.0.177 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
-| 192.168.0.178 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
-| 192.168.0.179 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
-| 192.168.0.180 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
-| 192.168.0.181 |  root  | select123*** |  CentOS7, Docker  | Cpu: 8, Mem: 16G, Disk: 80G |
-| 192.168.0.182 |  root  | select123*** |  CentOS7, Redis  | Cpu: 2, Mem: 8G, Disk: 20G |
-| 192.168.0.183 |  root  | select123*** |  CentOS7, Mongo  | Cpu: 4, Mem: 8G, Disk: 50G |
-| 192.168.0.184 |  root  | select123*** |  CentOS7, Docker  | Cpu: 8, Mem: 16G, Disk: 50G |
-| 192.168.0.185 |  root  | select123*** |  CentOS7, Docker  | Cpu: 8, Mem: 16G, Disk: 50G |
+| 10.1.81.54 |  root  | select123*** |  CentOS7, MySQL  | Cpu: 8, Mem: 16G, Disk: 80G |
+| 10.1.81.75 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
+| 10.1.81.78 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
+| 10.1.81.76 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
+| 10.1.81.59 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
+| 10.1.81.60 |  root  | select123*** |  CentOS7, Docker  | Cpu: 4, Mem: 8G, Disk: 20G |
+| 10.1.81.61 |  root  | select123*** |  CentOS7, Docker  | Cpu: 8, Mem: 16G, Disk: 80G |
+| 10.1.81.62 |  root  | select123*** |  CentOS7, Redis  | Cpu: 2, Mem: 8G, Disk: 20G |
+| 10.1.81.63 |  root  | select123*** |  CentOS7, Mongo  | Cpu: 4, Mem: 8G, Disk: 50G |
+| 10.1.81.64 |  root  | select123*** |  CentOS7, Docker  | Cpu: 8, Mem: 16G, Disk: 50G |
+| 10.1.81.65 |  root  | select123*** |  CentOS7, Docker  | Cpu: 8, Mem: 16G, Disk: 50G |
 
 
 > 构建
 > 构建
 
 
-* [jenkins](http://192.168.0.181:8080/job/saas/view/dev) **账号** admin **密码** select123***
+* [jenkins](http://10.1.81.61:8080/job/saas/view/dev) **账号** admin **密码** select123***
 
 
 > 日志
 > 日志
 
 
@@ -124,10 +124,10 @@
 
 
 > 服务
 > 服务
 
 
-* [eureka http://192.168.0.181:8500](http://192.168.0.181:8500) **账号** admin **密码** select111***
-* [gateway http://192.168.0.181:8560](http://192.168.0.181:8560)
-* [admin http://192.168.0.181:8520](http://192.168.0.181:8520) **账号** admin **密码** select111***
-* [zipkin http://192.168.0.181:8540](http://192.168.0.181:8540) **账号** admin **密码** select111***
+* [eureka http://10.1.81.61:8500](http://10.1.81.61:8500) **账号** admin **密码** select111***
+* [gateway http://10.1.81.61:8560](http://10.1.81.61:8560)
+* [admin http://10.1.81.61:8520](http://10.1.81.61:8520) **账号** admin **密码** select111***
+* [zipkin http://10.1.81.61:8540](http://10.1.81.61:8540) **账号** admin **密码** select111***
 
 
 > 访问
 > 访问
 
 
@@ -140,22 +140,22 @@
 
 
 > 服务
 > 服务
 
 
-* [eureka http://192.168.0.181:8510](http://192.168.0.181:8510) **账号** admin **密码** select111***
-* [gateway http://192.168.0.181:8570](http://192.168.0.181:8570)
+* [eureka http://10.1.81.61:8510](http://10.1.81.61:8510) **账号** admin **密码** select111***
+* [gateway http://10.1.81.61:8570](http://10.1.81.61:8570)
 
 
 
 
 # 测试环境
 # 测试环境
 
 
 > 构建
 > 构建
 
 
-* [jenkins](http://192.168.0.181:8080/job/saas/view/test) **账号** admin **密码** select123***
+* [jenkins](http://10.1.81.61:8080/job/saas/view/test) **账号** admin **密码** select123***
 
 
 > 服务
 > 服务
 
 
-* [eureka http://192.168.0.181:8515](http://192.168.0.181:8515) **账号** admin **密码** select111***
-* [gateway http://192.168.0.181:8575](http://192.168.0.181:8575)
-* [admin http://192.168.0.181:8535](http://192.168.0.181:8535) **账号** admin **密码** select111***
-* [zipkin http://192.168.0.181:8555](http://192.168.0.181:8555) **账号** admin **密码** select111***
+* [eureka http://10.1.81.61:8515](http://10.1.81.61:8515) **账号** admin **密码** select111***
+* [gateway http://10.1.81.61:8575](http://10.1.81.61:8575)
+* [admin http://10.1.81.61:8535](http://10.1.81.61:8535) **账号** admin **密码** select111***
+* [zipkin http://10.1.81.61:8555](http://10.1.81.61:8555) **账号** admin **密码** select111***
 
 
 > 访问
 > 访问
 
 

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

@@ -7,7 +7,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -20,7 +20,7 @@ spring:
     basename: i18n/messages
     basename: i18n/messages
     encoding: UTF-8
     encoding: UTF-8
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -35,7 +35,7 @@ spring:
     sampler:
     sampler:
       probability: 1.0
       probability: 1.0
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
 management:
 management:
   endpoints:
   endpoints:
@@ -56,7 +56,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 server:
 server:
   port: 8920
   port: 8920
   tomcat:
   tomcat:

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

@@ -9,7 +9,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -21,10 +21,10 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -50,7 +50,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 management:
 management:
   endpoints:
   endpoints:
     web:
     web:

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

@@ -7,7 +7,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -19,10 +19,10 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -47,7 +47,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 management:
 management:
   endpoints:
   endpoints:
     web:
     web:

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

@@ -9,7 +9,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -21,7 +21,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -36,7 +36,7 @@ spring:
     sampler:
     sampler:
       probability: 1.0
       probability: 1.0
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
 eureka:
 eureka:
   instance:
   instance:
@@ -50,7 +50,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 management:
 management:
   endpoints:
   endpoints:
     web:
     web:

+ 2 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutDTO.java

@@ -84,4 +84,6 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
     private String pi_sellercode;
     private String pi_sellercode;
 
 
     private String pi_seller;
     private String pi_seller;
+
+    private Double pi_nettotal;
 }
 }

+ 2 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/SaleDTO.java

@@ -65,4 +65,6 @@ public class SaleDTO extends CommonBaseDTO{
     private String sa_currency;
     private String sa_currency;
 
 
     private Double sa_nettotal;
     private Double sa_nettotal;
+
+    private Date sa_delivery;
 }
 }

+ 2 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java

@@ -68,4 +68,6 @@ public interface SaleMapper extends CommonBaseMapper<Sale> {
 
 
     void updateAudit(@Param("id") Long id, @Param("status") String status, @Param("statuscode") String statuscode, @Param("format") String format,
     void updateAudit(@Param("id") Long id, @Param("status") String status, @Param("statuscode") String statuscode, @Param("format") String format,
                      @Param("name") String name);
                      @Param("name") String name);
+
+    void updateDelivery(@Param("id")Long id);
 }
 }

+ 2 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/po/Sale.java

@@ -64,4 +64,6 @@ public class Sale extends CommonBaseEntity{
     private String sa_currency;
     private String sa_currency;
 
 
     private Double sa_nettotal;
     private Double sa_nettotal;
+
+    private Date sa_delivery;
 }
 }

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

@@ -188,6 +188,8 @@ public class SaleServiceImpl implements SaleService{
             saledetailMapper.batchUpdate(updateDetails);
             saledetailMapper.batchUpdate(updateDetails);
         }
         }
         baseDTO = getBaseDTOById(sa_id);
         baseDTO = getBaseDTOById(sa_id);
+        //明细需求日期为空时==主表交货日期
+        saleMapper.updateDelivery(sa_id);
         //更新销售金额
         //更新销售金额
         updateTotal(sa_id);
         updateTotal(sa_id);
         //更新从表总额
         //更新从表总额

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

@@ -7,7 +7,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -20,7 +20,7 @@ spring:
     basename: i18n/messages
     basename: i18n/messages
     encoding: UTF-8
     encoding: UTF-8
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -35,7 +35,7 @@ spring:
     sampler:
     sampler:
       probability: 1.0
       probability: 1.0
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
 eureka:
 eureka:
   instance:
   instance:
@@ -48,7 +48,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 management:
 management:
   endpoints:
   endpoints:
     web:
     web:

+ 1 - 0
applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -41,6 +41,7 @@
     <result column="pi_sellerid" jdbcType="INTEGER" property="pi_sellerid" />
     <result column="pi_sellerid" jdbcType="INTEGER" property="pi_sellerid" />
     <result column="pi_sellercode" jdbcType="VARCHAR" property="pi_sellercode" />
     <result column="pi_sellercode" jdbcType="VARCHAR" property="pi_sellercode" />
     <result column="pi_seller" jdbcType="VARCHAR" property="pi_seller" />
     <result column="pi_seller" jdbcType="VARCHAR" property="pi_seller" />
+    <result column="pi_nettotal"  jdbcType="DOUBLE" property="pi_nettotal"/>
   </resultMap>
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.storage.po.ProdInOut">
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.storage.po.ProdInOut">
     <result column="pi_address" jdbcType="LONGVARCHAR" property="pi_address" />
     <result column="pi_address" jdbcType="LONGVARCHAR" property="pi_address" />

+ 13 - 0
applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml

@@ -159,6 +159,9 @@
       <if test="sa_nettotal != null">
       <if test="sa_nettotal != null">
         sa_nettotal,
         sa_nettotal,
       </if>
       </if>
+      <if test="sa_delivery != null">
+        sa_delivery,
+      </if>
     </trim>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="sa_code != null" >
       <if test="sa_code != null" >
@@ -245,6 +248,9 @@
       <if test="sa_nettotal != null" >
       <if test="sa_nettotal != null" >
         #{sa_nettotal,jdbcType=DOUBLE},
         #{sa_nettotal,jdbcType=DOUBLE},
       </if>
       </if>
+      <if test="sa_delivery != null" >
+        #{sa_delivery,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     </trim>
   </insert>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.sale.po.Sale" >
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.sale.po.Sale" >
@@ -340,6 +346,9 @@
       <if test="sa_nettotal != null" >
       <if test="sa_nettotal != null" >
         sa_nettotal = #{sa_nettotal,jdbcType=DOUBLE},
         sa_nettotal = #{sa_nettotal,jdbcType=DOUBLE},
       </if>
       </if>
+      <if test="sa_delivery!=null">
+        sa_delivery = #{sa_delivery,jdbcType=TIMESTAMP},
+      </if>
     </set>
     </set>
     where sa_id = #{id,jdbcType=INTEGER}
     where sa_id = #{id,jdbcType=INTEGER}
   </update>
   </update>
@@ -706,4 +715,8 @@
     </if>
     </if>
 
 
   </select>
   </select>
+
+  <update id="updateDelivery" parameterType="long">
+    update saledetail set sd_delivery = (select sa_delivery from sale where sa_id=#{id}) where sdsaid=#{id} and sa_delivery is null
+  </update>
 </mapper>
 </mapper>

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

@@ -9,7 +9,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -21,7 +21,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -36,7 +36,7 @@ spring:
     sampler:
     sampler:
       probability: 1.0
       probability: 1.0
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
 eureka:
 eureka:
   instance:
   instance:
@@ -50,7 +50,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 management:
 management:
   endpoints:
   endpoints:
     web:
     web:

+ 3 - 3
base-servers/account/account-server/src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -24,7 +24,7 @@ spring:
       probability: 1.0
       probability: 1.0
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_account?characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://10.1.81.54:3306/saas_account?characterEncoding=utf-8&useSSL=false
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -36,7 +36,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss

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

@@ -22,7 +22,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8500/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8500/eureka/
 info:
 info:
   name: '@project.artifactId@'
   name: '@project.artifactId@'
   description: '@project.description@'
   description: '@project.description@'

+ 3 - 3
base-servers/auth/auth-server/src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -24,7 +24,7 @@ spring:
       probability: 1.0
       probability: 1.0
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_auth?characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://10.1.81.54:3306/saas_auth?characterEncoding=utf-8&useSSL=false
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -36,7 +36,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss

+ 4 - 4
base-servers/datacenter/datacenter-server/src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -24,7 +24,7 @@ spring:
       probability: 1.0
       probability: 1.0
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_manage?characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://10.1.81.54:3306/saas_manage?characterEncoding=utf-8&useSSL=false
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -36,7 +36,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss
@@ -53,7 +53,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 server:
 server:
   port: 8720
   port: 8720
   tomcat:
   tomcat:

+ 4 - 4
base-servers/file/file-server/src/main/resources/application.yml

@@ -6,7 +6,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -22,7 +22,7 @@ spring:
       probability: 1.0
       probability: 1.0
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_file?characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://10.1.81.54:3306/saas_file?characterEncoding=utf-8&useSSL=false
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -34,7 +34,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss
@@ -51,7 +51,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 server:
 server:
   port: 8640
   port: 8640
   tomcat:
   tomcat:

+ 2 - 2
base-servers/gateway-server/src/main/resources/application.yml

@@ -12,7 +12,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -109,7 +109,7 @@ spring:
         predicates:
         predicates:
         - Path=/ws/**
         - Path=/ws/**
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss

+ 4 - 4
base-servers/mail/mail-server/src/main/resources/application.yml

@@ -6,7 +6,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -22,7 +22,7 @@ spring:
       probability: 1.0
       probability: 1.0
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_mail?characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://10.1.81.54:3306/saas_mail?characterEncoding=utf-8&useSSL=false
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -34,7 +34,7 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss
@@ -55,7 +55,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 server:
 server:
   port: 8660
   port: 8660
   tomcat:
   tomcat:

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

@@ -9,7 +9,7 @@ spring:
       password: select111***
       password: select111***
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.0.172:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://10.1.81.54:3306/saas_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
     username: root
     username: root
     password: select111***
     password: select111***
     hikari:
     hikari:
@@ -21,10 +21,10 @@ spring:
   messages:
   messages:
     basename: i18n/messages
     basename: i18n/messages
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas

+ 2 - 2
base-servers/socket/socket-server/src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -23,7 +23,7 @@ spring:
     sampler:
     sampler:
       probability: 1.0
       probability: 1.0
   redis:
   redis:
-    host: 192.168.0.182
+    host: 10.1.81.62
     port: 6379
     port: 6379
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss

+ 3 - 3
base-servers/ui-server/src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
       name: admin
       name: admin
       password: select111***
       password: select111***
   rabbitmq:
   rabbitmq:
-    host: 192.168.0.176
+    host: 10.1.81.75
     port: 5672
     port: 5672
     virtual-host: dev
     virtual-host: dev
     username: saas
     username: saas
@@ -24,7 +24,7 @@ spring:
       probability: 1.0
       probability: 1.0
   data:
   data:
     mongodb:
     mongodb:
-      uri: mongodb://192.168.0.183:27017/saas_ui
+      uri: mongodb://10.1.81.63:27017/saas_ui
   jackson:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8
     time-zone: GMT+8
@@ -44,7 +44,7 @@ eureka:
   client:
   client:
     registryFetchIntervalSeconds: 5
     registryFetchIntervalSeconds: 5
     serviceUrl:
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
 management:
 management:
   endpoints:
   endpoints:
     web:
     web:

+ 1 - 1
base-servers/ui-server/src/test/java/com/usoftchina/saas/ui/controller/co/CoViewControllerTest.java

@@ -46,7 +46,7 @@ public class CoViewControllerTest {
         MultiValueMap headers = new LinkedMultiValueMap();
         MultiValueMap headers = new LinkedMultiValueMap();
         headers.add("Authorization", "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxMzkwNzk5Nzk5OSIsImFwcElkIjoidHJhZGUtYXBwIiwidXNlcklkIjo1NSwiY29tcGFueUlkIjoxLCJ1c2VyTmFtZSI6IjEzOTA3OTk3OTk5IiwicmVhbE5hbWUiOiJoZXkiLCJleHAiOjE1NDM4NDUyMDB9.eKN7UZTdFfAQLj_FB80ifxYu8nF_j-UQtKXSxPGA706iaJyIjR_LM_vbp-ZXx2GLBvZaH89o1qTUxleCCCepl27lvJPgyMqoZWW1YXDfO3hT25DEQoe8zzLH2Dd4GIj8jZ8zEMOhaFsvwMKWNqfCS6ML7pqfhoeoDihyZcv165s");
         headers.add("Authorization", "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxMzkwNzk5Nzk5OSIsImFwcElkIjoidHJhZGUtYXBwIiwidXNlcklkIjo1NSwiY29tcGFueUlkIjoxLCJ1c2VyTmFtZSI6IjEzOTA3OTk3OTk5IiwicmVhbE5hbWUiOiJoZXkiLCJleHAiOjE1NDM4NDUyMDB9.eKN7UZTdFfAQLj_FB80ifxYu8nF_j-UQtKXSxPGA706iaJyIjR_LM_vbp-ZXx2GLBvZaH89o1qTUxleCCCepl27lvJPgyMqoZWW1YXDfO3hT25DEQoe8zzLH2Dd4GIj8jZ8zEMOhaFsvwMKWNqfCS6ML7pqfhoeoDihyZcv165s");
         HttpEntity entity = new HttpEntity(headers);
         HttpEntity entity = new HttpEntity(headers);
-        ResponseEntity<String> result = restTemplate.exchange("http://192.168.0.174:8560/api/purchase/purchase/list",
+        ResponseEntity<String> result = restTemplate.exchange("http://10.1.81.66:8560/api/purchase/purchase/list",
                 HttpMethod.GET, entity, String.class);
                 HttpMethod.GET, entity, String.class);
         if (result.getStatusCodeValue() == 200) {
         if (result.getStatusCodeValue() == 200) {
             System.out.println(result.getBody());
             System.out.println(result.getBody());

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

@@ -36,7 +36,7 @@ zipkin:
     http:
     http:
       enabled: false
       enabled: false
     rabbitmq:
     rabbitmq:
-      uri: amqp://saas:select123***@192.168.0.176:5672/dev
+      uri: amqp://saas:select123***@10.1.81.75:5672/dev
       queue: zipkin
       queue: zipkin
   storage:
   storage:
     type: elasticsearch
     type: elasticsearch

+ 1 - 1
base-servers/zipkin-server/src/main/resources/config/application-docker-test.yml

@@ -8,6 +8,6 @@ eureka:
 zipkin:
 zipkin:
   collector:
   collector:
     rabbitmq:
     rabbitmq:
-      uri: amqp://saas:select123***@192.168.0.176:5672/test
+      uri: amqp://saas:select123***@10.1.81.75:5672/test
 server:
 server:
   port: 8555
   port: 8555

+ 1 - 1
base-servers/zipkin-server/src/main/resources/config/application-docker.yml

@@ -8,4 +8,4 @@ eureka:
 zipkin:
 zipkin:
   collector:
   collector:
     rabbitmq:
     rabbitmq:
-      uri: amqp://saas:select123***@192.168.0.176:5672/docker
+      uri: amqp://saas:select123***@10.1.81.75:5672/docker

+ 4 - 0
frontend/saas-web/Readme.md

@@ -202,5 +202,9 @@ deleteDetailUrl 配置调整 formpanel.form->formpanel.detailGridField
 
 
 放大镜配置说明
 放大镜配置说明
 
 
+- 2018-12-25 10:30:00
+
+补充说明:thousandSeparator 主表千分位属性
+
 
 
 
 

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

@@ -284,7 +284,7 @@
                 "accountEnterprise":"https://saas-dev.usoftchina.com:5443/#/enterprise",
                 "accountEnterprise":"https://saas-dev.usoftchina.com:5443/#/enterprise",
                 "basePath": {
                 "basePath": {
                     "https": "https://saas-api-dev.usoftchina.com:5443",
                     "https": "https://saas-api-dev.usoftchina.com:5443",
-                    "http": "http://192.168.0.181:8560"
+                    "http": "http://10.1.81.61:8560"
                 },
                 },
                 "urlPattern": "^\/api\/"
                 "urlPattern": "^\/api\/"
             }
             }

+ 1 - 1
frontend/saas-web/app/util/BaseUtil.js

@@ -143,7 +143,7 @@ Ext.define('saas.util.BaseUtil', {
         request: function (config) {
         request: function (config) {
             var url = config.url,
             var url = config.url,
                 params = config.params,
                 params = config.params,
-                async = config.async || true,
+                async = Ext.isBoolean(config.async) ? config.async : true,
                     method = config.method || 'GET',
                     method = config.method || 'GET',
                     timeout = config.timeout || 8000,
                     timeout = config.timeout || 8000,
                     defaultHeaders = {
                     defaultHeaders = {

+ 110 - 26
frontend/saas-web/app/util/FormUtil.js

@@ -8,22 +8,28 @@ Ext.define('saas.util.FormUtil', {
         urlRe: /(.*){viewName}(.*)/g,
         urlRe: /(.*){viewName}(.*)/g,
 
 
         setItems: function(form) {
         setItems: function(form) {
-            var me = this,
+            let me = this,
+            defaultItems;
+            
             defaultItems = form.defaultItems;
             defaultItems = form.defaultItems;
 
 
+            me.clearItems(defaultItems);
+
             me.applyCusItemConfig(form)
             me.applyCusItemConfig(form)
             .then(function(res) {
             .then(function(res) {
                 if(res.success) {
                 if(res.success) {
-                    var config = res.data || true, items = defaultItems || [];
+                    let config = res.data || true, items = defaultItems || [];
                     if(config) {
                     if(config) {
-                        var cusItems = config.items || [];
+                        let cusItems = config.items || [];
                         Ext.Array.each(cusItems, function(cusItem) {
                         Ext.Array.each(cusItems, function(cusItem) {
-                            var item = items.find(function(item) {
+                            let item = items.find(function(item) {
                                 return item.name == cusItem.name;
                                 return item.name == cusItem.name;
                             });
                             });
                             Ext.apply(item, cusItem);
                             Ext.apply(item, cusItem);
                         });
                         });
                         items = me.applyDefaultItems(form, items);
                         items = me.applyDefaultItems(form, items);
+
+                        items = me.applyItemsGroup(items);
                     }
                     }
                     form.removeAll();
                     form.removeAll();
                     return form.addItems(items);
                     return form.addItems(items);
@@ -44,6 +50,18 @@ Ext.define('saas.util.FormUtil', {
 
 
         },
         },
 
 
+        clearItems: function(items) {
+            for(let i = items.length - 1; i >= 0; i--) {
+                let item = items[i];
+                if(item.group == '_nogroup') {
+                    item.group = undefined;
+                }
+                if(item.xtype == 'container') {
+                    items.splice(i, 1);
+                }
+            }
+        },
+
         /**
         /**
          * 获得form的客户自定义字段配置
          * 获得form的客户自定义字段配置
          * @param form: form组件
          * @param form: form组件
@@ -51,7 +69,7 @@ Ext.define('saas.util.FormUtil', {
          */
          */
 
 
         applyCusItemConfig: function(form) {
         applyCusItemConfig: function(form) {
-            var me = this,
+            let me = this,
             viewName = form.viewName,
             viewName = form.viewName,
             defaultItems = form.defaultItems,
             defaultItems = form.defaultItems,
             url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
             url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
@@ -62,7 +80,7 @@ Ext.define('saas.util.FormUtil', {
          * 处理formitems的一些默认配置
          * 处理formitems的一些默认配置
          */
          */
         applyDefaultItems: function(form, items) {
         applyDefaultItems: function(form, items) {
-            var me = this,
+            let me = this,
             formModel = form.getViewModel();
             formModel = form.getViewModel();
 
 
             Ext.Array.each(items, function(item) {
             Ext.Array.each(items, function(item) {
@@ -97,8 +115,8 @@ Ext.define('saas.util.FormUtil', {
 
 
                 // 如果是从表为其绑定store
                 // 如果是从表为其绑定store
                 if(item.xtype == 'detailGridField') {
                 if(item.xtype == 'detailGridField') {
-                    var index = form.detailCount;
-                    var columns = item.columns,
+                    let index = form.detailCount;
+                    let columns = item.columns,
                     cnames = columns.filter(function(c) {
                     cnames = columns.filter(function(c) {
                         return c.dataIndex && !c.ignore;
                         return c.dataIndex && !c.ignore;
                     }).map(function(c) {
                     }).map(function(c) {
@@ -140,7 +158,7 @@ Ext.define('saas.util.FormUtil', {
                             });
                             });
                         }
                         }
                         
                         
-                        var editor = c.editor;
+                        let editor = c.editor;
                         if(editor) {
                         if(editor) {
                             Ext.applyIf(editor, {
                             Ext.applyIf(editor, {
                                 selectOnFocus: true
                                 selectOnFocus: true
@@ -179,7 +197,7 @@ Ext.define('saas.util.FormUtil', {
                         data: [],
                         data: [],
                         listeners: {
                         listeners: {
                             datachanged: function(s, eOpts) {
                             datachanged: function(s, eOpts) {
-                                var g = form.query('detailGridField')[index];
+                                let g = form.query('detailGridField')[index];
                                 g.fireEvent('datachanged', g, s, eOpts);
                                 g.fireEvent('datachanged', g, s, eOpts);
                             },
                             },
                             // 为新增行设置默认值
                             // 为新增行设置默认值
@@ -201,23 +219,89 @@ Ext.define('saas.util.FormUtil', {
             return items;
             return items;
         },
         },
 
 
+        applyItemsGroup: function(items) {
+            let groups = [];
+
+            Ext.Array.each(items, function(item, index) {
+                let groupName = item.group;
+                if(!!groupName) {
+                    let idx = groups.findIndex(function(g) {
+                        return g.title == groupName;
+                    }),group;
+
+                    if(idx == -1) {
+                        group = {
+                            title: groupName,
+                            count: 1
+                        };
+                        groups.push(group);
+                    }else {
+                        group = groups[idx];
+                        group.count++;
+                    }
+                }
+            });
+
+            Ext.Array.sort(items, function(a, b) {
+                let gs = groups.concat([{
+                    title: '_nogroup'
+                }]);
+                a.group = a.group || '_nogroup';
+                let v1 = gs.findIndex(function(g) {
+                    return g.title == a.group;
+                })
+                let v2 = gs.findIndex(function(g) {
+                    return g.title == b.group;
+                })
+                return v1 - v2;
+            });
+
+            Ext.Array.each(groups, function(g) {
+                let idx = items.findIndex(function(i) {
+                    return i.group == g.title;
+                });
+                g.index = idx;
+            });
+
+            Ext.Array.each(groups, function(group, index) {
+                let formIndex = group.index;
+                delete group.index;
+                Ext.Array.insert(items, formIndex + index, [{
+                    xtype: 'container',
+                    userCls: 'x-field-separator',
+                    height: 24,
+                    html: group.title,
+                    columnWidth: 1,
+                    ignore: true,
+                    isValid: function() {
+                        return true;
+                    },
+                    isDirty: function() {
+                        return false;
+                    }
+                }]);
+            });
+
+            return items;
+        },
+
         loadData: function(form) {
         loadData: function(form) {
-            var me = this;
+            let me = this;
             form.setLoading(true);
             form.setLoading(true);
             if(form.initId && form.initId!=0) {
             if(form.initId && form.initId!=0) {
-                var url = form._readUrl + '/' + form.initId;
+                let url = form._readUrl + '/' + form.initId;
                 saas.util.BaseUtil.request({url })
                 saas.util.BaseUtil.request({url })
                 .then(function(res) {
                 .then(function(res) {
                     form.setLoading(false);
                     form.setLoading(false);
                     if(res.success) {
                     if(res.success) {
-                        var d = res.data;
-                        var o = {
+                        let d = res.data;
+                        let o = {
                             main: d.main
                             main: d.main
                         };
                         };
                         if(d.hasOwnProperty('items')) {
                         if(d.hasOwnProperty('items')) {
                             o.detail0 = d.items;
                             o.detail0 = d.items;
                         }else {
                         }else {
-                            var idx = 1;
+                            let idx = 1;
                             while(d.hasOwnProperty('items' + idx)) {
                             while(d.hasOwnProperty('items' + idx)) {
                                 o['detail' + (idx - 1)] = d['items' + idx];
                                 o['detail' + (idx - 1)] = d['items' + idx];
                                 idx++;
                                 idx++;
@@ -246,25 +330,25 @@ Ext.define('saas.util.FormUtil', {
                 }).then(function(res) {
                 }).then(function(res) {
                     form.setLoading(false);
                     form.setLoading(false);
                     if(res.success){
                     if(res.success){
-                        var code = res.data;
-                        var viewModel = form.getViewModel();
-                        var detailGrids = form.query('detailGridField');
+                        let code = res.data;
+                        let viewModel = form.getViewModel();
+                        let detailGrids = form.query('detailGridField');
 
 
                         if(code){
                         if(code){
-                            var o = {};
+                            let o = {};
                             o[form._codeField] = code;
                             o[form._codeField] = code;
 
 
-                            var formData = {main: {}};
+                            let formData = {main: {}};
                             Ext.apply(formData.main, o);
                             Ext.apply(formData.main, o);
                             Ext.Array.each(detailGrids, function(grid, index) {
                             Ext.Array.each(detailGrids, function(grid, index) {
-                                var detno = 0;
-                                var detnoColumn = grid.detnoColumn;
-                                var datas = [];
-                                var emptyRows = grid.emptyRows;
+                                let detno = 0;
+                                let detnoColumn = grid.detnoColumn;
+                                let datas = [];
+                                let emptyRows = grid.emptyRows;
                                 
                                 
                                 Ext.Array.each(new Array(emptyRows), function() {
                                 Ext.Array.each(new Array(emptyRows), function() {
                                     detno += 1;
                                     detno += 1;
-                                    var data = {};
+                                    let data = {};
                                     data[detnoColumn] = detno;
                                     data[detnoColumn] = detno;
                                     datas.push(data);
                                     datas.push(data);
                                 })
                                 })
@@ -281,7 +365,7 @@ Ext.define('saas.util.FormUtil', {
                         }
                         }
                     }
                     }
                 }).then(function(formData) {
                 }).then(function(formData) {
-                    var initData = form.initData;
+                    let initData = form.initData;
                     if(initData) {
                     if(initData) {
                         Ext.apply(initData.main, formData.main);
                         Ext.apply(initData.main, formData.main);
                         form.setFormData(initData);
                         form.setFormData(initData);

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

@@ -5,89 +5,90 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     queryMode: 'local',
     queryMode: 'local',
     displayField: 'dispaly',
     displayField: 'dispaly',
     valueField: 'value',
     valueField: 'value',
-    minChars:1, // 设置用户输入字符多少时触发查询
+    minChars: 1, // 设置用户输入字符多少时触发查询
     tpl: '',
     tpl: '',
-    enableKeyEvents:true,
-    initComponent:function() {
+    enableKeyEvents: true,
+    initComponent: function () {
         var me = this;
         var me = this;
-        me.store=Ext.create('Ext.data.Store', {
-            fields: ['display','value'],
-            data : []
-        });
+        Ext.apply(me, me.applyConfig());
         me.callParent();
         me.callParent();
     },
     },
+    applyConfig: function() {
+        var me = this,
+        dbtpls = me.dbtpls || [],
+        fields = [],
+        minWidth = 0,
+        cols = '';
+
+        for(let x = 0; x < dbtpls.length; x++) {
+            let dbtpl = dbtpls[x],
+            width = dbtpl.width || 100,
+            field = dbtpl.field;
+
+            fields.push(field);
+            minWidth += width;
+            cols += '<span style="padding:0 10px 0 10px;width:' + width + 'px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;float:left;">{' + field + '}</span>';
+        }
+
+        minWidth += 15;
+
+        cfg = {
+            store: Ext.create('Ext.data.Store', {
+                fields: fields,
+                data: []
+            }),
+            listConfig: {
+                minWidth: minWidth,
+                width: minWidth,
+                maxHeight: 210,
+                autoScroll: true
+            },
+            tpl: Ext.create('Ext.XTemplate',
+                '<ul style="padding-left: 0px;"><tpl for=".">',
+                '<li role="option" class="x-boundlist-item" style="list-style:none; padding: 0;">',
+                '<div style="height:30px;">',
+                '' + cols + '',
+                '</li>',
+                '</tpl></ul>'
+            )
+        };
+
+        return cfg;
+    },
+
     //输入值之后进行模糊查询
     //输入值之后进行模糊查询
-    doQuery: function(queryString, forceAll, rawQuery) {
-        if(!this.fireEvent('beforequery', this)) {
+    doQuery: function (queryString, forceAll, rawQuery) {
+        if (!this.fireEvent('beforequery', this)) {
             return;
             return;
         };
         };
-    	queryString = queryString || '';
-    	var me = this;
-    	if(me.lastQueryValue!=queryString){
-    		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);
-                    }
-                }
+        queryString = queryString || '';
+        var me = this;
+        if (me.lastQueryValue != queryString) {
+            me.judge(me);
+            me.lastQueryValue = queryString;
+            if (queryString.trim() == '') {
+                me.collapse();
+            } else {
                 //加载数据
                 //加载数据
-                var data,dbCondition=[];
-                if(me.dbfinds){
+                var data, dbfinds = me.dbfinds, dbCondition = [];
+                if (dbfinds) {
                     var dbtplcondition = "";
                     var dbtplcondition = "";
                     for (let index = 0; index < dbfinds.length; index++) {
                     for (let index = 0; index < dbfinds.length; index++) {
                         var item = dbfinds[index].from;
                         var item = dbfinds[index].from;
-                        if(!dbfinds[index].ignore){
-                            dbtplcondition+= "upper("+item+") like '%"+queryString.toUpperCase()+"%' or ";
+                        if (!dbfinds[index].ignore) {
+                            dbtplcondition += "upper(" + item + ") like '%" + queryString.toUpperCase() + "%' or ";
                         }
                         }
                     }
                     }
-                    dbtplcondition = "(" + dbtplcondition.substring(0,dbtplcondition.length-4) + ")";
-                    if(dbtplcondition.length>0){
+                    dbtplcondition = "(" + dbtplcondition.substring(0, dbtplcondition.length - 4) + ")";
+                    if (dbtplcondition.length > 0) {
                         dbCondition = [{
                         dbCondition = [{
                             type: 'condition',
                             type: 'condition',
-                            value:dbtplcondition
+                            value: dbtplcondition
                         }];
                         }];
                     }
                     }
                 }
                 }
                 //添加默认条件
                 //添加默认条件
-                if(me.defaultCondition) {
+                if (me.defaultCondition) {
                     dbCondition.push({
                     dbCondition.push({
                         type: 'condition',
                         type: 'condition',
                         value: me.defaultCondition
                         value: me.defaultCondition
@@ -98,43 +99,44 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
                     params: {
                     params: {
                         number: 1,
                         number: 1,
                         size: 10,
                         size: 10,
-                        condition:JSON.stringify(dbCondition),
+                        condition: JSON.stringify(dbCondition),
                         page: 1,
                         page: 1,
                         start: 0,
                         start: 0,
                         limit: 10
                         limit: 10
                     },
                     },
                     method: 'GET',
                     method: 'GET',
-                    success: function(response, opts) {
+                    success: function (response, opts) {
                         data = Ext.decode(response.responseText);
                         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);
+                        data = data.data ? data.data.list : [];
+                        if (data != null && data.length > 0 && me.store) {
+                            me.store.loadData(data, false);
                             me.expand();
                             me.expand();
-                        }else{
+                        } else {
                             me.store.removeAll();
                             me.store.removeAll();
                             me.collapse();
                             me.collapse();
                         }
                         }
                     },
                     },
-                    failure: function(response, opts) {}
-                });                
+                    failure: function (response, opts) {}
+                });
             }
             }
             return true;
             return true;
-    	}else{
-    		return false;
-    	}
+        } else {
+            return false;
+        }
     },
     },
-    onTriggerClick:function(f){
+    onTriggerClick: function (f) {
         var me = this;
         var me = this;
-        if(!this.fireEvent('beforetriggerclick', this)) {
+        if (!this.fireEvent('beforetriggerclick', this)) {
             return;
             return;
         };
         };
         f.blur(f);
         f.blur(f);
         //判断dbfindtrigger归属
         //判断dbfindtrigger归属
-        f.judge(f);//form
-        var panel = f.up('core-tab-panel'),panelEl;
-        if(!f.column && f.ownerCt.ownerCt.id.indexOf('window-')>-1){
+        f.judge(f); //form
+        var panel = f.up('core-tab-panel'),
+            panelEl;
+        if (!f.column && f.ownerCt.ownerCt.id.indexOf('window-') > -1) {
             panelEl = f.ownerCt.ownerCt.getEl()
             panelEl = f.ownerCt.ownerCt.getEl()
-        }else{
+        } else {
             panelEl = panel.getEl()
             panelEl = panel.getEl()
         }
         }
         var box = panelEl.getBox();
         var box = panelEl.getBox();
@@ -142,24 +144,24 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
         var width = box.width;
         var width = box.width;
 
 
         var dbItem = {
         var dbItem = {
-            xtype:'dbfindgridpanel',
+            xtype: 'dbfindgridpanel',
             columns: f.dbColumns,
             columns: f.dbColumns,
             dataUrl: f.dataUrl,
             dataUrl: f.dataUrl,
             dbfinds: f.dbfinds,
             dbfinds: f.dbfinds,
             belong: f.belong,
             belong: f.belong,
-            dbSearchFields:f.dbSearchFields?f.dbSearchFields:[],
-            dbfindtrigger:f,
+            dbSearchFields: f.dbSearchFields ? f.dbSearchFields : [],
+            dbfindtrigger: f,
         };
         };
 
 
-        if(me.onAddClick) {
+        if (me.onAddClick) {
             dbItem.onAddClick = me.onAddClick;
             dbItem.onAddClick = me.onAddClick;
         }
         }
 
 
-        var win = panel.add(Ext.create('Ext.window.Window', {  
-            cls:'x-window-dbfind', 
-            trigger:f,
-            belong:f.ownerCt,  
-            modal:true,
+        var win = panel.add(Ext.create('Ext.window.Window', {
+            cls: 'x-window-dbfind',
+            trigger: f,
+            belong: f.ownerCt,
+            modal: true,
             height: height * 0.8,
             height: height * 0.8,
             width: width * 0.8,
             width: width * 0.8,
             title: '查找' + f.addTitle,
             title: '查找' + f.addTitle,
@@ -167,37 +169,38 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
             bodyPadding: 10,
             bodyPadding: 10,
             constrain: true,
             constrain: true,
             closable: true,
             closable: true,
-            layout:'fit',
-            renderTo:panel.getEl(),
-            items:[dbItem]
+            layout: 'fit',
+            renderTo: panel.getEl(),
+            items: [dbItem]
         }));
         }));
         win.show();
         win.show();
     },
     },
 
 
-    judge:function(f){
-        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL')>-1
-           ||(f.ownerCt.ownerCt&&(f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('BASEPANEL')>-1
-           ||f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('EDITDATALIST')>-1))){
+    judge: function (f) {
+        if (f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL') > -1 ||
+            (f.ownerCt.ownerCt && (f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('BASEPANEL') > -1 ||
+                f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('EDITDATALIST') > -1))) {
             f.belong = 'form';
             f.belong = 'form';
             return f.ownerCt.ownerCt
             return f.ownerCt.ownerCt
-        }else if(f.ownerCt.xtype.trim().toUpperCase().indexOf('FORM')>-1){
+        } else if (f.ownerCt.xtype.trim().toUpperCase().indexOf('FORM') > -1) {
             f.belong = 'form';
             f.belong = 'form';
             return f.ownerCt
             return f.ownerCt
-        }else if(f.column){
+        } else if (f.column) {
             f.belong = 'grid';
             f.belong = 'grid';
             return f.column.ownerCt.ownerCt.ownerCt
             return f.column.ownerCt.ownerCt.ownerCt
         }
         }
     },
     },
 
 
     listeners: {
     listeners: {
-        blur:function(f,e){
+        blur: function (f, e) {
             var me = f;
             var me = f;
-            var dbfinds = me.dbfinds,data;
-            if(f.value&&f.value!=''){
+            var dbfinds = me.dbfinds,
+                data;
+            if (f.value && f.value != '') {
                 //添加默认条件
                 //添加默认条件
                 var searchField = null;
                 var searchField = null;
                 var dbCondition = [];
                 var dbCondition = [];
-                if(me.defaultCondition) {
+                if (me.defaultCondition) {
                     dbCondition.push({
                     dbCondition.push({
                         type: 'condition',
                         type: 'condition',
                         value: me.defaultCondition
                         value: me.defaultCondition
@@ -205,183 +208,184 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
                 }
                 }
                 for (let index = 0; index < dbfinds.length; index++) {
                 for (let index = 0; index < dbfinds.length; index++) {
                     var item = dbfinds[index].to;
                     var item = dbfinds[index].to;
-                    if(item==me.name){
+                    if (item == me.name) {
                         searchField = dbfinds[index].from;
                         searchField = dbfinds[index].from;
                     }
                     }
                 }
                 }
                 dbCondition.push({
                 dbCondition.push({
                     type: 'condition',
                     type: 'condition',
-                    value: searchField + "='"+me.value+"'"
+                    value: searchField + "='" + me.value + "'"
                 });
                 });
                 Ext.Ajax.request({
                 Ext.Ajax.request({
                     url: me.dataUrl,
                     url: me.dataUrl,
-                    async:false,
+                    async: false,
                     params: {
                     params: {
                         number: 1,
                         number: 1,
                         size: 1,
                         size: 1,
-                        condition:JSON.stringify(dbCondition),
+                        condition: JSON.stringify(dbCondition),
                         page: 1,
                         page: 1,
                         start: 0,
                         start: 0,
                         limit: 10
                         limit: 10
                     },
                     },
                     method: 'GET',
                     method: 'GET',
-                    success: function(response, opts) {
+                    success: function (response, opts) {
                         data = Ext.decode(response.responseText);
                         data = Ext.decode(response.responseText);
-                        data = data.data?data.data.list:[];
+                        data = data.data ? data.data.list : [];
                     },
                     },
-                    failure: function(response, opts) {}
-                }); 
+                    failure: function (response, opts) {}
+                });
             }
             }
-            if(!f.value||f.value==''||data.length>1||data.length==0){
-                if(dbfinds&&dbfinds.length>0){
-                    if(me.belong=='grid'){
+            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++) {
                         for (let index = 0; index < dbfinds.length; index++) {
                             var item = dbfinds[index];
                             var item = dbfinds[index];
                             var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                             var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                             var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
                             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.get(item.to) && nowRec.get(item.to) != "") {
+                                nowRec.set(item.to, null);
                                 delete nowRec.modified[item.to];
                                 delete nowRec.modified[item.to];
                             }
                             }
-                            if(me.name==item.to){
+                            if (me.name == item.to) {
                                 me.column.getEditor().setValue('');
                                 me.column.getEditor().setValue('');
                             }
                             }
                         }
                         }
-                    }else if(me.belong=='form'){
+                    } else if (me.belong == 'form') {
                         for (let index = 0; index < dbfinds.length; index++) {
                         for (let index = 0; index < dbfinds.length; index++) {
                             var item = dbfinds[index];
                             var item = dbfinds[index];
-                            var field = me.ownerCt.down('[name='+item.to+']');
-                            if(field){
-                                if(field.xtype=='dbfindtrigger'){
+                            var field = me.ownerCt.down('[name=' + item.to + ']');
+                            if (field) {
+                                if (field.xtype == 'dbfindtrigger') {
                                     field.setValue(null);
                                     field.setValue(null);
-                                    field.lastTriggerValue=null;
-                                }else{
-                                    if(field.xtype.indexOf('hidden')>-1){
+                                    field.lastTriggerValue = null;
+                                } else {
+                                    if (field.xtype.indexOf('hidden') > -1) {
                                         field.setValue(0);
                                         field.setValue(0);
-                                    }else{
+                                    } else {
                                         field.setValue(null);
                                         field.setValue(null);
                                     }
                                     }
-                                }    
+                                }
                             }
                             }
                         }
                         }
                     }
                     }
                 }
                 }
-            }else if(data.length==1){
+            } else if (data.length == 1) {
                 var dbfinds = me.dbfinds;
                 var dbfinds = me.dbfinds;
-                if(dbfinds&&dbfinds.length>0){
-                    if(me.belong=='grid'){
+                if (dbfinds && dbfinds.length > 0) {
+                    if (me.belong == 'grid') {
                         for (let index = 0; index < dbfinds.length; index++) {
                         for (let index = 0; index < dbfinds.length; index++) {
                             var item = dbfinds[index];
                             var item = dbfinds[index];
                             var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                             var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                             var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
                             var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
-                            nowRec.set(item.to,data[0][item.from]);
-                            if(me.name==item.to){
+                            nowRec.set(item.to, data[0][item.from]);
+                            if (me.name == item.to) {
                                 me.column.getEditor().setValue(data[0][item.from]);
                                 me.column.getEditor().setValue(data[0][item.from]);
                             }
                             }
                         }
                         }
-                    }else if(me.belong=='form'){
+                    } else if (me.belong == 'form') {
                         for (let index = 0; index < dbfinds.length; index++) {
                         for (let index = 0; index < dbfinds.length; index++) {
                             var item = dbfinds[index];
                             var item = dbfinds[index];
-                            var field = me.ownerCt.down('[name='+item.to+']');
-                            if(field){
+                            var field = me.ownerCt.down('[name=' + item.to + ']');
+                            if (field) {
                                 var val = data[0][item.from];
                                 var val = data[0][item.from];
-                                if(field.xtype=='dbfindtrigger'){
+                                if (field.xtype == 'dbfindtrigger') {
                                     field.setRawValue(val);
                                     field.setRawValue(val);
                                     field.setValue(val);
                                     field.setValue(val);
                                     field.value = val;
                                     field.value = val;
-                                    field.lastTriggerValue=val;
-                                }else{
+                                    field.lastTriggerValue = val;
+                                } else {
                                     field.setValue(val);
                                     field.setValue(val);
-                                }    
+                                }
                             }
                             }
                         }
                         }
                     }
                     }
                 }
                 }
             }
             }
         },
         },
-        select:function(combo,record,eOpts){
+        select: function (combo, record, eOpts) {
             var me = combo;
             var me = combo;
             var dbfinds = me.dbfinds;
             var dbfinds = me.dbfinds;
-            if(dbfinds&&dbfinds.length>0){
-                if(me.belong=='grid'){
+            if (dbfinds && dbfinds.length > 0) {
+                if (me.belong == 'grid') {
                     for (let index = 0; index < dbfinds.length; index++) {
                     for (let index = 0; index < dbfinds.length; index++) {
                         var item = dbfinds[index];
                         var item = dbfinds[index];
                         var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                         var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                         var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
                         var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
-                        nowRec.set(item.to,record.get(item.from));
-                        if(me.name==item.to){
+                        nowRec.set(item.to, record.get(item.from));
+                        if (me.name == item.to) {
                             me.column.getEditor().setValue(record.get(item.from));
                             me.column.getEditor().setValue(record.get(item.from));
                         }
                         }
                     }
                     }
-                }else if(me.belong=='form'){
+                } else if (me.belong == 'form') {
                     for (let index = 0; index < dbfinds.length; index++) {
                     for (let index = 0; index < dbfinds.length; index++) {
                         var item = dbfinds[index];
                         var item = dbfinds[index];
-                        var field = me.ownerCt.down('[name='+item.to+']');
-                        if(field){
+                        var field = me.ownerCt.down('[name=' + item.to + ']');
+                        if (field) {
                             var val = record.get(item.from);
                             var val = record.get(item.from);
-                            if(field.xtype=='dbfindtrigger'){
+                            if (field.xtype == 'dbfindtrigger') {
                                 field.setRawValue(val);
                                 field.setRawValue(val);
                                 field.setValue(val);
                                 field.setValue(val);
                                 field.value = val;
                                 field.value = val;
-                                field.lastTriggerValue=val;
-                            }else{
+                                field.lastTriggerValue = val;
+                            } else {
                                 field.setValue(val);
                                 field.setValue(val);
-                            }    
+                            }
                         }
                         }
                     }
                     }
                 }
                 }
-                me.aftertrigger(me,record);
+                me.aftertrigger(me, record);
             }
             }
         }
         }
     },
     },
 
 
-    aftertrigger:function(f){
+    aftertrigger: function (f) {
         return true;
         return true;
     },
     },
 
 
-    setValue: function(v) {
+    setValue: function (v) {
         this.callParent(arguments);
         this.callParent(arguments);
         this.publishState('value', v);
         this.publishState('value', v);
     },
     },
 
 
-    getValue: function(f) {
-        var me = this,val = me.rawToValue(me.processRawValue(me.getRawValue()));
+    getValue: function (f) {
+        var me = this,
+            val = me.rawToValue(me.processRawValue(me.getRawValue()));
         me.value = val;
         me.value = val;
         return val;
         return val;
     },
     },
 
 
-    autoSetValue: function(combo, record) {
+    autoSetValue: function (combo, record) {
         var me = combo;
         var me = combo;
         var dbfinds = me.dbfinds;
         var dbfinds = me.dbfinds;
-        if(dbfinds&&dbfinds.length>0){
-            if(me.belong=='grid'){
+        if (dbfinds && dbfinds.length > 0) {
+            if (me.belong == 'grid') {
                 for (let index = 0; index < dbfinds.length; index++) {
                 for (let index = 0; index < dbfinds.length; index++) {
                     var item = dbfinds[index];
                     var item = dbfinds[index];
                     var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                     var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
                     var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
                     var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
-                    nowRec.set(item.to,record.get(item.from));
-                    if(me.name==item.to){
+                    nowRec.set(item.to, record.get(item.from));
+                    if (me.name == item.to) {
                         me.column.getEditor().setValue(record.get(item.from));
                         me.column.getEditor().setValue(record.get(item.from));
                     }
                     }
                 }
                 }
-            }else if(me.belong=='form'){
+            } else if (me.belong == 'form') {
                 for (let index = 0; index < dbfinds.length; index++) {
                 for (let index = 0; index < dbfinds.length; index++) {
                     var item = dbfinds[index];
                     var item = dbfinds[index];
-                    var field = me.ownerCt.down('[name='+item.to+']');
-                    if(field){
+                    var field = me.ownerCt.down('[name=' + item.to + ']');
+                    if (field) {
                         var val = record.get(item.from);
                         var val = record.get(item.from);
-                        if(field.xtype=='dbfindtrigger'){
+                        if (field.xtype == 'dbfindtrigger') {
                             field.setRawValue(val);
                             field.setRawValue(val);
                             field.setValue(val);
                             field.setValue(val);
                             field.value = val;
                             field.value = val;
-                            field.lastTriggerValue=val;
-                        }else{
+                            field.lastTriggerValue = val;
+                        } else {
                             field.setValue(val);
                             field.setValue(val);
-                        }    
+                        }
                     }
                     }
                 }
                 }
             }
             }
-            me.aftertrigger(me,record);
+            me.aftertrigger(me, record);
         }
         }
     }
     }
 });
 });

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

@@ -13,16 +13,52 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
     minChars:1, // 设置用户输入字符多少时触发查询
     minChars:1, // 设置用户输入字符多少时触发查询
     tpl: '',
     tpl: '',
     enableKeyEvents:true,
     enableKeyEvents:true,
-    initComponent:function() {
+    initComponent: function () {
         var me = this;
         var me = this;
-        me.store=Ext.create('Ext.data.Store', {
-            fields: ['display','value'],
-            data : [{
-                'display':me.value,
-                'value':me.value
-            }]
-        });
-        this.callParent();
+        Ext.apply(me, me.applyConfig());
+        me.callParent();
+    },
+    applyConfig: function() {
+        var me = this,
+        dbtpls = me.dbtpls || [],
+        fields = [],
+        minWidth = 0,
+        cols = '';
+
+        for(let x = 0; x < dbtpls.length; x++) {
+            let dbtpl = dbtpls[x],
+            width = dbtpl.width || 100,
+            field = dbtpl.field;
+
+            fields.push(field);
+            minWidth += width;
+            cols += '<span style="padding:0 10px 0 10px;width:' + width + 'px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;float:left;">{' + field + '}</span>';
+        }
+
+        minWidth += 15;
+
+        cfg = {
+            store: Ext.create('Ext.data.Store', {
+                fields: fields,
+                data: []
+            }),
+            listConfig: {
+                minWidth: minWidth,
+                width: minWidth,
+                maxHeight: 210,
+                autoScroll: true
+            },
+            tpl: Ext.create('Ext.XTemplate',
+                '<ul style="padding-left: 0px;"><tpl for=".">',
+                '<li role="option" class="x-boundlist-item" style="list-style:none; padding: 0;">',
+                '<div style="height:30px;">',
+                '' + cols + '',
+                '</li>',
+                '</tpl></ul>'
+            )
+        };
+
+        return cfg;
     },
     },
     //输入值之后进行模糊查询
     //输入值之后进行模糊查询
     doQuery: function(queryString, forceAll, rawQuery) {
     doQuery: function(queryString, forceAll, rawQuery) {
@@ -32,49 +68,11 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
     	queryString = queryString || '';
     	queryString = queryString || '';
     	var me = this;
     	var me = this;
         me.judge(me);
         me.judge(me);
-        var field=[];
-        var sfield='';
         var dbfinds=me.dbfinds;
         var dbfinds=me.dbfinds;
-        var dbtpls=me.dbtpls;
         me.lastQueryValue=queryString;
         me.lastQueryValue=queryString;
         if(queryString.trim()==''){
         if(queryString.trim()==''){
             me.collapse( );
             me.collapse( );
         }else{
         }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=[];
             var data,dbCondition=[];
             if(me.dbfinds){
             if(me.dbfinds){
@@ -114,7 +112,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
                 success: function(response, opts) {
                 success: function(response, opts) {
                     data = Ext.decode(response.responseText);
                     data = Ext.decode(response.responseText);
                     data = data.data?data.data.list:[];
                     data = data.data?data.data.list:[];
-                    if(data!=null && data.length>0 && me.store && field.length>0){
+                    if(data!=null && data.length>0 && me.store){
                         me.store.loadData(data,false);
                         me.store.loadData(data,false);
                         me.expand();
                         me.expand();
                     }else{
                     }else{

+ 20 - 0
frontend/saas-web/app/view/core/form/FormPanel.scss

@@ -65,4 +65,24 @@
         border: 1px solid #FF002B;
         border: 1px solid #FF002B;
         color: #FF002B;
         color: #FF002B;
     }
     }
+}
+
+.x-field-separator {
+    &>div {
+        &>div {
+            padding-left: 20px;
+            font-weight: bold;
+
+            &:before {
+                content: ' ';
+                position: absolute;
+                width: 5px;
+                height: 16px;
+                border-radius: 4px;
+                background: #33b4ee;
+                left: 4px;
+                top: 1px;
+            }
+        }
+    }
 }
 }

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

@@ -2,7 +2,7 @@
  * Created by zhouy on 2018/10/17.
  * Created by zhouy on 2018/10/17.
  */
  */
 Ext.define('saas.view.core.form.MultiCombo', {
 Ext.define('saas.view.core.form.MultiCombo', {
-    extend: 'Ext.form.field.Trigger',
+    extend: 'Ext.form.field.Text',
     alias: 'widget.multicombo',
     alias: 'widget.multicombo',
     editable : false,
     editable : false,
     matchFieldWidth: true,
     matchFieldWidth: true,

+ 5 - 0
frontend/saas-web/app/view/core/report/ReportPanel.scss

@@ -64,5 +64,10 @@ $border-color: #999;
                 }
                 }
             }
             }
         }
         }
+
+        .x-grid-scrollbar-clipper-locked .x-grid-view,
+        .x-grid-scrollbar-locked .x-grid-view {
+            border-right: 1px solid $border-color !important;
+        }
     }
     }
 }
 }

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

@@ -25,15 +25,15 @@ Ext.define('saas.view.document.bankinformation.DataList', {
             columns: [{
             columns: [{
                 text: '账户编号',
                 text: '账户编号',
                 dataIndex: 'bk_bankcode',
                 dataIndex: 'bk_bankcode',
-                flex: 1
+                width: 150
             },{
             },{
                 text: '账户名称',
                 text: '账户名称',
                 dataIndex: 'bk_bankname',
                 dataIndex: 'bk_bankname',
-                flex: 1
+                width: 200
             },{
             },{
                 text: '账户类别',
                 text: '账户类别',
                 dataIndex: 'bk_type',
                 dataIndex: 'bk_type',
-                flex: 1,
+                width: 100
             },{
             },{
                 text: '期初金额(元)',
                 text: '期初金额(元)',
                 dataIndex: 'bk_beginamount',
                 dataIndex: 'bk_beginamount',
@@ -41,25 +41,25 @@ Ext.define('saas.view.document.bankinformation.DataList', {
                 renderer : function(v) {
                 renderer : function(v) {
                     return saas.util.BaseUtil.numberFormat(v, 2, true);
                     return saas.util.BaseUtil.numberFormat(v, 2, true);
                 },
                 },
-                flex: 1
+                width: 110
             },{
             },{
-                text: '当前余额',
+                text: '当前余额(元)',
                 dataIndex: 'bk_thisamount',
                 dataIndex: 'bk_thisamount',
                 xtype: 'numbercolumn',
                 xtype: 'numbercolumn',
                 renderer : function(v) {
                 renderer : function(v) {
                     return saas.util.BaseUtil.numberFormat(v, 2, true);
                     return saas.util.BaseUtil.numberFormat(v, 2, true);
                 },
                 },
-                flex: 1
+                width: 110
             },{
             },{
                 xtype:'datecolumn',
                 xtype:'datecolumn',
                 text: '建账日期',
                 text: '建账日期',
                 format:'Y-m-d',
                 format:'Y-m-d',
                 dataIndex: 'bk_date',
                 dataIndex: 'bk_date',
-                flex: 1
+                width: 110
             }, {
             }, {
                 text: '备注',
                 text: '备注',
                 dataIndex: 'bk_remark',
                 dataIndex: 'bk_remark',
-                flex: 1
+                width: 250
             }],
             }],
             keyField:'id',
             keyField:'id',
             reqUrl: '/api/document/bankinformation/save',
             reqUrl: '/api/document/bankinformation/save',

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

@@ -19,7 +19,7 @@ Ext.define('saas.view.document.bom.BasePanel', {
     },{
     },{
         xtype : "textfield", 
         xtype : "textfield", 
         name : "bo_version", 
         name : "bo_version", 
-        fieldLabel:'版本',
+        fieldLabel:'版本',
         emptyText: '全部',
         emptyText: '全部',
     },{
     },{
         xtype: 'combobox',
         xtype: 'combobox',
@@ -104,7 +104,7 @@ Ext.define('saas.view.document.bom.BasePanel', {
             width : 0, 
             width : 0, 
         },
         },
         {   
         {   
-            text : "产品版本", 
+            text : "产品版本", 
             dataIndex : "bo_version", 
             dataIndex : "bo_version", 
             width :80.0, 
             width :80.0, 
         }]
         }]

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

@@ -84,7 +84,7 @@ Ext.define('saas.view.document.bom.FormPanel', {
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'bo_version',
         name: 'bo_version',
-        fieldLabel: '版本',
+        fieldLabel: '版本',
         allowBlank: false
         allowBlank: false
     }, {
     }, {
         xtype : "detailGridField",
         xtype : "detailGridField",

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

@@ -27,25 +27,29 @@ Ext.define('saas.view.document.customer.FormPanel', {
         name: 'id',
         name: 'id',
         fieldLabel: 'id',
         fieldLabel: 'id',
         allowBlank: true,
         allowBlank: true,
-        columnWidth: 0.25
+        columnWidth: 0.25,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'cu_code',
         name: 'cu_code',
         fieldLabel: '客户编号',
         fieldLabel: '客户编号',
         allowBlank: false,
         allowBlank: false,
-        columnWidth: 0.25
+        columnWidth: 0.25,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'cu_name',
         name: 'cu_name',
         fieldLabel: '客户名称',
         fieldLabel: '客户名称',
         allowBlank: false,
         allowBlank: false,
-        columnWidth: 0.25
+        columnWidth: 0.25,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'cu_shortname',
         name: 'cu_shortname',
         fieldLabel: '客户简称',
         fieldLabel: '客户简称',
         columnWidth: 0.25,
         columnWidth: 0.25,
-        hidden: true
+        hidden: true,
+        group: '基础信息',
     },{
     },{
         editable:false,
         editable:false,
         xtype : "remotecombo", 
         xtype : "remotecombo", 
@@ -53,7 +57,8 @@ Ext.define('saas.view.document.customer.FormPanel', {
         name : "cu_type", 
         name : "cu_type", 
         fieldLabel : "客户类型", 
         fieldLabel : "客户类型", 
         columnWidth : 0.25,
         columnWidth : 0.25,
-        hiddenBtn:false,//true 则会关闭新增按钮功能
+        hiddenBtn:false,//true 则会关闭新增按钮功能,
+        group: '基础信息',
         addHandler:function(b){
         addHandler:function(b){
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var form = this.ownerCmp.ownerCt;
             var form = this.ownerCmp.ownerCt;
@@ -89,7 +94,8 @@ Ext.define('saas.view.document.customer.FormPanel', {
         format:'Y-m-d',
         format:'Y-m-d',
         fieldLabel : "期初日期", 
         fieldLabel : "期初日期", 
         allowBlank : true, 
         allowBlank : true, 
-        columnWidth : 0.25  
+        columnWidth : 0.25,
+        group: '交易信息',
     },{ 
     },{ 
         xtype : "numberfield", 
         xtype : "numberfield", 
         hideTrigger:true,
         hideTrigger:true,
@@ -99,6 +105,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         columnWidth : 0.25,
         columnWidth : 0.25,
         decimalPrecision: 2,
         decimalPrecision: 2,
         minValue:0,
         minValue:0,
+        group: '交易信息',
         renderer : function(v) {
         renderer : function(v) {
             return saas.util.BaseUtil.numberFormat(v, 2, true);
             return saas.util.BaseUtil.numberFormat(v, 2, true);
         },
         },
@@ -111,9 +118,22 @@ Ext.define('saas.view.document.customer.FormPanel', {
         columnWidth : 0.25,
         columnWidth : 0.25,
         decimalPrecision: 2,
         decimalPrecision: 2,
         minValue:0,
         minValue:0,
+        group: '交易信息',
         renderer : function(v) {
         renderer : function(v) {
             return saas.util.BaseUtil.numberFormat(v, 2, true);
             return saas.util.BaseUtil.numberFormat(v, 2, true);
         },   
         },   
+    },{
+        xtype:'textfield',
+        name : "cu_leftamount", 
+        fieldLabel : "应收款余额", 
+        allowBlank : true, 
+        readOnly:true,
+        columnWidth : 0.25,
+        decimalPrecision: 2,
+        group: '交易信息',
+        renderer : function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 2, true);
+        },
     },{
     },{
         xtype : "numberfield", 
         xtype : "numberfield", 
         name : "cu_taxrate", 
         name : "cu_taxrate", 
@@ -122,6 +142,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         columnWidth : 0.25,
         columnWidth : 0.25,
         minValue:0,
         minValue:0,
         maxValue:100,
         maxValue:100,
+        group: '交易信息',
     },{ 
     },{ 
         xtype : "numberfield", 
         xtype : "numberfield", 
         hideTrigger:true,
         hideTrigger:true,
@@ -130,34 +151,39 @@ Ext.define('saas.view.document.customer.FormPanel', {
         allowBlank : true, 
         allowBlank : true, 
         columnWidth : 0.25,
         columnWidth : 0.25,
         decimalPrecision:0,
         decimalPrecision:0,
-        minValue:0
-    },{
-        xtype : "numberfield", 
-        hideTrigger:true,
-        name : "cu_credit", 
-        fieldLabel : "额度", 
-        allowBlank : true, 
-        columnWidth : 0.25,
-        decimalPrecision: 2,
         minValue:0,
         minValue:0,
-        renderer : function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 2, true);
-        },
+        group: '交易信息',
     }, {
     }, {
         xtype : "hidden", 
         xtype : "hidden", 
         name : "cu_sellerid", 
         name : "cu_sellerid", 
         fieldLabel : "业务员id",
         fieldLabel : "业务员id",
-        defaultValue:saas.util.BaseUtil.getCurrentUser().id
+        defaultValue:saas.util.BaseUtil.getCurrentUser().id,
+        group: '交易信息',
     }, {
     }, {
         xtype : "hidden", 
         xtype : "hidden", 
         name : "cu_sellercode", 
         name : "cu_sellercode", 
         fieldLabel : "业务员code",
         fieldLabel : "业务员code",
+        group: '交易信息',
     }, {
     }, {
         xtype : "employeeDbfindTrigger", 
         xtype : "employeeDbfindTrigger", 
         name : "cu_sellername", 
         name : "cu_sellername", 
         fieldLabel : "业务员",  
         fieldLabel : "业务员",  
         columnWidth : 0.25,
         columnWidth : 0.25,
-        defaultValue:saas.util.BaseUtil.getCurrentUser().realname
+        defaultValue:saas.util.BaseUtil.getCurrentUser().realname,
+        group: '交易信息',
+    },{
+        xtype : "numberfield", 
+        hideTrigger:true,
+        name : "cu_credit", 
+        fieldLabel : "额度", 
+        allowBlank : true, 
+        columnWidth : 0.25,
+        decimalPrecision: 2,
+        minValue:0,
+        group: '交易信息',
+        renderer : function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 2, true);
+        },
     },{
     },{
         xtype : "hidden", 
         xtype : "hidden", 
         name : "cu_nsrzh", 
         name : "cu_nsrzh", 
@@ -184,17 +210,6 @@ Ext.define('saas.view.document.customer.FormPanel', {
         readOnly:true,
         readOnly:true,
         editable:false,
         editable:false,
         columnWidth : 0.25
         columnWidth : 0.25
-    },{
-        xtype:'textfield',
-        name : "cu_leftamount", 
-        fieldLabel : "应收款余额", 
-        allowBlank : true, 
-        readOnly:true,
-        columnWidth : 0.25,
-        decimalPrecision: 2,
-        renderer : function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 2, true);
-        },
     },{
     },{
         xtype : "datefield", 
         xtype : "datefield", 
         name : "createTime", 
         name : "createTime", 
@@ -213,7 +228,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
         fieldLabel : "备注", 
         fieldLabel : "备注", 
         xtype:'textfield',
         xtype:'textfield',
         name : "cu_remark",
         name : "cu_remark",
-        columnWidth : 0.75
+        columnWidth : 1
     }, {
     }, {
         xtype : "detailGridField", 
         xtype : "detailGridField", 
         storeModel:'saas.model.document.customercontact',
         storeModel:'saas.model.document.customercontact',

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

@@ -26,18 +26,21 @@ Ext.define('saas.view.document.product.FormPanel', {
         xtype: 'hidden',
         xtype: 'hidden',
         name: 'id',
         name: 'id',
         fieldLabel: 'id',
         fieldLabel: 'id',
-        allowBlank: true
+        allowBlank: true,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pr_code',
         name: 'pr_code',
         fieldLabel: '物料编号',
         fieldLabel: '物料编号',
-        allowBlank: false
+        allowBlank: false,
+        group: '基础信息',
     },{
     },{
         editable:false,
         editable:false,
         xtype : "remotecombo", 
         xtype : "remotecombo", 
         storeUrl:'/api/document/productbrand/getCombo',
         storeUrl:'/api/document/productbrand/getCombo',
         name : "pr_brand", 
         name : "pr_brand", 
-        fieldLabel : "品牌", 
+        fieldLabel : "品牌",
+        group: '基础信息',
         addHandler:function(b){
         addHandler:function(b){
             var form = this.ownerCmp.ownerCt;
             var form = this.ownerCmp.ownerCt;
             this.dialog = form.add({
             this.dialog = form.add({
@@ -57,31 +60,37 @@ Ext.define('saas.view.document.product.FormPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pr_detail',
         name: 'pr_detail',
         fieldLabel: '名称',
         fieldLabel: '名称',
-        allowBlank: false
+        allowBlank: false,
+        group: '基础信息',
     },{
     },{
         xtype: 'hidden',
         xtype: 'hidden',
         name: 'pr_status',
         name: 'pr_status',
-        fieldLabel: '状态'
+        fieldLabel: '状态',
+        group: '基础信息',
     },{
     },{
         xtype: 'hidden',
         xtype: 'hidden',
         name: 'pr_statuscode',
         name: 'pr_statuscode',
-        fieldLabel: '状态码'
+        fieldLabel: '状态码',
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pr_orispeccode',
         name: 'pr_orispeccode',
-        fieldLabel: '型号'
+        fieldLabel: '型号',
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pr_spec',
         name: 'pr_spec',
         fieldLabel: '规格',
         fieldLabel: '规格',
-        allowBlank: false
+        allowBlank: false,
+        group: '基础信息',
     },{
     },{
         editable:false,
         editable:false,
         xtype : "remotecombo", 
         xtype : "remotecombo", 
         storeUrl:'/api/document/producttype/getCombo',
         storeUrl:'/api/document/producttype/getCombo',
         name : "pr_kind", 
         name : "pr_kind", 
-        fieldLabel : "类型", 
-        allowBlank : false, 
+        fieldLabel : "类型",
+        allowBlank : false,
+        group: '基础信息',
         addHandler:function(b){
         addHandler:function(b){
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var form = this.ownerCmp.ownerCt;
             var form = this.ownerCmp.ownerCt;
@@ -107,6 +116,7 @@ Ext.define('saas.view.document.product.FormPanel', {
         fieldLabel : "单位", 
         fieldLabel : "单位", 
         allowBlank : false, 
         allowBlank : false, 
         editable:false,
         editable:false,
+        group: '基础信息',
         addHandler:function(b){
         addHandler:function(b){
             var form = this.ownerCmp.ownerCt;
             var form = this.ownerCmp.ownerCt;
             this.dialog = form.add({
             this.dialog = form.add({
@@ -122,50 +132,62 @@ Ext.define('saas.view.document.product.FormPanel', {
             });
             });
             this.dialog.show();
             this.dialog.show();
         }
         }
-    },{
-        xtype : "numberfield", 
-        name : "pr_standardprice", 
-        fieldLabel : "标准定价(元)", 
-        allowBlank : true, 
-        columnWidth : 0.25,
-        decimalPrecision: 4,
-        minValue:0
+    }, {
+        xtype: 'numberfield',
+        fieldLabel: '采购提前期',
+        name: 'pr_leadtime',
+        minValue: 0,
+        maxLength: 10,
+        group: '管理信息',
     },{
     },{
         xtype : "numberfield", 
         xtype : "numberfield", 
         name : "pr_zxbzs", 
         name : "pr_zxbzs", 
         fieldLabel : "最小包装数", 
         fieldLabel : "最小包装数", 
         minValue:0,
         minValue:0,
         decimalPrecision: 0,
         decimalPrecision: 0,
-        allowBlank : true
-    },{
-        xtype : "hidden", 
-        name : "pr_whid", 
-        fieldLabel : "仓库ID"
-    },{  
-        xtype : "warehouseDbfindTrigger",     
-        name : "pr_whcode", 
-        fieldLabel : "仓库编号", 
-    }, {
-        xtype : "textfield", 
-        name : "pr_whname", 
-        fieldLabel : "仓库名称", 
         allowBlank : true,
         allowBlank : true,
-        readOnly: true,
-        columnWidth : 0.25
+        group: '管理信息',
     },{
     },{
         xtype : "hidden", 
         xtype : "hidden", 
         name : "pr_vendid", 
         name : "pr_vendid", 
-        fieldLabel : "供应商ID", 
-        columnWidth : 0
+        fieldLabel : "供应商ID",
+        group: '管理信息',
     },{
     },{
-        xtype : "vendorDbfindTrigger",   
+        xtype : "hidden",   
         name : "pr_vendcode", 
         name : "pr_vendcode", 
-        fieldLabel : "供应商编号"
+        fieldLabel : "供应商编号",
+        group: '管理信息',
     }, {
     }, {
-        xtype : "textfield", 
+        xtype : "vendorDbfindTrigger", 
         name : "pr_vendname", 
         name : "pr_vendname", 
         fieldLabel : "供应商名称",
         fieldLabel : "供应商名称",
-        readOnly: true
+        columnWidth: 0.5,
+        group: '管理信息',
+    },{
+        xtype : "hidden", 
+        name : "pr_whid", 
+        fieldLabel : "仓库ID",
+        group: '管理信息',
+    },{  
+        xtype : "hidden",     
+        name : "pr_whcode", 
+        fieldLabel : "仓库编号",
+        group: '管理信息',
+    }, {
+        xtype : "warehouseDbfindTrigger", 
+        name : "pr_whname", 
+        fieldLabel : "仓库名称", 
+        columnWidth: 0.25,
+        group: '管理信息',
+    },{
+        xtype : "numberfield", 
+        name : "pr_standardprice", 
+        fieldLabel : "标准定价(元)", 
+        allowBlank : true, 
+        columnWidth : 0.25,
+        decimalPrecision: 4,
+        minValue:0,
+        group: '管理信息',
     },{
     },{
         ignore:true,
         ignore:true,
         readOnly:true,
         readOnly:true,
@@ -175,7 +197,8 @@ Ext.define('saas.view.document.product.FormPanel', {
         allowBlank : true, 
         allowBlank : true, 
         columnWidth : 0.25,
         columnWidth : 0.25,
         decimalPrecision: 4,
         decimalPrecision: 4,
-        minValue:0
+        minValue:0,
+        group: '管理信息',
     },{
     },{
         ignore:true,
         ignore:true,
         readOnly:true,
         readOnly:true,
@@ -183,7 +206,8 @@ Ext.define('saas.view.document.product.FormPanel', {
         name : "pr_saleprice", 
         name : "pr_saleprice", 
         fieldLabel : "最新售价(元)", 
         fieldLabel : "最新售价(元)", 
         decimalPrecision: 4,
         decimalPrecision: 4,
-        minValue:0
+        minValue:0,
+        group: '管理信息',
     },{  
     },{  
         hidden:true,
         hidden:true,
         xtype : "datefield", 
         xtype : "datefield", 
@@ -194,12 +218,6 @@ Ext.define('saas.view.document.product.FormPanel', {
         xtype : "datefield", 
         xtype : "datefield", 
         name : "updateTime", 
         name : "updateTime", 
         fieldLabel : "更新时间"
         fieldLabel : "更新时间"
-    }, {
-        xtype: 'numberfield',
-        fieldLabel: '提前期',
-        name: 'pr_leadtime',
-        minValue: 0,
-        maxLength: 10
     },{
     },{
         xtype : "textfield", 
         xtype : "textfield", 
         name : "pr_text1", 
         name : "pr_text1", 

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

@@ -27,25 +27,29 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         name: 'id',
         name: 'id',
         fieldLabel: 'id',
         fieldLabel: 'id',
         allowBlank: true,
         allowBlank: true,
-        columnWidth: 0.25
+        columnWidth: 0.25,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 've_code',
         name: 've_code',
         fieldLabel: '供应商编号',
         fieldLabel: '供应商编号',
         allowBlank: false,
         allowBlank: false,
-        columnWidth: 0.25
+        columnWidth: 0.25,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 've_name',
         name: 've_name',
         fieldLabel: '供应商名称',
         fieldLabel: '供应商名称',
         allowBlank: false,
         allowBlank: false,
-        columnWidth: 0.25
+        columnWidth: 0.25,
+        group: '基础信息',
     },{
     },{
         xtype: 'textfield',
         xtype: 'textfield',
         name: 've_shortname',
         name: 've_shortname',
         fieldLabel: '供应商简称',
         fieldLabel: '供应商简称',
         columnWidth: 0.25,
         columnWidth: 0.25,
-        hidden: true
+        hidden: true,
+        group: '基础信息',
     },{
     },{
         xtype: 'hidden',
         xtype: 'hidden',
         name: 've_status',
         name: 've_status',
@@ -65,6 +69,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         name : "ve_type", 
         name : "ve_type", 
         fieldLabel : "供应商类型", 
         fieldLabel : "供应商类型", 
         columnWidth : 0.25,
         columnWidth : 0.25,
+        group: '基础信息',
         addHandler:function(b){
         addHandler:function(b){
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var form = this.ownerCmp.ownerCt;
             var form = this.ownerCmp.ownerCt;
@@ -95,7 +100,8 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         format:'Y-m-d',
         format:'Y-m-d',
         fieldLabel : "期初日期", 
         fieldLabel : "期初日期", 
         allowBlank : true, 
         allowBlank : true, 
-        columnWidth : 0.25  
+        columnWidth : 0.25,
+        group: '交易信息',
     },{ 
     },{ 
         xtype : "numberfield", 
         xtype : "numberfield", 
         hideTrigger:true,
         hideTrigger:true,
@@ -105,6 +111,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         columnWidth : 0.25,
         columnWidth : 0.25,
         decimalPrecision: 2,
         decimalPrecision: 2,
         minValue:0,
         minValue:0,
+        group: '交易信息',
         renderer : function(v) {
         renderer : function(v) {
             return saas.util.BaseUtil.numberFormat(v, 2, true);
             return saas.util.BaseUtil.numberFormat(v, 2, true);
         },
         },
@@ -117,9 +124,23 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         columnWidth : 0.25,
         columnWidth : 0.25,
         decimalPrecision: 2,
         decimalPrecision: 2,
         minValue:0,
         minValue:0,
+        group: '交易信息',
         renderer : function(v) {
         renderer : function(v) {
             return saas.util.BaseUtil.numberFormat(v, 2, true);
             return saas.util.BaseUtil.numberFormat(v, 2, true);
         },    
         },    
+    },{  
+        xtype : "numberfield", 
+        name : "ve_leftamount", 
+        fieldLabel : "应付款余额", 
+        allowBlank : true, 
+        readOnly:true,
+        ignore:true,
+        columnWidth : 0.25,
+        decimalPrecision: 2,
+        group: '交易信息',
+        renderer : function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 2, true);
+        },  
     },{
     },{
         xtype : "numberfield", 
         xtype : "numberfield", 
         name : "ve_taxrate", 
         name : "ve_taxrate", 
@@ -129,6 +150,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         columnWidth : 0.25,
         columnWidth : 0.25,
         minValue:0,  
         minValue:0,  
         maxValue:100,
         maxValue:100,
+        group: '交易信息',
     },{ 
     },{ 
         xtype : "numberfield", 
         xtype : "numberfield", 
         hideTrigger:true,
         hideTrigger:true,
@@ -139,13 +161,15 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         minValue:0,
         minValue:0,
         maxLength: 8,
         maxLength: 8,
         enforceMaxLength: true,
         enforceMaxLength: true,
-        decimalPrecision: 0
+        decimalPrecision: 0,
+        group: '交易信息',
     },{
     },{
         xtype : "textfield", 
         xtype : "textfield", 
         name : "ve_nsrzh", 
         name : "ve_nsrzh", 
         fieldLabel : "纳税人识别号", 
         fieldLabel : "纳税人识别号", 
         allowBlank : true, 
         allowBlank : true, 
-        columnWidth : 0.25
+        columnWidth : 0.25,
+        group: '基础信息',
     },{
     },{
         xtype : "textfield", 
         xtype : "textfield", 
         name : "ve_bankcode", 
         name : "ve_bankcode", 
@@ -173,20 +197,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         allowBlank : true, 
         allowBlank : true, 
         hidden:true,
         hidden:true,
         columnWidth : 0.25  
         columnWidth : 0.25  
-    },{  
-        xtype : "numberfield", 
-        name : "ve_leftamount", 
-        fieldLabel : "应付款余额", 
-        allowBlank : true, 
-        readOnly:true,
-        ignore:true,
-        columnWidth : 0.25,
-        decimalPrecision: 2,
-        renderer : function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 2, true);
-        },  
-    },
-    {
+    }, {
         xtype : "hidden", 
         xtype : "hidden", 
         name : "ve_buyercode", 
         name : "ve_buyercode", 
         fieldLabel : "采购员编号"
         fieldLabel : "采购员编号"
@@ -206,7 +217,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         name : "ve_address", 
         name : "ve_address", 
         fieldLabel : "地址", 
         fieldLabel : "地址", 
         allowBlank : true, 
         allowBlank : true, 
-        columnWidth : 1
+        columnWidth : 0.75
     },{
     },{
         fieldLabel : "备注", 
         fieldLabel : "备注", 
         xtype:'textfield',
         xtype:'textfield',

+ 2 - 2
frontend/saas-web/app/view/main/Navigation.js

@@ -39,7 +39,7 @@ Ext.define('saas.view.main.Navigation', {
                 '</ul>'),
                 '</ul>'),
             trackOver: true,
             trackOver: true,
             overItemCls: 'x-navitem-over',
             overItemCls: 'x-navitem-over',
-            selectedClass: 'x-navitem-selected',
+            selectedItemCls: 'x-navitem-selected',
             singleSelect: true,
             singleSelect: true,
             itemSelector: '.x-navitem',
             itemSelector: '.x-navitem',
             listeners: {
             listeners: {
@@ -104,7 +104,7 @@ Ext.define('saas.view.main.Navigation', {
                     '</div>'),
                     '</div>'),
                 trackOver: true,
                 trackOver: true,
                 overItemCls: 'menuitem-over',
                 overItemCls: 'menuitem-over',
-                selectedClass: 'menuitem-selected',
+                selectedItemCls: 'menuitem-selected',
                 singleSelect: true,
                 singleSelect: true,
                 itemSelector: 'menu',
                 itemSelector: 'menu',
                 listeners: {
                 listeners: {

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

@@ -11,21 +11,21 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name:'ft_code',
         name:'ft_code',
         emptyText:'请输入单号',
         emptyText:'请输入单号',
-    },{
+    }, {
+        xtype : "bandinfoDbfindTrigger",
+        name : "ftd_bankname",
+        margin:'0 0 0 20',
+        emptyText: '请输入转出账户编号或名称',
+    }, {
         xtype : "condatefield",
         xtype : "condatefield",
         name : "ft_date",
         name : "ft_date",
         fieldLabel : "日期",
         fieldLabel : "日期",
         columnWidth: 0.5
         columnWidth: 0.5
-    } ,{
-        xtype : "bandinfoDbfindTrigger",
-        name : "ftd_bankname",
-        fieldLabel : "转出账户",
-        emptyText: '输入账户编号或名称',
-    },{
+    }, {
         xtype : "bandinfoDbfindTrigger",
         xtype : "bandinfoDbfindTrigger",
         name : "ftd_inbankname",
         name : "ftd_inbankname",
         fieldLabel : "转入账户",
         fieldLabel : "转入账户",
-        emptyText: '输入账户编号或名称',
+        emptyText: '请输入转入账户编号或名称',
     },{
     },{
         xtype: 'combobox',
         xtype: 'combobox',
         name: 'ft_statuscode',
         name: 'ft_statuscode',

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

@@ -11,17 +11,17 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'or_code',
         name: 'or_code',
         emptyText:'请输入单号'
         emptyText:'请输入单号'
+    }, {
+        xtype : "customerDbfindTrigger", 
+        name : "or_custname", 
+        margin:'0 0 0 20',
+        emptyText:'请输入客户编号或名称'
     },  {
     },  {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'or_date',
         name: 'or_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         columnWidth: 0.5,
         columnWidth: 0.5,
         operation: 'between'
         operation: 'between'
-    }, {
-        xtype : "customerDbfindTrigger", 
-        name : "or_custname", 
-        fieldLabel : "客户",
-        emptyText:'请输入客户编号或名称'
     }, {
     }, {
         name: 'ord_type',
         name: 'ord_type',
         fieldLabel: '收入类别',
         fieldLabel: '收入类别',

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

@@ -11,16 +11,16 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'os_code',
         name: 'os_code',
         emptyText:'请输入单号'
         emptyText:'请输入单号'
+    }, {
+        xtype: 'vendorDbfindTrigger',
+        name: 'os_vendname',
+        margin:'0 0 0 20',
+        emptyText :'请输入供应商编号或名称'
     },{
     },{
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'os_date',
         name: 'os_date',
         columnWidth: 0.5,
         columnWidth: 0.5,
         fieldLabel: '日期'
         fieldLabel: '日期'
-    }, {
-        xtype: 'vendorDbfindTrigger',
-        name: 'os_vendname',
-        fieldLabel: '供应商',
-        emptyText :'请输入供应商编号或名称'
     }, {
     }, {
         name: 'osd_type',
         name: 'osd_type',
         fieldLabel: '支出类别',
         fieldLabel: '支出类别',

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

@@ -19,17 +19,17 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pb_code',
         name: 'pb_code',
         emptyText :'请输入单号'
         emptyText :'请输入单号'
+    }, {
+        xtype: 'vendorDbfindTrigger',
+        name: 'pb_vendname',
+        margin:'0 0 0 20',
+        emptyText :'请输入供应商编号或名称'
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pb_date',
         name: 'pb_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         columnWidth: 0.5,
         columnWidth: 0.5,
         operation: 'between'
         operation: 'between'
-    }, {
-        xtype: 'vendorDbfindTrigger',
-        name: 'pb_vendname',
-        fieldLabel: '供应商',
-        emptyText :'请输入供应商编号或名称'
     }/*,  {
     }/*,  {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pbd_slcode',
         name: 'pbd_slcode',

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

@@ -11,17 +11,17 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'rb_code',
         name: 'rb_code',
         emptyText :'请输入单号'
         emptyText :'请输入单号'
+    }, {
+        xtype: 'customerDbfindTrigger',
+        name: 'rb_custname',
+        margin:'0 0 0 20',
+        emptyText :'请输入客户编号或名称'
     },{
     },{
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'rb_date',
         name: 'rb_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         columnWidth: 0.5,
         columnWidth: 0.5,
         operation: 'between'
         operation: 'between'
-    }, {
-        xtype: 'customerDbfindTrigger',
-        name: 'rb_custname',
-        fieldLabel: '客户',
-        emptyText :'请输入客户编号或名称'
     }/* , {
     }/* , {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'rbd_slcode',
         name: 'rbd_slcode',

+ 5 - 2
frontend/saas-web/app/view/money/report/VendorCheck.js

@@ -33,7 +33,7 @@ Ext.define('saas.view.money.report.VendorCheck', {
     // }, {
     // }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pi_date',
         name: 'pi_date',
-        fieldLabel: '单据日期',
+        fieldLabel: '日期',
         columnWidth: 0.4
         columnWidth: 0.4
     }],
     }],
 
 
@@ -58,7 +58,10 @@ Ext.define('saas.view.money.report.VendorCheck', {
         dataIndex: 'pd_pdno',
         dataIndex: 'pd_pdno',
         align: 'center',
         align: 'center',
         exportFormat: 'Integer',
         exportFormat: 'Integer',
-        width: 65
+        width: 65,
+        renderer : function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 0, true);
+        }
     }, {
     }, {
         text: '物料编号',
         text: '物料编号',
         dataIndex: 'pr_code',
         dataIndex: 'pr_code',

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

@@ -11,17 +11,17 @@ Ext.define('saas.view.money.verification.QueryPanel', {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'vc_code',
         name: 'vc_code',
         emptyText :'请输入单号'
         emptyText :'请输入单号'
+    }, {
+        xtype: 'customerDbfindTrigger',
+        name: 'vc_custname',
+        margin:'0 0 0 20',
+        emptyText :'请输入客户编号或名称'
     },{
     },{
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'vc_date',
         name: 'vc_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         columnWidth: 0.5,
         columnWidth: 0.5,
         operation: 'between'
         operation: 'between'
-    }, {
-        xtype: 'customerDbfindTrigger',
-        name: 'vc_custname',
-        fieldLabel: '客户',
-        emptyText :'请输入客户编号或名称'
     }, {
     }, {
         xtype: 'vendorDbfindTrigger',
         xtype: 'vendorDbfindTrigger',
         name: 'vc_vendname',
         name: 'vc_vendname',

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

@@ -328,7 +328,7 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
         columnWidth: 1
         columnWidth: 1
     }, {
     }, {
         xtype: "textfield",
         xtype: "textfield",
-        name: "pu_currency",
+        name: "pi_currency",
         fieldLabel: "币别",
         fieldLabel: "币别",
         readOnly: true,
         readOnly: true,
         defaultValue: 'RMB'
         defaultValue: 'RMB'

+ 1 - 0
frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js

@@ -15,6 +15,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
             return  ' (pi_inoutno like\'%' + value + '%\' or pi_vendcode like \'%'+value+'%\' or pi_vendname like \'%'+value+'%\') ';
             return  ' (pi_inoutno like\'%' + value + '%\' or pi_vendcode like \'%'+value+'%\' or pi_vendname like \'%'+value+'%\') ';
         }
         }
     }, {
     }, {
+        margin:'0 0 0 20',
         xtype: 'productDbfindTrigger',
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
         name: 'pr_detail',
         emptyText:'输入物料编号或名称',
         emptyText:'输入物料编号或名称',

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

@@ -325,7 +325,7 @@ Ext.define('saas.view.purchase.purchaseOut.FormPanel', {
         columnWidth: 1
         columnWidth: 1
     }, {
     }, {
         xtype: "textfield",
         xtype: "textfield",
-        name: "pu_currency",
+        name: "pi_currency",
         fieldLabel: "币别",
         fieldLabel: "币别",
         readOnly: true,
         readOnly: true,
         defaultValue: 'RMB'
         defaultValue: 'RMB'

+ 1 - 0
frontend/saas-web/app/view/purchase/purchaseOut/QueryPanel.js

@@ -15,6 +15,7 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
             return ' (pi_inoutno like\'%' + value + '%\' or pi_vendcode like \'%' + value + '%\' or pi_vendname like \'%' + value + '%\') ';
             return ' (pi_inoutno like\'%' + value + '%\' or pi_vendcode like \'%' + value + '%\' or pi_vendname like \'%' + value + '%\') ';
         }
         }
     },{
     },{
+        margin:'0 0 0 20',
         xtype: 'productDbfindTrigger',
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
         name: 'pr_detail',
         emptyText: '输入物料编号或名称',
         emptyText: '输入物料编号或名称',

+ 1 - 1
frontend/saas-web/app/view/purchase/report/PurchasePay.js

@@ -17,7 +17,7 @@ Ext.define('saas.view.purchase.report.PurchasePay', {
         xtype: 'vendorDbfindTrigger',
         xtype: 'vendorDbfindTrigger',
         name: 'pu_vendname',
         name: 'pu_vendname',
         columnWidth: 0.25,
         columnWidth: 0.25,
-        emptyText:'请输入供应商名称'
+        emptyText:'请输入供应商编号或名称'
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'createTime',
         name: 'createTime',

+ 7 - 11
frontend/saas-web/app/view/sale/report/SaleProfit.js

@@ -11,24 +11,20 @@ Ext.define('saas.view.sale.report.SaleProfit', {
     listUrl: '/api/sale/report/saleProfit',
     listUrl: '/api/sale/report/saleProfit',
     defaultCondition: null,
     defaultCondition: null,
     reportTitle: '销售毛利润表',
     reportTitle: '销售毛利润表',
-//筛选:客户、物料、时间	
     QueryWidth:0.2, 	
     QueryWidth:0.2, 	
     searchItems: [{
     searchItems: [{
-        xtype: 'textfield',
-        name: 'sa_custname',
-        emptyText:'请输入客户编号或名称',
-        columnWidth: 0.2,
-        getCondition: function(value) {
-            return  ' (sa_custname like\'%' + value + '%\' or sa_custcode like \'%'+value+'%\' ) ';
-        }
-    }, {
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'pr_detail',
         name: 'pr_detail',
-        emptyText:'请输入物料编号或品牌',
+        emptyText:'请输入物料编号、品牌、型号或规格',
         columnWidth: 0.2,
         columnWidth: 0.2,
         getCondition: function(value) {
         getCondition: function(value) {
-            return  ' (pr_code like\'%' + value + '%\' or pr_brand like \'%'+value+'%\' ) ';
+            return  ' (pr_code like\'%' + value + '%\' or pr_brand like \'%'+value+'%\' or pr_spec like \'%'+value+'%\' or pr_orispeccode like \'%'+value+'%\' ) ';
         }
         }
+    }, {
+        xtype: 'customerDbfindTrigger',
+        name: 'sa_custname',
+        emptyText:'请输入客户编号或名称',
+        columnWidth: 0.2
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pi_date',
         name: 'pi_date',

+ 8 - 1
frontend/saas-web/app/view/sale/sale/FormPanel.js

@@ -79,6 +79,13 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                     }
                     }
                     return me;
                     return me;
                 }
                 }
+            }, {
+                xtype: "datefield",
+                name: "sa_delivery",
+                fieldLabel: "交货日期",
+                allowBlank: false,
+                defaultValue: new Date(),
+                columnWidth: 0.25,
             }, {
             }, {
                 name: "sa_toplace",
                 name: "sa_toplace",
                 xtype: "remotecombo",
                 xtype: "remotecombo",
@@ -323,7 +330,7 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                 xtype: "textfield",
                 xtype: "textfield",
                 name: "sa_nettotal",
                 name: "sa_nettotal",
                 fieldLabel: "金额(元)",
                 fieldLabel: "金额(元)",
-                readOnly: true
+                hidden: true
             },{
             },{
                 xtype: "textfield",
                 xtype: "textfield",
                 name: "sa_total",
                 name: "sa_total",

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

@@ -14,7 +14,7 @@ Ext.define('saas.view.sale.sale.QueryPanel', {
         getCondition: function(value) {
         getCondition: function(value) {
            return  ' (sa_code like\'%' + value + '%\' or sa_custcode like \'%'+value+'%\' or sa_custname like \'%'+value+'%\') ';
            return  ' (sa_code like\'%' + value + '%\' or sa_custcode like \'%'+value+'%\' or sa_custname like \'%'+value+'%\') ';
         }
         }
-    },{
+    }, {
         margin:'0 0 0 20',
         margin:'0 0 0 20',
         xtype: 'productDbfindTrigger',
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
         name: 'pr_detail',

+ 1 - 1
frontend/saas-web/app/view/sale/saleIn/FormPanel.js

@@ -349,7 +349,7 @@ Ext.define('saas.view.sale.saleIn.FormPanel', {
         xtype : "textfield", 
         xtype : "textfield", 
         name : "pi_remark", 
         name : "pi_remark", 
         fieldLabel : "备注", 
         fieldLabel : "备注", 
-        columnWidth : 0.75
+        columnWidth : 1
     },{
     },{
         xtype: "textfield",
         xtype: "textfield",
         name: "pi_currency",
         name: "pi_currency",

+ 1 - 1
frontend/saas-web/app/view/sale/saleIn/QueryPanel.js

@@ -211,7 +211,7 @@ Ext.define('saas.view.sale.saleIn.QueryPanel', {
             dataIndex: 'pd_whname',
             dataIndex: 'pd_whname',
             width: 150
             width: 150
         },{
         },{
-            text: '退货数量',
+            text: '数量',
             dataIndex: 'pd_inqty',
             dataIndex: 'pd_inqty',
             xtype:'numbercolumn',
             xtype:'numbercolumn',
             width: 110,
             width: 110,

+ 1 - 1
frontend/saas-web/app/view/sale/saleOut/FormPanel.js

@@ -351,7 +351,7 @@ Ext.define('saas.view.sale.saleout.FormPanel', {
         xtype: "textfield",
         xtype: "textfield",
         name: "pi_remark",
         name: "pi_remark",
         fieldLabel: "备注",
         fieldLabel: "备注",
-        columnWidth: 0.75
+        columnWidth: 1
     },{
     },{
         xtype: "textfield",
         xtype: "textfield",
         name: "pi_currency",
         name: "pi_currency",

+ 1 - 1
frontend/saas-web/app/view/sale/saleOut/QueryPanel.js

@@ -211,7 +211,7 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
             dataIndex: 'pd_whname',
             dataIndex: 'pd_whname',
             width: 80
             width: 80
         }, {
         }, {
-            text: '出货数量',
+            text: '数量',
             dataIndex: 'pd_outqty',
             dataIndex: 'pd_outqty',
             xtype:'numbercolumn',
             xtype:'numbercolumn',
             width: 110,
             width: 110,

+ 5 - 12
frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js

@@ -18,24 +18,17 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
                 return  ' (pi_inoutno like\'%' + value + '%\' ) ';
                 return  ' (pi_inoutno like\'%' + value + '%\' ) ';
             }
             }
         }
         }
+    }, {
+        xtype: 'productDbfindTrigger',
+        name: 'pr_detail',
+        emptyText:'请输入物料编号或名称',
+        margin:'0 0 0 20'
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pi_date',
         name: 'pi_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         allowBlank: true,
         allowBlank: true,
         columnWidth: 0.5
         columnWidth: 0.5
-    }, {
-        xtype: 'productDbfindTrigger',
-        name: 'pr_detail',
-        fieldLabel: '物料',
-        emptyText:'请输入物料编号或名称',
-        getCondition: function(value) {
-            if(value == ''|| value ==null) {
-                return '1=1';
-            }else {
-                return  ' (pr_detail like\'%' + value + '%\' or  ) ';
-            }
-        }
     }, {
     }, {
         xtype: 'combobox',
         xtype: 'combobox',
         name: 'pi_statuscode',
         name: 'pi_statuscode',

+ 1 - 1
frontend/saas-web/app/view/stock/make/FormPanel.js

@@ -88,7 +88,7 @@ Ext.define('saas.view.stock.make.FormPanel', {
     },{
     },{
         xtype : "textfield", 
         xtype : "textfield", 
         name : "ma_version", 
         name : "ma_version", 
-        fieldLabel : "版本",
+        fieldLabel : "版本",
         readOnly:true,
         readOnly:true,
         columnWidth: 0.25
         columnWidth: 0.25
     },
     },

+ 8 - 8
frontend/saas-web/app/view/stock/make/QueryPanel.js

@@ -12,16 +12,10 @@ Ext.define('saas.view.stock.make.QueryPanel', {
         name: 'ma_code',
         name: 'ma_code',
         emptyText :'请输入单号',
         emptyText :'请输入单号',
     }, {
     }, {
-        xtype: 'condatefield',
-        name: 'createTime',
-        fieldLabel: '日期',
-        columnWidth: 0.5,
-        operation: 'between'
-    },{
         xtype: 'productDbfindTrigger',
         xtype: 'productDbfindTrigger',
         name: 'ma_prodcode',
         name: 'ma_prodcode',
-        fieldLabel: '产品',
-        emptyText :'请输入产品名称或编号',
+        emptyText :'请输入产品编号或名称',
+        margin:'0 0 0 20',
         getCondition: function(value) {
         getCondition: function(value) {
             if(value == 'ALL') {
             if(value == 'ALL') {
                 return '1=1';
                 return '1=1';
@@ -29,6 +23,12 @@ Ext.define('saas.view.stock.make.QueryPanel', {
                 return  ' (ma_prodcode like\'%' + value + '%\' or ma_proddetail like \'%'+value+'%\') ';
                 return  ' (ma_prodcode like\'%' + value + '%\' or ma_proddetail like \'%'+value+'%\') ';
             }
             }
         }
         }
+    }, {
+        xtype: 'condatefield',
+        name: 'createTime',
+        fieldLabel: '日期',
+        columnWidth: 0.5,
+        operation: 'between'
     }, {
     }, {
         xtype: 'combobox',
         xtype: 'combobox',
         name: 'ma_type',
         name: 'ma_type',

+ 1 - 1
frontend/saas-web/app/view/stock/otherIn/FormPanel.js

@@ -78,7 +78,7 @@ Ext.define('saas.view.stock.otherIn.FormPanel', {
         defaultValue: new Date()
         defaultValue: new Date()
     },{
     },{
         xtype : "textfield", 
         xtype : "textfield", 
-        name : "pi_total", 
+        name : "pi_costtotal", 
         fieldLabel : "金额(元)", 
         fieldLabel : "金额(元)", 
         allowBlank : true,
         allowBlank : true,
         readOnly: true,
         readOnly: true,

+ 7 - 7
frontend/saas-web/app/view/stock/otherIn/QueryPanel.js

@@ -18,18 +18,18 @@ Ext.define('saas.view.stock.otherIn.QueryPanel', {
                 return  ' (pi_inoutno like\'%' + value + '%\') ';
                 return  ' (pi_inoutno like\'%' + value + '%\') ';
             }
             }
         }
         }
+    }, {
+        xtype: 'productDbfindTrigger',
+        name: 'pr_detail',
+        emptyText:'输入物料编号或名称',
+        margin:'0 0 0 20',
+        showDetail: true
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pi_date',
         name: 'pi_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         columnWidth: 0.5,
         columnWidth: 0.5,
         operation: 'between'
         operation: 'between'
-    }, {
-        xtype: 'productDbfindTrigger',
-        name: 'pr_detail',
-        fieldLabel: '物料',
-        emptyText:'输入物料编号或名称',
-        showDetail: true
     }, {
     }, {
         xtype: 'vendorDbfindTrigger',
         xtype: 'vendorDbfindTrigger',
         name: 'pi_vendcode',
         name: 'pi_vendcode',
@@ -109,7 +109,7 @@ Ext.define('saas.view.stock.otherIn.QueryPanel', {
         }, {
         }, {
             text: '金额(元)',
             text: '金额(元)',
             xtype: 'numbercolumn',
             xtype: 'numbercolumn',
-            dataIndex: 'pi_nettotal',
+            dataIndex: 'pi_costtotal',
             width: 110,
             width: 110,
             renderer : function(v) {
             renderer : function(v) {
                 return saas.util.BaseUtil.numberFormat(v, 2, true);
                 return saas.util.BaseUtil.numberFormat(v, 2, true);

+ 1 - 1
frontend/saas-web/app/view/stock/otherOut/FormPanel.js

@@ -63,7 +63,7 @@ Ext.define('saas.view.stock.otherOut.FormPanel', {
         defaultValue: new Date()
         defaultValue: new Date()
     }, {
     }, {
         xtype: "textfield",
         xtype: "textfield",
-        name: "pi_total",
+        name: "pi_costtotal",
         fieldLabel: "金额(元)",
         fieldLabel: "金额(元)",
         allowBlank: true,
         allowBlank: true,
         readOnly: true,
         readOnly: true,

+ 7 - 7
frontend/saas-web/app/view/stock/otherOut/QueryPanel.js

@@ -18,18 +18,18 @@ Ext.define('saas.view.stock.otherOut.QueryPanel', {
                 return  ' (pi_inoutno like\'%' + value + '%\') ';
                 return  ' (pi_inoutno like\'%' + value + '%\') ';
             }
             }
         }
         }
+    }, {
+        xtype: 'productDbfindTrigger',
+        name: 'pr_detail',
+        emptyText:'输入物料编号或名称',
+        showDetail: true,
+        margin:'0 0 0 20'
     }, {
     }, {
         xtype: 'condatefield',
         xtype: 'condatefield',
         name: 'pi_date',
         name: 'pi_date',
         fieldLabel: '日期',
         fieldLabel: '日期',
         columnWidth: 0.5,
         columnWidth: 0.5,
         operation: 'between'
         operation: 'between'
-    }, {
-        xtype: 'productDbfindTrigger',
-        name: 'pr_detail',
-        fieldLabel: '物料',
-        emptyText:'输入物料编号或名称',
-        showDetail: true
     }, {
     }, {
         xtype: 'customerDbfindTrigger',
         xtype: 'customerDbfindTrigger',
         name: 'pi_custname',
         name: 'pi_custname',
@@ -109,7 +109,7 @@ Ext.define('saas.view.stock.otherOut.QueryPanel', {
         }, {
         }, {
             text: '金额(元)',
             text: '金额(元)',
             xtype: 'numbercolumn',
             xtype: 'numbercolumn',
-            dataIndex: 'pi_nettotal',
+            dataIndex: 'pi_costtotal',
             width: 110,
             width: 110,
             renderer : function(v) {
             renderer : function(v) {
                 return saas.util.BaseUtil.numberFormat(v, 2, true);
                 return saas.util.BaseUtil.numberFormat(v, 2, true);

+ 3 - 3
frontend/saas-web/app/view/stock/report/DataList.js

@@ -19,7 +19,7 @@ Ext.define('saas.view.stock.report.DataList', {
     searchItems: [{
     searchItems: [{
         name: 'pr_code',
         name: 'pr_code',
         xtype: 'textfield',
         xtype: 'textfield',
-        emptyText: '物料编号/名称/规格',
+        emptyText: '请输入物料编号、名称或规格',
         columnWidth: 0.25,
         columnWidth: 0.25,
         getCondition: function (v) {
         getCondition: function (v) {
             return "(upper(pr_spec) like '%" + v.toUpperCase() + "%' or upper(pr_code) like '%" + v.toUpperCase() + "%' or upper(pr_detail) like '%" + v.toUpperCase() + "%')";
             return "(upper(pr_spec) like '%" + v.toUpperCase() + "%' or upper(pr_code) like '%" + v.toUpperCase() + "%' or upper(pr_detail) like '%" + v.toUpperCase() + "%')";
@@ -27,7 +27,7 @@ Ext.define('saas.view.stock.report.DataList', {
     }, {
     }, {
         name: 'wh_code',
         name: 'wh_code',
         xtype: 'textfield',
         xtype: 'textfield',
-        emptyText: '仓库编号/名称',
+        emptyText: '请输入仓库编号或名称',
         columnWidth: 0.25,
         columnWidth: 0.25,
         hidden: true,
         hidden: true,
         getCondition: function (v) {
         getCondition: function (v) {
@@ -69,7 +69,7 @@ Ext.define('saas.view.stock.report.DataList', {
     }, {
     }, {
         text: '物料类型',
         text: '物料类型',
         dataIndex: 'rc_prodKind',
         dataIndex: 'rc_prodKind',
-        width: 200
+        width: 100
     }, {
     }, {
         text: "仓库",
         text: "仓库",
         dataIndex: "rc_whName",
         dataIndex: "rc_whName",

+ 10 - 4
frontend/saas-web/app/view/stock/report/ProdinoutCount.js

@@ -14,12 +14,18 @@ Ext.define('saas.view.stock.report.ProdinoutCount', {
     searchItems: [{		
     searchItems: [{		
         xtype: 'textfield',
         xtype: 'textfield',
         name: 'wh_description',
         name: 'wh_description',
+        fieldLabel: '仓库',
+        emptyText:'输入仓库编号或名称',
         columnWidth: 0.2,
         columnWidth: 0.2,
-        emptyText:'输入仓库名称或物料名称',
-        columnWidth: 0.2,
-        getCondition:function(v){
-            return "(upper(pr_detail) like '%" + v.toUpperCase() + "%' or upper(wh_description) like '%" + v.toUpperCase() + "%')";
+        getCondition: function(value) {
+           return  ' (wh_description like\'%' + value + '%\' or wh_code like \'%'+value+'%\') ';
         }
         }
+    }, {		
+        xtype: 'productDbfindTrigger',
+        name: 'pr_code',
+        emptyText:'输入物料编号或名称',
+        columnWidth: 0.2,
+        margin:'0 0 0 20',
     }, {
     }, {
         xtype: 'monthdatefield',
         xtype: 'monthdatefield',
         name: 'pwm_yearmonth',
         name: 'pwm_yearmonth',

+ 7 - 2
frontend/saas-web/app/view/stock/report/Prodiodetail.js

@@ -64,14 +64,19 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
         text: '日期',
         text: '日期',
         dataIndex: 'pi_date',
         dataIndex: 'pi_date',
         xtype: 'datecolumn',
         xtype: 'datecolumn',
-        width: 110
+        width: 110,
+        locked: true
     }, {
     }, {
         text: '序号',
         text: '序号',
         dataIndex: 'pd_pdno',
         dataIndex: 'pd_pdno',
         exportFormat: 'Integer',
         exportFormat: 'Integer',
         align: 'center',
         align: 'center',
         xtype: 'numbercolumn',
         xtype: 'numbercolumn',
-        width: 65
+        width: 65,
+        locked: true,
+        renderer: function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 0, false);
+        }
     }, {
     }, {
         text: '物料编号',
         text: '物料编号',
         dataIndex: 'pd_prodcode',
         dataIndex: 'pd_prodcode',

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

@@ -181,7 +181,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
 			),
 			),
 			trackOver: true,
 			trackOver: true,
 			overItemCls : 'x-module-over',
 			overItemCls : 'x-module-over',
-			selectedClass : 'selected',
+			selectedItemCls : 'selected',
 			singleSelect : true,
 			singleSelect : true,
 			itemSelector : '.x-module-item'
 			itemSelector : '.x-module-item'
         });
         });

+ 13 - 1
frontend/saas-web/index.html

@@ -1,5 +1,6 @@
 <!DOCTYPE HTML>
 <!DOCTYPE HTML>
 <html lang="zh-cn" manifest="">
 <html lang="zh-cn" manifest="">
+
 <head>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta charset="UTF-8">
     <meta charset="UTF-8">
@@ -12,6 +13,17 @@
 
 
     <!-- The line below must be kept intact for Sencha Cmd to build your application -->
     <!-- The line below must be kept intact for Sencha Cmd to build your application -->
     <script id="microloader" data-app="a20e1670-7932-41f6-8e9c-55b77cba3f26" type="text/javascript" src="bootstrap.js"></script>
     <script id="microloader" data-app="a20e1670-7932-41f6-8e9c-55b77cba3f26" type="text/javascript" src="bootstrap.js"></script>
+    <script>
+        var _hmt = _hmt || [];
+        (function () {
+            var hm = document.createElement("script");
+            hm.src = "https://hm.baidu.com/hm.js?d546fc8629cd13b2ebe5e1d71f8272fa";
+            var s = document.getElementsByTagName("script")[0];
+            s.parentNode.insertBefore(hm, s);
+        })();
+    </script>
 </head>
 </head>
+
 <body class="launching"></body>
 <body class="launching"></body>
-</html>
+
+</html>

+ 1 - 1
pom.xml

@@ -39,7 +39,7 @@
         <feign.form.version>3.0.3</feign.form.version>
         <feign.form.version>3.0.3</feign.form.version>
         <commons.fileupload.version>1.3.3</commons.fileupload.version>
         <commons.fileupload.version>1.3.3</commons.fileupload.version>
         <commons.compress.version>1.18</commons.compress.version>
         <commons.compress.version>1.18</commons.compress.version>
-        <docker.repository>192.168.0.63:4000</docker.repository>
+        <docker.repository>10.1.81.1:4000</docker.repository>
         <docker.registry.name>saas</docker.registry.name>
         <docker.registry.name>saas</docker.registry.name>
         <guava.version>18.0</guava.version>
         <guava.version>18.0</guava.version>
         <fastdfs.client.version>1.26.3</fastdfs.client.version>
         <fastdfs.client.version>1.26.3</fastdfs.client.version>