Browse Source

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

rainco 7 years ago
parent
commit
74cd18742c
46 changed files with 485 additions and 97 deletions
  1. 5 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  2. 11 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/ProfitdetailMapper.java
  3. 2 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/VerificationMapper.java
  4. 109 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Profitpresent.java
  5. 7 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/MoneyReportServiceImpl.java
  6. 2 3
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  7. 123 0
      applications/money/money-server/src/main/resources/mapper/ProfitdetailMapper.xml
  8. 3 3
      applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml
  9. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/po/SaleList.java
  10. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/po/report/SaleProfitView.java
  11. 3 1
      applications/sale/sale-server/src/main/resources/mapper/SaleListMapper.xml
  12. 2 1
      applications/sale/sale-server/src/main/resources/mapper/SaleProfitViewMapper.xml
  13. 4 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/StocktakingServiceImpl.java
  14. 18 0
      applications/storage/storage-server/src/main/resources/mapper/ProdIODetailMapper.xml
  15. 0 1
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml
  16. 1 1
      base-servers/account/account-server/src/main/resources/application.yml
  17. 3 3
      base-servers/auth/auth-server/src/main/java/com/usoftchina/saas/auth/controller/AuthController.java
  18. 1 1
      base-servers/auth/sso-api/src/test/resources/application.yml
  19. 1 1
      frontend/saas-portal-web/config/dev.env.js
  20. 1 1
      frontend/saas-portal-web/config/test.env.js
  21. 2 2
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  22. 2 2
      frontend/saas-web/app/view/core/form/field/ConDateField.js
  23. 3 0
      frontend/saas-web/app/view/core/form/field/DetailGridField.js
  24. 3 1
      frontend/saas-web/app/view/document/bom/BasePanel.js
  25. 4 1
      frontend/saas-web/app/view/document/customer/BasePanel.js
  26. 3 1
      frontend/saas-web/app/view/document/product/BasePanel.js
  27. 2 0
      frontend/saas-web/app/view/document/vendor/BasePanel.js
  28. 5 4
      frontend/saas-web/app/view/home/Home.js
  29. 1 0
      frontend/saas-web/app/view/home/Home.scss
  30. 47 26
      frontend/saas-web/app/view/home/charts/KeyData.js
  31. 9 0
      frontend/saas-web/app/view/home/charts/KeyData.scss
  32. 1 1
      frontend/saas-web/app/view/home/infoCardList/Payment.js
  33. 1 1
      frontend/saas-web/app/view/home/infoCardList/Recment.js
  34. 1 1
      frontend/saas-web/app/view/main/Main.js
  35. 2 0
      frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js
  36. 51 20
      frontend/saas-web/app/view/money/report/ProfitDetail.js
  37. 2 0
      frontend/saas-web/app/view/money/verification/FormPanelController.js
  38. 2 1
      frontend/saas-web/app/view/purchase/purchase/QueryPanel.js
  39. 3 1
      frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js
  40. 2 1
      frontend/saas-web/app/view/purchase/purchaseOut/QueryPanel.js
  41. 8 3
      frontend/saas-web/app/view/sale/saleIn/QueryPanel.js
  42. 6 2
      frontend/saas-web/app/view/sale/saleOut/QueryPanel.js
  43. 4 1
      frontend/saas-web/app/view/stock/report/DataList.js
  44. 16 10
      frontend/saas-web/app/view/stock/report/DataListController.js
  45. 1 1
      frontend/saas-web/index.html
  46. 4 0
      frontend/saas-web/resources/json/navigation.json

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

@@ -30,6 +30,7 @@ import com.usoftchina.saas.document.service.WarehouseService;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.CollectionUtils;
+import com.usoftchina.saas.utils.DateUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -241,7 +242,10 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             String inoutCode = maxnumberService.getMaxnumber("StorageInit", true).getData();
             prodInOut.setPi_inoutno(inoutCode);     //出入库单号
             prodInOut.setPi_class("库存初始化");
-            prodInOut.setPi_date(new Date());
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.set(Calendar.DAY_OF_MONTH, 1);
+            prodInOut.setPi_date(calendar.getTime());   //赋值为当月第一天
             //prodInOut.setPi_total();            //含税金额
             prodInOut.setPi_status(Status.UNAUDITED.getDisplay());
             prodInOut.setPi_statuscode(Status.UNAUDITED.name());

+ 11 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/ProfitdetailMapper.java

@@ -0,0 +1,11 @@
+package com.usoftchina.saas.money.mapper;
+
+import com.usoftchina.saas.money.po.Profitpresent;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ProfitdetailMapper {
+    List<Profitpresent> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
+    String selectCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
+}

+ 2 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/VerificationMapper.java

@@ -40,4 +40,6 @@ public interface VerificationMapper extends CommonBaseMapper<Verification> {
     String validateResAudit(@Param("id") Long id);
 
     int validateSetAcount(@Param("detno") int detno,@Param("companyid")Long companyid);
+
+    void updateAuditMsg (@Param("id") Long id,@Param("userName")String userName);
 }

+ 109 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Profitpresent.java

