Browse Source

merge dev

guq 7 years ago
parent
commit
4623180e71
48 changed files with 586 additions and 386 deletions
  1. 4 4
      applications/commons/commons-server/src/main/resources/mapper/CommonMapper.xml
  2. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BomServiceImpl.java
  3. 1 1
      base-servers/account/account-server/src/main/resources/application.yml
  4. 2 2
      base-servers/auth/sso-api/src/test/resources/application.yml
  5. 1 1
      frontend/saas-portal-web/config/dev.env.js
  6. 1 1
      frontend/saas-portal-web/config/index.js
  7. 1 1
      frontend/saas-portal-web/config/test.env.js
  8. 2 1
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  9. 17 34
      frontend/saas-portal-web/src/components/conenter/home.vue
  10. 17 6
      frontend/saas-portal-web/src/components/conenter/problem.vue
  11. 1 1
      frontend/saas-portal-web/src/components/footer/footer.vue
  12. 1 1
      frontend/saas-portal-web/src/pages/index/index.html
  13. 10 0
      frontend/saas-web/app/Application.scss
  14. 22 20
      frontend/saas-web/app/view/core/base/BasePanelController.js
  15. 22 20
      frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js
  16. 42 20
      frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js
  17. 2 2
      frontend/saas-web/app/view/core/form/FormPanel.js
  18. 22 20
      frontend/saas-web/app/view/core/form/MseeageLog.js
  19. 81 0
      frontend/saas-web/app/view/core/form/field/ConMonthField.js
  20. 12 9
      frontend/saas-web/app/view/core/form/field/Month.js
  21. 44 40
      frontend/saas-web/app/view/core/query/QueryPanel.js
  22. 15 5
      frontend/saas-web/app/view/core/report/ReportPanel.js
  23. 12 9
      frontend/saas-web/app/view/document/bom/FormPanel.js
  24. 6 7
      frontend/saas-web/app/view/document/kind/ChildForm.js
  25. 7 4
      frontend/saas-web/app/view/document/product/BasePanel.js
  26. 3 8
      frontend/saas-web/app/view/money/report/TotalPayDetail.js
  27. 3 8
      frontend/saas-web/app/view/money/report/TotalRecDetail.js
  28. 2 0
      frontend/saas-web/app/view/money/verification/FormPanel.js
  29. 2 4
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  30. 1 1
      frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js
  31. 1 1
      frontend/saas-web/app/view/purchase/purchaseOut/QueryPanel.js
  32. 15 2
      frontend/saas-web/app/view/sale/report/Sale.js
  33. 1 1
      frontend/saas-web/app/view/sale/report/SaleRec.js
  34. 9 7
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  35. 3 1
      frontend/saas-web/app/view/sale/sale/FormPanelController.js
  36. 1 1
      frontend/saas-web/app/view/sale/saleIn/QueryPanel.js
  37. 1 1
      frontend/saas-web/app/view/sale/saleOut/QueryPanel.js
  38. 1 1
      frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js
  39. 91 52
      frontend/saas-web/app/view/sys/account/AddWindow.js
  40. 23 21
      frontend/saas-web/app/view/sys/account/DataList.js
  41. 3 3
      frontend/saas-web/app/view/sys/account/EditWindow.js
  42. 22 20
      frontend/saas-web/app/view/sys/finish/DataList.js
  43. 1 1
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  44. 22 20
      frontend/saas-web/app/view/sys/maxnumbers/DataList.js
  45. 22 20
      frontend/saas-web/app/view/sys/messagelog/DataList.js
  46. 5 3
      frontend/saas-web/ext/packages/ux/src/feature/MySummary.js
  47. 1 1
      frontend/saas-web/index.html
  48. 6 0
      frontend/saas-web/overrides/window/MessageBox.js

+ 4 - 4
applications/commons/commons-server/src/main/resources/mapper/CommonMapper.xml

@@ -2,17 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.usoftchina.saas.commons.mapper.CommonMapper" >
     <select id="getCountWarehouse" resultType="int">
-        SELECT COUNT(*) FROM WAREHOUSE WHERE COMPANYID=#{companyId} AND WH_STATUSCODE = 'OPEN'
+        SELECT COUNT(*) FROM WAREHOUSE WHERE COMPANYID=#{companyId} AND WH_STATUSCODE = 'ENABLE'
     </select>
     <select id="getCountProduct" resultType="int">
-        SELECT COUNT(*) FROM PRODUCT WHERE COMPANYID=#{companyId} AND PR_STATUSCODE = 'OPEN'
+        SELECT COUNT(*) FROM PRODUCT WHERE COMPANYID=#{companyId} AND PR_STATUSCODE = 'ENABLE'
     </select>
     <select id="getCountCustomer" resultType="int">
-        SELECT COUNT(*) FROM CUSTOMER WHERE COMPANYID=#{companyId} AND CU_STATUSCODE = 'OPEN'
+        SELECT COUNT(*) FROM CUSTOMER WHERE COMPANYID=#{companyId} AND CU_STATUSCODE = 'ENABLE'
     </select>
 
     <select id="getCountVendor" resultType="int">
-        SELECT COUNT(*) FROM VENDOR WHERE COMPANYID=#{companyId} AND VE_STATUSCODE = 'OPEN'
+        SELECT COUNT(*) FROM VENDOR WHERE COMPANYID=#{companyId} AND VE_STATUSCODE = 'ENABLE'
     </select>
 
     <update id="commonAudit" parameterType="string">

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

@@ -56,6 +56,8 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
 //                String code = pushMaxnubmer(bom.getBo_mothercode(), bom.getId());
                 String code = bom.getBo_mothercode();
                 bom.setBo_mothercode(code);
+                bom.setBo_statuscode(Status.ENABLE.name());
+                bom.setBo_status(Status.ENABLE.getDisplay());
                 bom.setCompanyId(companyId);
                 bom.setCreatorId(userId);
                 bom.setCreatorName(userName);

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

@@ -83,7 +83,7 @@ auth:
   public-key: auth/pub.key
 sso:
 #  base-url: https://sso.ubtob.com
-  base-url: http://192.168.253.12:32323
+  base-url: https://tsso.usoftchina.com/
 ribbon:
   ReadTimeout: 6000
   ConnectTimeout: 2000

+ 2 - 2
base-servers/auth/sso-api/src/test/resources/application.yml

@@ -1,3 +1,3 @@
 sso:
