Просмотр исходного кода

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

chenw 7 лет назад
Родитель
Сommit
20daa77587
51 измененных файлов с 853 добавлено и 475 удалено
  1. 2 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/FundtransferdetailMapper.java
  2. 21 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Fundtransfer.java
  3. 30 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othreceipts.java
  4. 18 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othspendings.java
  5. 19 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java
  6. 17 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java
  7. 32 19
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java
  8. 1 1
      applications/money/money-server/src/main/resources/mapper/BankinformationMapper.xml
  9. 19 1
      applications/money/money-server/src/main/resources/mapper/FundtransferMapper.xml
  10. 1 1
      applications/money/money-server/src/main/resources/mapper/FundtransferdetailMapper.xml
  11. 18 1
      applications/money/money-server/src/main/resources/mapper/OthreceiptsMapper.xml
  12. 21 5
      applications/money/money-server/src/main/resources/mapper/OthspendingsMapper.xml
  13. 18 1
      applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml
  14. 18 1
      applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml
  15. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  16. 4 4
      frontend/saas-web/app/Application.scss
  17. 7 4
      frontend/saas-web/app/view/core/base/BasePanel.js
  18. 2 0
      frontend/saas-web/app/view/core/base/BasePanel.scss
  19. 7 1
      frontend/saas-web/app/view/core/base/GridPanel.js
  20. 21 43
      frontend/saas-web/app/view/core/form/DataMultiCombo.js
  21. 1 1
      frontend/saas-web/app/view/core/form/MultiCombo.js
  22. 2 0
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  23. 25 1
      frontend/saas-web/app/view/core/query/QueryGridPanel.scss
  24. 5 9
      frontend/saas-web/app/view/document/employee/BasePanel.js
  25. 72 1
      frontend/saas-web/app/view/document/kind/ChildForm.js
  26. 12 0
      frontend/saas-web/app/view/document/kind/Kind.js
  27. 7 1
      frontend/saas-web/app/view/home/charts/MonthIO.js
  28. 9 3
      frontend/saas-web/app/view/home/charts/MonthPurchase.js
  29. 31 15
      frontend/saas-web/app/view/home/charts/MonthSale.js
  30. 19 0
      frontend/saas-web/app/view/home/charts/MonthSale.scss
  31. 18 11
      frontend/saas-web/app/view/home/charts/PurchaseTrend.js
  32. 16 14
      frontend/saas-web/app/view/home/charts/SaleTrend.js
  33. 18 11
      frontend/saas-web/app/view/home/charts/StockAmount.js
  34. 1 1
      frontend/saas-web/app/view/money/fundtransfer/FormPanelController.js
  35. 12 4
      frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js
  36. 2 1
      frontend/saas-web/app/view/money/othreceipts/FormPanelController.js
  37. 12 4
      frontend/saas-web/app/view/money/othreceipts/QueryPanel.js
  38. 2 1
      frontend/saas-web/app/view/money/othspendings/FormPanelController.js
  39. 12 4
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  40. 2 1
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  41. 12 4
      frontend/saas-web/app/view/money/payBalance/QueryPanel.js
  42. 1 1
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  43. 12 4
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  44. 37 258
      frontend/saas-web/app/view/sys/baseconfig/FormPanel.js
  45. 20 9
      frontend/saas-web/app/view/sys/baseconfig/FormPanelController.js
  46. 179 13
      frontend/saas-web/app/view/sys/config/FormPanel.js
  47. 27 15
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  48. 9 0
      frontend/saas-web/app/view/sys/manager/FormPanel.scss
  49. 1 1
      frontend/saas-web/ext/packages/modern-locale/overrides/zh_CN/field/Date.js
  50. BIN
      frontend/saas-web/resources/images/default/basePhoto.png
  51. 0 4
      frontend/saas-web/resources/json/navigation.json

