Bläddra i källkod

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

chenw 7 år sedan
förälder
incheckning
0b20e2d291
38 ändrade filer med 312 tillägg och 343 borttagningar
  1. 5 5
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java
  2. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  3. 4 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutDTO.java
  4. 4 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutListDTO.java
  5. 13 4
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  6. 8 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  7. 4 0
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutListMapper.xml
  8. 30 6
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml
  9. 6 6
      applications/sale/sale-server/src/main/resources/mapper/SaledetailMapper.xml
  10. 2 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdInOutDTO.java
  11. 2 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdInOutListDTO.java
  12. 4 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOut.java
  13. 4 1
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java
  14. 0 0
      frontend/saas-portal-web/src/components/conenter/addenterprise.vue
  15. 2 2
      frontend/saas-portal-web/src/components/conenter/company.vue
  16. 9 9
      frontend/saas-portal-web/src/components/conenter/details.vue
  17. 2 2
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  18. 1 4
      frontend/saas-portal-web/src/components/conenter/home.vue
  19. 2 2
      frontend/saas-portal-web/src/router/index.js
  20. 70 5
      frontend/saas-web/app/Application.scss
  21. 1 1
      frontend/saas-web/app/view/document/kind/ChildForm.js
  22. 16 15
      frontend/saas-web/app/view/home/Home.js
  23. 21 54
      frontend/saas-web/app/view/home/Home.scss
  24. 36 36
      frontend/saas-web/app/view/home/HomeModel.js
  25. 3 0
      frontend/saas-web/app/view/home/infoCardList/Recment.js
  26. 1 1
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  27. 2 1
      frontend/saas-web/app/view/sale/saleIn/QueryPanel.js
  28. 2 1
      frontend/saas-web/app/view/sale/saleOut/QueryPanel.js
  29. 17 34
      frontend/saas-web/app/view/stock/report/DataList.js
  30. 2 1
      frontend/saas-web/app/view/sys/power/FormPanel.js
  31. 3 9
      frontend/saas-web/app/view/sys/power/GroupGrid.js
  32. 1 1
      frontend/saas-web/ext/packages/ux/classic/sass/var/layout/ResponsiveColumn.scss
  33. 0 112
      frontend/saas-web/overrides/grid/buffer/BufferedRenderer.js
  34. 0 26
      frontend/saas-web/overrides/grid/column/Widget.js
  35. 30 0
      frontend/saas-web/overrides/grid/feature/Grouping.js
  36. BIN
      frontend/saas-web/resources/images/auth-background.jpg
  37. BIN
      frontend/saas-web/resources/images/loading.gif
  38. 4 4
      frontend/saas-web/resources/json/navigation.json

+ 5 - 5
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java