-#  base-url: http://192.168.253.12:32323
-  base-url: https://sso.ubtob.com
+  base-url: https://tsso.usoftchina.com
+#  base-url: https://sso.ubtob.com

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

@@ -10,6 +10,6 @@ module.exports = merge(prodEnv, {
     // 后端接口网关
     api: '"https://saas-api-dev.usoftchina.com:5443"',
     // 账户中心接口
-    sso: '"https://sso-dev.usoftchina.com:5443"'
+    sso: '"https://tsso.usoftchina.com"'
   }
 })

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

@@ -10,7 +10,7 @@ module.exports = {
     // Paths
     assetsSubDirectory: 'static',
     assetsPublicPath: '/',
-    proxyTable: {}, 
+    proxyTable: {},  
 
     // Various Dev Server settings
     // host: 'localhost', // can be overwritten by process.env.HOST

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

@@ -10,6 +10,6 @@ module.exports = merge(devEnv, {
     // 后端接口网关
     api: '"https://saas-api-test.usoftchina.com:5443"',
     // 账户中心接口
-    sso: '"https://sso-dev.usoftchina.com:5443"'
+    sso: '"https://tsso.usoftchina.com"'
   }
 })

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

@@ -1,6 +1,5 @@
 <template>
     <div class="div">
-        
         <div id="navigation" class="navbar-inverse navbar-fixed-top animated-header">
         <div class="container">
             <div class="navbar-header">
@@ -31,6 +30,7 @@
             </div>
         </div>
         </div>
+
         <iframe hidden :src="setTokenPage"></iframe>
         <div class="gs-worp">
             <!-- 顶部tab -->
@@ -131,6 +131,7 @@ import { setTimeout } from 'timers';
                 frame.postMessage('', '*')
                 Session.remove()
                 window.location.href=this.$url.sso+'/logquit?appId=sp&returnURL=https://'+window.location.host
+                // this.$router.puth({path:'/home'})
             },
             //修改密码
             changpasd(){

+ 17 - 34
frontend/saas-portal-web/src/components/conenter/home.vue

@@ -21,10 +21,8 @@
             <li><a href="https://www.usoftchina.com/" target="_blank"><span>优软云</span></a></li>
             <li>
               <a href="#feature"><span>特色</span></a>
-              <!-- <router-link to="/enterprise"><a href="#"><span>特色</span></a></router-link> -->
             </li>
             <li><a href="#service"><span>功能</span></a></li>
-            <!-- <li><a href="#prototype"><span>帮助中心</span></a></li> -->
             <li><a href="https://uas.usoftchina.com/about" target="_blank"><span>关于我们</span></a></li>
             <li class="login" v-if="!account" style="margin-left: 30px;">
               <span @click="login"><img src="/static/img/assets/denglu3x.png" alt="">登录  &nbsp;</span>
@@ -58,8 +56,6 @@
       <div class="tiyan" v-if="isexperience">
         <img @click="Closeexperience" class="tc-on ty-out" src="/static/img/qiye/x.png" alt="" />
         <div><img class="ty-logo" src="/static/img/assets/dalogo@2x.png" alt=""></div>
-        <!-- <div><p class="ty-logotxt">欢迎你访问U企云服</p></div> -->
-        <!-- <div class="ty-title"><span>填写手机号后,即刻体验电子行业贸易版所有功能</span></div> -->
         <div class="ty-phone over">
           <div class="left ty-input">
             <span><img style="margin: 6px 8px 10px 15px;" src="/static/img/assets/phone.png" alt=""></span>
@@ -265,23 +261,23 @@
         this.isproblem = true
       } else {
         this.isproblem = this.$route.params.isporblem
-      }
-        this.$ajax({
-          url: this.$url.api+'/api/auth/info',
-          method: 'get',
-          async:false,
-          withCredentials:true
-        })
-        .then(res=>{
-          const data=res.data.data,session = data.token, account = data.account
-          account.companies = account.companies || []
-          session.account = account
-          Session.set(session);
-          this.account = Session.getAccount();
-        })
-        .catch(err=>{
-          // console.log("请求失败",err)
-        })
+      };
+      this.$ajax({
+        url: this.$url.api+'/api/auth/info',
+        method: 'get',
+        async:false,
+        withCredentials:true
+      })
+      .then(res=>{
+        const data=res.data.data,session = data.token, account = data.account
+        account.companies = account.companies || []
+        session.account = account
+        Session.set(session);
+        this.account = Session.getAccount();
+      })
+      .catch(err=>{
+        // console.log("请求失败",err)
+      })
     },
     mounted() {
       this.clientId = Math.random().toString(36).substr(2)
@@ -362,7 +358,6 @@
       },
       //体验
       experience(){
-        console.log(123)
         this.isexperience = true;
       },
       //关闭体验
@@ -451,18 +446,6 @@
   width: 140px;
   margin: 15px 0 50px 13px;
 }