+ 2 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/FundtransferdetailMapper.java

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.money.mapper;
 
 import com.usoftchina.saas.money.po.Fundtransferdetail;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -12,7 +13,7 @@ public interface FundtransferdetailMapper {
 
     int insertSelective(Fundtransferdetail record);
 
-    List<Fundtransferdetail> selectByPrimaryKey(Integer ftdId);
+    List<Fundtransferdetail> selectByPrimaryKey(@Param("id") Integer ftdId, @Param("companyId") Integer companyId);
 
     int updateByPrimaryKeySelective(Fundtransferdetail record);
 

+ 21 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Fundtransfer.java

@@ -45,6 +45,27 @@ public class Fundtransfer extends CommonBaseEntity implements Serializable {
 
     private String ftd_paycode;
 
+    private String ft_auditman;
+
+    private Date ft_auditdate;
+
+
+    public String getFt_auditman() {
+        return ft_auditman;
+    }
+
+    public void setFt_auditman(String ft_auditman) {
+        this.ft_auditman = ft_auditman;
+    }
+
+    public Date getFt_auditdate() {
+        return ft_auditdate;
+    }
+
+    public void setFt_auditdate(Date ft_auditdate) {
+        this.ft_auditdate = ft_auditdate;
+    }
+
     public String getFt_code() {
         return ft_code;
     }

+ 30 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othreceipts.java

@@ -55,6 +55,36 @@ public class Othreceipts extends CommonBaseEntity implements Serializable {
 
     private String ord_remark;
 
+    private String or_auditman;
+
+    private Date or_auditdate;
+
+    public String getOr_auditman() {
+        return or_auditman;
+    }
+
+    public void setOr_auditman(String or_auditman) {
+        this.or_auditman = or_auditman;
+    }
+
+    public Date getOr_auditdate() {
+        return or_auditdate;
+    }
+
+    public void setOr_auditdate(Date or_auditdate) {
+        this.or_auditdate = or_auditdate;
+    }
+
+    @Override
+    public String getCreatorName() {
+        return creatorName;
+    }
+
+    @Override
+    public void setCreatorName(String creatorName) {
+        this.creatorName = creatorName;
+    }
+
     public String getOr_code() {
         return or_code;
     }

+ 18 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othspendings.java

@@ -56,7 +56,25 @@ public class Othspendings extends CommonBaseEntity implements Serializable {
 
     private String osd_remark;
 
+    private String os_auditman;
 
+    private Date os_auditdate;
+
+    public String getOs_auditman() {
+        return os_auditman;
+    }
+
+    public void setOs_auditman(String os_auditman) {
+        this.os_auditman = os_auditman;
+    }
+
+    public Date getOs_auditdate() {
+        return os_auditdate;
+    }
+
+    public void setOs_auditdate(Date os_auditdate) {
+        this.os_auditdate = os_auditdate;
+    }
 
     public String getOs_code() {
         return os_code;

+ 19 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java

@@ -83,6 +83,25 @@ public class Paybalance extends CommonBaseEntity implements Serializable {
 
     private Double pbd_nowbalance;
 
+    private Date pb_auditdate;
+
+    private String pb_auditman;
+
+    public Date getPb_auditdate() {
+        return pb_auditdate;
+    }
+
+    public void setPb_auditdate(Date pb_auditdate) {
+        this.pb_auditdate = pb_auditdate;
+    }
+
+    public String getPb_auditman() {
+        return pb_auditman;
+    }
+
+    public void setPb_auditman(String pb_auditman) {
+        this.pb_auditman = pb_auditman;
+    }
 
     public Date getUpdatedate() {
         return updatedate;

+ 17 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java

@@ -83,8 +83,25 @@ public class Recbalance extends CommonBaseEntity implements Serializable {
 
     private Double rbd_nowbalance;
 
+    private String rb_auditman;
 
+    private Date rb_auditdate;
 
+    public String getRb_auditman() {
+        return rb_auditman;
+    }
+
+    public void setRb_auditman(String rb_auditman) {
+        this.rb_auditman = rb_auditman;
+    }
+
+    public Date getRb_auditdate() {
+        return rb_auditdate;
+    }
+
+    public void setRb_auditdate(Date rb_auditdate) {
+        this.rb_auditdate = rb_auditdate;
+    }
 
     public Date getUpdatedate() {
         return updatedate;

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

@@ -104,6 +104,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
         DocBaseDTO docBaseDTO = this.insert(fundtran);
         Long id = docBaseDTO.getId();
 
+
         //取从表金额更新中间表、资金账号表
         List<Fundtransferdetail> fundtransferdetailList = fundtran.getItems();
         Iterator isList = fundtransferdetailList.iterator();
@@ -151,21 +152,27 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
 //            }
             Double spending = bankinformation.getBk_spending() == null ? new Double(0) : bankinformation.getBk_spending();
             Double incomme = bankinformation.getBk_income() == null ? new Double(0) : bankinformation.getBk_income();
-            bankinformation.setBk_thisamount(beginamount + incomme - spending - bk_amount);
-            bankinformation.setBk_income(incomme);
-            bankinformation.setBk_spending(spending + bk_amount);
+            Bankinformation newbankinformation = new Bankinformation();
+            newbankinformation.setBk_thisamount(beginamount + incomme - (spending + bk_amount));
+            newbankinformation.setBk_income(incomme);
+            newbankinformation.setBk_spending(spending + bk_amount);
+            newbankinformation.setId(bankinformation.getId());
+            newbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
+            bankinformationMapper.updateByPrimaryKeySelective(newbankinformation);
 
             //收款方
             Bankinformation inbankinformation = bankinformationMapper.selectByPrimaryKey(bk_inid);
             Double inbeginamount = inbankinformation.getBk_beginamount()== null ? new Double(0) : inbankinformation.getBk_beginamount();
             Double inspending = inbankinformation.getBk_spending() == null ? new Double(0) : inbankinformation.getBk_spending();
             Double inincomme = inbankinformation.getBk_income() == null ? new Double(0) : inbankinformation.getBk_income();
-            inbankinformation.setBk_thisamount(inbeginamount + inincomme - inspending + bk_amount);
-            inbankinformation.setBk_income(inincomme + bk_amount);
-            inbankinformation.setBk_spending(inspending);
+            Bankinformation newinbankinformation = new Bankinformation();
+            newinbankinformation.setBk_thisamount(inbeginamount + (inincomme + bk_amount) - inspending );
+            newinbankinformation.setBk_income(inincomme + bk_amount);
+            newinbankinformation.setBk_spending(inspending);
+            newinbankinformation.setId(inbankinformation.getId());
+            newinbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
+            bankinformationMapper.updateByPrimaryKeySelective(newinbankinformation);
 
-            bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
-            bankinformationMapper.updateByPrimaryKeySelective(inbankinformation);
         }
         DocBaseDTO baseDTO = getBaseDTOById(id);
         //日志记录
@@ -187,7 +194,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
 
         //资金
         //取从表金额
-        List<Fundtransferdetail> fundtransferdetailList = fundtransferdetailMapper.selectByPrimaryKey(id);
+        List<Fundtransferdetail> fundtransferdetailList = fundtransferdetailMapper.selectByPrimaryKey(id, Math.toIntExact(BaseContextHolder.getCompanyId()));
         Iterator isList = fundtransferdetailList.iterator();
         while (isList.hasNext()){
             Fundtransferdetail fundtransferdetail = (Fundtransferdetail) isList.next();
@@ -208,21 +215,27 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             Double beginamount = bankinformation.getBk_beginamount()== null ? new Double(0) : bankinformation.getBk_beginamount();
             Double spending = bankinformation.getBk_spending() == null ? new Double(0) : bankinformation.getBk_spending();
             Double incomme = bankinformation.getBk_income() == null ? new Double(0) : bankinformation.getBk_income();
-            bankinformation.setBk_thisamount(beginamount + incomme - spending + bk_amount);
-            bankinformation.setBk_income(incomme);
-            bankinformation.setBk_spending(spending - bk_amount);
+            Bankinformation newbankinformation = new Bankinformation();
+            newbankinformation.setBk_thisamount(beginamount + incomme - (spending - bk_amount));
+            newbankinformation.setBk_income(incomme);
+            newbankinformation.setBk_spending(spending - bk_amount);
+            newbankinformation.setId(Long.valueOf(bk_id));
+            newbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
 
             //收款方
             Bankinformation inbankinformation = bankinformationMapper.selectByPrimaryKey(bk_inid);
             Double inbeginamount = inbankinformation.getBk_beginamount()== null ? new Double(0) : inbankinformation.getBk_beginamount();
             Double inspending = inbankinformation.getBk_spending() == null ? new Double(0) : inbankinformation.getBk_spending();
             Double inincomme = inbankinformation.getBk_income() == null ? new Double(0) : inbankinformation.getBk_income();
-            inbankinformation.setBk_thisamount(inbeginamount + inincomme - inspending - bk_amount);
-            inbankinformation.setBk_income(inincomme - bk_amount);
-            inbankinformation.setBk_spending(inspending);
-
-            bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
-            bankinformationMapper.updateByPrimaryKeySelective(inbankinformation);
+            Bankinformation newinbankinformation = new Bankinformation();
+            newinbankinformation.setBk_thisamount(inbeginamount + (inincomme-bk_amount) - inspending );
+            newinbankinformation.setBk_income(inincomme-bk_amount);
+            newinbankinformation.setBk_spending(inspending);
+            newinbankinformation.setId(Long.valueOf(bk_inid));
+            newinbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
+
+            bankinformationMapper.updateByPrimaryKeySelective(newbankinformation);
+            bankinformationMapper.updateByPrimaryKeySelective(newinbankinformation);
         }
 
         DocBaseDTO baseDTO = getBaseDTOById(Long.valueOf(id));
@@ -286,7 +299,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
     public Fundtran select(int id) {
         Fundtran fundtran = new Fundtran();
         fundtran.setMain(fundtransferMapper.selectByPrimaryKey(id));
-        fundtran.setItems(fundtransferdetailMapper.selectByPrimaryKey(id));
+        fundtran.setItems(fundtransferdetailMapper.selectByPrimaryKey(id, Math.toIntExact(BaseContextHolder.getCompanyId())));
         return fundtran;
     }
 

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

@@ -33,7 +33,7 @@
   <sql id="Base_Column_List" >
     bk_id, bk_bankcode, bk_bankname, bk_date, bk_type, bk_beginamount, bk_thisamount, 
     bk_status, bk_statuscode, bk_recorderid, bk_recorder, bk_recorddate, bk_ym, companyid, 
-    updaterId, updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_remark
+    updaterId, updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_spending,  bk_income
   </sql>
   <sql id="Blob_Column_List" >
     bk_remark

+ 19 - 1
applications/money/money-server/src/main/resources/mapper/FundtransferMapper.xml

@@ -24,11 +24,17 @@
     <result column="ftd_nowbalance" property="ftd_nowbalance" jdbcType="DOUBLE" />
     <result column="ftd_paymethod" property="ftd_paymethod" jdbcType="VARCHAR" />
     <result column="ftd_paycode" property="ftd_paycode" jdbcType="VARCHAR" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
+    <result column="ft_auditman" property="ft_auditman" jdbcType="VARCHAR" />
+    <result column="ft_auditdate" property="ft_auditdate" jdbcType="TIMESTAMP" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
     ft_id, ft_code, ft_date, ft_recorderid, ft_recorder, ft_recorddate, ft_status, ft_statuscode, 
     ft_remark, fundtransfer.companyId, fundtransfer.updaterId, fundtransfer.updatedate,
-    ft_text1, ft_text2, ft_text3, ft_text4, ft_text5
+    ft_text1, ft_text2, ft_text3, ft_text4, ft_text5, fundtransfer.creatorName, fundtransfer.createTime,
+    ft_auditman, ft_auditdate
   </sql>
   <sql id="Detail_Column_List" >
     ftd_bankname,ftd_inbankname,ftd_nowbalance,ftd_paymethod,ftd_paycode
@@ -109,6 +115,12 @@
       <if test="ft_text5 != null" >
         ft_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="ft_code != null" >
@@ -154,6 +166,12 @@
       <if test="ft_text5 != null" >
         #{ft_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

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

@@ -35,7 +35,7 @@
     select 
     <include refid="Base_Column_List" />
     from fundtransferdetail
-    where ftd_ftid = #{id,jdbcType=INTEGER}
+    where ftd_ftid = #{id,jdbcType=INTEGER} and companyId = #{companyId}
   </select>
 
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >

+ 18 - 1
applications/money/money-server/src/main/resources/mapper/OthreceiptsMapper.xml

@@ -29,12 +29,17 @@
     <result column="ord_type" property="ord_type" jdbcType="VARCHAR" />
     <result column="ord_nowbalance" property="ord_nowbalance" jdbcType="DOUBLE" />
     <result column="ord_remark" property="ord_remark" jdbcType="VARCHAR" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
+    <result column="or_auditman" property="or_auditman" jdbcType="VARCHAR" />
+    <result column="or_auditdate" property="or_auditdate" jdbcType="TIMESTAMP" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
     or_id, or_code, or_date, or_custid, or_custcode, or_custname, or_bankcode, or_bankid, 
     or_bankname, or_amount, or_recorderid, or_recorder, or_recorddate, or_status, or_statuscode, 
     or_remark, Othreceipts.companyId, Othreceipts.updaterId, Othreceipts.updatedate, or_text1,
-    or_text2, or_text3, or_text4, or_text5
+    or_text2, or_text3, or_text4, or_text5, othreceipts.creatorName, othreceipts.createTime, or_auditman, or_auditdate
   </sql>
   <sql id="Detail_Column_List" >
     ord_type,ord_nowbalance,ord_remark
@@ -143,6 +148,12 @@
       <if test="or_text5 != null" >
         or_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="creatorTime != null" >
+        creatorTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="or_code != null" >
@@ -209,6 +220,12 @@
       <if test="or_text5 != null" >
         #{or_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="creatorTime != null" >
+        #{creatorTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 21 - 5
applications/money/money-server/src/main/resources/mapper/OthspendingsMapper.xml

@@ -29,13 +29,17 @@
     <result column="osd_type" property="osd_type" jdbcType="VARCHAR" />
     <result column="osd_nowbalance" property="osd_nowbalance" jdbcType="DOUBLE" />
     <result column="osd_remark" property="osd_remark" jdbcType="VARCHAR" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="os_auditman" property="os_auditman" jdbcType="VARCHAR" />
+    <result column="os_auditdate" property="os_auditdate" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
     os_id, os_code, os_date, os_vendid, os_vendcode, os_vendname, os_bankid, os_bankcode, 
     os_bankname, os_amount, os_recorderid, os_recorder, os_recorddate, os_status, os_statuscode, 
     os_remark, othspendings.companyId, othspendings.updaterId,
     othspendings.updatedate, os_text1, os_text2, os_text3, os_text4,
-    os_text5
+    os_text5,othspendings.creatorName, othspendings.createTime, os_auditman, os_auditdate
   </sql>
   <sql id="Detail_Column_List" >
     osd_type,osd_nowbalance,osd_remark
@@ -138,6 +142,12 @@
       <if test="os_text5 != null" >
         os_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="os_code != null" >
@@ -167,13 +177,13 @@
       <if test="os_amount != null" >
         #{os_amount,jdbcType=DOUBLE},
       </if>
-      now(),
+      <if test="os_recorderid != null" >
+        #{os_recorderid,jdbcType=INTEGER},
+      </if>
       <if test="os_recorder != null" >
         #{os_recorder,jdbcType=VARCHAR},
       </if>
-      <if test="os_recorddate != null" >
-        #{os_recorddate,jdbcType=TIMESTAMP},
-      </if>
+      now(),
       <if test="os_status != null" >
         #{os_status,jdbcType=VARCHAR},
       </if>
@@ -204,6 +214,12 @@
       <if test="os_text5 != null" >
         #{os_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 18 - 1
applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml

@@ -40,6 +40,10 @@
     <result column="pbd_sldate" jdbcType="TIMESTAMP" property="pbd_sldate" />
     <result column="pbd_amount" jdbcType="DOUBLE" property="pbd_amount" />
     <result column="pbd_nowbalance" jdbcType="DOUBLE" property="pbd_nowbalance" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="pb_auditdate" property="pb_auditdate" jdbcType="TIMESTAMP" />
+    <result column="pb_auditman" property="pb_auditman" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -103,7 +107,8 @@
     pb_id, pb_code, pb_kind, pb_date, pb_vendid, pb_vendcode, pb_vendname, pb_manname, 
     pb_pdamount, pb_pbdamount, pb_preamount, pb_discounts, pb_havebalance, pb_recorderid, 
     pb_recorder, pb_recorddate, pb_status, pb_statuscode, pb_remark, paybalance.companyId,
-    paybalance.updaterId,paybalance.updatedate, pb_text1, pb_text2, pb_text3, pb_text4, pb_text5
+    paybalance.updaterId,paybalance.updatedate, pb_text1, pb_text2, pb_text3, pb_text4, pb_text5, paybalance.creatorName,
+    paybalance.createTime, pb_auditdate, pb_auditman
   </sql>
   <sql id="left_Column_List">
     ve_leftamount
@@ -232,6 +237,12 @@
       <if test="pb_text5 != null">
         pb_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="pb_code != null">
@@ -307,6 +318,12 @@
       <if test="pb_text5 != null">
         #{pb_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 18 - 1
applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml

@@ -40,6 +40,10 @@
     <result column="rbd_sldate" jdbcType="TIMESTAMP" property="rbd_sldate" />
     <result column="rbd_amount" jdbcType="DOUBLE" property="rbd_amount" />
     <result column="rbd_nowbalance" jdbcType="DOUBLE" property="rbd_nowbalance" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="rb_auditman" property="rb_auditman" jdbcType="VARCHAR" />
+    <result column="rb_auditdate" property="rb_auditdate" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -103,7 +107,8 @@
     rb_id, rb_code, rb_kind, rb_date, rb_custid, rb_custcode, rb_custname, rb_manname,
     rb_rdamount, rb_rbdamount, rb_preamount, rb_discounts, rb_havebalance, rb_recorderid,
     rb_recorder, rb_recorddate, rb_status, rb_statuscode, rb_remark, recbalance.companyId,
-    recbalance.updaterId,recbalance.updatedate, rb_text1, rb_text2, rb_text3, rb_text4, rb_text5
+    recbalance.updaterId,recbalance.updatedate, rb_text1, rb_text2, rb_text3, rb_text4, rb_text5,
+    recbalance.creatorName, recbalance.createTime, rb_auditman, rb_auditdate
   </sql>
   <sql id="left_Column_List">
     cu_leftamount
@@ -278,6 +283,12 @@
       <if test="rb_text5 != null">
         rb_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="rb_code != null">
@@ -353,6 +364,12 @@
       <if test="rb_text5 != null">
         #{rb_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

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

@@ -510,6 +510,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         purchase.setPu_acceptstatuscode(Status.UNAUDITED.name());
         purchase.setUpdateTime(new Date());
         purchase.setUpdaterId(BaseContextHolder.getUserId());
+        getMapper().updateByPrimaryKey(purchase);
         //更新存在字段
         //日志
         messageLogService.audit(docBaseDTO);

+ 4 - 4
frontend/saas-web/app/Application.scss

@@ -230,10 +230,10 @@ body.launching {
 }
 
 .x-panel-default-outer-border-rl {
-  border-right-color: #ABDAFF;
-  border-right-width: 1px;
-  border-left-color: #ABDAFF;
-  border-left-width: 1px;
+  border-right-color: #ABDAFF !important;
+  border-right-width: 1px !important;
+  border-left-color: #ABDAFF !important;
+  border-left-width: 1px !important;
 }
 
 .x-grid-item-alt {

+ 7 - 4
frontend/saas-web/app/view/core/base/BasePanel.js

@@ -13,8 +13,8 @@ Ext.define('saas.view.core.base.BasePanel', {
     //基础属性
     frame:false,
     autoScroll: true,
-    border: 1,
-    bodyPadding: 5,
+    border: 0,
+    bodyPadding: 0,
     layout: 'fit',
     
     fieldDefaults: {
@@ -46,10 +46,12 @@ Ext.define('saas.view.core.base.BasePanel', {
                 xtype: 'toolbar',
                 dock: 'top',
                 style: {
-                    'border-bottom': '1px solid #35baf6 !important'
+                    // 'border-bottom': '1px solid #35baf6 !important',
+                    margin: '0 0 12px 0',
+                    padding: '10px 0 14px 8px',
                 },
                 items: me.searchField.concat([{
-                    cls:'x-formpanel-btn-orange',
+                    // cls:'x-formpanel-btn-orange',
                     xtype: 'button',
                     text: '查询',
                     handler: 'query'
@@ -58,6 +60,7 @@ Ext.define('saas.view.core.base.BasePanel', {
             items: [{
                 layout: 'fit',
                 xtype: 'core-base-gridpanel',
+                padding: '8 12',
                 dataUrl: gridDataUrl,
                 idField: gridIdField,
                 codeField: gridCodeField,

+ 2 - 0
frontend/saas-web/app/view/core/base/BasePanel.scss

@@ -1,4 +1,6 @@
 .core-base-basepanel{
+    background: #EEF4F9;
+
     .x-panel-default-outer-border-trl {
         border-top-color: #fff !important;
         border-top-width: 1px !important;

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

@@ -222,7 +222,7 @@ Ext.define('saas.view.core.base.GridPanel', {
     insertFirstColumn:function(columns){
         var me=this;
         if(columns.length>0 && columns[0].xtype!='actioncolumn'){
-            return Ext.Array.insert(columns,0,[{
+            Ext.Array.insert(columns,0,[{
                 xtype:'actioncolumn',
                 width:70,
                 dataIndex:'actioncolumn',
@@ -239,6 +239,12 @@ Ext.define('saas.view.core.base.GridPanel', {
                 }]
             }]);
         }
+        if(columns[columns.length - 1].flex != 1) {
+            columns.push({
+                flex: 1,
+                allowBlank: true
+            });
+        }
         return columns;
     },
 

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

@@ -18,53 +18,31 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
             Ext.Ajax.request({  
                 url : me.dataUrl,
                 timeout: 100000000,  
-                method : 'post',  
-                params : {}  ,
+                async:false,
                 headers:{
                     'Access-Control-Allow-Origin': '*',
-                    'Authorization':  saas.util.State.get('session').token
+                    'Authorization':  saas.util.State.get('session').token,
+                    "Content-Type": 'application/json;charset=UTF-8'
                 },
                 success: function(fp, o){
-                    // if(o.result.error){
-                    //     showError(o.result.error);
-                    // } else {
-                    //     var msg = Ext.getCmp('baseform').ownerCt.ownerCt.down('htmleditor[name=msg]');
-                    //     var imgel=msg.getEl().dom.getElementsByTagName('iframe')[0].contentWindow.document.body;
-                    //     if(imgel.getElementsByTagName('img').length>0){
-                    //       imgel.removeChild(imgel.getElementsByTagName('img')[0]);
-                    //     }
-                    //     //Ext.getCmp('baseform').ownerCt.ownerCt.down('hidden').setValue('../../../'+o.result.path);
-                    //     Ext.getCmp('baseform').ownerCt.setValue(o.result.path);
-                    //     var element = document.createElement("img");
-                    //     element.src = basePath + 'common/download.action?path=' + o.result.path.replace(/\+/g, '%2B');
-                    //     element.style="width:100%;height:100%";            
-                    //     element.title = '&img' + o.result.filepath + ";";
-                    //     msg.setValue('<img src="'+element.src+'" style=width:100%;height:100%;>');
-                    // }
+                    var res = Ext.decode(fp.responseText);
+                    var data = res.data,datas=[];
+                    if(data.length>0){
+                        Ext.each(data, function(item, index){
+                            var o = [];
+                            o[0] = item.name;
+                            o[1] = item.id;
+                            datas.push(o);
+                        });
+                    }else{
+                        saas.util.BaseUtil.showToast('下拉框读取数据为空!');
+                    }
+                    me.datas = datas;
                 },
                 failure: function (response, opts) {
                     saas.util.BaseUtil.showToast('上传失败: ' + response.responseText);
                 }
             });
-            me.BaseUtil.request({
-                url: me.dataUrl,
-                params: '',
-                method: 'POST',
-                async:false
-            })
-            .then(function(localJson) {
-                if(localJson.success){
-                }
-            })
-            .catch(function(res) {
-                console.error(res);
-                saas.util.BaseUtil.showToast('保存失败: ' + res.message);
-            });
-
-            // datas: [
-            //     ["已审核", "已审核"],
-            //     ["未审核", "未审核"]
-            // ]
         }
         me.callParent(arguments);
     },
@@ -114,12 +92,12 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
         for (; i < itemsLn; i++) {
             item = items[i];
             var checked = !!value.find(function(v) {
-                return v.value = iem[0];
+                return v.value == item[1];
             });
             menuItem = new Ext.menu.CheckItem({
-                text: item[1],
+                text: item[0],
                 checked: checked,
-                checkValue:item[0],
+                checkValue:item[1],
                 hideOnClick: false,
                 checkHandler: this.onCheckChange,
                 scope: this
@@ -155,8 +133,8 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
                     return d[0] == item;
                 });
                 items[index] = {
-                    text: data[1],
-                    value: data[0]
+                    text: data[0],
+                    value: data[1]
                 }
             }
         })

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

@@ -61,7 +61,7 @@ Ext.define('saas.view.core.form.MultiCombo', {
         for (; i < itemsLn; i++) {
             item = items[i];
             var checked = !!value.find(function(v) {
-                return v.value = iem[0];
+                return v.value == iem[0];
             });
             menuItem = new Ext.menu.CheckItem({
                 text: item[1],

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

@@ -155,6 +155,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                     handler: me.onAudit,
                     menu: {
                         cls:'x-query-menu',
+                        anchor: '100%',
                         items: [{
                             text:'反审核',
                             handler:function(){
@@ -243,6 +244,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 }]
             }, {
                 xtype: 'pagingtoolbar',
+                cls: 'core-query-pagingtoolbar',
                 dock: 'bottom',
                 displayInfo: true,
                 store: me.store

+ 25 - 1
frontend/saas-web/app/view/core/query/QueryGridPanel.scss

@@ -4,8 +4,32 @@
 
         .x-grid-cell-inner {
             text-decoration: underline;
-            color: blue;
+            color: #3E80F6;
             cursor: pointer;
         }
     }
+
+    .x-panel-default-outer-border-trl {
+        border-top-color: #fff !important;
+        border-top-width: 1px !important;
+        border-right-color: #fff !important;
+        border-right-width: 1px !important;
+        border-left-color: #fff !important;
+        border-left-width: 1px !important;
+    }
+    .x-panel-default-outer-border-rbl {
+        border-top-color: #fff !important;
+        border-top-width: 1px !important;
+        border-right-color: #fff !important;
+        border-right-width: 1px !important;
+        border-left-color: #fff !important;
+        border-left-width: 1px !important;
+        border-bottom-color: #fff !important;
+        border-bottom-width: 1px !important;
+    }
+
+    .core-query-pagingtoolbar {
+        border:1px solid #abdaff !important;
+        border-top-width: 0 !important;
+    }
 }

+ 5 - 9
frontend/saas-web/app/view/document/employee/BasePanel.js

@@ -46,31 +46,27 @@ Ext.define('saas.view.document.employee.BasePanel', {
             text : "账号", 
             width : 200.0, 
             dataIndex : "em_code", 
-            xtype : "", 
         }, 
         {
             text : "姓名", 
             dataIndex : "em_name", 
-            width : 120.0, 
-            xtype : "", 
+            width : 180.0, 
         },
         {
             text : "密码", 
             dataIndex : "em_password", 
-            width : 120.0, 
-            xtype : ""
+            width : 180.0, 
         }, 
         {
             text : "类型", 
             dataIndex : "em_class", 
-            width : 0, 
-            xtype : ""
+            width : 120.0, 
+            hidden : true,
         }, 
         {
             text : "电话", 
             dataIndex : "em_mobile", 
-            width : 120.0, 
-            xtype : "",
+            width : 120.0,
         }]
     },
 

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

@@ -222,7 +222,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         accountinformation:{
             items:[{
                 xtype:'hidden',
-                name:'roleIds',
+                name:'accountId',
                 hidden:true,
             },{
                 xtype:'datamulticombo',
@@ -235,6 +235,8 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '联系电话',
                 name: 'mobile',
+                readOnly:true,
+                editable:false,
                 allowBlank:true,
                 maxLength: 30,
                 beforeLabelTextTpl: "",
@@ -242,6 +244,8 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '联系邮件',
                 name: 'email',
+                readOnly:true,
+                editable:false,
                 allowBlank:true,
                 maxLength: 30,
                 beforeLabelTextTpl: "",
@@ -313,6 +317,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '单据前缀',
                 name: 'mn_leadcode',
+                beforeLabelTextTpl: '',
                 allowBlank:false,
                 maxLength: 20
             },{
@@ -384,6 +389,13 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         var combo = this._combo;
         var params = {};
         var names = belong.columns.map(column => column.dataIndex);
+
+        //账户资料特殊保存逻辑
+        if(me.dataKind=='accountinformation'){
+            me.accountinformation();
+            return;
+        }
+
         Ext.Array.each(names,function(name) {
             if(name){
                 var dataField = form.down('[name='+name+']');
@@ -425,5 +437,64 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
     },
     onCancel:function(){
         this.hide();
+    },
+    accountinformation:function(){
+        var me = this;
+        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);
+
+        Ext.Array.each(names,function(name) {
+            if(name){
+                var dataField = form.down('[name='+name+']');
+                if(dataField&&dataField.value){
+                    params[name] = dataField.value;
+                    params._value = dataField.value;
+                }
+            }
+        });
+
+        //更改参数
+        var o = '';
+        Ext.Array.each(params.roleNames,function(item) {
+            o+=item.value+','
+        });
+        o = o.substring(0,o.length-1);
+
+        var _params = {
+            accountId:Number(params['accountId']),
+            roleIds:o,
+        };
+
+        //保存接口
+        saas.util.BaseUtil.request({
+            url: belong.reqUrl,
+            params: _params,
+            method: 'POST'
+        })
+        .then(function(localJson) {
+            me.setLoading(false);
+            if(localJson.success){
+                saas.util.BaseUtil.showToast('保存成功');
+                var grid = form.ownerCt._parent.lookup('document-kind-Grid');
+                if(grid){
+                    grid.store.load();
+                }
+                if(combo){
+                    combo.store.load(function() {
+                        typeof combo.setValue == 'function' && combo.setValue(params._value);
+                    });
+                }
+                form.ownerCt.close();
+            }
+        })
+        .catch(function(res) {
+            me.setLoading(false);
+            console.error(res);
+            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
+        });
     }
 });

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

@@ -246,6 +246,18 @@ Ext.define('saas.view.document.kind.Kind', {
             reqUrl:'/api/account/role/save',
             updateUrl:'/api/account/role/update',
         },
+        accountinformation:{
+            columns:[{
+                dataIndex:'accountId',
+            },{
+                dataIndex: 'roleNames',
+            },{
+                dataIndex: 'mobile',
+            },{
+                dataIndex: 'email',
+            }],
+            reqUrl:'http://192.168.253.31:8560/api/account/account/bind/roles',
+        },
         warehouse:{
             columns: [{
                 text: '编号',

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

@@ -9,7 +9,7 @@ Ext.define('saas.view.home.charts.MonthIO', {
         Ext.apply(me, {
             items: [{
                 xtype: 'cartesian',
-                reference: 'chart',
+                insetPadding: '28 0 0 0',
                 colors: [
                     '#2C82BE',
                     '#82CCFF'
@@ -38,6 +38,9 @@ Ext.define('saas.view.home.charts.MonthIO', {
                     adjustByMajorUnit: true,
                     fields: ['main'],
                     minimum: 0,
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     grid: {
                         even: {
                             stroke: '#F7F8FA'
@@ -54,6 +57,9 @@ Ext.define('saas.view.home.charts.MonthIO', {
                     type: 'category',
                     position: 'bottom',
                     fields: ['x'],
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     style: {
                         fill: '#F7F8FA',
                         strokeStyle: 'transparent'

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

@@ -10,6 +10,7 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
         Ext.apply(me, {
             items: [{
                 xtype: 'cartesian',
+                insetPadding: '28 0 0 0',
                 colors: [
                     '#34BAF6'
                 ],
@@ -18,12 +19,10 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                     captions: {
                         title: {
                             text: '本月采购额(万元):{month_purchase_amount}',
+                            align: 'left',
                             style: {
-                                'font-size': '14px',
                                 'color': '#485465',
-                                'letter-spacing': '-0.07px'
                             },
-                            align: 'left'
                         }
                     },
                 },
@@ -31,6 +30,9 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                     type: 'category',
                     fields: ['x'],
                     position: 'bottom',
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     style: {
                         fill: '#F7F8FA',
                         strokeStyle: 'transparent'
@@ -48,6 +50,10 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                             stroke: '#F7F8FA',
                         }
                     },
+                    label: {
+                        fillStyle: '#485465',
+                        textAlign: 'end'
+                    },
                     style: {
                         fill: '#fff',
                         strokeStyle: 'transparent'

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

@@ -10,7 +10,8 @@ Ext.define('saas.view.home.charts.MonthSale', {
         Ext.apply(me, {
             items: [{
                 xtype: 'polar',
-                reference: 'chart',
+                width: '100%',
+                height: '100%',
                 bind: {
                     captions: {
                         title: {
@@ -49,33 +50,45 @@ Ext.define('saas.view.home.charts.MonthSale', {
                     '#1E90FF',
                     '#B0E0E6'
                 ],
-                width: '100%',
-                innerPadding: 20,
-                // legend: {
-                //     type: 'dom',
-                //     docked: 'right'
-                // },
+                innerPadding: 0,
+                legend: {
+                    type: 'dom',
+                    docked: 'right',
+                    width: 120,
+                    padding: 0,
+                    bodyPadding: 0,
+                    border: 0,
+                    // liveDrag: true,
+                    cls: 'x-pie-legend'
+                },
                 style: {
+                    lineWidth: 0,
                     stroke: "#789"
                 },
-                interactions: ['rotate', 'itemhighlight'],
+                // interactions: [{
+                //     type: 'panzoom',
+                //     zoomOnPan: true
+                // }],
                 series: [{
                     type: 'pie',
                     angleField: 'y',
                     donut: 55,
                     label: {
                         field: 'x',
-                        renderer: me.onLabelRender
+                        display: 'inside',
+                        renderer: me.onLabelRender,
+                        color: '#fff',
+                        font: '12px Microsoft YaHei'
                     },
+                    // label: {
+                    //     field: 'x',
+                    //     renderer: me.onLabelRender
+                    // },
                     highlight: true,
                     tooltip: {
                         trackMouse: true,
                         renderer: me.onSeriesTooltipRender
-                    },
-                    style: {
-                        lineWidth: 0,
-                        strokeStyle: 'transparent',
-                    },
+                    }
                 }]
             }],
         });
@@ -86,7 +99,10 @@ Ext.define('saas.view.home.charts.MonthSale', {
     onLabelRender: function(text, sprite, config, rendererData, index) {
         var homeModel = Ext.getCmp('home').getViewModel();
         var monthSaleAmount = homeModel.get('month_sale_amount');
-        return text;
+        var store = rendererData.store;
+        var data = store.getAt(index);
+        var v = data.get('y');
+        return Ext.util.Format.number((v/monthSaleAmount)*100, '0.00') + '%';
     },
 
     onSeriesTooltipRender: function (tooltip, record, item) {

+ 19 - 0
frontend/saas-web/app/view/home/charts/MonthSale.scss

@@ -0,0 +1,19 @@
+.x-pie-legend {
+
+    .x-legend-inner {
+        padding: 0;
+
+        .x-legend-container {
+
+            .x-legend-item {
+                border: none !important;
+                outline: none !important;
+                text-align: left;
+
+                .x-legend-item-marker {
+                    border-radius: 50%;
+                }
+            }
+        }
+    }
+}

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

@@ -10,21 +10,22 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
         Ext.apply(me, {
             items: [{
                 xtype: 'cartesian',
+                insetPadding: '28 0 0 0',
                 colors: [
                     '#34BAF6'
                 ],
-                captions: {
-                    title: {
-                        text: '采购金额(万元)',
-                        style: {
-                            'font-size': '14px',
-                            'color': '#485465',
-                            'letter-spacing': '-0.07px'
-                        },
-                        align: 'left'
-                    }
-                },
                 bind: {
+                    captions: {
+                        title: {
+                            text: '采购金额(万元)',
+                            style: {
+                                'font-size': '14px',
+                                'color': '#485465',
+                                'letter-spacing': '-0.07px'
+                            },
+                            align: 'left'
+                        }
+                    },
                     store: '{purchase_trend}',
                 },
                 axes: [{
@@ -35,6 +36,9 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
                     type: 'category',
                     fields: ['x'],
                     position: 'bottom',
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     style: {
                         fill: '#F7F8FA',
                         strokeStyle: 'transparent'
@@ -52,6 +56,9 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
                             stroke: '#F7F8FA',
                         }
                     },
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     style: {
                         fill: '#fff',
                         strokeStyle: 'transparent'

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

@@ -10,22 +10,23 @@ Ext.define('saas.view.home.charts.SaleTrend', {
         Ext.apply(me, {
             items: [{
                 xtype: 'cartesian',
+                insetPadding: '28 0 0 0',
                 colors: [
                     '#64B0E4',
                     '#FF1038'
                 ],
-                captions: {
-                    title: {
-                        text: '销售趋势图',
-                        style: {
-                            'font-size': '14px',
-                            'color': '#485465',
-                            'letter-spacing': '-0.07px'
-                        },
-                        align: 'left'
-                    }
-                },
                 bind: {
+                    captions: {
+                        title: {
+                            text: '销售趋势图',
+                            style: {
+                                'font-size': '14px',
+                                'color': '#485465',
+                                'letter-spacing': '-0.07px'
+                            },
+                            align: 'left'
+                        }
+                    },
                     store: '{sale_trend}',
                 },
                 // legend: {
@@ -42,9 +43,7 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                     fields: ['x'],
                     position: 'bottom',
                     label: {
-                        style: {
-                            fontSize: 12,
-                        }
+                        fillStyle: '#485465',
                     },
                     style: {
                         fill: '#F7F8FA',
@@ -63,6 +62,9 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                             stroke: '#F7F8FA',
                         }
                     },
+                    label: {
+                        fillStyle: '#485465',
+                    },
                     style: {
                         fill: '#fff',
                         strokeStyle: 'transparent'

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

@@ -10,21 +10,22 @@ Ext.define('saas.view.home.charts.StockAmount', {
         Ext.apply(me, {
             items: [{
                 xtype: 'cartesian',
+                insetPadding: '28 0 0 0',
                 colors: [
                     '#34BAF6'
                 ],
-                captions: {
-                    title: {
-                        text: '库存金额(万元)',
-                        style: {
-                            'font-size': '14px',
-                            'color': '#485465',
-                            'letter-spacing': '-0.07px'
-                        },
-                        align: 'left'
-                    }
-                },
                 bind: {
+                    captions: {
+                        title: {
+                            text: '库存金额(万元)',
+                            style: {
+                                'font-size': '14px',
+                                'color': '#485465',
+                                'letter-spacing': '-0.07px'
+                            },
+                            align: 'left'
+                        }
+                    },
                     store: '{stock_amount}',
                 },
                 axes: [{
@@ -35,6 +36,9 @@ Ext.define('saas.view.home.charts.StockAmount', {
                     type: 'category',
                     fields: ['x'],
                     position: 'bottom',
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     style: {
                         fill: '#F7F8FA',
                         strokeStyle: 'transparent'
@@ -52,6 +56,9 @@ Ext.define('saas.view.home.charts.StockAmount', {
                             stroke: '#F7F8FA',
                         }
                     },
+                    label: {
+                        fillStyle: '#485465'
+                    },
                     style: {
                         fill: '#fff',
                         strokeStyle: 'transparent'

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

@@ -17,7 +17,7 @@ Ext.define('saas.view.money.fundtransfer.FormPanelController', {
                         },{
                             from:'bk_bankname',to:'ftd_bankname'
                         },{
-                            from:'id',to:'ftd_bankid'
+                            from:'id',to:'ftd_bankid',ignore:true
                         }],
                         dbtpls:[{
                             field:'bk_bankcode',width:100

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

@@ -26,12 +26,20 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         columnWidth: 0.5
     },{
         xtype: 'multicombo',
-        name: 'ft_status',
+        name: 'ft_statuscode',
         fieldLabel: '审核状态',
         datas: [
-            ["已审核", "已审核"],
-            ["未审核", "未审核"]
-        ]
+            ["ALL", "全部"],
+            ["AUDITED", "已审核"],
+            ["UNAUDITED", "未审核"]
+        ],
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return 'ft_statuscode=\'' + value + '\'';
+            }
+        }
     },{
         name : "ft_status",
         fieldLabel : "结算方式",

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

@@ -14,7 +14,8 @@ Ext.define('saas.view.money.othreceipts.FormPanelController', {
                         defaultCondition: "cu_statuscode='OPEN'",
                         dbfinds: [{
                             from: 'id',
-                            to: 'or_custid'
+                            to: 'or_custid',
+                            ignore:true
                         }, {
                             from: 'cu_code',
                             to: 'or_custcode'

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

@@ -49,12 +49,20 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
         operation: 'between'
     }, {
         xtype: 'multicombo',
-        name: 'or_status',
+        name: 'or_statuscode',
         fieldLabel: '审核状态',
         datas: [
-            ["已审核", "已审核"],
-            ["未审核", "未审核"]
-        ]
+            ["ALL", "全部"],
+            ["AUDITED", "已审核"],
+            ["UNAUDITED", "未审核"]
+        ],
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return 'or_statuscode=\'' + value + '\'';
+            }
+        }
     }, {
         name: 'ord_type',
         fieldLabel: '收入类别',

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

@@ -13,7 +13,8 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
                         addTitle: '供应商资料',
                         dbfinds: [{
                             from: 'id',
-                            to: 'os_vendid'
+                            to: 'os_vendid',
+                            ignore:true
                         }, {
                             from: 've_code',
                             to: 'os_vendcode'

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

@@ -48,12 +48,20 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
         fieldLabel: '单据日期'
     },{
         xtype: 'multicombo',
-        name: 'os_status',
+        name: 'os_statuscode',
         fieldLabel: '审核状态',
         datas: [
-            ["已审核", "已审核"],
-            ["未审核", "未审核"]
-        ]
+            ["ALL", "全部"],
+            ["AUDITED", "已审核"],
+            ["UNAUDITED", "未审核"]
+        ],
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return 'os_statuscode=\'' + value + '\'';
+            }
+        }
     },{
         name: 'ord_type',
         fieldLabel: '支出类别',

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

@@ -23,7 +23,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                             to: 've_leftamount'
                         },{
                             from: 'id',
-                            to: 'pb_vendid'
+                            to: 'pb_vendid',
+                            ignore:true
                         }],
                         dbtpls: [{
                             field: 've_code',

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

@@ -31,12 +31,20 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         operation: 'between'
     },{
         xtype: 'multicombo',
-        name: 'pb_status',
+        name: 'pd_statuscode',
         fieldLabel: '审核状态',
         datas: [
-            ["已审核", "已审核"],
-            ["未审核", "未审核"]
-        ]
+            ["ALL", "全部"],
+            ["AUDITED", "已审核"],
+            ["UNAUDITED", "未审核"]
+        ],
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return 'pd_statuscode=\'' + value + '\'';
+            }
+        }
     }],
     moreQueryFormItems: [],
     queryGridConfig: {

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

@@ -14,7 +14,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                         addTitle: '客户资料',
                         //赋值 
                         dbfinds:[{
-                            from: 'id', to: 'rb_custid'
+                            from: 'id', to: 'rb_custid',ignore:true
                         }, {
                             from:'cu_code', to:'rb_custcode'
                         },{

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

@@ -39,12 +39,20 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
         operation: 'between'
     },{
         xtype: 'multicombo',
-        name: 'rb_status',
+        name: 'rb_statuscode',
         fieldLabel: '审核状态',
         datas: [
-            ["已审核", "已审核"],
-            ["未审核", "未审核"]
-        ]
+            ["ALL", "全部"],
+            ["AUDITED", "已审核"],
+            ["UNAUDITED", "未审核"]
+        ],
+        getCondition: function(value) {
+            if(value == 'ALL') {
+                return '1=1';
+            }else {
+                return 'rb_statuscode=\'' + value + '\'';
+            }
+        }
     }],
     moreQueryFormItems: [],
     queryGridConfig: {

+ 37 - 258
frontend/saas-web/app/view/sys/baseconfig/FormPanel.js

@@ -10,8 +10,8 @@ Ext.define('saas.view.sys.baseconfig.FormPanel', {
     
     //字段属性
     _idField: 'id',
-    _readUrl:'http://192.168.253.31:8560/api/account/company/read/current',
-    _saveUrl:'http://192.168.253.31:8560/api/account/company/save',
+    _readUrl:'/api/commons/configs/list',
+    _saveUrl:'/api/commons/configs/update',
 
     //基础属性
     frame:true,
@@ -38,274 +38,53 @@ Ext.define('saas.view.sys.baseconfig.FormPanel', {
         },'->']
     },
 
-    items: [{
-        bind:'{id}',
-        xtype: 'hidden',
-        name: 'id',
-        fieldLabel: 'id',
-        allowBlank: true,
-        width:600
-    },{
-        bind:'{name}',
-        xtype: 'textfield',
-        name: 'name',
-        fieldLabel: '公司名称',
-        allowBlank: true,
+    items: [{ 
+        bind:'{cucaltor}',
+        displayField : "display", 
         editable:false,
-        readOnly:true,
-        width:600
-    },{
-        bind:'{address}',
-        xtype: 'textfield',
-        name: 'address',
-        fieldLabel: '公司地址',
-        beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-        allowBlank: false,
-        width:600
-    },{
-        bind:'{tel}',
-        xtype: 'textfield',
-        name: 'tel',
-        fieldLabel: '电话',
+        hideTrigger : false, 
+        maxLength : 100.0, 
+        width:500,
+        minValue : null, 
+        queryMode : "local", 
+        valueField : "value", 
+        xtype : "combo",
+        value:'WACC',
+        store:{
+            fields: ['display', 'value'],
+            data : [
+                {"display":"加权平均法", "value":'WACC'},
+                {"display":"先进先出法", "value":'FIFO'}
+            ]
+        },
+        name : "cucaltor", 
         beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-        allowBlank: false,
-        width:500
+        fieldLabel : "库存计算方式", 
+        allowBlank : false, 
     },{
-        bind:'{fax}',
-        xtype: 'textfield',
-        name: 'fax',
-        fieldLabel: '传真',
-        allowBlank: true,
+        bind:'{printUrl}',
+        xtype : "textfield", 
+        name : "printUrl",
+        fieldLabel : "打印地址Url", 
+        allowBlank : false, 
         width:500
-    }
-    // ,{
-    //     bind:'{en_begindate}',
-    //     xtype : "datefield", 
-    //     name : "en_begindate",
-    //     format:'Y-m-d H:i:s', 
-    //     fieldLabel : "开账日期", 
-    //     allowBlank : true, 
-    //     editable:false,
-    //     hideTrigger:true,
-    //     readOnly:true,
-    //     width:500
-    // }
-    // ,{ 
-    //     bind:'{en_pricemethod}',
-    //     displayField : "display", 
-    //     editable:false,
-    //     hideTrigger : false, 
-    //     maxLength : 100.0, 
-    //     width:500,
-    //     minValue : null, 
-    //     queryMode : "local", 
-    //     valueField : "value", 
-    //     xtype : "combo",
-    //     value:'WACC',
-    //     store:{
-    //         fields: ['display', 'value'],
-    //         data : [
-    //             {"display":"加权平均法", "value":'WACC'},
-    //             {"display":"先进先出法", "value":'FIFO'}
-    //         ]
-    //     },
-    //     name : "en_pricemethod", 
-    //     beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-    //     fieldLabel : "库存计算方式", 
-    //     allowBlank : false, 
-    // }
-    // ,{  
-    //     ignore:true,
-    //     bind:'{updateTime}',
-    //     xtype : "datefield", 
-    //     name : "updateTime", 
-    //     fieldLabel : "更新时间", 
-    //     allowBlank : true, 
-    //     hideTrigger:true,
-    //     format:'Y-m-d H:i:s',
-    //     editable:false,
-    //     readOnly:true,
-    //     width:500,
-    // }
-    ,{
-        xtype: 'form',
-		width:600,
-		frame: false,
-		border: false,
-		minHeight: 22,
-		bodyStyle: 'padding:2px;',
-        layout: 'hbox',
-        items:[{
-            bind:'{signet}',
-            name : "signet", 
-            allowBlank : true, 
-            hidden:true,
-            xtype:'numberfield'
-        },{
-            allowBlank : true, 
-            width:500,
-            fieldLabel:'打印章上传',
-            xtype: 'filefield',
-            emptyText: '请选择图片',
-            buttonText: '',
-            buttonConfig: {
-                iconCls: 'x-fa fa-picture-o',
-            },
-            createFileInput : function() {
-                    var me = this;
-                    me.fileInputEl = me.button.el.createChild({
-                    name: me.getName(),
-                    cls: Ext.baseCSSPrefix + 'form-file-input',
-                    tag: 'input',
-                    type: 'file',
-                    size: 1,
-                    accept:"image/*"
-                }).on('change', me.onFileChange, me);
-            },
-            listeners: {
-                afterrender:function(field,ops){
-                    var fileEl = field.fileInputEl.dom;
-                    fileEl.setAttribute("accept","image/*");
-                },
-                change: function(field){
-                    var form = field.ownerCt.ownerCt;
-                    var myForm = field.ownerCt;
-                    var fileEl = field.fileInputEl.dom;
-                    var fd = new FormData();
-                    fd.append('file', fileEl.files[0]);
-                    form.setLoading(true);
-                    Ext.Ajax.request({
-                        url: 'http://192.168.253.31:8560/api/file/upload',//这里是填写需要跨域访问的URL
-                        cors: true,
-                        useDefaultXhrHeader: false,
-                        method: 'post',
-                        rawData: fd,
-                        headers: {
-                            'Access-Control-Allow-Origin': '*',
-                            'Authorization':  saas.util.State.get('session').token,
-                            //"Content-Type": 'multipart/form-data'  //文件上传的格式, 
-                            "Content-Type":null
-                        },
-                        success: function (response, opts) {
-                            form.setLoading(false);
-                            saas.util.BaseUtil.showToast('上传成功');
-                            var res = Ext.decode(response.responseText);
-                            if(res.success){
-                                var data = res.data;
-                                var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
-                                myForm.down('[name=signet]').setValue(data.id);
-                                field.setRawValue(name);
-                            }else{
-                                saas.util.BaseUtil.showToast('上传失败: ' + res.message);
-                            }
-                        },
-                        failure: function (response, opts) {
-                            form.setLoading(false);
-                            var res = Ext.decode(response.responseText);
-                            saas.util.BaseUtil.showToast('上传失败: ' + res.message);
-                        }
-                    });
-                }
-            }
-        },{
-            hidden:true,
-            name:'showSignetPhoto',
-            xtype:'button',
-            iconCls: 'x-fa fa-picture-o'
-        }]
-    },{
-        xtype: 'form',
-		width:600,
-		frame: false,
-		border: false,
-		minHeight: 22,
-		bodyStyle: 'padding:2px;',
-        layout: 'hbox',
-        items:[{
-            bind:'{logoUrl}',
-            name : "logoUrl", 
-            allowBlank : true, 
-            hidden:true,
-            xtype:'numberfield'
-        },{
-            allowBlank : true, 
-            width:500,
-            fieldLabel:'Logo上传',
-            xtype: 'filefield',
-            emptyText: '请选择图片',
-            buttonText: '',
-            buttonConfig: {
-                iconCls: 'x-fa fa-picture-o',
-            },
-            createFileInput : function() {
-                    var me = this;
-                    me.fileInputEl = me.button.el.createChild({
-                    name: me.getName(),
-                    cls: Ext.baseCSSPrefix + 'form-file-input',
-                    tag: 'input',
-                    type: 'file',
-                    size: 1,
-                    accept:"image/*"
-                }).on('change', me.onFileChange, me);
-            },
-            listeners: {
-                change: function(field){
-                    var form = field.ownerCt.ownerCt;
-                    var myForm = field.ownerCt;
-                    var fileEl = field.fileInputEl.dom;
-                    var fd = new FormData();
-                    fd.append('file', fileEl.files[0]);
-                    form.setLoading(true);
-                    Ext.Ajax.request({
-                        url: 'http://192.168.253.31:8560/api/file/upload',//这里是填写需要跨域访问的URL
-                        cors: true,
-                        useDefaultXhrHeader: false,
-                        method: 'post',
-                        rawData: fd,
-                        headers: {
-                            'Access-Control-Allow-Origin': '*',
-                            'Authorization':  saas.util.State.get('session').token,
-                            //"Content-Type": 'multipart/form-data'  //文件上传的格式, 
-                            "Content-Type":null
-                        },
-                        success: function (response, opts) {
-                            form.setLoading(false);
-                            saas.util.BaseUtil.showToast('上传成功');
-                            var res = Ext.decode(response.responseText);
-                            if(res.success){
-                                var data = res.data;
-                                var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
-                                myForm.down('[name=logoUrl]').setValue(data.id);
-                                field.setRawValue(name);
-                            }else{
-                                saas.util.BaseUtil.showToast('上传失败: ' + res.message);
-                            }
-                        },
-                        failure: function (response, opts) {
-                            form.setLoading(false);
-                            var res = Ext.decode(response.responseText);
-                            saas.util.BaseUtil.showToast('上传失败: ' + res.message);
-                        }
-                    });
-                }
-            }
-        },{
-            hidden:true,
-            name:'showLogoPhoto',
-            xtype:'button',
-            iconCls: 'x-fa fa-picture-o'
-        }]
     }],
 
     initComponent: function () {
         var me = this,
         viewModel = me.getViewModel();
         var url = me._readUrl;
-        me.BaseUtil.request({url })
+        saas.util.BaseUtil.request({url })
         .then(function(res) {
             if(res.success) {
-                var d = res.data;
-                viewModel.setData(d)
+                var list = res.data.list;
+                if(list.length>0){
+                    var d = {};
+                    Ext.each(list, function(item, index){
+                        d[item.code] = item.data;
+                    });
+                    viewModel.setData(d);
+                }
             }
         })
         .catch(function(response) {

+ 20 - 9
frontend/saas-web/app/view/sys/baseconfig/FormPanelController.js

@@ -30,12 +30,18 @@ Ext.define('saas.view.sys.baseconfig.FormPanelController', {
             saas.util.BaseUtil.showToast('未修改数据,请修改后保存');
             return false;
         }
-        
         viewModel = me.getViewModel();
-        var formData = viewModel.data;
-        formData.en_name = null;
-        formData.updateTime = null;
-        me.BaseUtil.request({
+        var formData = [];
+
+        var items = me.view.getForm().getFields().items;
+        Ext.each(items, function(item, index){
+            formData.push({
+                code:item.name,
+                data:item.value
+            })
+        });
+
+        saas.util.BaseUtil.request({
             url: form._saveUrl,
             params: JSON.stringify(formData),
             method: 'POST',
@@ -45,11 +51,17 @@ Ext.define('saas.view.sys.baseconfig.FormPanelController', {
                 saas.util.BaseUtil.showToast('保存成功');
                 viewModel = form.getViewModel();
                 var url = form._readUrl;
-                form.BaseUtil.request({url })
+                saas.util.BaseUtil.request({url })
                 .then(function(res) {
                     if(res.success) {
-                        var d = res.data;
-                        viewModel.setData(d)
+                        var list = res.data.list;
+                        if(list.length>0){
+                            var d = {};
+                            Ext.each(list, function(item, index){
+                                d[item.code] = item.data;
+                            });
+                            viewModel.setData(d);
+                        }
                     }
                 })
                 .catch(function(response) {
@@ -62,5 +74,4 @@ Ext.define('saas.view.sys.baseconfig.FormPanelController', {
             saas.util.BaseUtil.showToast('保存失败: ' + res.message);
         });
     }
-
 });

+ 179 - 13
frontend/saas-web/app/view/sys/config/FormPanel.js

@@ -131,18 +131,19 @@ Ext.define('saas.view.sys.config.FormPanel', {
 		border: false,
 		minHeight: 22,
 		bodyStyle: 'padding:2px;',
-        layout: 'hbox',
+        layout: 'vbox',
         items:[{
             bind:'{signet}',
             name : "signet", 
             allowBlank : true, 
             hidden:true,
-            xtype:'numberfield'
+            xtype:'textfield'
         },{
             allowBlank : true, 
             width:500,
             fieldLabel:'打印章上传',
             xtype: 'filefield',
+            name:'signetFilefield',
             emptyText: '请选择图片',
             buttonText: '',
             buttonConfig: {
@@ -190,8 +191,15 @@ Ext.define('saas.view.sys.config.FormPanel', {
                             if(res.success){
                                 var data = res.data;
                                 var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
-                                myForm.down('[name=signet]').setValue(data.id);
+                                myForm.down('[name=signet]').setValue(data.fullPath);
                                 field.setRawValue(name);
+                                //读取图片
+                                if(data.id){
+                                    var img = myForm.down('[name=SignetPhoto]');
+                                    img.el.dom.src = 'http://192.168.253.31:8560/api/file/download?path='+data.fullPath;
+                                    var showSignetPhoto = form.down('[name=showSignetPhoto]');
+                                    showSignetPhoto.show();
+                                }
                             }else{
                                 saas.util.BaseUtil.showToast('上传失败: ' + res.message);
                             }
@@ -205,10 +213,40 @@ Ext.define('saas.view.sys.config.FormPanel', {
                 }
             }
         },{
-            hidden:true,
+            xtype: 'image',
+            width: 100,
+            height: 100,
+            margin:'5 0 5 150',
+            src:'resources/images/default/basePhoto.png',
+            name:'SignetPhoto',
+        },{
+            margin:'0 0 5 151',
+            xtype:'container',
             name:'showSignetPhoto',
-            xtype:'button',
-            iconCls: 'x-fa fa-picture-o'
+            cls:'x-container-group',
+            hidden:true,
+            items:[{
+                width: 45,
+                height: 24,
+                xtype:'button',
+                text:'查看',
+                handler:function(b){
+                    var form = b.ownerCt.ownerCt.ownerCt;
+                    var img = form.down('[name=SignetPhoto]');
+                    form.lookPic(img);
+                }
+            },{
+                margin:'0 0 0 10',
+                width: 45,
+                height: 24,
+                xtype:'button',
+                text:'下载',
+                handler:function(b){
+                    var form = b.ownerCt.ownerCt.ownerCt;
+                    var path = form.down('[name=signet]').value;
+                    form.downLoad(path);
+                }
+            }]
         }]
     },{
         xtype: 'form',
@@ -217,17 +255,18 @@ Ext.define('saas.view.sys.config.FormPanel', {
 		border: false,
 		minHeight: 22,
 		bodyStyle: 'padding:2px;',
-        layout: 'hbox',
+        layout: 'vbox',
         items:[{
             bind:'{logoUrl}',
             name : "logoUrl", 
             allowBlank : true, 
             hidden:true,
-            xtype:'numberfield'
+            xtype:'textfield'
         },{
             allowBlank : true, 
             width:500,
             fieldLabel:'Logo上传',
+            name:'logoFilefield',
             xtype: 'filefield',
             emptyText: '请选择图片',
             buttonText: '',
@@ -276,8 +315,15 @@ Ext.define('saas.view.sys.config.FormPanel', {
                             if(res.success){
                                 var data = res.data;
                                 var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
-                                myForm.down('[name=logoUrl]').setValue(data.id);
+                                myForm.down('[name=logoUrl]').setValue(data.fullPath);
                                 field.setRawValue(name);
+                                //读取图片
+                                if(data.id){
+                                    var img = myForm.down('[name=LogoPhoto]');
+                                    img.el.dom.src = 'http://192.168.253.31:8560/api/file/download?path='+data.fullPath;
+                                    var showLogoPhoto = form.down('[name=showLogoPhoto]');
+                                    showLogoPhoto.show();
+                                }
                             }else{
                                 saas.util.BaseUtil.showToast('上传失败: ' + res.message);
                             }
@@ -291,10 +337,41 @@ Ext.define('saas.view.sys.config.FormPanel', {
                 }
             }
         },{
-            hidden:true,
+            xtype: 'image',
+            style:'border:1px solid #f7f7f7;',
+            width: 100,
+            height: 100,
+            margin:'5 0 5 150',
+            src:'resources/images/default/basePhoto.png',
+            name:'LogoPhoto',
+        },{
             name:'showLogoPhoto',
-            xtype:'button',
-            iconCls: 'x-fa fa-picture-o'
+            margin:'0 0 5 151',
+            xtype:'container',
+            cls:'x-container-group',
+            hidden:true,
+            items:[{
+                width: 45,
+                height: 24,
+                xtype:'button',
+                text:'查看',
+                handler:function(b){
+                    var form = b.ownerCt.ownerCt.ownerCt;
+                    var img = form.down('[name=LogoPhoto]');
+                    form.lookPic(img);
+                }
+            },{
+                margin:'0 0 0 10',
+                width: 45,
+                height: 24,
+                xtype:'button',
+                text:'下载',
+                handler:function(b){
+                    var form = b.ownerCt.ownerCt.ownerCt;
+                    var path = form.down('[name=logoUrl]').value;
+                    form.downLoad(path);
+                }
+            }]
         }]
     }],
 
@@ -306,7 +383,9 @@ Ext.define('saas.view.sys.config.FormPanel', {
         .then(function(res) {
             if(res.success) {
                 var d = res.data;
-                viewModel.setData(d)
+                viewModel.setData(d);
+                viewModel.notify();
+                me.load(me);
             }
         })
         .catch(function(response) {
@@ -318,5 +397,92 @@ Ext.define('saas.view.sys.config.FormPanel', {
 
     refresh:function(){
         this.ownerCt.setTitle('参数设置')
+    },
+
+    load:function(form){
+        //打印章
+        var signet = form.down('[name=signet]').value;
+        if(signet&&signet!=''){
+            var img = form.down('[name=SignetPhoto]');
+            img.el.dom.src = 'http://192.168.253.31:8560/api/file/download?path='+signet;
+            // var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
+            // myForm.down('[name=signet]').setValue(data.fullPath);
+            // field.setRawValue(name);
+            var showSignetPhoto = form.down('[name=showSignetPhoto]');
+            showSignetPhoto.show();
+        }
+        //Logo
+        var logoUrl = form.down('[name=logoUrl]').value;
+        if(logoUrl&&logoUrl!=''){
+            var img = form.down('[name=LogoPhoto]');
+            img.el.dom.src = 'http://192.168.253.31:8560/api/file/download?path='+logoUrl;
+            var showLogoPhoto = form.down('[name=showLogoPhoto]');
+            showLogoPhoto.show();
+        }
+        //文件名称
+        var viewModel = form.getViewModel();
+        if(viewModel.data.fileInfoList&&viewModel.data.fileInfoList.length!=0){
+            var logo = viewModel.data.fileInfoList[0].logo;
+            var logoName = logo.name + "  (" + Ext.util.Format.fileSize(logo.size) + ")";
+            form.down('[name=logoFilefield]').setRawValue(logoName);
+            var signet = viewModel.data.fileInfoList[0].signet;
+            var signetName = signet.name + "  (" + Ext.util.Format.fileSize(signet.size) + ")";
+            form.down('[name=signetFilefield]').setRawValue(signetName);
+        }
+    },
+
+    lookPic:function(img){
+        var me = this, resizer = me.resizer,
+        imageframe = document.getElementById('ext-image-frame');
+        var src = img.el.dom.src;
+        if (!imageframe) {
+            var el = Ext.DomHelper.append(document.body, '<img id="ext-image-frame" src="' + src +
+                    '" width="500" height="400" style="position:absolute;left:0;top:0px;"/>', true);
+            imageframe = el.dom;
+        } else {
+            imageframe.src = src;
+        }
+        if (!resizer) {
+            resizer = this.resizer = Ext.create('Ext.resizer.Resizer', {
+                target: 'ext-image-frame',
+                pinned: true,
+                width: 410,
+                height: 310,
+                minWidth: 100,
+                minHeight: 80,
+                preserveRatio: true,
+                handles: 'all',
+                dynamic: true,
+                constrainTo:me.getEl()
+            });
+            var resizerEl = resizer.getEl();
+            resizerEl.on('dblclick', function(){
+                resizerEl.hide(true);
+            });
+        }
+        resizer.getEl().center();
+        resizer.getEl().show(true);
+        Ext.DomHelper.applyStyles(imageframe, 'position:absolute;z-index:100;');
+    },
+
+    downLoad:function(path){
+        //ajax 响应下载必须要创建一个form实例
+
+        window.location.href = 'http://192.168.253.31:8560/api/file/download?path='+path;
+
+        // if (!Ext.fly('ext-attach-download')) {  
+		// 	var frm = document.createElement('form');  
+		// 	frm.id = 'ext-attach-download';  
+		// 	frm.name = id;  
+		// 	frm.className = 'x-hidden';
+		// 	document.body.appendChild(frm);
+        // }
+		// Ext.Ajax.request({
+		// 	url: 'http://192.168.253.31:8560/api/file/download?path='+path,  
+		// 	method: 'post',
+		// 	form: Ext.fly('ext-attach-download'),
+		// 	isUpload: true,
+		// 	params: ''
+		// });
     }
 });

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

@@ -157,9 +157,18 @@ Ext.define('saas.view.sys.guide.FormPanel', {
     },
 
     refresh:function(){
-        this.ownerCt.setTitle('新手指引');
-        this.view.store.load();
+        this.ownerCt.setTitle('新手导航');
         //刷新store数据
+        this.view.store.load();
+        //刷新窗口
+        var win = this.down('[name=messagebox]');
+        if(win){
+            win.show({
+                title : '模块介绍',
+                msg : win.msg.html,
+                icon : win._icon
+            });
+        }
     },
 
     showInformation:function(type,value){
@@ -168,37 +177,37 @@ Ext.define('saas.view.sys.guide.FormPanel', {
         var icon = 'x-gudie-information';
         var title = '';
         if(type=='baseSet'){
-            message = '<h4>您可以在参数设置中编辑公司的信息。</br>'+
-            '录入完成后切换到“新手导航”页签继续下一步。</h4>';
-            xtype = 'sys-config-formpanel';
+            message = '<span>您可以在参数设置中编辑公司的信息。</br>'+
+            '录入完成后切换到“新手导航”页签继续下一步。</span>';
+            xtype = 'sys-manager-formpanel';
         }
         if(type=='warehouse'){
-            message = '<h4>因为新增物料时需要告知该物料所属仓库是哪里,所以需要首先进行仓库管理。</br>'+
-            '录入完成后切换到“新手导航”页签继续下一步。</h4>';
+            message = '<span>因为新增物料时需要告知该物料所属仓库是哪里,所以需要首先进行仓库管理。</br>'+
+            '录入完成后切换到“新手导航”页签继续下一步。</span>';
             xtype = 'other-warehouse';
             title = '仓库资料'
         }
         if(type=='product'){
-            message = '<h4>录入物料及其期初数量;开账后也可通过录采购单对物料库存进行增加,</br>录销售单物料库存相应减少。</br>'+
-            '录入完成后切换到“新手导航”页签继续下一步。</h4>';
+            message = '<span>录入物料及其期初数量;开账后也可通过录采购单对物料库存进行增加,</br>录销售单物料库存相应减少。</br>'+
+            '录入完成后切换到“新手导航”页签继续下一步。</span>';
             xtype = 'document-product-basepanel';
             title = '物料资料'
         }
         if(type=='customer'){
-            message = '<h4>对客户资料进行录入及管理。</br>'+
-            '录入完成后切换到“新手导航”页签继续下一步。</h4>';
+            message = '<span>对客户资料进行录入及管理。</br>'+
+            '录入完成后切换到“新手导航”页签继续下一步。</span>';
             xtype = 'document-customer-basepanel';
             title = '客户资料'
         }
         if(type=='vendor'){
-            message = '<h4>录采购单时需选择供应商,在单据页面选择供应商时</br>也提供供应商新增功能,您也可以跳过此步。</br>'+
-            '录入完成后切换到“新手导航”页签继续下一步。</h4>';
+            message = '<span>录采购单时需选择供应商,在单据页面选择供应商时</br>也提供供应商新增功能,您也可以跳过此步。</br>'+
+            '录入完成后切换到“新手导航”页签继续下一步。</span>';
             xtype = 'document-vendor-basepanel';
             title = '供应商资料'
         }
         if(type=='begin'){
-            message = '<h4>欢迎您使用优企云进销存!</br>'+
-            '温馨提示:开账后您还是可以通过左侧菜单栏对基础资料进行维护。</h4>';
+            message = '<span>欢迎您使用优企云进销存!</br>'+
+            '温馨提示:开账后您还是可以通过左侧菜单栏对基础资料进行维护。</span>';
             xtype = "begin";
             icon = 'x-gudie-end';
             if(value=='false'){
@@ -214,6 +223,9 @@ Ext.define('saas.view.sys.guide.FormPanel', {
         var width = box.width;
 
         var win = form.add(Ext.create('Ext.window.MessageBox', {
+            name:'messagebox',
+            closeAction:'destroy',
+            _icon:icon,
             msg:message,
             buttonAlign : 'right',
             height:0.5*height,

+ 9 - 0
frontend/saas-web/app/view/sys/manager/FormPanel.scss

@@ -32,6 +32,15 @@
             width:100px !important;
         }
     }
+    .x-img-default{
+        border: 1px solid #bdbdbd !important;
+    }
+    .x-container-group{
+        .x-btn-inner-default-small {
+            margin-bottom: 9px !important;
+            padding: 0 !important; 
+        }
+    }
 }
 .sys-account-datalist{
     .x-grid-body{

+ 1 - 1
frontend/saas-web/ext/packages/modern-locale/overrides/zh_CN/field/Date.js

@@ -6,7 +6,7 @@ Ext.define('Ext.locale.zh_CN.field.Date', {
     override: 'Ext.form.field.Date',
 
     config: {
-        formatText: '当前日期格式为 {0}.',
+        formatText: '',//当前日期格式为 {0}.
         minDateMessage: '该输入项的日期必须在 {0} 之后',
         maxDateMessage: '该输入项的日期必须在 {0} 之前',
         minText: "日期必须大于等于 {0}",

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


+ 0 - 4
frontend/saas-web/resources/json/navigation.json

@@ -272,10 +272,6 @@
             "text": "收支类别",
             "viewType": "document-kind",
             "leaf": true
-        }, {
-            "text": "用户角色",
-            "viewType": "mainlist",
-            "leaf": true
         }]
     }]
 },{