@@ -0,0 +1,109 @@
+package com.usoftchina.saas.money.po;
+
+import java.util.Date;
+
+/**
+ * @author heqw
+ * @date 2018/12/10 10:45
+ **/
+public class Profitpresent {
+    private Date pi_date;
+    private Integer pi_ym;
+    private String pi_custcode;
+    private String pi_custname;
+    private String cu_sellername;
+    private Double saamount;
+    private Double netamount;
+    private Double costamount;
+    private Double profit;
+    private Double profitpresent;
+    private String cu_type;
+
+    public String getCu_type() {
+        return cu_type;
+    }
+
+    public void setCu_type(String cu_type) {
+        this.cu_type = cu_type;
+    }
+
+    public Date getPi_date() {
+        return pi_date;
+    }
+
+    public void setPi_date(Date pi_date) {
+        this.pi_date = pi_date;
+    }
+
+    public Integer getPi_ym() {
+        return pi_ym;
+    }
+
+    public void setPi_ym(Integer pi_ym) {
+        this.pi_ym = pi_ym;
+    }
+
+    public String getPi_custcode() {
+        return pi_custcode;
+    }
+
+    public void setPi_custcode(String pi_custcode) {
+        this.pi_custcode = pi_custcode;
+    }
+
+    public String getPi_custname() {
+        return pi_custname;
+    }
+
+    public void setPi_custname(String pi_custname) {
+        this.pi_custname = pi_custname;
+    }
+
+    public String getCu_sellername() {
+        return cu_sellername;
+    }
+
+    public void setCu_sellername(String cu_sellername) {
+        this.cu_sellername = cu_sellername;
+    }
+
+    public Double getSaamount() {
+        return saamount;
+    }
+
+    public void setSaamount(Double saamount) {
+        this.saamount = saamount;
+    }
+
+    public Double getNetamount() {
+        return netamount;
+    }
+
+    public void setNetamount(Double netamount) {
+        this.netamount = netamount;
+    }
+
+    public Double getCostamount() {
+        return costamount;
+    }
+
+    public void setCostamount(Double costamount) {
+        this.costamount = costamount;
+    }
+
+    public Double getProfit() {
+        return profit;
+    }
+
+    public void setProfit(Double profit) {
+        this.profit = profit;
+    }
+
+    public Double getProfitpresent() {
+        return profitpresent;
+    }
+
+    public void setProfitpresent(Double profitpresent) {
+        this.profitpresent = profitpresent;
+    }
+}

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