@@ -425,14 +425,14 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     public Result turnProdOut(Long id) {
         ProdInOut sourcePi = getMapper().selectByPrimaryKey(id);
         Integer count=0;
-        double pdInqty=0, pdYqty=0;
+        double pdInqty=0.0, pdYqty=0.0;
         Long userId = BaseContextHolder.getUserId();
         String userName = BaseContextHolder.getUserName();
         List<ProdIODetail> sourcePids =prodIODetailMapper.selectByFK(id);
         //检查从表
         for (ProdIODetail prodIODetail : sourcePids) {
-            pdInqty = prodIODetail.getPd_inqty();
-            pdYqty = prodIODetail.getPd_yqty();
+            pdInqty = prodIODetail.getPd_inqty() == null ? 0.0 : prodIODetail.getPd_inqty();
+            pdYqty = prodIODetail.getPd_yqty() == null ? 0.0 : prodIODetail.getPd_yqty();
             if (pdInqty-pdYqty>0){
                 count++;
             }
@@ -458,8 +458,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         targetPi.setPi_ioid(sourcePi.getId());
         targetPi.setPi_iocode(sourcePi.getPi_inoutno());
         //设置付款状态
-        targetPi.setPi_prstatus(Status.RECNONE.getDisplay());
-        targetPi.setPi_prstatuscode(Status.RECNONE.name());
+        targetPi.setPi_prstatus(Status.PAYNONE.getDisplay());
+        targetPi.setPi_prstatuscode(Status.PAYNONE.name());
         //设置公司id
         targetPi.setCompanyId(sourcePi.getCompanyId());
         targetPi.setCreateTime(new Date());

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

@@ -475,6 +475,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 prodIODetail.setUpdaterId(userId);
                 prodIODetail.setUpdateTime(new Date());
                 prodIODetail.setUpdaterName(userName);
+                prodIODetail.setPd_yqty(0.0);
                 //本次转单数
                 prodIODetail.setPd_inqty(pdQty-pdYqty);
                 prodIODetailMapper.insertSelective(prodIODetail);

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

@@ -72,4 +72,8 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
     private String pi_auditman;
 
     private Date pi_auditdate;
+
+    private String pi_prstatuscode;
+
+    private String pi_prstatus;
 }

+ 4 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutListDTO.java

@@ -132,4 +132,8 @@ public class ProdInOutListDTO extends CommonBaseDTO implements Serializable {
     private String pd_remark;
 
     private String pi_remark;
+
+    private String pi_prstatus;
+
+    private String pi_prstatuscode;
 }

+ 13 - 4
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java

@@ -109,8 +109,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         prodInOut.setPi_class(main.getPi_class());
         prodInOut.setPi_said(main.getPi_said());
         prodInOut.setPi_sacode(main.getPi_sacode());
-
         prodInOut.setPi_remark(main.getPi_remark());
+
+        prodInOut.setPi_prstatus(prodInOut.getPi_prstatus()==null?Status.RECNONE.getDisplay():prodInOut.getPi_prstatus() );
+        prodInOut.setPi_prstatuscode(prodInOut.getPi_printstatuscode()==null?Status.RECNONE.name():prodInOut.getPi_printstatuscode());
         //判断更新与保存动作
         if (StringUtils.isEmpty(pi_id) || "0".equals(pi_id.toString())){
             //插入操作
@@ -423,8 +425,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     @Override
     public DocBaseDTO turnProdin(Long id) {
         Integer count=0;
-        double pdOutqty=0;
-        double pdYqty=0;
+        double pdOutqty=0.0;
+        double pdYqty=0.0;
         double pdSendPrice = 0.0;
         double pdTaxrate = 0.0;
         DocBaseDTO baseDTO = new DocBaseDTO();
@@ -462,7 +464,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         //设置公司id
         targetPi.setCompanyId(sourcePi.getCompanyId());
         targetPi.setCreateTime(new Date());
-        targetPi.setCreatorId(BaseContextHolder.getUserId());
+
         targetPi.setPi_ioid(id);
         targetPi.setPi_inoutno(piInoutno);
         targetPi.setPi_class(BillCodeSeq.SALEIN.getName());
@@ -476,10 +478,17 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         targetPi.setPi_said(sourcePi.getPi_said());
         targetPi.setPi_sacode(sourcePi.getPi_sacode());
         targetPi.setPi_address(sourcePi.getPi_address());
+        //收款状态
+        targetPi.setPi_prstatus(Status.PAYNONE.getDisplay());
+        targetPi.setPi_prstatuscode(Status.PAYNONE.name());
+        //来源的单号
+        targetPi.setPi_ioid(sourcePi.getId());
+        targetPi.setPi_iocode(sourcePi.getPi_inoutno());
         //保存数据
         getMapper().insertSelective(targetPi);
         //插入销售退货单从表
         long pi_id = targetPi.getId();
+        getMapper().updateCreator(BaseContextHolder.getUserId(), BaseContextHolder.getUserName(),pi_id);
         for (int i = 0;i<sourceDetails.size();i++){
             ProdIODetail sourcePid = sourceDetails.get(i);
             ProdIODetail targetPid = new ProdIODetail();

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

@@ -163,6 +163,7 @@ public class SaleServiceImpl implements SaleService{
                 detail.setCreatorId(userId);
                 detail.setCreatorName(BaseContextHolder.getUserName());
                 detail.setCreateTime(new Date());
+                detail.setSd_yqty(0.0);
                 insertDetails.add(detail);
             } else {
                 updateDetails.add(detail);
@@ -432,7 +433,7 @@ public class SaleServiceImpl implements SaleService{
 
         //检查从表
         for (SaleDetail detail : details) {
-            pdQty = detail.getSd_qty();
+            pdQty = detail.getSd_qty()==null?0.0:detail.getSd_qty();
             pdYqty = detail.getSd_yqty() == null ? 0 : detail.getSd_yqty();
             if (pdQty - pdYqty > 0){
                 count++;
@@ -463,6 +464,8 @@ public class SaleServiceImpl implements SaleService{
         prodInOut.setCompanyId(companyId);
         prodInOut.setPi_address(sale.getSa_toplace());
 
+        prodInOut.setPi_prstatus(Status.RECNONE.getDisplay());
+        prodInOut.setPi_prstatuscode(Status.RECNONE.name());
         prodInOutMapper.insertSelective(prodInOut);
         //插入出货单从表
         long pi_id = prodInOut.getId();
@@ -483,6 +486,10 @@ public class SaleServiceImpl implements SaleService{
             prodIODetail.setPd_taxrate(saleDetail.getSd_taxrate());
             //公司id
             prodIODetail.setCompanyId(companyId);
+            //如果已转数等于转单数量 不处理该单据
+            if (saleDetail.getSd_qty() - (saleDetail.getSd_yqty() == null ? 0 : saleDetail.getSd_yqty()) == 0) {
+                continue;
+            }
             //本次转单数
             prodIODetail.setPd_outqty(saleDetail.getSd_qty() - (saleDetail.getSd_yqty() == null ? 0 : saleDetail.getSd_yqty()));
             //获取物料默认仓库

+ 4 - 0
applications/sale/sale-server/src/main/resources/mapper/ProdInOutListMapper.xml

@@ -72,6 +72,8 @@
     <result column="pi_prstatus" jdbcType="VARCHAR" property="pi_prstatus" />
     <result column="pi_prstatuscode" jdbcType="VARCHAR" property="pi_prstatuscode" />
     <result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />
+    <result column="pi_ioid" jdbcType="INTEGER" property="pi_ioid" />
+    <result column="pi_iocode" jdbcType="VARCHAR" property="pi_iocode" />
   </resultMap>
 
   <resultMap id="homePageList" type="com.usoftchina.saas.sale.po.ProdHomePageList">
@@ -103,6 +105,8 @@
     <result column="pi_auditman" jdbcType="VARCHAR" property="pi_auditman" />
     <result column="pi_address" jdbcType="VARCHAR" property="pi_address" />
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
+    <result column="pi_prstatus" jdbcType="VARCHAR" property="pi_prstatus" />
+    <result column="pi_prstatuscode" jdbcType="VARCHAR" property="pi_prstatuscode" />
     <result column="pd_piid" jdbcType="INTEGER" property="pd_piid" />
     <result column="pd_inoutno" jdbcType="VARCHAR" property="pd_inoutno" />
     <result column="pd_piclass" jdbcType="VARCHAR" property="pd_piclass" />

+ 30 - 6
applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -35,6 +35,8 @@
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
     <result column="pi_iocode" jdbcType="VARCHAR" property="pi_iocode" />
       <result column="pi_ioid" jdbcType="INTEGER" property="pi_ioid" />
+    <result column="pi_prstatus" jdbcType="VARCHAR" property="pi_prstatus" />
+    <result column="pi_prstatuscode" jdbcType="VARCHAR" property="pi_prstatuscode" />
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.storage.po.ProdInOut">
     <result column="pi_address" jdbcType="LONGVARCHAR" property="pi_address" />
@@ -100,7 +102,7 @@
   <sql id="Base_Column_List">
     pi_id, pi_inoutno, pi_class, pi_date, pi_vendid, pi_vendcode, pi_vendname, pi_custid, 
     pi_custcode, pi_custname, pi_puid, pi_pucode, pi_said, pi_sacode, pi_total, pi_status, pi_statuscode, pi_printstatus, pi_printstatuscode,
-    companyid, updaterid, updatetime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5
+    companyid, updaterid, updatetime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_prstatus,pi_prstatuscode
   </sql>
   <sql id="Blob_Column_List">
     pi_address,pi_remark
@@ -125,7 +127,7 @@
       pi_printstatuscode, companyid, updaterid, 
       updatetime, pi_text1, pi_text2, 
       pi_text3, pi_text4, pi_text5,
-      pi_address,pi_remark)
+      pi_address,pi_remark,pi_prstatus,pi_prstatuscode)
     values (#{pi_id,jdbcType=INTEGER}, #{pi_inoutno,jdbcType=VARCHAR}, #{pi_class,jdbcType=VARCHAR}, 
       #{pi_date,jdbcType=TIMESTAMP}, #{pi_vendid,jdbcType=INTEGER}, #{pi_vendcode,jdbcType=VARCHAR}, 
       #{pi_vendname,jdbcType=VARCHAR}, #{pi_custid,jdbcType=INTEGER}, #{pi_custcode,jdbcType=VARCHAR}, 
@@ -136,7 +138,7 @@
       #{updatetime,jdbcType=TIMESTAMP}, #{pi_text1,jdbcType=VARCHAR}, #{pi_text2,jdbcType=VARCHAR}, 
       #{pi_text3,jdbcType=VARCHAR}, #{pi_text4,jdbcType=VARCHAR}, #{pi_text5,jdbcType=VARCHAR}, 
       #{pi_address,jdbcType=LONGVARCHAR},
-      #{pi_remark,jdbcType=LONGVARCHAR})
+      #{pi_remark,jdbcType=LONGVARCHAR}, #{pi_prstatus,jdbcType=VARCHAR}, #{pi_prstatuscode,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.usoftchina.saas.storage.po.ProdInOut">
     <selectKey resultType="java.lang.Long" keyProperty="id">
@@ -235,6 +237,12 @@
         <if test="pi_ioid != null">
             pi_ioid,
         </if>
+      <if test="pi_prstatus!=null">
+        pi_prstatus,
+      </if>
+      <if test="pi_prstatuscode!=null">
+        pi_prstatuscode,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
 
@@ -323,11 +331,17 @@
         #{pi_remark,jdbcType=LONGVARCHAR},
       </if>
       <if test="pi_iocode != null">
-        #{pi_iocode,jdbcType=LONGVARCHAR},
+        #{pi_iocode,jdbcType=VARCHAR},
       </if>
         <if test="pi_ioid != null">
             #{pi_ioid},
         </if>
+      <if test="pi_prstatus!=null">
+        #{pi_prstatus,jdbcType=VARCHAR},
+      </if>
+      <if test="pi_prstatuscode!=null">
+        #{pi_prstatuscode,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.storage.po.ProdInOut">
@@ -417,6 +431,12 @@
       <if test="pi_remark != null">
         pi_remark = #{pi_remark,jdbcType=LONGVARCHAR},
       </if>
+      <if test="pi_prstatus!=null">
+        pi_prstatus = #{pi_prstatus,jdbcType=VARCHAR},
+      </if>
+      <if test="pi_prstatuscode!=null">
+        pi_prstatuscode = #{pi_prstatuscode,jdbcType=VARCHAR},
+      </if>
     </set>
     where pi_id = #{id,jdbcType=INTEGER}
   </update>
@@ -449,7 +469,9 @@
       pi_text4 = #{pi_text4,jdbcType=VARCHAR},
       pi_text5 = #{pi_text5,jdbcType=VARCHAR},
       pi_address = #{pi_address,jdbcType=LONGVARCHAR},
-      pi_remark = #{pi_remark,jdbcType=LONGVARCHAR}
+      pi_remark = #{pi_remark,jdbcType=LONGVARCHAR},
+      pi_prstatus= #{pi_prstatus,jdbcType=VARCHAR},
+      pi_prstatuscode= #{pi_prstatuscode,jdbcType=VARCHAR}
     where pi_id = #{pi_id,jdbcType=INTEGER}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.storage.po.ProdInOut">
@@ -481,7 +503,9 @@
       pi_text4 = #{pi_text4,jdbcType=VARCHAR},
       pi_text5 = #{pi_text5,jdbcType=VARCHAR},
       pi_address = #{pi_address,jdbcType=LONGVARCHAR},
-      pi_remark = #{pi_remark,jdbcType=LONGVARCHAR}
+      pi_remark = #{pi_remark,jdbcType=LONGVARCHAR},
+      pi_prstatus= #{pi_prstatus,jdbcType=VARCHAR},
+      pi_prstatuscode= #{pi_prstatuscode,jdbcType=VARCHAR}
     where pi_id = #{id,jdbcType=INTEGER}
   </update>
   <select id="selectCodeById" resultType="string" parameterType="long">

+ 6 - 6
applications/sale/sale-server/src/main/resources/mapper/SaledetailMapper.xml

@@ -309,27 +309,27 @@
     where sd_id = #{id,jdbcType=INTEGER}
   </update>
   <insert id="batchInsert" parameterType="java.util.List" >
-    insert into saledetail (sd_said, sd_detno,
+    insert into saledetail (sd_said, sd_detno,sd_code,
     sd_prodid, sd_prodcode, sd_qty,
     sd_price, sd_total, sd_taxrate,
     sd_netprice, sd_nettotal, sd_delivery,
-    sd_sendqty, sd_pdqty, sd_remark,
+    sd_sendqty, sd_pdqty, sd_yqty,sd_remark,
     companyId, updaterId, updateTime,
     sd_text1, sd_text2, sd_text3,
     sd_text4, sd_text5,
-    creatorId,createTime,creatorName, sd_yqty)
+    creatorId,createTime,creatorName)
     values
     <foreach collection="list" item="item" index="index" open="" close="" separator=",">
       (
-      #{item.sd_said,jdbcType=INTEGER}, #{item.sd_detno,jdbcType=INTEGER},
+      #{item.sd_said,jdbcType=INTEGER}, #{item.sd_detno,jdbcType=INTEGER},#{item.sd_code,jdbcType=VARCHAR},
       #{item.sd_prodid,jdbcType=INTEGER}, #{item.sd_prodcode,jdbcType=VARCHAR}, #{item.sd_qty,jdbcType=DOUBLE},
       #{item.sd_price,jdbcType=DOUBLE}, #{item.sd_total,jdbcType=DOUBLE}, #{item.sd_taxrate,jdbcType=DOUBLE},
       #{item.sd_netprice,jdbcType=DOUBLE}, #{item.sd_nettotal,jdbcType=DOUBLE}, #{item.sd_delivery,jdbcType=TIMESTAMP},
-      #{item.sd_sendqty,jdbcType=DOUBLE}, #{item.sd_pdqty,jdbcType=DOUBLE}, #{item.sd_remark,jdbcType=VARCHAR},
+      #{item.sd_sendqty,jdbcType=DOUBLE}, #{item.sd_pdqty,jdbcType=DOUBLE}, #{item.sd_yqty,jdbcType=DOUBLE}, #{item.sd_remark,jdbcType=VARCHAR},
       #{item.companyId,jdbcType=INTEGER}, #{item.updaterId,jdbcType=INTEGER}, #{item.updateTime,jdbcType=TIMESTAMP},
       #{item.sd_text1,jdbcType=VARCHAR}, #{item.sd_text2,jdbcType=VARCHAR}, #{item.sd_text3,jdbcType=VARCHAR},
       #{item.sd_text4,jdbcType=VARCHAR}, #{item.sd_text5,jdbcType=VARCHAR},
-      #{item.creatorId,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.creatorName,jdbcType=VARCHAR},#{item.sd_yqty,jdbcType=DOUBLE}
+      #{item.creatorId,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.creatorName,jdbcType=VARCHAR}
       )
     </foreach>
   </insert>

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

@@ -72,4 +72,6 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
     private String pi_remark;
 
     private Long pi_ioid;
+
+    private String pi_iocode;
 }

+ 2 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdInOutListDTO.java

@@ -137,4 +137,6 @@ public class ProdInOutListDTO extends CommonBaseEntity implements Serializable {
     private String pd_remark;
 
     private String pi_remark;
+
+    private String pi_iocode;
 }

+ 4 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOut.java

@@ -72,4 +72,8 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
     private Long pi_maid;
 
     private String pi_iocode;
+
+    private String pi_prstatuscode;
+
+    private String pi_prstatus;
 }

+ 4 - 1
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java

@@ -132,7 +132,6 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private String pd_remark;
 
-
     private Long pd_ioid;
 
     private Date pi_auditdate;
@@ -143,6 +142,10 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private String pi_remark;
 
+    private Long pi_ioid;
+
+    private String pi_iocode;
+
     //private ProductDTO productDTO;
     private Long pr_id;
     private String pr_code;

+ 0 - 0
frontend/saas-portal-web/src/components/conenter/addgongsi.vue → frontend/saas-portal-web/src/components/conenter/addenterprise.vue


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

@@ -103,7 +103,7 @@
                 isAutoLogin: this.$store.state.isAutoLogin,
                 mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
                 arr: [],//企业列表信息
-                isheigh:true,//是否添加默认高度
+                isheigh:false,//是否添加默认高度
                 admin: '',
                 adminMobile: ''
             }
@@ -309,7 +309,7 @@
             //没有内容也要有一定的高度
             boxheight(){
                 let H = this.$refs.qiyebox.offsetHeight;
-                if (H < 400) {
+                if (H < 500) {
                     this.isheigh = true
                 } else {
                     this.isheigh = false

+ 9 - 9
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue → frontend/saas-portal-web/src/components/conenter/details.vue

@@ -2,12 +2,12 @@
     <div>
         <span class="Tips" ref="Tips"></span>
         <!-- 企业详细信息 -->
-        <div v-if="xiugai">
+        <div v-if="modify">
             <div class="gs-worp qy-worp" style="width:100%">
                 <div class="qy-title">
                     <span><img @click= "gobick" style="float: left;padding: 20px; cursor:pointer" src="/static/img/fanhui.png" alt=""></span>
                     <span>企业基本信息</span>
-                    <span v-if="isxiugaiId" @click="xiugaiqiye" class="qy-xiugai dianji">修改</span>
+                    <span v-if="ismodifyId" @click="xiugaiqiye" class="qy-xiugai dianji">修改</span>
                 </div>
                 <div class="qy-conent">
                     <ul>
@@ -101,21 +101,21 @@
     export default {
         data(){
             return {
-                xiugai:true,
+                modify:true,
                 content: JSON.parse(window.sessionStorage.getItem("content")),
                 Email: '',
                 mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
                 isId: false,
                 isemail: true,//正则邮箱
-                isxiugaiId: false
+                ismodifyId: false
             }
         },
         mounted(){
             //不是管理员隐藏修改按钮
             if (this.content.adminId == this.mytoken.account.id) {
-                this.isxiugaiId = true;
+                this.ismodifyId = true;
             } else {
-                this.isxiugaiId = false
+                this.ismodifyId = false
             }
         },
         methods: {
@@ -133,7 +133,7 @@
             //修改企业信息
             xiugaiqiye(){
                 document.documentElement.scrollTop = 0;
-                this.xiugai = false;
+                this.modify = false;
                 setTimeout(()=>{
                     this.selects()
                 },10)
@@ -157,7 +157,7 @@
             // 取消修改
             quxiaoxiugai(){
                 document.documentElement.scrollTop = 0;
-                this.xiugai = true;
+                this.modify = true;
             },
             // 保存修改
             baocunxiugai(){
@@ -188,7 +188,7 @@
                         // console.log("请求成功",res)
                         if (res.data.success) {
                             document.documentElement.scrollTop = 0;
-                            this.xiugai = true;
+                            this.modify = true;
                             this.content.type = qyindustry;
                             this.content.adminEmail = email
                         };

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

@@ -36,7 +36,7 @@
             <!-- 顶部tab -->
             <div class="gs-tab">
                 <ul>
-                    <li class="xs" v-for="(btn , index) in tab" :key='index' :class= "{gsactive:nowindex == index}" @click= "qiehuan(index)">{{btn.name}}</li>
+                    <li class="xs" v-for="(btn , index) in tab" :key='index' :class= "{gsactive:nowindex == index}" @click= "tabswitch(index)">{{btn.name}}</li>
                 </ul>
             </div>
             <div class="gs-none">
@@ -122,7 +122,7 @@ import { setTimeout } from 'timers';
         },
         methods: {
             // tab切换
-            qiehuan(index){
+            tabswitch(index){
                 this.nowindex = index;
             },
             //退出

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

@@ -275,9 +275,6 @@
         Session.set(session);
         this.account = Session.getAccount();
       })
-      .catch(err=>{
-        // console.log("请求失败",err)
-      })
     },
     mounted() {
       this.clientId = Math.random().toString(36).substr(2)
@@ -346,7 +343,7 @@
         frame.postMessage('', '*')
         Session.remove()
         window.location.href=this.$url.sso+'/logquit?appId=sp&returnURL='+window.location.origin
-        //this.$router.go(0);
+        // this.$router.go(0);
       },
       // 关闭窗口
       closeModal() {

+ 2 - 2
frontend/saas-portal-web/src/router/index.js

@@ -3,8 +3,8 @@ import Router from 'vue-router'
 import Home from '../components/conenter/home.vue'
 import enterprise from '../components/conenter/enterprise.vue'//企业设置首页
 import company from '../components/conenter/company.vue'//企业列表
-import addenterprise from '../components/conenter/addgongsi.vue'//添加公司
-import details from '../components/conenter/qiyexiangxi.vue'//企业详细
+import addenterprise from '../components/conenter/addenterprise.vue'//添加公司
+import details from '../components/conenter/details.vue'//企业详细
 
 Vue.use(Router)
 

+ 70 - 5
frontend/saas-web/app/Application.scss

@@ -10,20 +10,20 @@ body.launching {
   background-image: $auth-background-image;
   background-position: center;
 
-  &::before {
+  &::after {
     @include animation(rotate-animation 1s linear infinite);
     @include transform-origin(50% 50%);
     @include background-size(cover);
-    background-image: url(get-resource-path('images/loading.png'));
+    background-image: url(get-resource-path('images/loading.gif'));
     background-position: center;
     content: '';
     position: absolute;
     margin-top: -15px;
     margin-left: -15px;
-    top: 50%;
+    top: 65%;
     left: 50%;
-    width: 41px;
-    height: 41px;
+    width: 64px;
+    height: 64px;
   }
 }
 
@@ -491,4 +491,69 @@ div::-webkit-scrollbar-track {
   & > div > div > div.x-box-inner.x-box-scroller-body-vertical.x-scroller > div > div > a > span {
     margin-left: 28px;
   }
+}
+
+/** responsivecolumn **/
+.x-responsivecolumn {
+  padding: 0;
+
+  & > * {
+      margin: 0;
+
+  }
+}
+
+// @mixin responsivecolumn-item($width: 100%) {
+//   width: #{$width};
+// }
+
+.big-100 {
+  // width: 100%;
+  @include responsivecolumn-item(100%);
+}
+
+.big-60 {
+  // width: 60%;
+  @include responsivecolumn-item(60%);
+}
+
+.big-50 {
+  float: left;
+  // width: 50%;
+  @include responsivecolumn-item(50%);
+}
+
+.big-40 {
+  float: left;
+  // width: 40%;
+  @include responsivecolumn-item(40%);
+}
+
+.big-33 {
+  float: left;
+  // width: 33.33%;
+  @include responsivecolumn-item(33.33%);
+}
+
+.big-20 {
+  float: left;
+  // width: 20%;
+  @include responsivecolumn-item(20%);
+}
+
+//--------------------------------------------------------
+// And classes for small-size responsive items
+
+.x-responsivecolumn-small {
+   > .small-100 {
+      float: left;
+      // width: 100%;
+      @include responsivecolumn-item(100%);
+   }
+
+   > .small-50 {
+      float: left;
+      // width: 50%;
+      @include responsivecolumn-item(50%);
+   }
 }

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

@@ -212,7 +212,7 @@ Ext.define('saas.view.document.kind.ChildForm', {
                 if(grid){
                     if(form.ownerCt._parent.lookup('document-kind-Grid')!=null){
                         form.ownerCt._parent.lookup('document-kind-Grid').store.load()
-                    }else{
+                    }else if(grid.store){
                         grid.store.load();
                     }
                 }

+ 16 - 15
frontend/saas-web/app/view/home/Home.js

@@ -4,9 +4,6 @@ Ext.define('saas.view.home.Home', {
     id: 'home',
 
     requires: [
-        'Ext.slider.Single',
-        'Ext.form.field.Display',
-        'Ext.layout.container.Border',
         'Ext.ux.layout.ResponsiveColumn'
     ],
 
@@ -37,41 +34,45 @@ Ext.define('saas.view.home.Home', {
     }, {
         xtype: 'panel',
         style: {
-            marginRight: '0',
+            background: '#EEF4F9',
         },
-        // title: '2018年11月经营分析',
+
         latyout: 'responsivecolumn',
         defaults: {
-            margin: '0 0 0 14',
-            userCls: 'big-33 small-50',
+            margin: '0 16 0 0',
+            userCls: 'x-home-chart big-33 small-50',
         },
         items: [{
             xtype: 'month-sale',
+            padding: '0 0 0 14',
         }, {
             xtype: 'month-purchase',
+            padding: '0 0 0 14',
         }, {
             xtype: 'key-data',
+            margin: 0,
+            padding: '0 14 0 14',
         }]
     }, {
         xtype: 'panel',
-        // title: '2018年11月经营分析',
         latyout: 'responsivecolumn',
         style: {
-            marginRight: '0',
-            marginBottom: '0'
+            background: '#EEF4F9',
         },
         defaults: {
-            margin: '0 0 0 14',
-            userCls: 'big-33 small-50',
+            margin: '0 16 0 0',
+            userCls: 'x-home-chart big-33 small-50',
         },
         items: [{
             xtype: 'month-io',
+            padding: '0 0 0 14',
         }, {
             xtype: 'sale-trend',
+            padding: '0 0 0 14',
         }, {
-        //     xtype: 'purchase-trend'
-        // }, {
-            xtype: 'stock-amount'
+            xtype: 'stock-amount',
+            margin: 0,
+            padding: '0 14 0 14',
         }]
     }],
 

+ 21 - 54
frontend/saas-web/app/view/home/Home.scss

@@ -92,9 +92,11 @@ $unaudit-purc-container-color: dynamic(#e91e63);
 }
 
 .x-home-panel {
+    background: #EEF4F9;
 
     &> .x-autocontainer-outerCt {
         display: block;
+        background: #EEF4F9;
 
         &> .x-autocontainer-innerCt {
             display: block;
@@ -104,6 +106,25 @@ $unaudit-purc-container-color: dynamic(#e91e63);
 
 .x-home-box {
     border-radius: 2px;
+    margin: 0 0 16px 0 !important;
+    
+
+    &:last-child {
+        margin: 0 !important;
+    }
+
+    & > .x-panel-bodyWrap > .x-panel-body >.x-autocontainer-outerCt > .x-autocontainer-innerCt {
+        background: #EEF4F9;
+        display: flex;
+        justify-content: space-around;
+
+        .x-home-chart {
+            background: #fff;
+            border-radius: 4px;
+        }
+    }
+
+    
 
     &>.x-panel-header {
         background-color: #fff;
@@ -143,59 +164,5 @@ $unaudit-purc-container-color: dynamic(#e91e63);
             color: #485465;
         }
     }
-}
-
-.x-responsivecolumn {
-    padding: 0;
-}
-
-.big-100 {
-    // width: 100%;
-    @include responsivecolumn-item(100%);
-}
-
-.big-60 {
-    // width: 60%;
-    @include responsivecolumn-item(60%);
-}
-
-.big-50 {
-    float: left;
-    // width: 50%;
-    @include responsivecolumn-item(50%);
-}
-
-.big-40 {
-    float: left;
-    // width: 40%;
-    @include responsivecolumn-item(40%);
-}
-
-.big-33 {
-    float: left;
-    // width: 33.33%;
-    @include responsivecolumn-item(33.33%);
-}
-
-.big-20 {
-    float: left;
-    // width: 20%;
-    @include responsivecolumn-item(20%);
-}
 
-//--------------------------------------------------------
-// And classes for small-size responsive items
-
- .x-responsivecolumn-small {
-     > .small-100 {
-        float: left;
-        // width: 100%;
-        @include responsivecolumn-item(100%);
-     }
-
-     > .small-50 {
-        float: left;
-        // width: 50%;
-        @include responsivecolumn-item(50%);
-     }
 }

+ 36 - 36
frontend/saas-web/app/view/home/HomeModel.js

@@ -202,42 +202,42 @@ Ext.define('saas.view.home.HomeModel', {
             } 
         },
 
-        purchase_trend: {
-            fields: ['x', 'y'],
-            autoLoad: true,
-            proxy: {
-                type: 'ajax',
-                // url: 'http://192.168.253.58:8920/homePage/purchaseData?sixMonths=true',
-                url: '/api/commons/homePage/purchaseData?sixMonths=true',
-                timeout: 8000,
-                actionMethods: {
-                    read: 'GET'
-                },
-                reader: {
-                    type: 'json',
-                    rootProperty: 'data',
-                },
-                listeners: {
-                    exception: function(proxy, response, operation, eOpts) {
-                        var p = Ext.getCmp('purchase_trend');
-                        p && p.setLoading(false);
-                    }
-                }
-            },
-            sorters: [
-                { property: 'x', direction: 'ASC' }
-            ],
-            listeners: {
-                beforeload: function() {
-                    var p = Ext.getCmp('purchase_trend');
-                        p && p.setLoading(true);
-                },
-                load: function(s, d) {
-                    var p = Ext.getCmp('purchase_trend');
-                        p && p.setLoading(false);
-                }
-            } 
-        },
+        // purchase_trend: {
+        //     fields: ['x', 'y'],
+        //     autoLoad: true,
+        //     proxy: {
+        //         type: 'ajax',
+        //         // url: 'http://192.168.253.58:8920/homePage/purchaseData?sixMonths=true',
+        //         url: '/api/commons/homePage/purchaseData?sixMonths=true',
+        //         timeout: 8000,
+        //         actionMethods: {
+        //             read: 'GET'
+        //         },
+        //         reader: {
+        //             type: 'json',
+        //             rootProperty: 'data',
+        //         },
+        //         listeners: {
+        //             exception: function(proxy, response, operation, eOpts) {
+        //                 var p = Ext.getCmp('purchase_trend');
+        //                 p && p.setLoading(false);
+        //             }
+        //         }
+        //     },
+        //     sorters: [
+        //         { property: 'x', direction: 'ASC' }
+        //     ],
+        //     listeners: {
+        //         beforeload: function() {
+        //             var p = Ext.getCmp('purchase_trend');
+        //                 p && p.setLoading(true);
+        //         },
+        //         load: function(s, d) {
+        //             var p = Ext.getCmp('purchase_trend');
+        //                 p && p.setLoading(false);
+        //         }
+        //     } 
+        // },
 
         stock_amount: {
             fields: ['x', 'y'],

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

@@ -53,6 +53,9 @@ Ext.define('saas.view.home.infoCardList.Recment', {
         xtype:'numbercolumn',
         width: 100,
         renderer : function(v) {
+            if (v == 0) {
+                v= '';
+            }
             var format = '0'
             return Ext.util.Format.number(v, format);
         }

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

@@ -46,7 +46,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
             },{
                 xtype : "datefield", 
                 name : "pu_delivery", 
-                fieldLabel : "交货日期",
+                fieldLabel : "需求日期",
                 allowBlank:false,
                 defaultValue: new Date(),
                 columnWidth : 0.25,

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

@@ -138,7 +138,8 @@ Ext.define('saas.view.sale.saleIn.QueryPanel', {
         },{
             text: '业务员',
             dataIndex: 'sa_seller',
-            width: 90
+            width: 90,
+            hidden :true
         },{
             text: '审核人',
             dataIndex: 'pi_auditman',

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

@@ -133,7 +133,8 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
         },{
             text: '业务员',
             dataIndex: 'sa_seller',
-            width: 90
+            width: 90,
+            hidden :true
         },{
             text: '审核人',
             dataIndex: 'pi_auditman',

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

@@ -59,35 +59,36 @@ Ext.define('saas.view.stock.report.DataList', {
         text: "物料规格",
         dataIndex: "rc_prodSpec",
         width: 200,
-    }, {
-        text: "单位",
-        dataIndex: "rc_prodUnit",
-        width: 150,
-    }, {
+    },  {
         text: "仓库编号",
         dataIndex: "rc_whCode",
         width: 200,
+        hidden:true
     }, {
         text: "仓库名称",
         dataIndex: "rc_whName",
-        width: 200,
+        width: 110,
     }, {
         text: "数量",
         xtype: 'numbercolumn',
         dataIndex: "rc_number",
-        width: 150,
+        width: 120,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
             var format = '0.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
+    },{
+        text: "单位",
+        dataIndex: "rc_prodUnit",
+        width: 80
     }, {
         text: "单价",
         xtype: 'numbercolumn',
         align: 'end',
         dataIndex: "rc_price",
-        width: 150,
+        width: 120,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -98,25 +99,7 @@ Ext.define('saas.view.stock.report.DataList', {
         text: "金额",
         xtype: 'numbercolumn',
         dataIndex: "rc_amount",
-        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.' + 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.' + xr.join();
-            return Ext.util.Format.number(v, format);
-        }
-    }, {
-        text: "金额",
-        xtype: 'numbercolumn',
-        dataIndex: "rc_amount",
-        width: 150,
+        width: 120,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -145,26 +128,26 @@ Ext.define('saas.view.stock.report.DataList', {
         text: "物料规格",
         dataIndex: "rc_prodSpec",
         width: 200,
-    }, {
-        text: "单位",
-        dataIndex: "rc_prodUnit",
-        width: 150,
     }, {
         text: "数量",
         xtype: 'numbercolumn',
         dataIndex: "rc_number",
-        width: 150,
+        width: 120,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
             var format = '0.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
+    },{
+        text: "单位",
+        dataIndex: "rc_prodUnit",
+        width: 80,
     }, {
         text: "金额",
         xtype: 'numbercolumn',
         dataIndex: "rc_amount",
-        width: 150,
+        width: 120,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -180,5 +163,5 @@ Ext.define('saas.view.stock.report.DataList', {
         }
     }, {
         flex: 1
-    }],
+    }]
 })

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

@@ -23,9 +23,10 @@ Ext.define('saas.view.sys.power.FormPanel', {
         layout:'fit',
         height:'100%',
         width: '20%',
+        style:'border-right: 1px solid #35baf6;',
+        bodyStyle:'border-color: #ffffff;',
         useArrows: true
     },{
-        margin:'0 0 0 5',
         region:'center',
         layout:'fit',
         height:'100%',

+ 3 - 9
frontend/saas-web/app/view/sys/power/GroupGrid.js

@@ -4,9 +4,11 @@
 Ext.define('saas.view.sys.power.GroupGrid', {
     extend: 'Ext.grid.Panel',
     xtype: 'power-grid',
+    focusable:false,
     bind:{
         store: '{powergrid}'
     },
+    bufferedRenderer:false,
     tbar:['->',{
         xtype:'button',				
         text:'保存',
@@ -16,15 +18,7 @@ Ext.define('saas.view.sys.power.GroupGrid', {
     }],
     features : [Ext.create('Ext.grid.feature.Grouping',{
         collapsible:false,
-		showSummaryRow: false,
-        groupHeaderTpl: Ext.create('Ext.XTemplate',
-            '<div>{rows:this.formatName}</div>',
-            {
-                formatName: function(name) {
-                    return name[0].data.moduleName+'模块';
-                }
-            }
-        )
+        showSummaryRow: false
     })],
     dataUrl:'/api/account/role/power/resource',
     selModel: {

+ 1 - 1
frontend/saas-web/ext/packages/ux/classic/sass/var/layout/ResponsiveColumn.scss

@@ -6,7 +6,7 @@
  * @var {number}
  * The space between items in a responsive column layout
  */
-$responsivecolumn-item-spacing: dynamic(20px);
+$responsivecolumn-item-spacing: dynamic(0px);
 
 /**
  * Configures the width of an item in a responsive column layout

+ 0 - 112
frontend/saas-web/overrides/grid/buffer/BufferedRenderer.js

@@ -1,112 +0,0 @@
-Ext.define('saas.override.grid.buffer.BufferedRenderer', {
-    override: 'Ext.grid.plugin.BufferedRenderer',
-
-    setViewSize: function(viewSize, fromLockingPartner) {
-        var me = this,
-            store = me.store,
-            view = me.view,
-            ownerGrid,
-            rows = view.all,
-            elCount = rows.getCount(),
-            storeCount = store.getCount(),
-            start, end,
-            lockingPartner = me.view.lockingPartner && me.view.lockingPartner.bufferedRenderer,
-            diff = elCount - viewSize,
-            oldTop = 0,
-            maxIndex = Math.max(0, storeCount - 1),
-            // This is which end is closer to being visible therefore must be the first to have rows added
-            // or the opposite end from which rows get removed if shrinking the view.
-            pointyEnd = Ext.Number.sign((me.getFirstVisibleRowIndex() - rows.startIndex) - (rows.endIndex - me.getLastVisibleRowIndex()));
-        // Synchronize view sizes
-        if (lockingPartner && !fromLockingPartner) {
-            lockingPartner.setViewSize(viewSize, true);
-        }
-        diff = elCount - viewSize;
-        if (diff) {
-            // Must be set for getFirstVisibleRowIndex to work
-            me.scrollTop = me.scroller ? me.scroller.getPosition().y : 0;
-            me.viewSize = viewSize;
-            if (store.isBufferedStore) {
-                store.setViewSize(viewSize);
-            }
-            // If a store loads before we have calculated a viewSize, it loads me.defaultViewSize records.
-            // This may be larger or smaller than the final viewSize so the store needs adjusting when the view size is calculated.
-            if (elCount) {
-                // New start index should be current start index unless that's now too close to the end of the store
-                // to yield a full view, in which case work back from the end of the store.
-                // Ensure we don't go negative.
-                start = Math.max(0, Math.min(rows.startIndex, storeCount - viewSize));
-                // New end index works forward from the new start index ensuring we don't walk off the end
-                end = Math.min(start + viewSize - 1, maxIndex);
-                // Only do expensive adding or removal if range is not already correct
-                if (start === rows.startIndex && end === rows.endIndex) {
-                    // Needs rows adding to or bottom depending on which end is closest
-                    // to being visible (The pointy end)
-                    if (diff < 0) {
-                        me.handleViewScroll(pointyEnd);
-                    }
-                } else {
-                    // While changing our visible range, the locking partner must not sync
-                    if (lockingPartner) {
-                        lockingPartner.disable();
-                    }
-                    // View must expand
-                    if (diff < 0) {
-                        // If it's *possible* to add rows...
-                        if (storeCount > viewSize && storeCount > elCount) {
-                            // Grab the render range with a view to appending and prepending
-                            // nodes to the top and bottom as necessary.
-                            // Store's getRange API always has been inclusive of endIndex.
-                            store.getRange(start, end, {
-                                callback: function(newRecords, start, end) {
-                                    ownerGrid = view.ownerGrid;
-                                    // Append if necessary
-                                    if (end > rows.endIndex) {
-                                        rows.scroll(Ext.Array.slice(newRecords, rows.endIndex + 1, Infinity), 1, 0);
-                                    }
-                                    // Prepend if necessary
-                                    if (start < rows.startIndex) {
-                                        oldTop = rows.first(true);
-                                        rows.scroll(Ext.Array.slice(newRecords, 0, rows.startIndex - start), -1, 0);
-                                        // We just added some rows to the top of the rendered block
-                                        // We have to bump it up to keep the view stable.
-                                        me.bodyTop -= oldTop.offsetTop;
-                                    }
-                                    me.setBodyTop(me.bodyTop);
-                                    // The newly added rows must sync the row heights
-                                    if (lockingPartner && !fromLockingPartner && (ownerGrid.syncRowHeight || ownerGrid.syncRowHeightOnNextLayout)) {
-                                        lockingPartner.setViewSize(viewSize, true);
-                                        ownerGrid.syncRowHeights();
-                                    }
-                                }
-                            });
-                        } else // If not possible just refresh
-                        {
-                            me.refreshView(0);
-                        }
-                    } else // View size is contracting
-                    {
-                        // If removing from top, we have to bump the rendered block downwards
-                        // by the height of the removed rows.
-                        if (pointyEnd === 1) {
-                            oldTop = rows.item(rows.startIndex + diff, true).offsetTop;
-                        }
-                        // Clip the rows off the required end
-                        rows.clip(pointyEnd, diff);
-                        me.setBodyTop(me.bodyTop + oldTop);
-                    }
-                    if (lockingPartner) {
-                        lockingPartner.enable();
-                    }
-                }
-            }
-            // Update scroll range
-            me.refreshSize();
-        }
-        if(this.grid.xtype=='power-grid'){
-            viewSize = 61
-        }
-        return viewSize;
-    },
-});
-

+ 0 - 26
frontend/saas-web/overrides/grid/column/Widget.js

@@ -1,26 +0,0 @@
-Ext.define('saas.override.grid.column.Widget', {
-    override: 'Ext.grid.column.Widget',
-
-    onCellsResized: function(newWidth) {
-        var me = this,
-            liveWidgets = me.ownerGrid.getManagedWidgets(me.getId()),
-            len = liveWidgets.length,
-            view = me.getView(),
-            i, cell;
-        if (!me.isFixedSize && me.rendered && view && view.viewReady) {
-            cell = view.getEl().down(me.getCellInnerSelector());
-            if (cell) {
-                // Subtract innerCell padding width
-                newWidth -= parseInt(me.getCachedStyle(cell, 'padding-left'), 10) + parseInt(me.getCachedStyle(cell, 'padding-right'), 10);
-                for (i = 0; i < len; ++i) {
-                    if(liveWidgets[i]){
-                        liveWidgets[i].ownerLayout = null;
-                        liveWidgets[i].setWidth(newWidth);
-                        liveWidgets[i].ownerLayout = view.componentLayout;
-                    }
-                }
-            }
-        }
-    }
-
-});

+ 30 - 0
frontend/saas-web/overrides/grid/feature/Grouping.js

@@ -1,6 +1,36 @@
 Ext.define('saas.override.grid.feature.Grouping', {
     override: 'Ext.grid.feature.Grouping',
 
+    setup: function(rows, rowValues) {
+        var me = this,
+            data = me.refreshData,
+            view = rowValues.view,
+            // Need to check if groups have been added since init(), such as in the case of stateful grids.
+            isGrouping = view.isGrouping = !me.disabled && me.getGridStore().isGrouped(),
+            bufferedRenderer = view.bufferedRenderer;
+        me.skippedRows = 0;
+        if (bufferedRenderer) {
+            bufferedRenderer.variableRowHeight = view.hasVariableRowHeight() || isGrouping;
+        }
+        data.groupField = me.getGroupField();
+        data.header = me.getGroupedHeader(data.groupField);
+        data.doGrouping = isGrouping;
+        //权限界面的BUG 修改groupHeaderTpl属性会导致报错  暂时修改源码属性  hey
+        if(me.grid.xtype=='power-grid'){
+            me.groupHeaderTpl = Ext.create('Ext.XTemplate',
+                '<div>{rows:this.formatName}</div>',
+                {
+                    formatName: function(name) {
+                        return name[0].data.moduleName+'模块';
+                    }
+                }
+            )
+        }
+        rowValues.groupHeaderTpl = Ext.XTemplate.getTpl(me, 'groupHeaderTpl');
+        if (isGrouping && me.showSummaryRow) {
+            data.summaryData = me.generateSummaryData();
+        }
+    },
     getMetaGroup: function(group) {
         var me = this,
             id = me.getId == null ? me.id : me.getId(),

BIN
frontend/saas-web/resources/images/auth-background.jpg


BIN
frontend/saas-web/resources/images/loading.gif


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

@@ -74,10 +74,6 @@
             "text": "客户对账单",
             "id": "monry-report-customercheck",
             "viewType":"monry-report-customercheck"
-        },{
-            "text":"其他收支明细表",
-            "id":"money-report-otheriodetail",
-            "viewType":"monry-report-otheriodetail"
         }]
     }]
 }, {
@@ -185,6 +181,10 @@
             "id": "monry-report-accountdetails",
             "viewType":"monry-report-accountdetails"
         }, {
+            "text":"其他收支明细表",
+            "id":"money-report-otheriodetail",
+            "viewType":"monry-report-otheriodetail"
+        },{
             "text": "账户收支明细表",
             "id": "monry-report-accountbalance",
             "viewType":"monry-report-accountbalance"