Эх сурвалжийг харах

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

chenw 7 жил өмнө
parent
commit
143e0acbd1
52 өөрчлөгдсөн 439 нэмэгдсэн , 211 устгасан
  1. 6 2
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 4 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java
  3. 5 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java
  4. 5 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java
  5. 4 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java
  6. 4 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  7. 2 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/StockTakingMapper.java
  8. 8 4
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/StocktakingServiceImpl.java
  9. 11 0
      applications/storage/storage-server/src/main/resources/mapper/StockTakingMapper.xml
  10. 22 12
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  11. 1 1
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  12. 2 2
      frontend/saas-portal-web/src/components/conenter/home.vue
  13. 11 4
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  14. 11 5
      frontend/saas-portal-web/static/css/gongsi.css
  15. 3 3
      frontend/saas-portal-web/static/css/main.css
  16. 0 20
      frontend/saas-web/app/Application.scss
  17. 9 0
      frontend/saas-web/app/view/core/form/FormPanel.js
  18. 19 0
      frontend/saas-web/app/view/core/form/FormPanelController.js
  19. 5 6
      frontend/saas-web/app/view/core/tab/Controller.js
  20. 1 1
      frontend/saas-web/app/view/core/tab/Panel.js
  21. 38 4
      frontend/saas-web/app/view/document/kind/ChildForm.js
  22. 1 1
      frontend/saas-web/app/view/document/kind/Kind.js
  23. 1 0
      frontend/saas-web/app/view/document/other/BankInformation.js
  24. 1 0
      frontend/saas-web/app/view/document/other/Employee.js
  25. 1 0
      frontend/saas-web/app/view/document/other/Warehouse.js
  26. 9 6
      frontend/saas-web/app/view/main/Main.js
  27. 41 18
      frontend/saas-web/app/view/main/Main.scss
  28. 17 42
      frontend/saas-web/app/view/main/MainController.js
  29. 4 6
      frontend/saas-web/app/view/main/Navigation.scss
  30. 2 1
      frontend/saas-web/app/view/money/fundtransfer/FormPanel.js
  31. 6 0
      frontend/saas-web/app/view/money/fundtransfer/FormPanelController.js
  32. 2 1
      frontend/saas-web/app/view/money/othreceipts/FormPanel.js
  33. 6 0
      frontend/saas-web/app/view/money/othreceipts/FormPanelController.js
  34. 1 0
      frontend/saas-web/app/view/money/othspendings/FormPanel.js
  35. 48 46
      frontend/saas-web/app/view/money/othspendings/FormPanelController.js
  36. 1 0
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  37. 6 0
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  38. 1 0
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  39. 6 0
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  40. 5 1
      frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js
  41. 1 4
      frontend/saas-web/app/view/stock/inventory/EditDataList.js
  42. 41 1
      frontend/saas-web/app/view/stock/otherIn/FormPanelController.js
  43. 41 1
      frontend/saas-web/app/view/stock/otherOut/FormPanelController.js
  44. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot
  45. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js
  46. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg
  47. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf
  48. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff
  49. 25 13
      frontend/saas-web/packages/font-saas/sass/etc/icons.scss
  50. 1 4
      frontend/saas-web/packages/font-saas/sass/src/all.scss
  51. BIN
      frontend/saas-web/resources/images/default/logo-default.png
  52. BIN
      frontend/saas-web/resources/images/favicon.png

+ 6 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -33,8 +33,9 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
     BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
     BIZ_RELUPDATE_CODEANDNAME(79311,"存在关联单据,不允许更新编号,名称"),
-    BIZ_RELUPDATE_AMOUNT(79312,"存在关联单据,不允许更新期初应收,期初预收"),
+    BIZ_RELUPDATE_AMOUNT(79312,"存在关联单据,不允许更新期初应收,期初预收,期初日期"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
+
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),
     REPEAT_CODE(79502, "编号重复"),
@@ -87,14 +88,17 @@ public enum BizExceptionCode implements BaseExceptionCode {
     CHECK_SETACOUNT_EXIS(74006, "不能删除单据日期小于等于结账期间<u>%s</u>的单据"),
     VERIFICATION_CHECK_BALANCE(74007,"核销金额不能大于未核销金额"),
     DELETE_NOT_EXIS(74008,"删除失败,当前单据不存在!"),
+    DOCUMENTS_AUDITED(74009,"单据已审核"),
 
 
 
     //库存
     EMPTY_DATA(76100,"数据为空,请填写后再保存"),
+    STORAGE_POST_ERROR(76200,""),
     UNENOUGH_DETAIL_STOCK(76300, "行%s库存不足"),
     UNENOUGH_STOCK(76400, "%s :库存不足"),
-    STORAGE_POST_ERROR(76200,""),
+    UNPOSTSTOCKPROFIT_EXISTS(76500, "存在当前仓库+物料未审核的盘盈盘亏单"),
+    STOCKPROFIT_NULL(76600, "没有需要生成的盘盈盘亏单")
     ;
     private int code;
     private String message;

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

@@ -285,6 +285,10 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
         Iterator isList = baseDTO.getBaseDTOs().iterator();
         while (isList.hasNext()){
             DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            Fundtransfer fundtransfers = fundtransferMapper.selectByPrimaryKey(docBaseDTO.getId().intValue());
+            if (com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay().equals(fundtransfers.getFt_status())){
+                throw new BizException(500, BizExceptionCode.DOCUMENTS_AUDITED.getMessage());
+            }
             Fundtransfer fundtransfer = new Fundtransfer();
             fundtransfer.setId(Long.valueOf(docBaseDTO.getId()));
             fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());

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

@@ -260,7 +260,7 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
             customer.setId(Long.valueOf(othreceipts.getOr_custid()));
             customer.setCu_preamount(preamount);
             customer.setCu_recamount(recamount - or_amount);
-            customer.setCu_leftamount(beginapamount + beginprepayamount + recamount - or_amount - preamount);
+            customer.setCu_leftamount(beginapamount - beginprepayamount + recamount - or_amount - preamount);
             recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
             subledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单",BaseContextHolder.getCompanyId());
         }