@@ -43,6 +43,8 @@ public class MoneyReportServiceImpl implements MoneyReportService {
     private CustmonthMapper custmonthMapper;
     @Autowired
     private BanksubledgerMapper banksubledgerMapper;
+    @Autowired
+    private ProfitdetailMapper profitdetailMapper;
 
     @Override
     public Map<String, Object> vendorCheck(PageRequest page, ListReqDTO req) {
@@ -278,6 +280,11 @@ public class MoneyReportServiceImpl implements MoneyReportService {
             if (!StringUtils.isEmpty(calculateFieldsSql)) {
                 res = banksubledgerMapper.selectCalculateFields(calculateFieldsSql, con, companyId);
             }
+        }else if("profitdetails".equals(type)){
+            list = profitdetailMapper.selectByCondition(con, companyId);
+            if (!StringUtils.isEmpty(calculateFieldsSql)) {
+                res = profitdetailMapper.selectCalculateFields(calculateFieldsSql, con, companyId);
+            }
         }
 
         try {

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

@@ -543,8 +543,6 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         formData.getMain().setVc_auditdate(new Date());
         baseDTO = this.saveFormData(formData);
         Long id = baseDTO.getId();
-
-
             VerificationDTO verificationDTO = formData.getMain();
             Subledger subledger = changSubledgerUntil(verificationDTO);
             subledgerMapper.insertSelective(subledger);
@@ -573,7 +571,8 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
 
         //更新出入库状态
         this.updateProdInoutStatus(id);
-
+        //更新审核人和审核日期
+        verificationMapper.updateAuditMsg(id,BaseContextHolder.getUserName());
         baseDTO.setId(id);
         baseDTO.setName(BillCodeSeq.VERIFICATION.getCaller());
         baseDTO.setCode(formData.getMain().getVc_code());

+ 123 - 0
applications/money/money-server/src/main/resources/mapper/ProfitdetailMapper.xml

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.usoftchina.saas.money.mapper.ProfitdetailMapper" >
+  <resultMap id="BaseResultMap" type="com.usoftchina.saas.money.po.Profitpresent" >
+    <result column="pi_ym" property="pi_ym" jdbcType="INTEGER" />
+    <result column="pi_custcode" property="pi_custcode" jdbcType="VARCHAR" />
+    <result column="pi_custname" property="pi_custname" jdbcType="VARCHAR" />
+	  <result column="cu_type" property="cu_type" jdbcType="VARCHAR" />
+    <result column="cu_sellername" property="cu_sellername" jdbcType="VARCHAR" />
+    <result column="saamount" property="saamount" jdbcType="DOUBLE" />
+    <result column="netamount" property="netamount" jdbcType="DOUBLE" />
+    <result column="costamount" property="costamount" jdbcType="DOUBLE" />
+    <result column="profit" property="profit" jdbcType="DOUBLE" />
+    <result column="profitpresent" property="profitpresent" jdbcType="DOUBLE" />
+    <result column="pi_date" property="pi_date" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    cu_type, pi_custcode, pi_custname, cu_sellername, saamount, netamount, costamount, profit,
+    profitpresent
+  </sql>
+
+  <select id="selectByCondition" parameterType="java.lang.Long" resultMap="BaseResultMap">
+   SELECT
+	a.pi_custcode,
+	a.pi_custname,
+	a.cu_type,
+	a.cu_sellername,
+	a.saamount,
+	a.netamount,
+	a.costamount,
+SUM(a.netamount - a.costamount) as profit,
+(SUM(a.netamount - a.costamount)/IFNULL(netamount,SUM(netamount - costamount))) as profitpresent
+
+FROM
+	(
+		SELECT
+			pi_custcode,
+			pi_custname,
+	        cu_type,
+			cu_sellername,
+			SUM(
+				pd_sendprice * (pd_outqty - pd_inqty)
+			) AS saamount,
+			SUM(
+				pd_netprice * (pd_outqty - pd_inqty)
+			) AS netamount,
+			SUM(
+				pd_price * (pd_outqty - pd_inqty)
+			) AS costamount
+		FROM
+			prodinout,
+			prodiodetail,
+			customer
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  prodinout.companyid = #{companyId}
+      </if>
+    </where>
+		and	pi_id = pd_piid
+		AND pi_custid = cu_id and
+prodinout.companyid= prodiodetail.companyid and prodiodetail.companyid = prodinout.companyid
+		GROUP BY
+			pi_custcode,
+			pi_custname,
+	        cu_type,
+			cu_sellername
+	) a GROUP BY
+			a.pi_custcode,
+			a.pi_custname,
+	        a.cu_type,
+			a.cu_sellername
+	  ORDER BY a.pi_custname asc,a.pi_custname desc
+  </select>
+
+	<select id="selectCalculateFields" resultType="string">
+		SELECT ${fields}
+		FROM
+		(
+		SELECT
+		pi_custcode,
+		pi_custname,
+		cu_type,
+		cu_sellername,
+		SUM(
+		pd_sendprice * (pd_outqty - pd_inqty)
+		) AS saamount,
+		SUM(
+		pd_netprice * (pd_outqty - pd_inqty)
+		) AS netamount,
+		SUM(
+		pd_price * (pd_outqty - pd_inqty)
+		) AS costamount
+		FROM
+		prodinout,
+		prodiodetail,
+		customer
+		<where>
+			<if test="con != null">
+				${con}
+			</if>
+			<if test="companyId != null">
+				and  prodinout.companyid = #{companyId}
+			</if>
+		</where>
+		and	pi_id = pd_piid
+		AND pi_custid = cu_id and
+		prodinout.companyid= prodiodetail.companyid and prodiodetail.companyid = prodinout.companyid
+		GROUP BY
+		pi_custcode,
+		pi_custname,
+		cu_type,
+		cu_sellername
+		) a GROUP BY
+		a.pi_custcode,
+		a.pi_custname,
+		a.cu_type,
+		a.cu_sellername
+	</select>
+
+</mapper>

+ 3 - 3
applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml

@@ -619,7 +619,7 @@
     select count(1) from periodsdetail where pd_detno = #{detno} and IFNULL(pd_status,0)=99
     and companyid= #{companyid}
   </select>
-  <select id="checkStatus" resultType="int">
-    select count(1) from Verification where ifnull(vc_statuscode,'')='AUDITED' and vc_id= #{id,jdbcType=INTEGER}
-  </select>
+  <update id="updateAuditMsg">
+    update verification set vc_auditman  = #{userName},vc_auditdate = NOW() where vc_id = #{id}
+  </update>
 </mapper>

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

@@ -65,6 +65,8 @@ public class SaleList implements Serializable {
 
     private String sa_auditman;
 
+    private String sa_seller;
+
     private Integer sa_sellerid;
 
     private Integer sd_id;

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

@@ -58,4 +58,6 @@ public class SaleProfitView {
     private Double pd_profitpresent;
 
     private Double pw_costprice;
+
+    private Date pi_date;
 }

+ 3 - 1
applications/sale/sale-server/src/main/resources/mapper/SaleListMapper.xml

@@ -28,6 +28,7 @@
         <result column="sa_text3" property="sa_text3" jdbcType="VARCHAR" />
         <result column="sa_text4" property="sa_text4" jdbcType="VARCHAR" />
         <result column="sa_text5" property="sa_text5" jdbcType="VARCHAR" />
+        <result column="sa_seller" property="sa_seller" jdbcType="VARCHAR" />
         <result column="sa_sellerid" property="sa_sellerid" jdbcType="INTEGER" />
         <result column="sd_id" property="sd_id" jdbcType="INTEGER" />
         <result column="sd_said" property="sd_said" jdbcType="INTEGER" />
@@ -81,8 +82,9 @@
         select  *  from sale left join saledetail on sa_id=sd_said left join product
         on sd_prodid = pr_id and sale.companyId = product.companyid
         <where>
+            sa_statuscode='AUDITED'
             <if test="con != null">
-                ${con}
+               and  ${con}
             </if>
             <if test="companyId != null">
                 and   sale.companyId = #{companyId}

+ 2 - 1
applications/sale/sale-server/src/main/resources/mapper/SaleProfitViewMapper.xml

@@ -7,6 +7,7 @@
     <result column="sa_sellercode" property="sa_sellercode" jdbcType="VARCHAR" />
     <result column="sa_seller" property="sa_seller" jdbcType="VARCHAR" />
     <result column="sa_date" property="sa_date" jdbcType="TIMESTAMP" />
+    <result column="pi_date" property="pi_date" jdbcType="TIMESTAMP" />
     <result column="pd_inoutno" property="pd_inoutno" jdbcType="VARCHAR" />
     <result column="pd_piclass" property="pd_piclass" jdbcType="VARCHAR" />
     <result column="pr_kind" property="pr_kind" jdbcType="VARCHAR" />
@@ -37,7 +38,7 @@
         and  companyId = #{companyId}
       </if>
     </where>
-    order by sa_date desc
+    order by pi_date desc
   </select>
 
   <select id="selectCalculateFields" resultType="string">

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

@@ -103,6 +103,7 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             prodIn.setPi_status("未审核");
             prodIn.setPi_statuscode("UNAUDITED");
             prodIn.setCompanyId(companyId);
+            prodIn.setCreateTime(new Date());
             prodIn.setPi_remark("盘盈单");
             prodInOutMapper.insertSelective(prodIn);
             long inid = prodIn.getId();
@@ -128,6 +129,7 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
                 prodInDetail.setCompanyId(companyId);
                 prodInDetail.setCreateTime(new Date());
                 prodInDetail.setCreatorId(userId);
+                prodInDetail.setCreatorName(userName);
                 prodInDetail.setPd_remark("盘盈单");
                 prodIODetailMapper.insertSelective(prodInDetail);
             }
@@ -147,6 +149,7 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             prodOut.setPi_statuscode("UNAUDITED");
             prodOut.setCompanyId(companyId);
             prodOut.setPi_remark("盘亏单");
+            prodOut.setCreateTime(new Date());
             prodInOutMapper.insertSelective(prodOut);
             long outid = prodOut.getId();
             //更新录入人
@@ -168,6 +171,7 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
                 prodOutDetail.setCompanyId(companyId);
                 prodOutDetail.setCreateTime(new Date());
                 prodOutDetail.setCreatorId(userId);
+                prodOutDetail.setCreatorName(userName);
                 prodOutDetail.setPd_remark("盘亏单");
                 prodIODetailMapper.insertSelective(prodOutDetail);
             }

+ 18 - 0
applications/storage/storage-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -219,6 +219,15 @@
       <if test="pd_ioid != null">
         pd_ioid,
       </if>
+      <if test="creatorId != null" >
+        creatorId,
+      </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="pd_piid != null">
@@ -338,6 +347,15 @@
       <if test="pd_ioid != null">
         #{pd_ioid,jdbcType=INTEGER},
       </if>
+      <if test="creatorId != null" >
+        #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="creatorName != null">
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP}
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.storage.po.ProdIODetail">

+ 0 - 1
applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml

@@ -55,7 +55,6 @@
         and  companyid = #{companyId}
       </if>
     </where>
-    order by pi_date desc
   </select>
 
 

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

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

+ 3 - 3
base-servers/auth/auth-server/src/main/java/com/usoftchina/saas/auth/controller/AuthController.java

@@ -231,7 +231,7 @@ public class AuthController {
                     accountDTO = createAccountByCookieInfo(info);
                 } else {
                     logger.error(result.getMessage());
-                    ServletUtils.writeJsonPMessage(response, callback, false);
+                    //ServletUtils.writeJsonPMessage(response, callback, false);
                     return "successCallback({success:'0'})";
                 }
             } else {
@@ -242,7 +242,7 @@ public class AuthController {
                     Result updateResult = accountApi.update(BeanMapper.map(accountDTO, AccountUpdateDTO.class));
                     if (!updateResult.isSuccess()) {
                         logger.error(updateResult.getMessage());
-                        ServletUtils.writeJsonPMessage(response, callback, false);
+                        //ServletUtils.writeJsonPMessage(response, callback, false);
                         return "successCallback({success:'0'})";
                     }
                 }
@@ -265,7 +265,7 @@ public class AuthController {
                 socketMessageApi.sendToClient(clientId, "/sso/callback",
                         JsonUtils.toJsonString(new AuthDTO(tokenDTO, accountDTO)));
             }
-            ServletUtils.writeJsonPMessage(response, callback, true);
+            //ServletUtils.writeJsonPMessage(response, callback, true);
             return "successCallback({success:'1'})";
         }
         return "successCallback({success:'0'})";

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