-.ty-logotxt {
-  font-family: PingFangSC-Regular;
-  font-size: 22px !important;
-  color: #059FFE;
-}
-.ty-title {
-  margin-top: 30px;
-  font-family: PingFangSC-Regular;
-  font-size: 14px;
-  color: #059FFE;
-  text-align: center;
-}
 .ty-input {
   width: 330px;
   height: 40px;

+ 17 - 6
frontend/saas-portal-web/src/components/conenter/problem.vue

@@ -18,7 +18,8 @@
                   <li v-for="(d , i) in list" :key="i">
                     <div class="over Text-title" @click="shows(d,i)">
                       <span class="left bz-yuandian"></span>
-                      <span ref="txttitle" class="left bz-txttitle">{{d.title}}</span>
+                      <!-- <span class="left bz-txttitle">{{d.title}}</span> -->
+                      <span class="left bz-txttitle" v-html="keyword(d.title,searchVal)"></span>
                       <img  class="right bz-copy" :class="d.isshow ? 'rotates' : 'norotate'" src="/static/img/Triangle Copy 4.png" alt="">
                     </div>
                     <div ref="title" class="Text-content" :class="d.isshow ? 'dispays' : 'hides'">
@@ -38,7 +39,7 @@
         data(){
           return {
             arr:[
-              {isshow: true, title:'1、如何注册开通优企云服?',centent:'警方圣诞快乐JFK的实力积分积分累积角度考虑实际疯狂的世界佛教埃及空军看见反抗类毒素解放就'},
+              {isshow: true, title:'1、如何注册开通U企云服?',centent:'答:首先进入【U企云服】(http://saas.usoftchina.com) 进行注册;已是优软云的企业用户,进入【U企云服】登陆后,在【账户中心】 选择企业点击【开通服务】即可开通。'},
               {isshow: false, title:'2、实际送货数量大于采购单数量如何操作?',centent:'答:若超出部份正好是贵司所需, 按实际收货数量修改采购验收数量(应付款是按已审核的采购验收单金额记账的'},
               {isshow: false, title:'3、为什么新增采购单据时有的物料可自动带出单价, 有的不能?',centent:'答:因为采购单中的单价取的是物料资料中的最新采购单价, 而最新采购单价是采购验收单审核后自动更新至物料资料中的。'},
               {isshow: false, title:'4、采购单分批次交货时,如何操作? 采购单界面点“转验收单”按钮时会将采购单中的所有都转过去。',centent:'答:采购验收单中可修改数量, 也可删除明细行。 删除后再次收货时在采购单界面点“转验收单”按钮时生成的采购验收单会显示之前删除的那行数据(即所有未交部份均可再显示)'},
@@ -64,18 +65,28 @@
             let textH =  this.$refs.text[i].offsetHeight;
             this.$refs.title[i].style.height = textH + 'px';
           },
+          //搜索文字高亮
+          keyword(val,word){
+            val = val + '';
+            if (val.indexOf(word) !== -1 && word !== '') {
+              return val.replace(word, '<font color="#409EFF">' + word + '</font>')
+            } else {
+              return val
+            }
+          },
         },
         //通过计算属性过滤数据
         computed:{
             list: function(){
-                var arrByZM = [];
+                let list = [];
+                let val = this.searchVal.replace(/\s+/g, "")//去除空格
                 for (var i=0;i<this.arr.length;i++){
-                    if(this.arr[i].title.search(this.searchVal) != -1){
+                    if(this.arr[i].title.search(val) != -1){
                         //判断输入框中的值是否可以匹配到数据,如果匹配成功添加到数组
-                        arrByZM.push(this.arr[i]);
+                      list.push(this.arr[i]);
                     }
                 }
-                return arrByZM;
+                return list;
             }
         }
     }

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

@@ -29,7 +29,7 @@
 						</ul>
 						<ul>
 							<li><span>产品</span></li>
-							<li><a href="#">企云服</a></li>
+							<li><a href="#">U企云服</a></li>
 							<li><a href="https://mall.usoftchina.com/" target="_blank">优软商城</a></li>
 							<li><a href="https://fin.yitoa-fintech.com/" target="_blank">优智融</a></li>
 							<li><a href="https://zb.usoftchina.com/" target="_blank">闯客网</a></li>

+ 1 - 1
frontend/saas-portal-web/src/pages/index/index.html

@@ -32,7 +32,7 @@
 
         <script src="./static/js/sockjs.min.js"></script>
         <script src="./static/js/stomp.min.js"></script>
-    <title>企云服</title>
+    <title>U企云服</title>
   </head>
   <body>
     <div id="app"></div>

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

@@ -153,6 +153,16 @@ body.launching {
   }
 }
 
+.x-btn-showicon{
+  .x-btn-wrap{
+    .x-btn-button{
+      .x-btn-inner{
+        color:#999 !important;
+      }
+    }
+  }
+}
+
 .x-keyboard-mode .x-btn-focus.x-btn-default-toolbar-small {
   background: inherit;
   opacity: 1;

+ 22 - 20
frontend/saas-web/app/view/core/base/BasePanelController.js

@@ -36,28 +36,30 @@ Ext.define('saas.view.core.base.BasePanelController', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

+ 22 - 20
frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js

@@ -194,28 +194,30 @@ Ext.define('saas.view.core.dbfind.DbfindGridPanel', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

+ 42 - 20
frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js

@@ -42,6 +42,26 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
             var pageSize = Math.floor(gridBodyBoxHeight / 33);
 
             store.setPageSize(pageSize);
+        },
+        itemdblclick:function( view, record, item, index, e, eOpts ) {
+            var grid = view.ownerCt;
+            var index = -1;
+            index = grid.selectRecordArr.findIndex(function(f){
+                return f.id==record.id
+            });
+            grid.selModel.noChange = true;
+            if(index==-1){
+                grid.selectRecordArr.push(record);
+                grid.selModel.select(grid.selectRecordArr);
+                // grid.store.loadPage(grid.store.currentPage);
+                grid.updateLayout();
+                grid.view.updateLayout();
+                Ext.resumeLayouts();
+            }else{
+                grid.selectRecordArr.splice(index,1);
+                grid.selModel.deselect(record);
+            }
+            grid.selModel.noChange = false;
         }
     },
 
@@ -357,28 +377,30 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

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

@@ -235,7 +235,7 @@ Ext.define('saas.view.core.form.FormPanel', {
                 bind: '{' + statusCodeField + '}',
                 get: function(value) {
                     // viewModel.set(statusField, value == 'AUDITED' ? '已审核' : '未审核');
-                    viewModel.set(statusField, value == auditTexts.auditCode ? auditTexts.auditText : auditTexts.unAuditText);
+                    viewModel.set(statusField, value ? (value == auditTexts.auditCode ? auditTexts.auditText : auditTexts.unAuditText) : null);
                     // viewModel.set('auditBtnText', value == 'AUDITED' ? '反审核' : '审核');
                     viewModel.set('auditBtnText', value == auditTexts.auditCode ? auditTexts.unAuditBtnText : auditTexts.auditBtnText);
                     // me.setEditable(value != 'AUDITED');
@@ -395,7 +395,7 @@ Ext.define('saas.view.core.form.FormPanel', {
                 item.bind = '{' + name + '}';
             }
             // 设置默认值
-            if (defaultValue) {
+            if (defaultValue != undefined) {
                 viewModel.set(name, defaultValue);
             }
 

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

@@ -155,28 +155,30 @@ Ext.define('saas.view.core.form.MseeageLog', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

+ 81 - 0
frontend/saas-web/app/view/core/form/field/ConMonthField.js

@@ -0,0 +1,81 @@
+Ext.define('saas.view.core.form.field.ConMonthField', {
+    extend: 'Ext.form.FieldContainer',
+    alias: 'widget.conmonthfield',
+
+    layout: 'hbox',
+    items: [],
+    defaults: {
+        margin: '0 0 0 0'
+    },
+    columnWidth: 0.5,
+    defaultBindProperty: 'value',
+
+    combineErrors: true,
+
+    cls: 'x-conmonthfield',
+
+    initComponent : function(){
+        this.callParent(arguments);
+        var me = this, allowBlank = (Ext.isDefined(me.allowBlank) ? me.allowBlank : true);
+        me.from = me.insert(0, {
+            xtype: 'monthdatefield',
+            listeners: {
+                beforeChange: me.beforeFromChange,
+                change: me.fromChange
+            }
+        });
+        me.to = me.insert(1, {
+            xtype: 'monthdatefield',
+            listeners: {
+                beforeChange: me.beforeToChange,
+                change: me.toChange
+            }
+        });
+    },
+
+    setValue: function(value) {
+        this.value = value;
+        this.publishState('value', this.value);
+    },
+
+    beforeFromChange: function(picker, value) {
+        var container = picker.ownerCt,
+        toField = container.to,
+        toValue = toField.value;
+
+        if(Number(value) > Number(toValue)) {
+            toField.setValue('');
+        }
+        return true;
+    },
+
+    fromChange: function(picker, newValue, oldValue) {
+        var container = picker.ownerCt,
+        toField = container.to;
+        container.setValue({
+            from: newValue,
+            to: toField.value
+        });
+    },
+
+    beforeToChange: function(picker, value) {
+        var container = picker.ownerCt,
+        fromField = container.from,
+        fromValue = fromField.value;
+
+        if(Number(value) <= Number(fromValue)) {
+            return false;
+        }else {
+            return true;
+        }
+    },
+
+    toChange: function(picker, newValue, oldValue) {
+        var container = picker.ownerCt,
+        fromField = container.from;
+        container.setValue({
+            from: fromField.value,
+            to: newValue
+        });
+    }
+});

+ 12 - 9
frontend/saas-web/app/view/core/form/field/Month.js

@@ -80,25 +80,32 @@ Ext.define('saas.view.core.form.field.Month', {
             month = Number(month) + 1;
             month = month < 10 ? '0' + month : month;
             year = year == null ? new Date().getFullYear() : year;
+
+            var v = year + '' + month;
             if (this.minValue) {
-                if (Number(year + '' + month) < this.minYearMonth) {
+                if (Number(v) < this.minYearMonth) {
                     return;
                 }
             }
             if (this.maxValue) {
-                if (Number(year + '' + month) > this.maxYearMonth) {
+                if (Number(v) > this.maxYearMonth) {
                     return;
                 }
             }
-            this.setValue(year + '' + month);
+            if(!this.fireEvent('beforeChange', this, v)) {
+                this.monthPicker.hide();
+                return;
+            }
+            this.setValue(v);
+            this.fireEvent('select', this, v);
         }
-        me.onSelect();
+        this.monthPicker.hide();
     },
     getCurrentVal:function(){
         return Ext.Date.format(new Date(),this.format);
     },
     onCancelClick: function() {
-        this.onSelect();
+        this.monthPicker.hide();
     },
     getPickerValues:function() {
         var val = this.value, year, month;
@@ -118,8 +125,4 @@ Ext.define('saas.view.core.form.field.Month', {
         }
         this.callParent(arguments);
     },
-    onSelect: function() {
-        this.monthPicker.hide();
-    }
-
 });

+ 44 - 40
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -137,28 +137,30 @@ Ext.define('saas.view.core.query.QueryPanel', {
                 value = moreItems[k],
                 condition;
     
-                if(typeof func == 'function') {
-                    condition = {
-                        type: 'condition',
-                        value: func(value)
-                    }
-                }else {
-                    var xtype = item.xtype || 'textfield',
-                    type = item.fieldType || me.getDefaultFieldType(xtype),
-                    operation = item.operation || me.getDefaultFieldOperation(xtype),
-                    conditionValue = me.getConditionValue(xtype, value);
-        
-                    if(!conditionValue) {
-                        continue;
-                    }
-                    condition = {
-                        type: type,
-                        field: field,
-                        operation: operation,
-                        value: conditionValue
+                if(value&&value!=''){
+                    if(typeof func == 'function') {
+                        condition = {
+                            type: 'condition',
+                            value: func(value)
+                        }
+                    }else {
+                        var xtype = item.xtype || 'textfield',
+                        type = item.fieldType || me.getDefaultFieldType(xtype),
+                        operation = item.operation || me.getDefaultFieldOperation(xtype),
+                        conditionValue = me.getConditionValue(xtype, value);
+            
+                        if(!conditionValue) {
+                            continue;
+                        }
+                        condition = {
+                            type: type,
+                            field: field,
+                            operation: operation,
+                            value: conditionValue
+                        }
                     }
+                    conditions.push(condition);
                 }
-                conditions.push(condition);
             }
         }else {
             for(k in bindItems) {
@@ -170,28 +172,30 @@ Ext.define('saas.view.core.query.QueryPanel', {
                 value = bindItems[k],
                 condition;
     
-                if(typeof func == 'function') {
-                    condition = {
-                        type: 'condition',
-                        value: func(value)
-                    }
-                }else {
-                    var xtype = item.xtype || 'textfield',
-                    type = item.fieldType || me.getDefaultFieldType(xtype),
-                    operation = item.operation || me.getDefaultFieldOperation(xtype),
-                    conditionValue = me.getConditionValue(xtype, value);
-        
-                    if(!conditionValue) {
-                        continue;
-                    }
-                    condition = {
-                        type: type,
-                        field: field,
-                        operation: operation,
-                        value: conditionValue
+                if(value&&value!=''){
+                    if(typeof func == 'function') {
+                        condition = {
+                            type: 'condition',
+                            value: func(value)
+                        }
+                    }else {
+                        var xtype = item.xtype || 'textfield',
+                        type = item.fieldType || me.getDefaultFieldType(xtype),
+                        operation = item.operation || me.getDefaultFieldOperation(xtype),
+                        conditionValue = me.getConditionValue(xtype, value);
+            
+                        if(!conditionValue) {
+                            continue;
+                        }
+                        condition = {
+                            type: type,
+                            field: field,
+                            operation: operation,
+                            value: conditionValue
+                        }
                     }
+                    conditions.push(condition);
                 }
-                conditions.push(condition);
             }
         }
 

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

@@ -239,8 +239,8 @@ Ext.define('saas.view.core.report.ReportPanel', {
                                 if(type && d) {
                                     if(type == 'count') {
                                         c.summaryValue = Ext.util.Format.number(d[name], c.format || '0');
-                                    }else if(typeof c.summaryRender == 'function') {
-                                        c.summaryValue = c.summaryRender(d[name]);
+                                    }else if(typeof c.summaryRenderer == 'function') {
+                                        c.summaryValue = c.summaryRenderer(d[name]);
                                     }else if(typeof c.renderer == 'function') {
                                         c.summaryValue = c.renderer(d[name]);
                                     }else {
@@ -345,7 +345,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 })
             }else if(c.xtype == 'numbercolumn') {
                 Ext.applyIf(c, {
-                    align: 'end',
+                    align: 'end', // 数字右对齐
                     renderer : function(v) {
                         var arr = (v + '.').split('.');
                         var xr = (new Array(arr[1].length)).fill('0');
@@ -375,6 +375,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
             column.summaryTypeName = summaryType;
         }
         if(summaryType == 'sum') {
+            column._summaryType = 'sum';
             // 原生的求和方法使用的是Store.sum,在数据存在null时计算结果为NaN,这里重写一下
             column.summaryType = function(records, values) {
                 return Ext.Array.sum(values);
@@ -500,6 +501,10 @@ Ext.define('saas.view.core.report.ReportPanel', {
             conditions.push(condition);
         }
 
+        return me.myGetConditions(conditions);
+    },
+
+    myGetConditions: function(conditions) {
         return conditions;
     },
 
@@ -510,7 +515,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
 
         if(me.isContainsAny(xtypes, ['numberfield'])) {
             type = 'number';
-        }else if(me.isContainsAny(xtypes, ['datefield', 'condatefield'])) {
+        }else if(me.isContainsAny(xtypes, ['datefield', 'condatefield', 'conmonthfield'])) {
             type = 'date';
         }else if(me.isContainsAny(xtypes, ['dbfindtrigger'])) {
             type = 'string';
@@ -543,7 +548,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
 
         if(me.isContainsAny(xtypes, ['numberfield', 'datefield', 'dbfindtrigger'])) {
             operation = '=';
-        }else if(me.isContainsAny(xtypes, ['condatefield'])) {
+        }else if(me.isContainsAny(xtypes, ['condatefield', 'conmonthfield'])) {
             operation = 'between';
         }else if(me.isContainsAny(xtypes, ['multidbfindtrigger', 'combobox', 'multicombo', 'combo'])) {
             operation = 'in';
@@ -563,6 +568,11 @@ Ext.define('saas.view.core.report.ReportPanel', {
         conditionValue;
         if(me.isContainsAny(xtypes, ['datefield'])) {
             conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        }else if(me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+            to = value.to;
+
+            conditionValue = from + ',' + to;
         }else if(me.isContainsAny(xtypes, ['condatefield'])) {
             var from = value.from,
             to = value.to;

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

@@ -63,17 +63,13 @@ Ext.define('saas.view.document.bom.FormPanel', {
         xtype: 'textfield',
         name: 'bo_mothername',
         fieldLabel: '产品名称',
-        reddOnly:true,
+        readOnly:true,
         allowBlank: false
     },{
         xtype: 'textfield',
         name: 'pr_spec',
         fieldLabel: '产品规格',
-        reddOnly:true,
-    },{
-        xtype: 'hidden',
-        name: 'bo_statuscode',
-        fieldLabel: '状态码'
+        readOnly:true,
     },{
         xtype: 'textfield',
         name: 'bo_version',
@@ -202,15 +198,22 @@ Ext.define('saas.view.document.bom.FormPanel', {
                     xtype : "textfield"
                 },
             }]
-    },{
+    }, {
+        xtype: 'hidden',
+        name: 'bo_statuscode',
+        fieldLabel: '状态码',
+        readOnly:true,
+        defaultValue: ''
+    }, {
         xtype: 'textfield',
         name: 'bo_status',
         fieldLabel: '产品状态',
-        reddOnly:true
+        readOnly:true,
+        defaultValue: ''
     },{  
         xtype : "textfield", 
         name : "creatorName", 
-        reddOnly:true,
+        readOnly:true,
         fieldLabel : "录入人"
     },{
         xtype : "datefield", 

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

@@ -143,19 +143,18 @@ Ext.define('saas.view.document.kind.ChildForm', {
         var me = this, kind = me.dataKind;
         var conf = {
             xtype: 'form',
-            bodyPadding: 10,
+            bodyPadding: '10 30 10 10',
             border: false,
             autoScroll:true,
             modelValidation: true,
-            layout: {
-                type: 'vbox',
-                align: 'stretch'
-            },
+            layout: 'column',
             defaults: {
-                labelAlign:'right',
+                margin:'0 0 10 0',
                 beforeLabelTextTpl: "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-                xtype: 'textfield'
+                xtype: 'textfield',
+                columnWidth:1
             },
+            buttonAlign:'center',
             buttons: [{
                 text: '保存',
                 formBind:true,

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

@@ -14,7 +14,7 @@ Ext.define('saas.view.document.product.BasePanel', {
         width:300, 
         emptyText:'输入物料编号、名称、型号或规格',
         getCondition: function (v) {
-            return "(upper(CONCAT(pr_code,'#',pr_detail,'#',ifnull(pr_spec,''),'#',ifnull(pr_orispeccode,'')) like '%" + v.toUpperCase() + "%')";
+            return "(upper(CONCAT(pr_code,'#',pr_detail,'#',ifnull(pr_spec,''),'#',ifnull(pr_orispeccode,''))) like '%" + v.toUpperCase() + "%')";
         },
     },{
         editable:true,
@@ -23,12 +23,15 @@ Ext.define('saas.view.document.product.BasePanel', {
         storeUrl: '/api/document/producttype/getCombo',
         name : "pr_kind", 
         emptyText : "物料类型",
-        width:120,
+        width:130
     }, {
-        xtype : "textfield", 
+        editable:true,
+        hiddenBtn:true,
+        xtype : "remotecombo",
+        storeUrl:'/api/document/productbrand/getCombo',
         name : "pr_brand", 
         emptyText : "品牌", 
-        width:110
+        width:120
     }, {
         xtype: 'combobox',
         name: 'pr_statuscode',

+ 3 - 8
frontend/saas-web/app/view/money/report/TotalPayDetail.js

@@ -25,15 +25,10 @@ Ext.define('saas.view.money.report.TotalPayDetail', {
             return "(upper(vm_vendcode) like '%"+v.toUpperCase()+"%' or upper(vm_vendname) like '%"+v.toUpperCase()+"%')";
         },
     }, {
-        xtype: 'monthdatefield',
+        xtype: 'conmonthfield',
+        fieldLabel: '期间',
         name: 'vm_yearmonth',
-        fieldLabel: '起始期间',
-        columnWidth: 0.2
-    }, {
-        xtype: 'monthdatefield',
-        name: 'vm_yearmonthTo',
-        fieldLabel: '结束期间',
-        columnWidth: 0.2
+        columnWidth: 0.4
     }],
 
     reportColumns: [{

+ 3 - 8
frontend/saas-web/app/view/money/report/TotalRecDetail.js

@@ -25,15 +25,10 @@ Ext.define('saas.view.money.report.TotalRecDetail', {
             return "(upper(cm_custcode) like '%" + v.toUpperCase() + "%' or upper(cm_custname) like '%" + v.toUpperCase() + "%')";
         },
     }, {
-        xtype: 'monthdatefield',
+        xtype: 'conmonthfield',
+        fieldLabel: '期间',
         name: 'cm_yearmonth',
-        fieldLabel: '起始期间',
-        columnWidth: 0.2
-    }, {
-        xtype: 'monthdatefield',
-        name: 'cm_yearmonthTo',
-        fieldLabel: '结束期间',
-        columnWidth: 0.2
+        columnWidth: 0.4
     }],
 
     reportColumns: [{

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

@@ -77,6 +77,7 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 text: '来源单号',
                 dataIndex: 'vd_slcode',
                 width: 150,
+                allowBlank:false,
                 editor:{
                     displayField : "display",
                     editable : true,
@@ -198,6 +199,7 @@ Ext.define('saas.view.money.verification.FormPanel', {
                 text: '来源单号',
                 dataIndex: 'vcd_slcode',
                 width: 150,
+                allowBlank:false,
                 editor:{
                     displayField : "display",
                     editable : true,

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

@@ -322,13 +322,11 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 xtype : "employeeDbfindTrigger", 
                 name : "pu_buyername", 
                 fieldLabel : "采购员",
-                columnWidth : 0.25,
-                defaultValue:saas.util.BaseUtil.getCurrentUser().realname
+                columnWidth : 0.25
             },{
                 xtype : "hidden", 
                 name : "pu_buyerid", 
-                fieldLabel : "采购员ID",
-                defaultValue:saas.util.BaseUtil.getCurrentUser().id
+                fieldLabel : "采购员ID"
             },
             {
                 xtype : "hidden", 

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

@@ -53,7 +53,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
         }
     }, {
         xtype: 'multicombo',
-        name: 'pi_prstatus',
+        name: 'pi_prstatuscode',
         fieldLabel: '付款状态',
         emptyText :'全部',
         datas: [

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

@@ -53,7 +53,7 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
         }
     }, {
         xtype: 'multicombo',
-        name: 'pi_prstatus',
+        name: 'pi_prstatuscode',
         fieldLabel: '付款状态',
         emptyText :'全部',
         datas: [

+ 15 - 2
frontend/saas-web/app/view/sale/report/Sale.js

@@ -127,7 +127,7 @@ Ext.define('saas.view.sale.report.Sale', {
         xtype: 'numbercolumn',
         renderer : function(v) {
             var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
             var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
@@ -137,7 +137,7 @@ Ext.define('saas.view.sale.report.Sale', {
         xtype: 'numbercolumn',
         renderer : function(v) {
             var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
             var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
@@ -154,6 +154,12 @@ Ext.define('saas.view.sale.report.Sale', {
         xtype: 'numbercolumn',
         dataIndex: 'sd_total',
         xtype: 'numbercolumn',
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        },
         summaryType: 'sum',
         summaryRenderer: function(v) {
             var arr = (v + '.').split('.');
@@ -166,11 +172,18 @@ Ext.define('saas.view.sale.report.Sale', {
         xtype: 'numbercolumn',
         dataIndex: 'sd_nettotal',
         xtype: 'numbercolumn',
+        renderer : function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            var format = '0.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        },
         summaryType: 'sum',
         summaryRenderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
             var format = '0,000.' + xr.join();
+            console.log(v, format, Ext.util.Format.number(v, format));
             return Ext.util.Format.number(v, format);
         }
     }, {

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

@@ -65,7 +65,7 @@ Ext.define('saas.view.sale.report.SaleRec', {
             return Ext.util.Format.number(v, format);
         }
     }, {
-        text: '本次收款',
+        text: '收款金额',
         xtype: 'numbercolumn',
         dataIndex: 'rbd_nowbalance',
         renderer : function(v) {

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

@@ -280,21 +280,23 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                 name : "sa_total", 
                 fieldLabel : "销售金额",
                 readOnly:true
+            },{
+                xtype : "employeeDbfindTrigger", 
+                name : "sa_seller", 
+                fieldLabel : "业务员"
+            },{
+                xtype : "hidden", 
+                name : "sa_sellerid", 
+                fieldLabel : "业务员ID"
             },{
                 xtype : "hidden", 
                 name : "sa_sellercode", 
                 fieldLabel : "业务员编号",
-            },{
-                xtype : "employeeDbfindTrigger", 
-                name : "sa_seller", 
-                fieldLabel : "业务员",
-                defaultValue:saas.util.BaseUtil.getCurrentUser().realname
             }, {
                 xtype : 'textfield', 
                 name : 'sa_sendstatus', 
                 fieldLabel : '出货状态', 
-                hidden : true,
-                defaultValue:saas.util.BaseUtil.getCurrentUser().id
+                hidden : true
              },{
                 xtype : "hidden", 
                 name : "creatorId", 

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

@@ -27,12 +27,14 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
                         }, {
                             from: 'cu_sellername',
                             to: 'sa_seller'
+                        }, {
+                            from:'cu_sellerid',to:'cu_sellerid'
                         }],
                     });
 
                 }
             }, // 主表-采购员名称
-            'dbfindtrigger[name=sa_sellercode]': {
+            'dbfindtrigger[name=sa_seller]': {
                 beforerender: function (f) {
                     Ext.apply(f, {
                         dbfinds: [{

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

@@ -51,7 +51,7 @@ Ext.define('saas.view.sale.saleIn.QueryPanel', {
         }
     }, {
         xtype: 'multicombo',
-        name: 'pi_prstatus',
+        name: 'pi_prstatuscode',
         fieldLabel: '付款状态',
         emptyText :'全部',
         datas: [

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

@@ -51,7 +51,7 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
         }
     }, {
         xtype: 'multicombo',
-        name: 'pi_prstatus',
+        name: 'pi_prstatuscode',
         fieldLabel: '付款状态',
         emptyText :'全部',
         datas: [

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

@@ -184,7 +184,7 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
                 dataIndex: 'pr_detail',
                 width: 200
             },{
-                text: '型号规格',
+                text: '规格',
                 dataIndex: 'pr_spec',
                 width: 150
             },{

+ 91 - 52
frontend/saas-web/app/view/sys/account/AddWindow.js

@@ -5,6 +5,7 @@ Ext.define('saas.view.sys.account.AddWindow', {
     extend: 'saas.view.document.kind.ChildForm',
     xtype: 'sys-account-addwindow',
     dataKind:'accountadd',//类型标识
+    height: 325,
     belong:{
         columns:[{
             dataIndex:'realname',
@@ -18,61 +19,89 @@ Ext.define('saas.view.sys.account.AddWindow', {
     etc:{
         accountadd:{
             items:[{
-                xtype:'textfield',
-                fieldLabel: '联系号码',
-                name: 'mobile',
-                hideTrigger:true,
-                allowBlank:false,
-                maxLength: 30,
-                regex:/^1(3|4|5|7|8)\d{9}$/,
-                regexText:'请输入正确的手机号码',
-                listeners:{
-                    change:function(f,a,b){
-                        if(a==''){
-                            f._lastCheckValue = ''
-                        }
-                    },
-                    blur:function(f,a,b,c){
-                        var form = f.ownerCt;
-                        if(f.value&&f.value!=''&&f.isValid()&&f._lastCheckValue!=f.value){
-                            f._lastCheckValue = f.value;
-                            form.setLoading(true);
-                            Ext.Ajax.request({
-                                url: '/api/account/account/checkMobile?mobile='+f.value,
-                                method: 'GET',
-                                headers:{
-                                    'Access-Control-Allow-Origin': '*',
-                                    "Content-Type": 'application/json;charset=UTF-8',
-                                },
-                                success: function (response) {
-                                    form.setLoading(false);
-                                    var localJson = Ext.decode(response.responseText);
-                                    if(localJson.success){
-                                        if(localJson.data.hasRegister){
-                                            saas.util.BaseUtil.showSuccessToast('校验成功:手机号已在优软云注册');
+                xtype: 'fieldcontainer',
+                layout: 'column',
+                items: [{
+                    beforeLabelTextTpl: "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
+                    xtype:'textfield',
+                    fieldLabel: '手机号码',
+                    name: 'mobile',
+                    hideTrigger:true,
+                    allowBlank:false,
+                    maxLength: 30,
+                    columnWidth:0.7,
+                    regex:/^1(3|4|5|7|8)\d{9}$/,
+                    regexText:'请输入正确的手机号码',
+                    listeners:{
+                        change:function(f,a,b){
+                            if(a==''){
+                                f._lastCheckValue = ''
+                            }
+                        },
+                        blur:function(f,a,b,c){
+                            var form = f.ownerCt;
+                            if(f.value&&f.value!=''&&f.isValid()&&f._lastCheckValue!=f.value){
+                                f._lastCheckValue = f.value;
+                                form.setLoading(true);
+                                Ext.Ajax.request({
+                                    url: '/api/account/account/checkMobile?mobile='+f.value,
+                                    method: 'GET',
+                                    headers:{
+                                        'Access-Control-Allow-Origin': '*',
+                                        "Content-Type": 'application/json;charset=UTF-8',
+                                    },
+                                    success: function (response) {
+                                        form.setLoading(false);
+                                        var localJson = Ext.decode(response.responseText);
+                                        if(localJson.success){
+                                            f.hasRegister = localJson.data.hasRegister;
+                                            if(localJson.data.hasRegister){
+                                                f.ownerCt.down('[name=hasAccount]').show();
+                                                f.ownerCt.down('[name=noAccount]').hide();
+                                            }else{
+                                                f.ownerCt.down('[name=hasAccount]').hide();
+                                                f.ownerCt.down('[name=noAccount]').show();
+                                            }
                                         }else{
-                                            saas.util.BaseUtil.showErrorToast('校验失败:手机号未在优软云注册');
+                                            saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
+                                            f.setValue('');
+                                            f.ownerCt.down('[name=hasAccount]').hide();
+                                            f.ownerCt.down('[name=noAccount]').hide();
+                                        }
+                                    },
+                                    failure: function (response) {
+                                        if(response.responseText){
+                                            var localJson = Ext.decode(response.responseText);
+                                            saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
+                                            f.setValue('');
+                                        }else{
+                                            saas.util.BaseUtil.showErrorToast('手机号校验接口连接超时');
                                             f.setValue('');
                                         }
-                                    }else{
-                                        saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
-                                        f.setValue('');
-                                    }
-                                },
-                                failure: function (response) {
-                                    if(response.responseText){
-                                        var localJson = Ext.decode(response.responseText);
-                                        saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
-                                        f.setValue('');
-                                    }else{
-                                        saas.util.BaseUtil.showErrorToast('手机号校验接口连接超时');
-                                        f.setValue('');
                                     }
-                                }
-                            });
+                                });
+                            }
                         }
                     }
-                }
+                },{
+                    hidden:true,
+                    name:'hasAccount',
+                    xtype:'button',
+                    cls:'x-btn-showicon',
+                    style:'background:#fff;border:none;padding:7px 0 7px 0;',
+                    text:'已注册优软云',
+                    icon:'resources/images/default/toast_over.png',
+                    columnWidth:0.3,
+                },{
+                    name:'noAccount',
+                    hidden:true,
+                    xtype:'button',
+                    cls:'x-btn-showicon',
+                    style:'background:#fff;border:none;padding:7px 0 7px 0;',
+                    text:'未注册优软云',
+                    icon:'resources/images/default/toast_close.png',
+                    columnWidth:0.3,
+                }]
             },{
                 xtype:'textfield',
                 fieldLabel: '真实姓名',
@@ -81,6 +110,7 @@ Ext.define('saas.view.sys.account.AddWindow', {
                 regexText:'请输入汉字',
                 allowBlank:false,
                 maxLength: 30,
+                columnWidth:0.5
             },{
                 xtype:'textfield',
                 fieldLabel: '邮箱',
@@ -132,10 +162,18 @@ Ext.define('saas.view.sys.account.AddWindow', {
             },{
                 xtype:'datamulticombo',
                 dataUrl:'/api/account/role/list',
-                fieldLabel: '关联角色',
+                fieldLabel: '岗位角色',
                 name: 'roleIds',
                 allowBlank:false,
                 maxLength: 30,
+            },{
+                margin:'5 0 0 0',
+                xtype:'displayfield',
+                fieldLabel: '注意事项',
+                beforeLabelTextTpl: "",
+                value:'添加的账户拥有访问系统的权限,请勿随意添加',
+                fieldStyle:'color:#999;margin-top: 9px;',
+                lableStyle:'color: #f16161;'
             }]
         }
     },
@@ -144,7 +182,6 @@ Ext.define('saas.view.sys.account.AddWindow', {
         var belong = this.belong;
         me.setLoading(true);
         var form=this.down('form');
-        var combo = this._combo;
         var params = {};
         var names = belong.columns.map(column => column.dataIndex);
 
@@ -153,7 +190,9 @@ Ext.define('saas.view.sys.account.AddWindow', {
                 var dataField = form.down('[name='+name+']');
                 if(dataField&&dataField.value){
                     params[name] = dataField.value;
-                    params._value = dataField.value;
+                }
+                if(dataField.name=='mobile'){
+                    params['hasRegister'] = dataField.hasRegister;
                 }
             }
         });

+ 23 - 21
frontend/saas-web/app/view/sys/account/DataList.js

@@ -22,7 +22,7 @@ Ext.define('saas.view.sys.account.DataList', {
         width: 140,
         name: 'mobile',
         xtype: 'textfield',
-        emptyText : '联系电话'
+        emptyText : '手机号码'
     },{
         xtype:'button',
         text:'查询',
@@ -311,28 +311,30 @@ Ext.define('saas.view.sys.account.DataList', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

+ 3 - 3
frontend/saas-web/app/view/sys/account/EditWindow.js

@@ -38,14 +38,14 @@ Ext.define('saas.view.sys.account.EditWindow', {
             },{
                 xtype:'datamulticombo',
                 dataUrl:'/api/account/role/list',
-                fieldLabel: '关联角色',
+                fieldLabel: '岗位角色',
                 name: 'roleNames',
                 allowBlank:true,
                 maxLength: 20,
                 beforeLabelTextTpl: "",
             },{
                 xtype:'textfield',
-                fieldLabel: '联系电话',
+                fieldLabel: '手机号码',
                 name: 'mobile',
                 readOnly:true,
                 editable:false,
@@ -90,7 +90,7 @@ Ext.define('saas.view.sys.account.EditWindow', {
         o = o.substring(0,o.length-1);
 
         if(o==""){
-            saas.util.BaseUtil.showErrorToast('关联角色未选择,无法保存!')
+            saas.util.BaseUtil.showErrorToast('岗位角色未选择,无法保存!')
         }
 
         var _params = {

+ 22 - 20
frontend/saas-web/app/view/sys/finish/DataList.js

@@ -196,28 +196,30 @@ Ext.define('saas.view.sys.finish.DataList', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

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

@@ -244,7 +244,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
             title = '供应商资料'
         }
         if(type=='begin'){
-            message = '<span>欢迎您使用企云进销存!</br>'+
+            message = '<span>欢迎您使用U企云进销存!</br>'+
             '温馨提示:开账后您还是可以通过左侧菜单栏对基础资料进行维护。</span>';
             xtype = "begin";
             icon = 'x-gudie-end';

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

@@ -292,28 +292,30 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

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

@@ -160,28 +160,30 @@ Ext.define('saas.view.sys.messagelog.DataList', {
             value = item.value,
             condition;
 
-            if(typeof func == 'function') {
-                condition = {
-                    type: 'condition',
-                    value: func(value)
-                }
-            }else {
-                var xtype = item.xtype || 'textfield',
-                type = item.fieldType || me.getDefaultFieldType(xtype),
-                operation = item.operation || me.getDefaultFieldOperation(xtype),
-                conditionValue = me.getConditionValue(xtype, value);
-    
-                if(!conditionValue) {
-                    continue;
-                }
-                condition = {
-                    type: type,
-                    field: field,
-                    operation: operation,
-                    value: conditionValue
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
+                    }
+                }else {
+                    var xtype = item.xtype || 'textfield',
+                    type = item.fieldType || me.getDefaultFieldType(xtype),
+                    operation = item.operation || me.getDefaultFieldOperation(xtype),
+                    conditionValue = me.getConditionValue(xtype, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
+                    }
                 }
+                conditions.push(condition);
             }
-            conditions.push(condition);
         };
         return conditions;
     },

+ 5 - 3
frontend/saas-web/ext/packages/ux/src/feature/MySummary.js

@@ -101,12 +101,14 @@ Ext.define('Ext.ux.feature.MySummary', {
         };
 
         Ext.Array.each(columns, function(c) {
-            if(c.summaryType) {
+            var summaryType = c._summaryType || c.summaryType;
+
+            if(summaryType) {
                 summarys.push({
                     name: c.dataIndex,
                     label: c.text,
-                    type: c.summaryType,
-                    typeLabel: c.summaryType ? typeLabels[c.summaryType] : '',
+                    type: summaryType,
+                    typeLabel: summaryType ? typeLabels[summaryType] : '',
                     value: c.summaryValue || 0
                 });
             } 

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

@@ -5,7 +5,7 @@
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=10, user-scalable=yes">
 
-    <title>云进销存 - 企云服</title>
+    <title>云进销存 - U企云服</title>
     <link rel="icon" href="/resources/images/favicon.png" type="image/x-icon">
     <!-- 图片动画效果样式导入 -->
     <link type="text/css" rel="stylesheet" href="/resources/othcss/imagehover.css" />

+ 6 - 0
frontend/saas-web/overrides/window/MessageBox.js

@@ -0,0 +1,6 @@
+Ext.define('saas.override.window.MessageBox', {
+    override: 'Ext.window.MessageBox',
+
+    cls: 'x-window-dbfind'
+
+});