@@ -339,6 +339,10 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
         Iterator isList = baseDTO.getBaseDTOs().iterator();
         while (isList.hasNext()){
             DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            Othreceipts othreceipts1 = othreceiptsMapper.selectByPrimaryKey(docBaseDTO.getId().intValue());
+            if (com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay().equals(othreceipts1.getOr_status())){
+                throw new BizException(500, BizExceptionCode.DOCUMENTS_AUDITED.getMessage());
+            }
             Othreceipts othreceipts = new Othreceipts();
             othreceipts.setId(Long.valueOf(docBaseDTO.getId()));
             othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());

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

@@ -293,7 +293,7 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
             vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
             vendor.setVe_preamount(preamount);
             vendor.setVe_payamount(payamount + bk_amount);
-            vendor.setVe_leftamount(beginapamount + beginprepayamount - payamount + bk_amount + preamount);
+            vendor.setVe_leftamount(beginapamount - beginprepayamount + payamount + bk_amount - preamount);
             paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
 
             subledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单",BaseContextHolder.getCompanyId());
@@ -334,6 +334,10 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
         Iterator isList = baseDTO.getBaseDTOs().iterator();
         while (isList.hasNext()){
             DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            Othspendings othspendings1 = othspendingsMapper.selectByPrimaryKey(docBaseDTO.getId().intValue());
+            if (com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay().equals(othspendings1.getOs_status())){
+                throw new BizException(500, BizExceptionCode.DOCUMENTS_AUDITED.getMessage());
+            }
             Othspendings othspendings = new Othspendings();
             othspendings.setId(Long.valueOf(docBaseDTO.getId()));
             othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());

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

@@ -439,6 +439,10 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
         Iterator isList = baseDTO.getBaseDTOs().iterator();
         while (isList.hasNext()){
             DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            Paybalance paybalance1 = paybalanceMapper.selectByPrimaryKey(docBaseDTO.getId());
+            if (com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay().equals(paybalance1.getPb_status())){
+                throw new BizException(500, BizExceptionCode.DOCUMENTS_AUDITED.getMessage());
+            }
             Paybalance paybalance = new Paybalance();
             paybalance.setId(Long.valueOf(docBaseDTO.getId()));
             paybalance.setPb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());

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

@@ -444,6 +444,10 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         Iterator isList = baseDTO.getBaseDTOs().iterator();
         while (isList.hasNext()){
             DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            Recbalance recbalance1 = recbalanceMapper.selectByPrimaryKey(docBaseDTO.getId().intValue());
+            if (com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay().equals(recbalance1.getRb_status())){
+                throw new BizException(500, BizExceptionCode.DOCUMENTS_AUDITED.getMessage());
+            }
             Recbalance recbalance = new Recbalance();
             recbalance.setId(Long.valueOf(docBaseDTO.getId()));
             recbalance.setRb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());

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

@@ -22,4 +22,6 @@ public interface StockTakingMapper extends CommonBaseMapper<StockTaking> {
     void insertFormProductWh(@Param("con") String con,@Param("companyId") Long companyId);
 
     Double getPurcpriceByProduct(Long id);
+
+    int checkUnPostStockProfit(@Param("companyId") Long companyId);
 }

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

@@ -87,6 +87,11 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
         Long companyId = BaseContextHolder.getCompanyId();
         Long userId = BaseContextHolder.getUserId();
         String userName = BaseContextHolder.getUserName();
+        //检查是否有当前盘点物料+仓库未审核的盘盈盘亏单
+        int count = getMapper().checkUnPostStockProfit(companyId);
+        if (count>0) {
+            throw new BizException(BizExceptionCode.UNPOSTSTOCKPROFIT_EXISTS);
+        }
         //生成入库单
         List<StockTaking> inlist  = getMapper().selectStockTakingBycondition("st_num>0",companyId);
         if (inlist.size()>0){
@@ -98,8 +103,6 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             prodIn.setPi_status("未审核");
             prodIn.setPi_statuscode("UNAUDITED");
             prodIn.setCompanyId(companyId);
-            prodIn.setCreateTime(new Date());
-            prodIn.setCreatorId(userId);
             prodIn.setPi_remark("盘盈单");
             prodInOutMapper.insertSelective(prodIn);
             long inid = prodIn.getId();
@@ -142,8 +145,6 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             prodOut.setPi_status("未审核");
             prodOut.setPi_statuscode("UNAUDITED");
             prodOut.setCompanyId(companyId);
-            prodOut.setCreateTime(new Date());
-            prodOut.setCreatorId(userId);
             prodOut.setPi_remark("盘亏单");
             prodInOutMapper.insertSelective(prodOut);
             long outid = prodOut.getId();
@@ -171,6 +172,9 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             DocBaseDTO baseDTOOUT = new DocBaseDTO(outid,piOutno,"其它出库单");
             resultMap.put("outData",baseDTOOUT);
         }
+        if (inlist.size()==0 && outlist.size()==0){
+            throw new BizException(BizExceptionCode.STOCKPROFIT_NULL);
+        }
         return resultMap;
     }
 

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

@@ -261,5 +261,16 @@
     select pr_purcprice from product where pr_id = #{id}
   </select>
 