@@ -1,3 +1,3 @@
 sso:
-  base-url: https://tsso.usoftchina.com
+  base-url: https://test-sso.uuzcc.cn
 #  base-url: https://sso.ubtob.com

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

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

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

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

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

@@ -19,12 +19,12 @@
                 <ul id="nav" class="nav navbar-nav menu">
                     <li><router-link to="/home"><a href="#"><span style="color: white">首页</span></a></router-link></li>
                     <li><a href="https://uas.usoftchina.com/about" target="_blank"><span>关于我们</span></a></li>
-                    <li style="margin-left:30px">
+                    <li style="margin-left:30px;    margin-top: 13px;    cursor: pointer;">
                         <span style="color:#fff;font-size: 16px;">
                             <img style="width: 20px;" src="/static/img/assets/denglu3x.png" alt="">
                             {{mytoken.realname}}
                         </span>
-                        <a href=""><span @click="loginout">【退出】</span></a>
+                        <span style="color:#fff;" @click="loginout">【退出】</span>
                     </li>
                 </ul>
             </div>

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

@@ -190,8 +190,8 @@ Ext.define('saas.view.core.form.field.ConDateField', {
             to.setValue(null);
             me.firstVal = null;
             me.secondVal = null;
-            from.setEditable(true);
-            to.setEditable(true);
+            //from.setEditable(true);
+            //to.setEditable(true);
         } else {
             from.setValue(minDate);
             to.setValue(maxDate);

+ 3 - 0
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -234,6 +234,8 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
             }
         });
 
+        // 不写该方法合计列会错位,这里触发afterEdit事件用来刷新grid
+        store.getAt(0) ? store.afterEdit(store.getAt(0), ['']) : null;
         me.fireEvent('validChange');
         return r;
     },
@@ -282,6 +284,7 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
             store.remove(selectedRecord);
             me.fireEvent('validChange');
         }
+        // 不写该方法合计列会错位,这里触发afterEdit事件用来刷新grid
         store.getAt(0) ? store.afterEdit(store.getAt(0), ['']) : null;
     },
 

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

@@ -19,7 +19,8 @@ Ext.define('saas.view.document.bom.BasePanel', {
     },{
         xtype : "textfield", 
         name : "bo_version", 
-        fieldLabel:'版本'
+        fieldLabel:'版本',
+        emptyText: '全部',
     },{
         xtype: 'combobox',
         name: 'bo_statuscode',
@@ -27,6 +28,7 @@ Ext.define('saas.view.document.bom.BasePanel', {
         displayField: 'bo_status',
         valueField: 'bo_statuscode',
         fieldLabel :'状态',
+        emptyText: '全部',
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['bo_statuscode', 'bo_status'],

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

@@ -21,11 +21,13 @@ Ext.define('saas.view.document.customer.BasePanel', {
         storeUrl:'/api/document/customerkind/getCombo',
         name : "cu_type", 
         fieldLabel : "客户类型", 
+        emptyText: '全部',
         hiddenBtn:true
     }, {
         xtype : "employeeDbfindTrigger", 
         name : "cu_sellername", 
-        fieldLabel:'业务员'
+        fieldLabel:'业务员',
+        emptyText: '输入人员编号或姓名',
     },{
         xtype: 'combobox',
         name: 'cu_statuscode',
@@ -33,6 +35,7 @@ Ext.define('saas.view.document.customer.BasePanel', {
         displayField: 'cu_status',
         valueField: 'cu_statuscode',
         fieldLabel :'状态',
+        emptyText: '全部',
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['cu_statuscode', 'cu_status'],

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

@@ -22,7 +22,8 @@ Ext.define('saas.view.document.product.BasePanel', {
         xtype : "remotecombo", 
         storeUrl: '/api/document/producttype/getCombo',
         name : "pr_kind", 
-        fieldLabel : '物料类型'
+        fieldLabel : '物料类型',
+        emptyText: '全部',
     }, {
         xtype: 'combobox',
         name: 'pr_statuscode',
@@ -30,6 +31,7 @@ Ext.define('saas.view.document.product.BasePanel', {
         displayField: 'pr_status',
         valueField: 'pr_statuscode',
         fieldLabel : '状态',
+        emptyText: '全部',
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['pr_statuscode', 'pr_status'],

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

@@ -21,6 +21,7 @@ Ext.define('saas.view.document.vendor.BasePanel', {
         storeUrl:'/api/document/vendorkind/getCombo',
         name : "ve_type", 
         fieldLabel : '供应商类型',
+        emptyText: '全部',
         hiddenBtn:true
     },{
         xtype: 'combobox',
@@ -29,6 +30,7 @@ Ext.define('saas.view.document.vendor.BasePanel', {
         displayField: 've_status',
         valueField: 've_statuscode',
         fieldLabel : '状态',
+        emptyText: '全部',
         editable:false,
         store: Ext.create('Ext.data.ArrayStore', {
         fields: ['ve_statuscode', 've_status'],

+ 5 - 4
frontend/saas-web/app/view/home/Home.js

@@ -4,6 +4,7 @@ Ext.define('saas.view.home.Home', {
     id: 'home',
 
     requires: [
+        'Ext.layout.container.Border',
         'Ext.ux.layout.ResponsiveColumn'
     ],
 
@@ -51,7 +52,7 @@ Ext.define('saas.view.home.Home', {
         }, {
             xtype: 'key-data',
             margin: 0,
-            padding: '0 14 0 14',
+            padding: '0 0 0 14',
         }]
     }, {
         xtype: 'panel',
@@ -64,15 +65,15 @@ Ext.define('saas.view.home.Home', {
             userCls: 'x-home-chart big-33 small-50',
         },
         items: [{
-            xtype: 'month-io',
+            xtype: 'sale-trend',
             padding: '0 0 0 14',
         }, {
-            xtype: 'sale-trend',
+            xtype: 'month-io',
             padding: '0 0 0 14',
         }, {
             xtype: 'stock-amount',
             margin: 0,
-            padding: '0 14 0 14',
+            padding: '0 0 0 14',
         }]
     }],
 

+ 1 - 0
frontend/saas-web/app/view/home/Home.scss

@@ -158,6 +158,7 @@ $unaudit-purc-container-color: dynamic(#e91e63);
 
     .x-panel-header-default {
         background-color: #fff;
+        padding-right: 14px;
 
         .x-panel-header-title-default > .x-title-icon-wrap-default > .x-title-icon-default,
         .x-panel-header-title-default > .x-title-text-default {

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

@@ -19,13 +19,13 @@ Ext.define('saas.view.home.charts.KeyData', {
                             '<div class="x-icon x-icon-{icon}"></div>',
                         '</tpl>',
                         '<div class="x-text',
-                            // '<tpl if="!showIcon">',
-                            //     ' x-text-small',
-                            // '</tpl>',
+                            '<tpl if="!showIcon">',
+                                ' x-text-small',
+                            '</tpl>',
                         '">',
-                            // '<tpl if="!showIcon">',
-                            //     '<div class="x-icon-small x-icon-{icon}"></div>',
-                            // '</tpl>',
+                            '<tpl if="!showIcon">',
+                                '<div class="x-icon-small x-icon-{icon}"></div>',
+                            '</tpl>',
                             '<div class="x-key"><span>{label}</span></div>',
                             '<div class="x-value"><span>{value}</span></div>',
                         '</div>',
@@ -91,11 +91,11 @@ Ext.define('saas.view.home.charts.KeyData', {
                     r.set('value', d);
                 });
             },
-            // updateShowIcon: function(show) {
-            //     this.each(function(r) {
-            //         r.set('showIcon', show);
-            //     });
-            // }
+            updateShowIcon: function(show) {
+                this.each(function(r) {
+                    r.set('showIcon', show);
+                });
+            }
         });
         var view = Ext.create('Ext.view.View', {
             store: store,
@@ -104,6 +104,27 @@ Ext.define('saas.view.home.charts.KeyData', {
             listeners: {
                 itemclick: function(th, record, item, index, e, eOpts) {
                     saas.util.BaseUtil.openTab(record.get('viewType'), record.get('title'), record.get('id'));
+                },
+                itemmouseenter: function(th, record, item, index, e, eOpts) {
+                    var tip = th.tip;
+                    if(!tip) {
+                        var tip = Ext.create('Ext.tip.ToolTip', {
+                            target: th.el,
+                            minWidth: 100,
+                            title: record.get('label'),
+                            html: record.get('value'),
+                            showOnTap: true,
+                            trackMouse: true
+                        });
+                        th.tip = tip;
+                        tip.showAt(e.getXY());
+                    }
+                },
+                itemmouseleave: function(th, record, item, index, e, eOpts) {
+                    var tip = th.tip;
+                    if(tip) {
+                        th.tip = Ext.destroy(th.tip);
+                    }
                 }
             }
         });
@@ -118,15 +139,15 @@ Ext.define('saas.view.home.charts.KeyData', {
     },
 
     listeners: {
-        // afterlayout: function() {
-        //     var me = this,
-        //     box = me.getBox(),
-        //     view = me.view,
-        //     width = box.width,
-        //     store = view.store;
-
-        //     store.updateShowIcon(width >= 450);
-        // },
+        afterlayout: function() {
+            var me = this,
+            box = me.getBox(),
+            view = me.view,
+            width = box.width,
+            store = view.store;
+
+            store.updateShowIcon(width >= 450);
+        },
     },
 
     updateValue: function(datas) {
@@ -137,11 +158,11 @@ Ext.define('saas.view.home.charts.KeyData', {
         store.updateValue(datas);
     },
 
-    // updateShowIcon: function(showIcon) {
-    //     var me = this,
-    //     view = me.view,
-    //     store = view.store;
+    updateShowIcon: function(showIcon) {
+        var me = this,
+        view = me.view,
+        store = view.store;
 
-    //     store.updateShowIcon(showIcon);
-    // }
+        store.updateShowIcon(showIcon);
+    }
 });

+ 9 - 0
frontend/saas-web/app/view/home/charts/KeyData.scss

@@ -35,6 +35,7 @@
                     background-position: center;
 
                     &-small {
+                        opacity: 0.7;
                         width: 36px;
                         height: 36px;
                         position: relative;
@@ -79,17 +80,25 @@
                         align-items: flex-start;
                         font-size: 16px;
                         color: #1E2429;
+                        text-overflow: ellipsis;
+                        overflow: hidden;
                     }
 
                     &-small {
                         display: block;
 
                         .x-key {
+                            text-align: end;
                             display: block;
                             padding-left: 54px;
                             margin-top: -17px;
                             margin-bottom: 14px;
                         }
+
+                        .x-value {
+                            display: block;
+                            text-align: end;
+                        }
                     }
                 }
             }

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

@@ -10,7 +10,7 @@ Ext.define('saas.view.home.infoCardList.Payment', {
     codeField: 'pi_inoutno',
     // detailTitle: '采购验收单',
     // detailXType: 'purchase-purchasein-formpanel',
-    condition: 'pi_class in (\'采购验收单\',\'采购验退单\') and prodinout.companyId=#{companyId} and TO_DAYS(pi_date+ifnull(ve_promisedays,0))-TO_DAYS(now()) <= 7 and exists (select 1 from subledger where sl_code=pi_inoutno and sl_kind=pi_class and subledger.companyId=#{companyId} and ifnull(sl_namount,0)<>0)',
+    condition: 'pi_class in (\'采购验收单\',\'采购验退单\') and prodinout.companyId=#{companyId} and ( TO_DAYS(pi_date) + ifnull(ve_promisedays,0)-TO_DAYS(now()) ) <= 7 and exists (select 1 from subledger where sl_code=pi_inoutno and sl_kind=pi_class and subledger.companyId=#{companyId} and ifnull(sl_namount,0)<>0)',
     listColumns: [{
         text: 'id',
         dataIndex: 'pu_id',

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

@@ -10,7 +10,7 @@ Ext.define('saas.view.home.infoCardList.Recment', {
     codeField: 'pi_inoutno',
     // detailTitle: '出货单',
     // detailXType: 'sale-saleout-formpanel',
-    condition: 'pi_class in (\'出货单\',\'销售退货单\') and prodinout.companyId=#{companyId} and TO_DAYS(pi_date+ifnull(cu_promisedays,0))-TO_DAYS(now()) <= 7 and exists (select 1 from subledger where sl_code=pi_inoutno and sl_kind=pi_class and subledger.companyId=#{companyId} and ifnull(sl_namount,0)<>0)',
+    condition: 'pi_class in (\'出货单\',\'销售退货单\') and prodinout.companyId=#{companyId} and (TO_DAYS(pi_date) + ifnull(cu_promisedays,0) - TO_DAYS(now())) <= 7 and exists (select 1 from subledger where sl_code=pi_inoutno and sl_kind=pi_class and subledger.companyId=#{companyId} and ifnull(sl_namount,0)<>0)',
     listColumns: [{
         text: 'id',
         dataIndex: 'id',

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

@@ -31,7 +31,7 @@ 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}'
                     }

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

@@ -20,10 +20,12 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         xtype : "bandinfoDbfindTrigger",
         name : "ftd_bankname",
         fieldLabel : "转出账户",
+        emptyText: '输入账户编号或名称',
     },{
         xtype : "bandinfoDbfindTrigger",
         name : "ftd_inbankname",
         fieldLabel : "转入账户",
+        emptyText: '输入账户编号或名称',
     },{
         xtype: 'combobox',
         name: 'ft_statuscode',

+ 51 - 20
frontend/saas-web/app/view/money/report/ProfitDetail.js

@@ -11,60 +11,91 @@ Ext.define('saas.view.money.report.ProfitDetail', {
     viewName: 'money-report-profitdetail',
 
     groupField: null,
-    listUrl: '/api/money/report/recDetail',
+    listUrl: '/api/money/report/profitdetails',
     defaultCondition: null,
     reportTitle: '毛利润分析表',
-    QueryWidth: 0.25,
+    QueryWidth: 0.2,
     searchItems: [{
         xtype: 'customerDbfindTrigger',
         name: 'pi_custname',
-        fieldLabel: '客户名称',
-        columnWidth: 0.25
+        emptyText: '客户',
+        columnWidth: 0.15,
+        dbfinds:[
+            {
+                from:'cu_name',to:'pi_custname'
+            }]
     }, {
         xtype : "remotecombo", 
         storeUrl:'/api/document/customerkind/getCombo',
         name : "cu_type", 
         emptyText : "客户类型", 
-        columnWidth: 0.25,
+        columnWidth: 0.15,
         hiddenBtn:true
     }, {
         xtype: 'condatefield',
-        name: 'rb_date',
+        name: 'pi_date',
         fieldLabel: '日期',
-        columnWidth: 0.25
+        columnWidth: 0.5
     }],
 
-    reportColumns: [{
-        text: '客户编号',
-        dataIndex: 'pi_inoutno',
-        width: 200
-    }, {
+    reportColumns: [
+        {
+            text: '客户',
+            dataIndex: 'pi_custname',
+            width: 200,
+        },{
         text: '客户类型',
-        dataIndex: 'pi_custcode',
+        dataIndex: 'cu_type',
         width: 200,
     }, {
         text: '业务员',
-        dataIndex: 'pi_custname',
+        dataIndex: 'cu_sellername',
         width: 200,
     }, {
         text: '销售总额',
-        dataIndex: 'pi_class',
-        width: 150
+        dataIndex: 'saamount',
+        width: 150,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            },
+            summaryType: 'sum',
+            summaryRenderer: function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            }
     }, {
         text: '不含税金额',
-        dataIndex: 'pu_buyername',
+        dataIndex: 'netamount',
         width: 150
     }, {
         text: '成本金额',
-        dataIndex: 'rb_date',
+        dataIndex: 'costamount',
         width: 150
     }, {
         text: '毛利润',
-        dataIndex: 'pd_pdno',
+        dataIndex: 'profit',
         width: 150,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            },
+            summaryType: 'sum',
+            summaryRenderer: function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            }
     }, {
         text: '毛利率',
-        dataIndex: 'cu_beginaramount',
+        dataIndex: 'profitpresent',
         width: 150
     }]
 });

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

@@ -533,6 +533,8 @@ Ext.define('saas.view.money.verification.FormPanelController', {
         })
         store.removeAll();
         store.add(datas);
+        // 不写该方法合计列会错位,这里触发afterEdit事件用来刷新grid
+        store.getAt(0) ? store.afterEdit(store.getAt(0), ['']) : null;
     },
 
     onSave: function() {

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

@@ -66,7 +66,8 @@ Ext.define('saas.view.purchase.purchase.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'pu_sacode',
-        fieldLabel: '关联销售单号'
+        fieldLabel: '关联销售单号',
+        emptyText: '输入单号',
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'creatorName',

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

@@ -70,7 +70,9 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'pi_pucode',
-        fieldLabel: '关联采购单号'
+        fieldLabel: '关联采购单号',
+        emptyText: '输入单号',
+
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'creatorName',

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

@@ -70,7 +70,8 @@ Ext.define('saas.view.purchase.purchaseOut.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'pi_iocode',
-        fieldLabel: '关联验收单号'
+        fieldLabel: '关联验收单号',
+        emptyText: '输入单号',
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'creatorName',

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

@@ -24,6 +24,7 @@ Ext.define('saas.view.sale.saleIn.QueryPanel', {
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
         fieldLabel: '物料',
+        emptyText: '输入物料编号或名称',
         showDetail: true
     }, {
         xtype: 'combobox',
@@ -62,15 +63,18 @@ Ext.define('saas.view.sale.saleIn.QueryPanel', {
     }, {
         xtype: 'warehouseDbfindTrigger',
         name: 'pd_whname',
-        fieldLabel: '仓库'
+        fieldLabel: '仓库',
+        emptyText: '输入仓库编号或名称',
     }, {
         xtype: 'textfield',
         name: 'pi_iocode',
-        fieldLabel: '关联出货单号'
+        fieldLabel: '关联出货单号',
+        emptyText: '输入单号',
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'creatorName',
         fieldLabel: '录入人',
+        emptyText: '输入人员编号或姓名',
         getCondition: function(value) {
             if(!value) {
                 return '1=1';
@@ -81,7 +85,8 @@ Ext.define('saas.view.sale.saleIn.QueryPanel', {
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'pi_auditman',
-        fieldLabel: '审核人'
+        fieldLabel: '审核人',
+        emptyText: '输入人员编号或姓名',
     }],
     moreQueryFormItems: [],
     queryGridConfig: {

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

@@ -24,6 +24,7 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
         xtype: 'productDbfindTrigger',
         name: 'pr_detail',
         fieldLabel: '物料',
+        emptyText: '输入物料编号或名称',
         showDetail: true
     }, {
         xtype: 'combobox',
@@ -67,11 +68,13 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'pi_sacode',
-        fieldLabel: '关联销售单号'
+        fieldLabel: '关联销售单号',
+        emptyText: '输入单号',
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'creatorName',
         fieldLabel: '录入人',
+        emptyText: '输入人员编号或姓名',
         getCondition: function(value) {
             if(!value) {
                 return '1=1';
@@ -82,7 +85,8 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
     }, {
         xtype: 'employeeDbfindTrigger',
         name: 'pi_auditman',
-        fieldLabel: '审核人'
+        fieldLabel: '审核人',
+        emptyText: '输入人员编号或姓名',
     }],
     moreQueryFormItems: [],
     queryGridConfig: {

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

@@ -12,7 +12,7 @@ Ext.define('saas.view.stock.report.DataList', {
     // listUrl: 'http://192.168.253.41:8560/api/document/product/ReserveCost',
     defaultCondition: null,
     reportTitle: '物料库存数量金额表',
-    QueryWidth: 0.4,
+    QueryWidth: 0.65,
     printAble: false,
     exportAble: true,
     queryMode: 'MAIN',
@@ -30,6 +30,7 @@ Ext.define('saas.view.stock.report.DataList', {
         xtype: 'textfield',
         emptyText: '仓库编号/名称',
         columnWidth: 0.25,
+        hidden: true,
         getCondition: function (v) {
             return "(upper(wh_code) like '%" + v.toUpperCase() + "%' or upper(wh_description) like '%" + v.toUpperCase() + "%')";
         }
@@ -113,6 +114,8 @@ Ext.define('saas.view.stock.report.DataList', {
             var format = '0.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
+    }, {
+        flex: 1
     }],
 
     reportColumns: [{

+ 16 - 10
frontend/saas-web/app/view/stock/report/DataListController.js

@@ -7,22 +7,28 @@ Ext.define('saas.view.stock.report.DataListController', {
         reportPanel = me.getView(),
         form = reportPanel.down('form'),
         grid = reportPanel.down('grid'),
-        store = grid.store;
+        store = grid.store,
+        columns = [];
         
-        // var whCodeField = form.getForm().findField('wh_code');
-        // whCodeField.setValue('');
-        // whCodeField.setHidden(!newValue);
+        var whCodeField = form.getForm().findField('wh_code');
+        var con = form.items.items[3];
+
+        whCodeField.setValue('');
+        whCodeField.setHidden(!newValue);
 
         if(newValue) {
+            con.columnWidth = 0.4;
             reportPanel.queryMode = 'DETAIL';
-            store.load(function() {
-                grid.reconfigure(store, reportPanel.reportColumns2);
-            });
+            columns = reportPanel.reportColumns2;
         }else {
+            con.columnWidth = 0.65;
             reportPanel.queryMode = 'MAIN';
-            store.load(function() {
-                grid.reconfigure(store, reportPanel.reportColumns);
-            });
+            columns = reportPanel.reportColumns;
         }
+        
+        form.updateLayout();
+        store.load(function() {
+            grid.reconfigure(store, columns);
+        });
     }
 });

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

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

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

@@ -71,6 +71,10 @@
             "text": "销售利润表",
             "viewType": "sale-report-saleprofit"
         }, {
+            "text": "毛利润分析表",
+            "id": "monry-report-profitdetail",
+            "viewType":"monry-report-profitdetail"
+        },{
             "text": "客户对账单",
             "id": "monry-report-customercheck",
             "viewType":"monry-report-customercheck"