+  <select id="checkUnPostStockProfit" resultType="int">
+    select
+    count(*)
+    from
+    (select pd_prodid,pd_whid from prodiodetail left join prodinout on pd_piid = pi_id
+    where prodinout.companyId=#{companyId,jdbcType=INTEGER} and (pi_remark='盘盈单' or pi_remark='盘亏单')) b
+    left join
+    (select st_prodid,st_whid from stocktaking where companyId=#{companyId} ) a
+    on a.st_prodid = b.pd_prodid and a.st_whid = b.pd_whid
+  </select>
+
 
 </mapper>

+ 22 - 12
frontend/saas-portal-web/src/components/conenter/addgongsi.vue

@@ -12,10 +12,10 @@
                 </div>
                 <div class="qy-conent">
                     <ul>
-                        <li>
+                        <li style="margin: 0">
                             <span class="qy-biaoti"><span class="xingxing">*</span>公司名称</span>
                             <input ref="qyname" @change= "spaceName" type="text">
-                            <span ref="qyno" style="color:red"></span>
+                            <dir class="qy-Tips"><span ref="qyno" style="color:red"></span></dir>
                         </li>
                         <li>
                             <span class="qy-biaoti">所属行业</span>
@@ -41,13 +41,15 @@
                         </li>
                         <li style="height:70px;">
                             <span class="qy-biaoti left">公司地址</span>
-                            <div class="addbiaoqian" style="float: left;margin: 0;">
+                            <div class="addbiaoqian">
                                 <!-- <v-distpicker @province= 'qyprovince' @city= 'qycity' @area= 'qyarea'></v-distpicker> -->
                                 <v-distpicker @selected= 'selected'></v-distpicker>
                                 <input ref="address" @change="address" :disabled="disabled" class="qy-xiangxi" type="text" placeholder="输入企业详细地址">
                                 
                             </div>
-                            <span ref="ress" style="color:red;margin-top: 40px;display: inline-block;"></span>
+                            <div class="qy-Tips left">
+                                <span ref="ress" style="color:red;margin-left:40px;"></span>
+                            </div>
                         </li>
                     </ul>
                 </div>
@@ -58,16 +60,16 @@
                 </div>
                 <div class="qy-conent">
                     <ul>
-                        <li>
+                        <li style="margin:0">
                             <span class="qy-biaoti"><span class="xingxing">*</span>姓名</span>
                             <input @change= "yzusername" ref="name" type="text">
-                            <span ref="usname" style="color:red"></span>
+                            <div class="qy-Tips Tips-buttom"><span ref="usname" style="color:red"></span></div>
                         </li>
                         <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
-                        <li>
+                        <li style='margin:0'>
                             <span class="qy-biaoti">邮箱</span>
                             <input @change="email" ref="email" type="email">
-                            <span style="color:red">{{Email}}</span>
+                            <div class="qy-Tips Tips-buttom"><span style="color:red">{{Email}}</span></div>
                         </li>
                     </ul>
                 </div>
@@ -114,7 +116,7 @@ import VDistpicker from 'v-distpicker'
                     this.$refs.qyno.innerHTML = '企业名不能为空';
                 } else {
                     if (this.reg.test(qyname)) {
-                        this.$refs.qyno.innerHTML = '包含非法字符';
+                        this.$refs.qyno.innerHTML = '不能包含非法字符';
                         this.isspaceName = false;
                     } else {
                         this.$refs.qyno.innerHTML = '';
@@ -148,7 +150,7 @@ import VDistpicker from 'v-distpicker'
                     this.$refs.usname.innerHTML = '姓名不能为空'
                 } else {
                     if (this.reg.test(name)) {
-                        this.$refs.usname.innerHTML = '包含非法字符'
+                        this.$refs.usname.innerHTML = '不能包含非法字符'
                         this.isname = false
                     } else {
                         this.$refs.usname.innerHTML = ''
@@ -163,7 +165,7 @@ import VDistpicker from 'v-distpicker'
                     this.$refs.ress.innerHTML = '地址不能为空'
                 } else {
                     if (this.reg.test(address)) {
-                        this.$refs.ress.innerHTML = '包含非法字符'
+                        this.$refs.ress.innerHTML = '不能包含非法字符'
                         this.isaddress = false
                     } else {
                         this.$refs.ress.innerHTML = ''
@@ -222,7 +224,6 @@ import VDistpicker from 'v-distpicker'
                         this.$refs.tjtishi.innerHTML = ''
                     }, 3000);
                 }
-                
             },
             //获取省市区
             selected(data){
@@ -267,4 +268,13 @@ import VDistpicker from 'v-distpicker'
 .addbiaoqian>>>.distpicker-address-wrapper select {
     height: 30px;
 }
+.qy-Tips {
+    margin: 0;
+    text-align: left;
+    height: 26px;
+    margin-left: 16%;
+}
+.Tips-buttom {
+    margin-left: 22%;
+}
 </style>

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

@@ -48,7 +48,7 @@
                 </div>
     <!-- 个人信息------------------------------------------------------------------- -->
                 <div :class= "{gsqiye:nowindex == 1}">
-                    <div class="over gr-worp" style="margin-bottom: 30px;">
+                    <div class="over gr-worp" style="margin-bottom: 30px;margin-top: 60px;">
                         <div class="left gr-left">
                             <img src="../../../static/img/qiye/yonghu@2x.png" alt="">
                         </div>

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

@@ -53,7 +53,7 @@
           <img @click="closeModal" class="tc-on shut"
                src="/static/img/qiye/chahao.png" alt="">
         </div>
-        <iframe id="iframe" width="430" height="474" :src="ssoPage"></iframe>
+        <iframe id="iframe" width="430" height="504" :src="ssoPage"></iframe>
         <iframe hidden :src="setTokenPage"></iframe>
       </div>
 
@@ -135,7 +135,7 @@
         <div class="container" style="position: relative;">
           <img class="gn-beijing" src="/static/img/gongneng/xu xian@3x.png" alt="">
           <div class="row">
-            <div class="section-title text-center">
+            <div class="section-title text-center" style="margin-bottom: 80px;">
               <p class="ts-title">我们的功能</p>
             </div>
             <div class="gn-hei">

+ 11 - 4
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue

@@ -99,7 +99,7 @@
                         <li>
                             <span class="qy-biaoti">邮箱</span>
                             <input @change="email" ref="email" type="text" value="">
-                            <span style="color:red">{{Email}}</span>
+                            <dir class="qy-Tips"><span style="color:red">{{Email}}</span></dir>
                         </li>
                     </ul>
                 </div>
@@ -154,10 +154,11 @@
             },
             // 保存修改
             baocunxiugai(){
-                if (this.isemail) {
+                let qyindustry = this.$refs.qyindustry.value;//所属行业
+                if (this.isemail && qyindustry!='') {
                     let email = this.$refs.email.value;
                     let qyname = this.content.name;//公司名字
-                    let qyindustry = this.$refs.qyindustry.value;//所属行业
+                    // let qyindustry = this.$refs.qyindustry.value;//所属行业
                     let address = this.content.address;//公司详细地址
                     let companyId = this.content.id;
                     let name = this.content.realname;//名字
@@ -188,7 +189,7 @@
                         // console.log("请求失败",err)
                     })
                 } else {
-                    this.$refs.Tips.innerHTML= "请填写正确的邮箱"
+                    this.$refs.Tips.innerHTML= "请填写正确的邮箱或选择行业"
                     // this.isTipsmail = true;
                     setTimeout(()=>{
                         this.$refs.Tips.innerHTML= ""
@@ -223,4 +224,10 @@
     color: red;
     height: 20px;
 }
+.qy-Tips {
+    margin: 0;
+    text-align: left;
+    height: 26px;
+    margin-left: 16%;
+}
 </style>

+ 11 - 5
frontend/saas-portal-web/static/css/gongsi.css

@@ -223,12 +223,14 @@
     color: #ffffff;
 }
 .addbiaoqian {
-    width: 71%;
-    float: right;
-    margin-right: 102px;
+    width: 59%;
+    /* float: right;
+    margin-right: 102px; */
+    float: left;
+    margin-left: 4px;
 }
 .qy-xiangxi {
-    width: 84% !important;
+    width: 100% !important;
     margin-top: 10px;
     font-size: 12px;
     padding-left: 10px;
@@ -248,9 +250,13 @@
 .gr-worp div {
     width: 50%;
 }
+.gr-left {
+    text-align: center;
+    line-height: 290px;
+}
 .gr-left img {
     width: 189px;
-    margin: 49px 88px 69px 186px
+    /* margin: 49px 88px 69px 186px */
 }
 .gr-right li {
     list-style: none;

+ 3 - 3
frontend/saas-portal-web/static/css/main.css

@@ -115,13 +115,13 @@ main > section {
 
 .box{
     width: 430px;
-    height: 474px;
+    height: 504px;
     position: fixed;
     background:white;
-    top: 55%;
+    top: 50%;
     left:50%;
     margin-left: -215px;
-    margin-top: -237px;
+    margin-top: -252px;
     z-index: 10001;
 }
 

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

@@ -153,26 +153,6 @@ body.launching {
   }
 }
 
-.x-btn-menu-active{
-  .x-btn-wrap{
-    .x-btn-button{
-      .x-btn-inner{
-        color:#fff !important;
-      }
-    }
-  }
-}
-
-.x-main-master{
-  .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;

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

@@ -52,6 +52,15 @@ Ext.define('saas.view.core.form.FormPanel', {
         me.initFormItems();
 
         me.defaultBtns = me.defaultBtns || [{
+            cls: 'x-formpanel-btn-blue',
+            xtype: 'button',
+            text: '刷新',
+            hidden: true,
+            bind: {
+                hidden: '{!id}'
+            },
+            handler: 'refresh'
+        }, {
             cls: 'x-formpanel-btn-blue',
             xtype: 'button',
             text: '新增',

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

@@ -12,6 +12,25 @@ Ext.define('saas.view.core.form.FormPanelController', {
         status == 'AUDITED' ? me.onUnAudit() : me.onAudit();
     },
 
+    refresh: function() {
+        var me = this,
+        form = me.getView(),
+        xtype = form.xtype,
+        _config = form._config,
+        currentTab = saas.util.BaseUtil.getCurrentTab();
+        
+        var view = {
+            _config: _config,
+            xtype: xtype
+        };
+        Ext.apply(view, _config);
+        
+        Ext.suspendLayouts();
+        currentTab.removeAll();
+        currentTab.add(view);
+        Ext.resumeLayouts(true);
+    },
+
     add: function(){
         var form = this.getView();
         var id = form.xtype + '-add';

+ 5 - 6
frontend/saas-web/app/view/core/tab/Controller.js

@@ -15,13 +15,11 @@ Ext.define('saas.view.core.tab.Controller', {
         };
         Ext.apply(view, viewConfig);
 
-        tab.tabView = tab.add(view);
+        tab.add(view);
     },
 
-    onTabChange: function(component) {
-        var me = this,
-        tabPanel = me.getView(),
-        tabView = tabPanel.tabView;
+    onTabActivate: function(component) {
+        var tabView = component.down('panel');
 
         if(typeof tabView.refresh == 'function') {
             tabView.refresh();
@@ -29,7 +27,8 @@ Ext.define('saas.view.core.tab.Controller', {
 
         if(!component.resetCloseClick) {
             component.tab.onCloseClick = function() {
-                var me = this;
+                var me = this,
+                tabView = component.down('panel');
          
                 if (me.fireEvent('beforeclose', me) !== false) {
                     if (me.tabBar) {

+ 1 - 1
frontend/saas-web/app/view/core/tab/Panel.js

@@ -5,6 +5,6 @@ Ext.define('saas.view.core.tab.Panel', {
     layout: 'fit',
     
     listeners: {
-        activate: 'onTabChange'
+        activate: 'onTabActivate'
     }
 });

+ 38 - 4
frontend/saas-web/app/view/document/kind/ChildForm.js

@@ -9,23 +9,54 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
     modal: true,
     width: 500,
     //工具类
-    height: 260,
+    height: 280,
     listeners:{
       show:function(w){
-          if(w.record){
-              w.down('form').loadRecord(w.record);
-          }
           //自动适应窗口
           var items = w.down('form').items.items;
           var count = 0;
+          var codeField;
           Ext.Array.each(items,function(item) {
             if(item.xtype!='hidden'){
                 count++;
             }
+            if(item.autoCode){
+                codeField = item.name
+            }
           });
           if(count!=0&&count<4){
             w.setHeight(114+40*count)
           }
+          if(w.record){
+              w.down('form').loadRecord(w.record);
+          }else{
+              //判断是否有code字段
+              if(codeField){
+                w.setLoading(true);
+                //取后台编号
+                var caller = w._parent.caller;
+                saas.util.BaseUtil.request({
+                    url: '/api/commons/number/getMaxnumber',
+                    headers: {
+                        "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8'
+                    },
+                    params: {
+                        caller:caller
+                    },
+                    method: 'POST',
+                }).then(function(res) {
+                    w.setLoading(false);
+                    if(res.success){
+                        w.down('[name='+codeField+']').setValue(res.data);
+                    }else {
+                        saas.util.BaseUtil.showErrorToast(res.message);
+                    }
+                }).catch(function(res) {
+                    saas.util.BaseUtil.showErrorToast(res.message);
+                    w.setLoading(true);
+                })
+              }
+          }
       }
     },
     initComponent:function(){
@@ -107,6 +138,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 name:'bk_bankcode',
                 allowBlank:false,
                 fieldLabel:'账户编号',
+                autoCode:true,
                 maxLength: 20
             },{
                 xtype:'textfield',
@@ -389,6 +421,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '仓库编号',
                 name: 'wh_code',
+                autoCode:true,
                 allowBlank:false,
                 maxLength: 20
             },{
@@ -438,6 +471,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
             },{
                 xtype:'textfield',
                 fieldLabel: '人员编号',
+                autoCode:true,
                 name: 'em_code',
                 allowBlank:false,
                 maxLength: 20

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

@@ -266,7 +266,7 @@ Ext.define('saas.view.document.kind.Kind', {
             },{
                 dataIndex: 'email',
             }],
-            reqUrl: 'http://192.168.253.31:8560/api/account/account/register/add',
+            reqUrl: '/api/account/account/register/add',
         },
         employee:{
             columns: [{

+ 1 - 0
frontend/saas-web/app/view/document/other/BankInformation.js

@@ -6,6 +6,7 @@ Ext.define('saas.view.document.other.BankInformation', {
     xtype: 'other-bankinformation',
     autoScroll: true,
     layout:'fit',
+    caller:'BankInformation',
     defaultType:'bankinformation',
     tbar: ['->',{
         xtype:'button',

+ 1 - 0
frontend/saas-web/app/view/document/other/Employee.js

@@ -3,6 +3,7 @@ Ext.define('saas.view.document.other.Employee', {
     xtype: 'other-employee',
     autoScroll: true,
     layout:'fit',
+    caller:'Employee',
     _openUrl:'/api/document/employee/open',
     _closeUrl:'/api/document/employee/close',
     defaultType:'employee',

+ 1 - 0
frontend/saas-web/app/view/document/other/Warehouse.js

@@ -3,6 +3,7 @@ Ext.define('saas.view.document.other.Warehouse', {
     xtype: 'other-warehouse',
     autoScroll: true,
     layout:'fit',
+    caller:'Warehouse',
     _openUrl:'/api/document/warehouse/open',
     _closeUrl:'/api/document/warehouse/close',
     defaultType:'warehouse',

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

@@ -31,18 +31,20 @@ Ext.define('saas.view.main.Main', {
                     reference: 'mainLogo',
                     width: 180,
                     cls: 'main-logo-wrap',
-                    html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">企云服</div></div>',
+                    html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">U企云服</div></div>',
                     bind: {
                         width: '{navWidth}'
                     }
                 },
                 {
-                    margin: '0 0 0 8',
+                    margin: '0 8 0 8',
+                    padding: '7 0 7 0',
                     ui: 'header',
-                    iconCls:'x-fa fa-navicon',
-                    id: 'main-navigation-btn',
+                    iconCls:'x-sa sa-arrows-left',
+                    id: 'main-navigation-toggle-btn',
                     handler: 'onToggleNavigationSize'
                 },{
+                    padding: '0 0 0 0',
                     reference: 'mainprofile',
                     arrowVisible: false,
                     cls:'x-main-master',
@@ -50,6 +52,7 @@ Ext.define('saas.view.main.Main', {
                     bind: {
                         text: '{company.name}'
                     },
+                    arrowVisible: true,
                     menu: {
                         items: [{
                             xtype: 'menuseparator'
@@ -66,7 +69,7 @@ Ext.define('saas.view.main.Main', {
                     }
                 },
                 {
-                    iconCls:'x-fa fa-question',
+                    iconCls:'x-sa sa-help',
                     cls:'sa-nav-button',
                     ui: 'header',
                     arrowVisible: false,
@@ -114,7 +117,7 @@ Ext.define('saas.view.main.Main', {
                 {
                     //margin: '0 0 0 0',
                     xtype: 'tbtext',
-                    cls:'nav-realname',
+                    cls:'sa-nav-button nav-realname',
                     bind: {
                         html: '{account.realname}'
                     },

+ 41 - 18
frontend/saas-web/app/view/main/Main.scss

@@ -66,21 +66,21 @@ $treelist-nav-ui: (
         background: #34BAF6;
 
         img {
-            width: 54px;
-            height: 54px;
-            top: 5px;
-            left: 16px;
+            width: 32px;
+            height: 32px;
+            top: 16px;
+            left: 42px;
             position: relative;
         }
 
         .logo-text {
             // font-family: 'pingFangSC-Regular';
-            font-size: 18px;
+            font-size: 14px;
             color: #FFFFFF;
             text-align: left;
-            top: 23px;
+            top: 30px;
             position: absolute;
-            right: 28px;
+            left: 76px;
         }
     }
 }
@@ -221,25 +221,34 @@ body > .x-mask {
     filter: grayscale(100%);
     filter: gray;
 }
- .sa-nav-menu{
+.sa-nav-menu {
     background: #f8fbff;
     border: 1px solid #34baf6;
     margin-top: 10px;
- }
- .sa-nav-button{
+}
+
+.sa-nav-button {
+    color: #34BAF6;
+    padding: 0;
     box-shadow: none !important;
- }
- .sa-nav-menu.x-menu-item-text-default,
- .sa-nav-menu  .sa-navicon {
+
+    .x-btn-icon-el {
+        color: #34BAF6;
+    }
+}
+
+.sa-nav-menu.x-menu-item-text-default,
+.sa-nav-menu .sa-navicon {
     //font-family: PingFangSC-Regular;
     //font-size: 14px;
     color: #34BAF6;
     letter-spacing: 0;
     text-align: center;
- }
- .x-menu.sa-nav-menu .x-menu-bodyWrap{
+}
+
+.x-menu.sa-nav-menu .x-menu-bodyWrap {
     margin-left: -0.5px;
- }
+}
 /* .x-main-menu .x-fa.sa-navicon{
     color: #34BAF6;
 }  */
@@ -365,12 +374,26 @@ body > .x-mask {
     }
 }
 
-.x-main-master{
+.x-main-master,
+.x-main-master.x-btn-menu-active,
+.x-main-master.x-btn-pressed {
     .x-btn-wrap{
+        &:after {
+            color: #34BAF6,
+        }
         .x-btn-button{
             .x-btn-inner{
-                color:#999 !important;
+                font-size: 16px;
+                padding: 0;
+                color:#34BAF6 !important;
             }
         }
     }
 }
+
+#main-navigation-toggle-btn {
+    .x-btn-icon-el-header-small {
+        font-size: 12px;
+        color: #34BAF6;
+    }
+}

+ 17 - 42
frontend/saas-web/app/view/main/MainController.js

@@ -35,54 +35,29 @@ Ext.define('saas.view.main.MainController', {
         navigationList = refs.navigationTreeList,
         navCollapsed = !navigationList.navCollapsed,
         new_width = navCollapsed ? viewModel.get('smallNavWidth') : viewModel.get('navWidth'),
-        newLogoImgStyle = navCollapsed ? {
-            width: 50,
-            height: 50,
-            top: 7,
-            left: 6
-        } : {
-            width: 54,
-            height: 54,
-            top: 5,
-            left: 16
-        },
+        newLogoImgStyle = navCollapsed ? { width: 40, height: 40, top: 10, left: 10 } : { width: 32, height: 32, top: 16, left: 42 },
         newLogoTextStyle = navCollapsed ? {
-            5: {
-                opacity: 0
-            },
-            10: {
-                opacity: 0
-            },
-            100: {
-                opacity: 0,
-                display: 'none'
-            }
-        } : {
-            25: {
-                opacity: 0 
-            },
-            50: {
-                opacity: 1
-            }
-        },
-        newNavIconStyle = navCollapsed ? {
-            marginLeft: 6,
-            fontSize: 28
-        } : {
-            marginLeft: 22,
-            fontSize: 24
-        },
-        newNavTextStyle = navCollapsed ? {
-            opacity: 0
+            5: { opacity: 0 },
+            10: { opacity: 0 },
+            100: { opacity: 0, display: 'none' }
         } : {
-            opacity: 1
+            25: { opacity: 0 },
+            50: { opacity: 1 }
         },
-        ope = navCollapsed ? 'addCls' : 'removeCls';
-        
+        newNavIconStyle = navCollapsed ? { marginLeft: 6, fontSize: 28 } : { marginLeft: 22, fontSize: 24 },
+        newNavTextStyle = navCollapsed ? { opacity: 0 } : { opacity: 1 },
+        ope = navCollapsed ? 'addCls' : 'removeCls',
+        toggleIconCls = navCollapsed ? 'sa-arrows-right' : 'sa-arrows-left';
+
         var mainLogo = refs.mainLogo;
         var logoImg = mainLogo.el.dom.getElementsByTagName('img')[0];
         var logoText = mainLogo.el.dom.getElementsByClassName('logo-text')[0];
         var navItems = navigationList.el.dom.getElementsByClassName('x-navitem');
+        var toggleIcon = Ext.getCmp('main-navigation-toggle-btn');
+
+        Ext.suspendLayouts();
+        
+        toggleIcon.setIconCls('x-sa ' + toggleIconCls);
 
         mainLogo.animate({dynamic: true, duration: 500, to: {width: new_width}});
         Ext.fly(logoImg).animate({dynamic: true, duration: 500, to: newLogoImgStyle});
@@ -102,7 +77,7 @@ Ext.define('saas.view.main.MainController', {
         navigationList.el[ope]('nav-collapsed');
 
         navigationList.navCollapsed = navCollapsed;
-
+        Ext.resumeLayouts(true);
     },
 
     selectCompany: function(item) {

+ 4 - 6
frontend/saas-web/app/view/main/Navigation.scss

@@ -1,5 +1,6 @@
 $nav-font-size: 16px;
-$nav-font-color: #FFFFFF;
+$nav-font-color: #9697AC;
+$nav-font-color-over: #fff;
 
 .x-navpanel {
     overflow: visible;
@@ -48,8 +49,6 @@ $nav-font-color: #FFFFFF;
                                     display: flex;
     
                                     .nav-inner-icon {
-                                        opacity: 0.4;
-
                                         color: $nav-font-color;
                                         font-size: 24px;
                                         text-align: center;
@@ -67,7 +66,6 @@ $nav-font-color: #FFFFFF;
                                         color: $nav-font-color;
                                         letter-spacing: 4px;
                                         text-align: left;
-                                        opacity: 0.46;
                                         line-height: 60px;
                                         height: 60px;
                                     }
@@ -82,11 +80,11 @@ $nav-font-color: #FFFFFF;
                                 .nav-inner-wrap {
 
                                     .nav-inner-icon {
-                                        opacity: 1;
+                                        color: $nav-font-color-over;
                                     }
 
                                     .nav-inner-text {
-                                        opacity: 1;
+                                        color: $nav-font-color-over;
                                     }
                                 }
                             }

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

@@ -121,7 +121,8 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
                 text : "本次转出金额", 
                 xtype: 'numbercolumn',
                 dataIndex : "ftd_nowbalance",
-                width : 150.0, 
+                width : 150.0,
+                allowBlank : false,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2

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

@@ -39,5 +39,11 @@ Ext.define('saas.view.money.fundtransfer.FormPanelController', {
                 }
             }
         });
+    },
+    myInitCopyData: function(formData) {
+        var main = formData.main;
+        main.ft_auditman = '';
+        main.ft_auditdate = null;
+        return formData;
     }
 });

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

@@ -114,7 +114,8 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                 text : "金额", 
                 xtype: 'numbercolumn',
                 dataIndex : "ord_nowbalance", 
-                width : 110.0, 
+                width : 110.0,
+                allowBlank : false,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2

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

@@ -130,5 +130,11 @@ Ext.define('saas.view.money.othreceipts.FormPanelController', {
         viewModel.set('or_amount',sum_nowbalance);
 
         me.save();
+    },
+    myInitCopyData: function(formData) {
+        var main = formData.main;
+        main.or_auditman = '';
+        main.or_auditdate = null;
+        return formData;
     }
 });

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

@@ -115,6 +115,7 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
                 xtype: 'numbercolumn',
                 dataIndex : "osd_nowbalance", 
                 width : 110.0,
+                allowBlank : false,
                 editor : {
                     xtype : "numberfield",
                     decimalPrecision: 2

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

@@ -8,49 +8,41 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
             'vendorDbfindTrigger[name=os_vendname]': {
                 beforerender: function (f) {
                     Ext.apply(f, {
-                        dbColumns: [{
-                            conditionCode: 'id',
-                            text: "客户ID",
+                        dbColumns:[{
+                            text: "供应商ID",
+                            hidden: true,
                             dataIndex: "id",
-                            hidden:true,
-                            xtype: "",
-                        }, {
-                            conditionCode: 'cu_code',
-                            text: "客户编号",
-                            dataIndex: "cu_code",
-                            width: 150,
-                            xtype: "",
+                            xtype: "numbercolumn"
+                        },{
+                            text: "供应商编号",
+                            dataIndex: "ve_code",
+                            width: 150
                         }, {
-                            conditionCode: 'cu_name',
-                            text: "客户名称",
-                            dataIndex: "cu_name",
-                            width: 200,
-                            xtype: "",
+                            text: "供应商名称",
+                            dataIndex: "ve_name",
+                            width: 200
                         }, {
-                            conditionCode: 'cu_type',
-                            text: "客户类型",
-                            dataIndex: "cu_type",
+                            text: "供应商类型",
+                            dataIndex: "ve_type",
                             width: 110,
-                            xtype: "",
-                        }, {
-                            text: "业务员编号",
-                            dataIndex: "cu_sellercode",
-                            width:110
-                        }, {
-                            text: "业务员",
-                            dataIndex: "cu_sellername",
-                            width:110
                         }, {
                             text: "税率",
-                            dataIndex: "cu_taxrate",
+                            dataIndex: "ve_taxrate",
+                            width: 80,
                             xtype: 'numbercolumn',
-                            width:80,
-                            renderer: function (v) {
-                                return Ext.util.Format.number(v, '0');
+                            align:'end',
+                            renderer : function(v) {
+                                if(!v) {
+                                    return 0;
+                                }
+                                var arr = (v + '.').split('.');
+                                var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
+                                var format = '0.' + xr.join();
+                                return Ext.util.Format.number(v, format);
                             }
-                        },{
-                            text: "应收款余额",
-                            dataIndex: "cu_leftamount",
+                        }, {
+                            text: "应款余额",
+                            dataIndex: "ve_leftamount",
                             width:110,
                             xtype: 'numbercolumn',
                             renderer : function(v) {
@@ -62,23 +54,27 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
                                 var format = '0.' + xr.join();
                                 return Ext.util.Format.number(v, format);
                             }
-                        }, {
+                        },{
                             text: "结算天数",
-                            dataIndex: "cu_promisedays",
-                            width:110,
+                            dataIndex: "ve_promisedays",
+                            width: 110,
                             xtype: 'numbercolumn',
-                            renderer: function (v) {
+                            align: 'end',
+                            renderer : function(v) {
                                 return Ext.util.Format.number(v, '0');
                             }
                         }, {
-                            text: "额度",
-                            dataIndex: "cu_credit",
-                            width:110,
-                            xtype: 'numbercolumn',
+                            text: "纳税人识别号",
+                            dataIndex: "ve_nsrzh",
+                            width: 150
+                        }, {
+                            text: "开户银行",
+                            dataIndex: "ve_bankcode",
+                            width: 150
                         }, {
-                            text: "客户地址",
-                            dataIndex: "ca_address",
-                            width: 250
+                            text: "银行账户",
+                            dataIndex: "ve_bankaccount",
+                            width: 200
                         }],
                         dbfinds: [{
                             from: 'id',
@@ -133,5 +129,11 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
         viewModel.set('os_amount',sum_nowbalance);
 
         me.save();
+    },
+    myInitCopyData: function(formData) {
+        var main = formData.main;
+        main.os_auditman = '';
+        main.os_auditdate = null;
+        return formData;
     }
 });

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

@@ -122,6 +122,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             xtype: 'numbercolumn',
             dataIndex: "pd_amount",
             width : 110.0,
+            allowBlank : false,
             editor : {
                 xtype : "numberfield",
                 decimalPrecision: 2

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

@@ -235,5 +235,11 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
             c ='';
         }
         dbfindtrigger.defaultCondition = "sl_vendid<>0 and sl_kind in ('期初余额','采购验收单','采购验退单') and sl_namount<>0" + c;
+    },
+    myInitCopyData: function(formData) {
+        var main = formData.main;
+        main.pb_auditman = '';
+        main.pb_auditdate = null;
+        return formData;
     }
 });

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

@@ -122,6 +122,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             xtype: 'numbercolumn',
             dataIndex: "rd_amount",
             width : 110.0,
+            allowBlank : false,
             editor : {
                 xtype : "numberfield",
                 decimalPrecision: 2

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

@@ -233,5 +233,11 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         }
         dbfindtrigger.defaultCondition = "sl_custid<>0 and sl_kind in ('期初余额','出货单','销售退货单') and sl_namount<>0" + c;
 
+    },
+    myInitCopyData: function(formData) {
+        var main = formData.main;
+        main.rb_auditman = '';
+        main.rb_auditdate = null;
+        return formData;
     }
 });

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

@@ -21,6 +21,8 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
         getCondition: function(value) {
             if(value != '') {
                 return  ' (pi_inoutno like\'%' + value + '%\' or pd_prodcode like \'%'+value+'%\' ) ';
+            }else {
+                return '1=1';
             }
         }
     }, {
@@ -66,6 +68,8 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
         getCondition: function(value) {
             if(value != '') {
                 return  ' (pd_whcode like\'%' + value + '%\' or pd_whname like \'%'+value+'%\' or pd_inwhcode like\'%' + value + '%\' or pd_inwhname like \'%'+value+'%\') ';
+            }else {
+                return '1=1';
             }
         }
     }],
@@ -163,7 +167,7 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
                 text: '数量',
                 dataIndex: 'pd_inqty',
                 xtype:'numbercolumn',
-                width: 10
+                width: 110
             },{
                 text: '仓库',
                 dataIndex: 'pd_whname',

+ 1 - 4
frontend/saas-web/app/view/stock/inventory/EditDataList.js

@@ -433,14 +433,11 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
                         initId: intValue
                     });
                 }
-                if(!localJson.data.outData && !localJson.data.inData){
-                    saas.util.BaseUtil.showErrorToast('没有需要生成的盘盈盘亏单');
-                }
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('生成盘点单失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('生成盘点单失败: ' + res.message);
         });    
     },
     onbuild:function(){

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

@@ -82,5 +82,45 @@ Ext.define('saas.view.stock.otherIn.FormPanelController', {
                 },
             },
         });
-    }
+    },
+    initCopyData: function(formData) {
+        var me = this;
+        var form = this.getView();
+        var detailCount = form.detailCount;
+        var main = formData.main;
+        var auditTexts = form.auditTexts;
+
+        // 单号、id清空
+        main[form._idField] = 0;
+        main[form._codeField] = '';
+
+        // 单据状态为录入状态(未审核)
+        main[form._statusCodeField] = auditTexts.unAuditCode;
+        main[form._statusField] = auditTexts.unAuditText;
+        main['pi_auditman'] = '';
+        main['pi_auditdate'] = null;
+        for(var k in main) {
+            // 主表日期改为当前日期
+            if(saas.util.BaseUtil.isDateString(main[k])) {
+                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
+            }
+        }
+
+        for(var j = 0; j < detailCount; j++) {
+            var detail = formData['detail' + j];
+            for(var x = 0; x < detail.length; x ++) {
+                var d = detail[x];
+
+                for(var k in d) {
+                    // 从表id清空
+                    delete d['id'];
+                    // 从表日期清空
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
+                        d[k] = '';
+                    }
+                }
+            }
+        }
+        return me.myInitCopyData(formData);;
+    }    
 });

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

@@ -103,5 +103,45 @@ Ext.define('saas.view.stock.otherOut.FormPanelController', {
             renderTo: this.ownerCmp.ownerCt.getEl()
         }).show();
 
-    }
+    },
+    initCopyData: function(formData) {
+        var me = this;
+        var form = this.getView();
+        var detailCount = form.detailCount;
+        var main = formData.main;
+        var auditTexts = form.auditTexts;
+
+        // 单号、id清空
+        main[form._idField] = 0;
+        main[form._codeField] = '';
+
+        // 单据状态为录入状态(未审核)
+        main[form._statusCodeField] = auditTexts.unAuditCode;
+        main[form._statusField] = auditTexts.unAuditText;
+        main['pi_auditman'] = '';
+        main['pi_auditdate'] = null;
+        for(var k in main) {
+            // 主表日期改为当前日期
+            if(saas.util.BaseUtil.isDateString(main[k])) {
+                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
+            }
+        }
+
+        for(var j = 0; j < detailCount; j++) {
+            var detail = formData['detail' + j];
+            for(var x = 0; x < detail.length; x ++) {
+                var d = detail[x];
+
+                for(var k in d) {
+                    // 从表id清空
+                    delete d['id'];
+                    // 从表日期清空
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
+                        d[k] = '';
+                    }
+                }
+            }
+        }
+        return me.myInitCopyData(formData);;
+    }     
 });

BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg


BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf


BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff


+ 25 - 13
frontend/saas-web/packages/font-saas/sass/etc/icons.scss

@@ -1,27 +1,39 @@
 
-.sa-purchase:before { content: "\e613"; }
+.sa-purchase:before { content: "\e800"; }
 
-.sa-xiu:before { content: "\e605"; }
+.sa-tuichu:before { content: "\e811"; }
 
-.sa-weibiaoti1:before { content: "\ef04"; }
+.sa-feedback:before { content: "\e810"; }
 
-.sa-document:before { content: "\e654"; }
+.sa-document:before { content: "\e804"; }
 
-.sa-switch-on:before { content: "\e622"; }
+.sa-switch-on:before { content: "\e807"; }
 
-.sa-edit:before { content: "\e6ec"; }
+.sa-edit:before { content: "\e806"; }
 
-.sa-sale:before { content: "\e638"; }
+.sa-help:before { content: "\e813"; }
 
-.sa-arrows-left:before { content: "\ef02"; }
+.sa-sale:before { content: "\e801"; }
 
-.sa-warehouse:before { content: "\e63c"; }
+.sa-userBook:before { content: "\e80b"; }
 
-.sa-setting:before { content: "\e64b"; }
+.sa-arrows-left:before { content: "\e809"; }
 
-.sa-saas:before { content: "\ef03"; }
+.sa-serviceOnline:before { content: "\e80c"; }
 
-.sa-money:before { content: "\e6fa"; }
+.sa-accountCenter:before { content: "\e812"; }
 
-.sa-arrows-right:before { content: "\ef01"; }
+.sa-warehouse:before { content: "\e802"; }
+
+.sa-setting:before { content: "\e803"; }
+
+.sa-saas:before { content: "\e808"; }
+
+.sa-money:before { content: "\e805"; }
+
+.sa-question:before { content: "\e80d"; }
+
+.sa-arrows-right:before { content: "\e80a"; }
+
+.sa-userGuite:before { content: "\e80e"; }
 

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 1 - 4
frontend/saas-web/packages/font-saas/sass/src/all.scss


BIN
frontend/saas-web/resources/images/default/logo-default.png


BIN
frontend/saas-web/resources/images/favicon.png


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно