Browse Source

Merge remote-tracking branch 'origin/dev' into dev

rainco 7 years ago
parent
commit
09f39f790b
32 changed files with 635 additions and 242 deletions
  1. 10 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/HomePageController.java
  2. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/HomePageMapper.java
  3. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/HomePageService.java
  4. 7 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/HomePageServiceImpl.java
  5. 32 0
      applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml
  6. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  7. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  8. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  9. 1 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/PaybalanceController.java
  10. 37 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Custmonth.java
  11. 36 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Vendmonth.java
  12. 5 1
      applications/money/money-server/src/main/resources/mapper/CustmonthMapper.xml
  13. 5 1
      applications/money/money-server/src/main/resources/mapper/VendmonthMapper.xml
  14. 112 65
      frontend/saas-web/app/view/core/query/QueryFormPanel.js
  15. 33 3
      frontend/saas-web/app/view/core/query/QueryPanel.js
  16. 0 34
      frontend/saas-web/app/view/core/query/QueryPanelController.js
  17. 6 0
      frontend/saas-web/app/view/core/report/ReportPanel.js
  18. 10 0
      frontend/saas-web/app/view/home/Home.js
  19. 14 2
      frontend/saas-web/app/view/money/report/AccountDetails.js
  20. 37 17
      frontend/saas-web/app/view/money/report/CustomerCheck.js
  21. 59 38
      frontend/saas-web/app/view/money/report/ProfitDetail.js
  22. 33 7
      frontend/saas-web/app/view/money/report/TotalPayDetail.js
  23. 34 6
      frontend/saas-web/app/view/money/report/TotalRecDetail.js
  24. 39 25
      frontend/saas-web/app/view/money/report/VendorCheck.js
  25. 12 0
      frontend/saas-web/app/view/purchase/report/PurchasePay.js
  26. 2 2
      frontend/saas-web/app/view/sale/report/Sale.js
  27. 17 18
      frontend/saas-web/app/view/stock/inventory/EditDataList.js
  28. 6 6
      frontend/saas-web/app/view/stock/report/DataList.js
  29. 56 8
      frontend/saas-web/app/view/stock/report/ProdinoutCount.js
  30. 6 1
      frontend/saas-web/app/view/stock/report/Prodiodetail.js
  31. 1 1
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  32. 15 0
      frontend/saas-web/overrides/exporter/Stylesheet.js

+ 10 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/HomePageController.java

@@ -104,4 +104,14 @@ public class HomePageController {
         return homePageService.keyData();
     }
 
+    /**
+     * @Description 本月毛利润
+     * @return: com.usoftchina.saas.base.Result
+     * @Author: guq
+     * @Date: 2018/12/10
+     */
+    @GetMapping("/monthProfit")
+    public Result monthProfit() {
+        return homePageService.monthProfit();
+    }
 }

+ 2 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/HomePageMapper.java

@@ -19,4 +19,6 @@ public interface HomePageMapper {
     String getSaleFutureData(Long componyId);
 
     String getKeyData(Long companyId);
+
+    String monthProfit(Long companyId);
 }

+ 2 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/HomePageService.java

@@ -51,4 +51,6 @@ public interface HomePageService {
     Result saleFutureData();
 
     Result keyData();
+
+    Result monthProfit();
 }

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

@@ -86,6 +86,13 @@ public class HomePageServiceImpl implements HomePageService{
         return Result.success(data);
     }
 
+    @Override
+    public Result monthProfit() {
+        Long companyId = BaseContextHolder.getCompanyId();
+        Object data = parseJson(homePageMapper.monthProfit(companyId));
+        return Result.success(data);
+    }
+
     private Object parseJson(String text) {
         Object json = null;
         if (null != text) {

+ 32 - 0
applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml

@@ -116,4 +116,36 @@
             )d1
             );
     </select>
+
+    <select id="monthProfit" parameterType="long" resultType="string">
+        select concat('[',five_profit,',',other_profit,']') from (
+      (
+        #前5数据
+        select group_concat('{"x":"',custname,'","y":',profit,',"z":"',shortname,'"}') five_profit   from (
+        select sum((ifnull(pd_netprice,0)- ifnull(pd_price,0))*(ifnull(pd_outqty,0) - ifnull(pd_inqty,0))) profit,
+        pi_custcode,max(pi_custname) custname,max(ifnull(cu_shortname,'')) shortname  from prodinout left join prodiodetail on pi_id=pd_piid left join customer on cu_id=pi_custid
+        where
+        pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId}
+        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,4) t
+        )five_profit_,
+	  (
+	    #其它的数据
+		select concat('{"z":"其它","x":"其它","y":',all_profit - five_profit,'}') other_profit from (
+        #总共
+        (
+        select sum((ifnull(pd_netprice,0)- ifnull(pd_price,0))*(ifnull(pd_outqty,0) - ifnull(pd_inqty,0))) all_profit
+        from prodinout left join prodiodetail on pi_id=pd_piid
+        where
+        pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId} )a1_,
+        #前5总和
+        (
+        select sum(profit) five_profit from (select sum((ifnull(pd_netprice,0)- ifnull(pd_price,0))*(ifnull(pd_outqty,0) - ifnull(pd_inqty,0))) profit,
+        pi_custcode,max(pi_custname) custname,prodinout.companyid from prodinout left join prodiodetail on pi_id=pd_piid left join customer on cu_id=pi_custid
+         where
+        pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId}
+        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,4) b)a2_
+       )
+       ) other_profit_
+      )
+    </select>
 </mapper>

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

@@ -524,8 +524,8 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
                     customerDTO.setCu_sellercode(employees.get(0).getEm_code());
                     customerDTO.setCu_sellername(employees.get(0).getEm_name());
                 }
-                customerDTO.setCu_status(Status.OPEN.getDisplay());
-                customerDTO.setCu_statuscode(Status.OPEN.name());
+                customerDTO.setCu_status(Status.ENABLE.getDisplay());
+                customerDTO.setCu_statuscode(Status.ENABLE.name());
                 //编号不存在
                 if (i == 0) {
                     customerDTO.setId(0l);

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

@@ -588,8 +588,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                         break;
                     }
                     product.setPr_whid(warehouse.getId());
-                    product.setPr_status(Status.OPEN.getDisplay());
-                    product.setPr_statuscode(Status.OPEN.name());
+                    product.setPr_status(Status.ENABLE.getDisplay());
+                    product.setPr_statuscode(Status.ENABLE.name());
                 }
                 //编号不存在
                 if (i == 0) {

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

@@ -453,8 +453,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
                 List<DataImportDetail> data = datas.get(code);
                 DataImportDetail main = dataImportMapper.selectMainBycode(code, id, companyId);
                 Vendor vendor = JSONObject.parseObject(main.getDd_maindata(), Vendor.class);
-                vendor.setVe_status(Status.OPEN.getDisplay());
-                vendor.setVe_statuscode(Status.OPEN.name());
+                vendor.setVe_status(Status.ENABLE.getDisplay());
+                vendor.setVe_statuscode(Status.ENABLE.name());
                 //编号不存在
                 if (i == 0) {
                     vendor.setId(0l);

+ 1 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/PaybalanceController.java

@@ -38,7 +38,7 @@ public class PaybalanceController {
     }
 
     @Transactional
-    @PostMapping("/deleteDetail/{id}")
+    @PostMapping("/deleteDetail1/{id}")
     public Result deleteItem(@PathVariable("id") int id){
         paybalanceService.deleteItem(id);
         return Result.success();

+ 37 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Custmonth.java

@@ -21,6 +21,43 @@ public class Custmonth {
 
     private Integer companyid;
 
+    private Double cm_beginpreamount;
+    private Double cm_nowpayamount;
+    private Double cm_nowprepayamount;
+    private Double cm_endpreamount;
+
+    public Double getCm_beginpreamount() {
+        return cm_beginpreamount;
+    }
+
+    public void setCm_beginpreamount(Double cm_beginpreamount) {
+        this.cm_beginpreamount = cm_beginpreamount;
+    }
+
+    public Double getCm_nowpayamount() {
+        return cm_nowpayamount;
+    }
+
+    public void setCm_nowpayamount(Double cm_nowpayamount) {
+        this.cm_nowpayamount = cm_nowpayamount;
+    }
+
+    public Double getCm_nowprepayamount() {
+        return cm_nowprepayamount;
+    }
+
+    public void setCm_nowprepayamount(Double cm_nowprepayamount) {
+        this.cm_nowprepayamount = cm_nowprepayamount;
+    }
+
+    public Double getCm_endpreamount() {
+        return cm_endpreamount;
+    }
+
+    public void setCm_endpreamount(Double cm_endpreamount) {
+        this.cm_endpreamount = cm_endpreamount;
+    }
+
     public Integer getCm_id() {
         return cm_id;
     }

+ 36 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Vendmonth.java

@@ -20,6 +20,42 @@ public class Vendmonth {
     private Double vm_endamount;
 
     private Integer companyid;
+    private Double vm_beginpreamount;
+    private Double vm_nowpayamount;
+    private Double vm_nowprepayamount;
+    private Double vm_endpreamount;
+
+    public Double getVm_beginpreamount() {
+        return vm_beginpreamount;
+    }
+
+    public void setVm_beginpreamount(Double vm_beginpreamount) {
+        this.vm_beginpreamount = vm_beginpreamount;
+    }
+
+    public Double getVm_nowpayamount() {
+        return vm_nowpayamount;
+    }
+
+    public void setVm_nowpayamount(Double vm_nowpayamount) {
+        this.vm_nowpayamount = vm_nowpayamount;
+    }
+
+    public Double getVm_nowprepayamount() {
+        return vm_nowprepayamount;
+    }
+
+    public void setVm_nowprepayamount(Double vm_nowprepayamount) {
+        this.vm_nowprepayamount = vm_nowprepayamount;
+    }
+
+    public Double getVm_endpreamount() {
+        return vm_endpreamount;
+    }
+
+    public void setVm_endpreamount(Double vm_endpreamount) {
+        this.vm_endpreamount = vm_endpreamount;
+    }
 
     public Integer getVm_id() {
         return vm_id;

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

@@ -12,10 +12,14 @@
     <result column="cm_nowpreamount" property="cm_nowpreamount" jdbcType="DOUBLE" />
     <result column="cm_endamount" property="cm_endamount" jdbcType="DOUBLE" />
     <result column="companyid" property="companyid" jdbcType="INTEGER" />
+    <result column="cm_beginpreamount" property="cm_beginpreamount" jdbcType="DOUBLE" />
+    <result column="cm_nowpayamount" property="cm_nowpayamount" jdbcType="DOUBLE" />
+    <result column="cm_nowprepayamount" property="cm_nowprepayamount" jdbcType="DOUBLE" />
+    <result column="cm_endpreamount" property="cm_endpreamount" jdbcType="DOUBLE" />
   </resultMap>
   <sql id="Base_Column_List" >
     cm_id, cm_yearmonth, cm_custid, cm_custcode, cm_custname, CM_BEGINAMOUNT, CM_NOWAMOUNT, 
-    CM_NOWPREAMOUNT, CM_ENDAMOUNT, companyid
+    CM_NOWPREAMOUNT, CM_ENDAMOUNT, companyid,cm_endpreamount,cm_nowprepayamount,cm_nowpayamount,cm_beginpreamount
   </sql>
 
   <select id="selectByCondition" resultMap="BaseResultMap">

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

@@ -12,10 +12,14 @@
     <result column="vm_nowpreamount" property="vm_nowpreamount" jdbcType="DOUBLE" />
     <result column="vm_endamount" property="vm_endamount" jdbcType="DOUBLE" />
     <result column="companyid" property="companyid" jdbcType="INTEGER" />
+    <result column="vm_beginpreamount" property="vm_beginpreamount" jdbcType="DOUBLE" />
+    <result column="vm_nowpayamount" property="vm_nowpayamount" jdbcType="DOUBLE" />
+    <result column="vm_nowprepayamount" property="vm_nowprepayamount" jdbcType="DOUBLE" />
+    <result column="vm_endpreamount" property="vm_endpreamount" jdbcType="DOUBLE" />
   </resultMap>
   <sql id="Base_Column_List" >
     vm_id, vm_yearmonth, vm_vendid, VM_VENDCODE, VM_VENDNAME, VM_BEGINAMOUNT, VM_NOWAMOUNT, 
-    VM_NOWPREAMOUNT, VM_ENDAMOUNT, companyid
+    VM_NOWPREAMOUNT, VM_ENDAMOUNT, companyid,vm_endpreamount,vm_nowprepayamount,vm_nowpayamount,vm_beginpreamount
   </sql>
 
   <select id="selectByCondition" resultMap="BaseResultMap">

+ 112 - 65
frontend/saas-web/app/view/core/query/QueryFormPanel.js

@@ -20,80 +20,127 @@ Ext.define('saas.view.core.query.QueryFormPanel', {
         labelWidth: 90,
         columnWidth: 0.25,
         blankText: '该字段不能为空',
-	},
-
-    dockedItems: [{
-        width:140,
-        height: 70,
-        xtype: 'toolbar',
-        dock: 'right',
-        items: [{
-            margin:'8 0 0 0',
-            xtype: 'buttongroup',
-            cls:'x-query-buttongroup',
-            items:[{
-                height:32,
-                width:70,
-                style:'min-width: 0px;min-height: 0px;',
-                xtype: 'button',
-                name:'query',
-                text: '查询',
-                handler: 'onQuery',
-            },{
-                style:'min-width: 0px;min-height: 0px;border-color: #fff;background-color: #fff;padding: 0px;margin-top: -1px;margin-left: -2px;',
-                xtype: 'button',
-                iconCls:'x-btn-show',
-                handler: 'showMore',
-                name:'showMore',
-                tooltip:'更多',
-                listeners:{
-                    afterrender:function(b){
-                        var count = window.innerHeight - 110>=800?2:1;
-                        var columnWidthCount = 0;
-                        var items = b.ownerCt.ownerCt.ownerCt.items.items;
-                        Ext.each(items, function(item, index){
-                            if(item.xtype != 'hidden'){
-                                columnWidthCount+= item.columnWidth
-                            }
-                        });
-                        columnWidthCount = Math.ceil(columnWidthCount);
-                        if(columnWidthCount<=count){
-                            b.hide();
-                        }
-                    }
-                }
-            },{
-                name:'hideMore',
-                hidden:true,
-                tooltip:'隐藏',
-                style:'min-width: 0px;min-height: 0px;border-color: #fff;background-color: #fff;padding: 0px;margin-top: -1px;margin-left: -2px;',
-                xtype: 'button',
-                iconCls:'x-btn-hide',
-                handler: 'hideMore'
-            }]
-        },'->']
-    }],
+    },
+    
+    toggleConfig: {
+        showMoreIconCls: 'x-btn-show',
+        shwoMoreTooltip: '更多',
+        hideMoreIconCls: 'x-btn-hide',
+        hideMoreTooltip: '隐藏'
+    },
+
+    initComponent: function() {
+        var me = this,
+        config = me.toggleConfig;
+        
+        Ext.apply(me, {
+            dockedItems: [{
+                width:140,
+                height: 70,
+                xtype: 'toolbar',
+                dock: 'right',
+                items: [{
+                    margin:'8 0 0 0',
+                    xtype: 'buttongroup',
+                    cls:'x-query-buttongroup',
+                    items:[{
+                        height:32,
+                        width:70,
+                        style:'min-width: 0px;min-height: 0px;',
+                        xtype: 'button',
+                        name:'query',
+                        text: '查询',
+                        handler: 'onQuery',
+                    },{
+                        style:'min-width: 0px;min-height: 0px;border-color: #fff;background-color: #fff;padding: 0px;margin-top: -1px;margin-left: -2px;',
+                        xtype: 'button',
+                        handler: function(b) {
+                            var form = b.up('core-query-queryformpanel');
+                            form.toggleShowMore();
+                        },
+                        name:'toggle',
+                        iconCls: config.hideMoreIconCls,
+                        tooltip: config.hideMoreTooltip,
+                    }]
+                },'->']
+            }],
+        });
+
+        me.callParent(arguments);
+    },
 
     listeners: {
-        boxReady:function(form){
+        boxready:function(form){
             if(window.innerHeight - 110 >= 800){
-                form.setHeight(96);
+                form.setFormItemRows(null, true);
+            }else {
+                form.setFormItemRows(1, true);
             }
         },
         beforerender: function(form) {
-            var fiels = form.getForm().getFields();
-            fiels.each(function(f) {
-                f.enableKeyEvents = true;
-                f.on && f.on({
-                    keydown: {
-                        fn: function(th, e, eOpts) {
-                            if(e.keyCode == 13) {
-                                form.up('core-query-querypanel').getController().onQuery()
-                            }
+            form.addItemEvenListeners();
+        }
+    },
+
+    addItemEvenListeners: function() {
+        var me = this,
+        queryPanel = me.up('core-query-querypanel'),
+        fiels = me.getForm().getFields();
+
+        fiels.each(function(f) {
+            f.enableKeyEvents = true;
+            f.on && f.on({
+                keydown: {
+                    fn: function(th, e, eOpts) {
+                        if(e.keyCode == 13) {
+                            queryPanel.getController().onQuery()
                         }
                     }
-                });
+                }
             });
+        });
+    },
+
+    toggleShowMore: function(unanimate) {
+        var me = this,
+        showMore = typeof me.showMore != undefined ? !me.showMore : true,
+        rowItems = me.rowItems,
+        allRows = rowItems.length,
+        rows = showMore ? allRows : 1;
+
+        me.setFormItemRows(rows, unanimate);
+
+        var b = me.dockedItems.items[0].down('[name=query]');
+        b.removeFocusCls();
+        me.updateLayout();
+    },
+
+    setFormItemRows: function(rows, unanimate) {
+        var me = this,
+        rowItems = me.rowItems,
+        allRows = rowItems.length,
+        rows = rows ? rows : allRows,
+        showMore = rows == allRows;
+
+        var n_height = 14 + rows * ( 32 + 10 );
+
+        unanimate ? me.setHeight(n_height) : me.animate({dynamic: true, duration: 500, to: {height: n_height + 'px'}});
+        me.setToggleBtn(showMore);
+        me.showMore = showMore;
+        return rows;
+    },
+
+    setToggleBtn: function(showMore) {
+        var me = this,
+        config = me.toggleConfig,
+        toggleBtn = me.dockedItems.items[0].down('[name=toggle]');
+        
+        if(showMore) {
+            toggleBtn.setIconCls(config.hideMoreIconCls);
+            toggleBtn.setTooltip(config.hideMoreTooltip);
+        }else {
+            toggleBtn.setIconCls(config.showMoreIconCls);
+            toggleBtn.setTooltip(config.shwoMoreTooltip);
         }
     }
 

+ 33 - 3
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -16,7 +16,6 @@ Ext.define('saas.view.core.query.QueryPanel', {
         reference: 'queryform',
         xtype: 'core-query-queryformpanel',
         width: '100%',
-        height:54,
         margin: '0 0 12 0',
     }, {
         // margin: '12 0 0 0',
@@ -55,14 +54,43 @@ Ext.define('saas.view.core.query.QueryPanel', {
         var me = this,
         items = me.queryFormItems,
         queryForm = me.getQueryForm(),
-        viewModel = me.getViewModel();
+        viewModel = me.getViewModel(),
+        rowItems = [], // 所有行*[[item], ...]
+        t_rowItems = [], // 当前行*[item, ...]
+        t_columnWidth = 0; // 当前行列宽之和
+
+        Ext.Array.each(items, function(item, index) {
+            item.columnWidth = item.columnWidth || 0.25;
 
-        Ext.Array.each(items, function(item) {
             var bind = item.bind,
+            columnWidth = item.columnWidth,
             name = item.name,
             ignore = item.ignore,
             defaultValue = item.defaultValue;
 
+            t_columnWidth += columnWidth;
+
+            if(t_columnWidth > 1) { // 当前行已放不下
+                // 先把上一行放入rowItems,当前行+1,再添加到当前行
+                rowItems.push(Ext.Array.clone(t_rowItems));
+                t_columnWidth = 0;
+                t_rowItems.length = 0;
+                t_rowItems.push(item);
+            }else if(t_columnWidth == 1) { // 刚好放满当前行
+                // 先添加到当前行并放入rowItems,当前行+1
+                t_rowItems.push(item);
+                rowItems.push(Ext.Array.clone(t_rowItems));
+                t_columnWidth = 0;
+                t_rowItems.length = 0;
+            }else { // 当前行未满
+                // 直接放入当前行
+                t_rowItems.push(item); // 添加到当前行
+
+                if(index == items.length - 1) { // 最后一个元素
+                    rowItems.push(Ext.Array.clone(t_rowItems));
+                }
+            }
+
             if(item.xtype == 'numberfield') {
                 Ext.applyIf(item, {
                     hideTrigger: true, // 隐藏trigger
@@ -92,6 +120,8 @@ Ext.define('saas.view.core.query.QueryPanel', {
             }
         });
 
+        queryForm.rowItems = rowItems;
+        queryForm.rows = rowItems.length;
         queryForm.items = items;
     },
 

+ 0 - 34
frontend/saas-web/app/view/core/query/QueryPanelController.js

@@ -22,40 +22,6 @@ Ext.define('saas.view.core.query.QueryPanelController', {
         viewModel.set('moreQuery', false);
         queryGrid.store.loadPage(1);
     },
-    showMore:function (){
-        var me = this,
-        queryPanel = me.getView(),
-        queryForm = queryPanel.down('core-query-queryformpanel');
-        var items = queryForm.items.items;
-        var columnWidthCount = 0;
-        Ext.each(items, function(item, index){
-            if(item.xtype != 'hidden'){
-                columnWidthCount+= item.columnWidth
-            }
-        });
-        columnWidthCount = Math.ceil(columnWidthCount);
-        var count = window.innerHeight - 110>=800?2:1;
-        if(columnWidthCount>count){
-            //展开
-            queryForm.animate({dynamic: true, duration: 500, to: {height: (24+42*columnWidthCount)+'px'}})
-            queryForm.dockedItems.items[0].down('[name=showMore]').hide();
-            queryForm.dockedItems.items[0].down('[name=hideMore]').show();
-            var b = queryForm.dockedItems.items[0].down('[name=query]');
-            b.removeFocusCls();
-        }
-    },
-    hideMore:function (){
-        var me = this,
-        queryPanel = me.getView(),
-        queryForm = queryPanel.down('core-query-queryformpanel');
-        //收缩
-        var count = window.innerHeight - 110>=800?2:1;
-        queryForm.animate({dynamic: true, duration: 500, to: {height: count*56 + 'px'}})
-        queryForm.dockedItems.items[0].down('[name=hideMore]').hide();
-        queryForm.dockedItems.items[0].down('[name=showMore]').show();
-        var b = queryForm.dockedItems.items[0].down('[name=query]');
-        b.removeFocusCls();
-    },
     onMoreQuery: function() {
         var me = this,
         queryPanel = me.getView(),

+ 6 - 0
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -335,6 +335,12 @@ Ext.define('saas.view.core.report.ReportPanel', {
                         var format = '0.' + xr.join();
                         return Ext.util.Format.number(v, format);
                     },
+                    exportStyle:{
+                        format: 'Total',
+                        alignment: {
+                            horizontal: 'Right'
+                        }
+                    }
                 });
             }
 

+ 10 - 0
frontend/saas-web/app/view/home/Home.js

@@ -79,6 +79,16 @@ Ext.define('saas.view.home.Home', {
 
     initComponent: function() {
         this.lastTime = Ext.Date.now();
+        //判断当前是否未完成新手导航
+        saas.util.BaseUtil.request({
+            url: '/api/commons/init/check'
+        }).then(function(res) {
+            if(!res.data.begin){
+                saas.util.BaseUtil.openTab('sys-guide-formpanel', '新手导航', 'sys-guide-formpanel')
+            }
+        }).catch(function(res) {
+            saas.util.BaseUtil.showErrorToast(res.message);
+        })
         this.callParent(arguments);
     },
 

+ 14 - 2
frontend/saas-web/app/view/money/report/AccountDetails.js

@@ -90,11 +90,23 @@ Ext.define('saas.view.money.report.AccountDetails', {
         text: '本期核销金额',
         dataIndex: 'sl_amount',
         xtype: 'numbercolumn',
-        width: 130
+        width: 130,
+        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);
+        }
     }, {
         text: '总金额',
         dataIndex: 'total',
         xtype: 'numbercolumn',
-        width: 110
+        width: 110,
+        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);
+        }
     }],
 });

+ 37 - 17
frontend/saas-web/app/view/money/report/CustomerCheck.js

@@ -75,30 +75,44 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
         text: '数量',
         xtype: 'numbercolumn',
         dataIndex: 'qty',
-        xtype: 'numbercolumn',
-        width: 110
+        width: 110,
+        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: 'pd_orderprice',
         xtype: 'numbercolumn',
-        width: 110
+        width: 110,
+        renderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
     }, {
         text: '税率',
         dataIndex: 'pd_taxrate',
         xtype: 'numbercolumn',
-        width: 80
+        width: 80,
+        renderer: function(v) {
+            return Ext.util.Format.number(v, '0');
+        }
     }, {
         text: '金额',
         xtype: 'numbercolumn',
         width: 110,
         dataIndex: 'pd_total',
         xtype: 'numbercolumn',
-        // renderer : function(v) {
-        //     var arr = (v + '.').split('.');
-        //     var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-        //     var format = '0,000.' + xr.join();
-        //     return Ext.util.Format.number(v, format);
-        // },
+        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('.');
@@ -110,19 +124,25 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
         text: '不含税单价',
         width: 110,
         dataIndex: 'pd_netprice',
-        xtype: 'numbercolumn'
+        xtype: 'numbercolumn',
+        renderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
     }, {
         text: '不含税金额',
         width: 110,
         xtype: 'numbercolumn',
         dataIndex: 'pd_nettotal',
         xtype: 'numbercolumn',
-        // renderer : function(v) {
-        //     var arr = (v + '.').split('.');
-        //     var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-        //     var format = '0,000.' + xr.join();
-        //     return Ext.util.Format.number(v, format);
-        // },
+        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('.');

+ 59 - 38
frontend/saas-web/app/view/money/report/ProfitDetail.js

@@ -38,12 +38,11 @@ Ext.define('saas.view.money.report.ProfitDetail', {
         columnWidth: 0.5
     }],
 
-    reportColumns: [
-        {
-            text: '客户',
-            dataIndex: 'pi_custname',
-            width: 200,
-        },{
+    reportColumns: [{
+        text: '客户',
+        dataIndex: 'pi_custname',
+        width: 200,
+    },{
         text: '客户类型',
         dataIndex: 'cu_type',
         width: 200,
@@ -54,48 +53,70 @@ Ext.define('saas.view.money.report.ProfitDetail', {
     }, {
         text: '销售总额',
         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);
-            }
+        xtype: 'numbercolumn',
+        width: 110,
+        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: 'netamount',
-        width: 150
+        xtype: 'numbercolumn',
+        width: 110,
+        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);
+        },
     }, {
         text: '成本金额',
         dataIndex: 'costamount',
-        width: 150
+        xtype: 'numbercolumn',
+        width: 110,
+        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);
+        },
     }, {
         text: '毛利润',
         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);
-            }
+        xtype: 'numbercolumn',
+        width: 110,
+        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: '毛利率',
+        text: '毛利率%',
         dataIndex: 'profitpresent',
-        width: 150
+        width: 130,
+        xtype: 'numbercolumn',
+        renderer: function(v) {
+            return Ext.util.Format.number(v, '0');
+        }
+    },{
+        flex: 1
     }]
 });

+ 33 - 7
frontend/saas-web/app/view/money/report/TotalPayDetail.js

@@ -41,26 +41,52 @@ Ext.define('saas.view.money.report.TotalPayDetail', {
         text: '供应商名称',
         dataIndex: 'vm_vendname',
         width: 200,
-    }, {
+    }, {text: '期初预付',
+    xtype: 'numbercolumn',
+    dataIndex: 'vm_beginpreamount',
+    width: 150
+    },{
         text: '期初应付',
         xtype: 'numbercolumn',
         dataIndex: 'vm_beginamount',
-        width: 150
+        width: 110,
+        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);
+        }
     }, {
-        text: '增加应付',
+        text: '本期应付',
         xtype: 'numbercolumn',
         dataIndex: 'vm_nowamount',
-        width: 150
+        width: 110,
+        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);
+        }
     }, {
-        text: '增加预付',
+        text: '本期核销',
         xtype: 'numbercolumn',
+
+        dataIndex: 'vm_nowpayamount',
+        width: 150,
+
         dataIndex: 'vm_nowpreamount',
-        width: 150
+        width: 110,
+        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);
+        }
     }, {
         text: '应付余额',
         dataIndex: 'vm_endamount',
         xtype: 'numbercolumn',
-        width: 150,
+        width: 110,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');

+ 34 - 6
frontend/saas-web/app/view/money/report/TotalRecDetail.js

@@ -42,20 +42,48 @@ Ext.define('saas.view.money.report.TotalRecDetail', {
         dataIndex: 'cm_custname',
         width: 200,
     }, {
+            text: '期初预收',
+            dataIndex: 'cm_beginpreamount',
+            width: 150
+        },{
         text: '期初应收',
         dataIndex: 'cm_beginamount',
-        width: 150
+        xtype: 'numbercolumn',
+        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);
+        }
     }, {
-        text: '增加应收',
+        text: '本期应收',
         xtype: 'numbercolumn',
         dataIndex: 'cm_nowamount',
-        width: 150
+        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);
+        }
     }, {
-        text: '增加预收',
+        text: '本期核销',
         xtype: 'numbercolumn',
-        dataIndex: 'cm_nowpreamount',
-        width: 150
+        dataIndex: 'cm_nowpayamount',
+        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);
+        }
     }, {
+            text: '预收余额',
+            xtype: 'numbercolumn',
+            dataIndex: 'cm_endpreamount',
+            width: 150
+        }, {
         text: '应收余额',
         dataIndex: 'cm_endamount',
         xtype: 'numbercolumn',

+ 39 - 25
frontend/saas-web/app/view/money/report/VendorCheck.js

@@ -52,6 +52,7 @@ Ext.define('saas.view.money.report.VendorCheck', {
         width: 150
     },  {
         text: '序号',
+        xtype: 'numbercolumn',
         dataIndex: 'pd_pdno',
         width: 80
     },{
@@ -62,7 +63,7 @@ Ext.define('saas.view.money.report.VendorCheck', {
     },{
         text:'供应商名称',
         dataIndex:'pi_vendname',
-        width: 200,
+        width: 250,
         hidden:true
     },{
         text: '物料编号',
@@ -82,45 +83,46 @@ Ext.define('saas.view.money.report.VendorCheck', {
         width: 80
     }, {
         text: '数量',
-        xtype: 'numbercolumn',
         dataIndex: 'qty',
         xtype: 'numbercolumn',
         width: 110,
-        // 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);
-        // },
-        // summaryType: 'sum',
-        // summaryRenderer: 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);
-        // }
+        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: 'pd_orderprice',
         xtype: 'numbercolumn',
-        width: 110
+        width: 110,
+        renderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
     }, {
         text: '税率',
         dataIndex: 'pd_taxrate',
         xtype: 'numbercolumn',
-        width: 80
+        width: 80,
+        renderer: function(v) {
+            return Ext.util.Format.number(v, '0');
+        }
     }, {
         text: '金额',
         xtype: 'numbercolumn',
         dataIndex: 'pd_total',
         xtype: 'numbercolumn',
         width: 110,
-        // 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);
-        // },
+        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('.');
@@ -132,12 +134,24 @@ Ext.define('saas.view.money.report.VendorCheck', {
         text: '不含税单价',
         dataIndex: 'pd_netprice',
         xtype: 'numbercolumn',
-        width: 110
+        width: 110,
+        renderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
     }, {
         text: '不含税金额',
         dataIndex: 'pd_nettotal',
         xtype: 'numbercolumn',
-        width: 110
+        width: 110,
+        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);
+        },
     }, {
         text: '单据类型',
         dataIndex: 'pi_class',

+ 12 - 0
frontend/saas-web/app/view/purchase/report/PurchasePay.js

@@ -66,6 +66,12 @@ Ext.define('saas.view.purchase.report.PurchasePay', {
         xtype: 'numbercolumn',
         width: 110,
         summaryType: 'sum',
+        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);
+        },
         summaryRenderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
@@ -78,6 +84,12 @@ Ext.define('saas.view.purchase.report.PurchasePay', {
         xtype: 'numbercolumn',
         width: 110,
         summaryType: 'sum',
+        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);
+        },
         summaryRenderer: function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');

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

@@ -157,7 +157,7 @@ Ext.define('saas.view.sale.report.Sale', {
         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();
+            var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         },
         summaryType: 'sum',
@@ -175,7 +175,7 @@ Ext.define('saas.view.sale.report.Sale', {
         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();
+            var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         },
         summaryType: 'sum',

+ 17 - 18
frontend/saas-web/app/view/stock/inventory/EditDataList.js

@@ -29,37 +29,36 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
         ptype: 'menuclipboard'
     }],
     tbar: [{
+        xtype: 'textfield',
+        name: 'pr_detail',
+        emptyText:'输入物料编号或名称',
+        width:200,
+        bind: '{form.pr_detail}',
+        getCondition: function(v) {
+            if(v) {
+                return "(upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%')";
+            }else {
+                return '1 = 1';
+            }
+        }
+    },{
         xtype: 'warehouseDbfindTrigger',
         name: 'wh_description',
         bind: '{form.wh_description}',
-        emptyText: '仓库',
+        fieldLabel: '仓库',
         dbfinds:[{
             from:'wh_description',to:'wh_description'
         }],
-        width:150,
+        //width:150,
     },{
         editable:true,
         xtype : "remotecombo", 
         storeUrl:'/api/document/producttype/getCombo',
         name : "pr_kind",
         bind: '{form.pr_kind}',
-        emptyText : "类型",
+        fieldLabel : "类型",
         hiddenBtn:true,
-        width:150
-    },{
-        // xtype: 'productDbfindTrigger',
-        xtype: 'textfield',
-        name: 'pr_detail',
-        emptyText:'输入物料编号或名称',
-        width:200,
-        bind: '{form.pr_detail}',
-        getCondition: function(v) {
-            if(v) {
-                return "(upper(pr_code) like '%"+v.toUpperCase()+"%' or upper(pr_detail) like '%"+v.toUpperCase()+"%')";
-            }else {
-                return '1 = 1';
-            }
-        }
+        //width:150
     },{
         cls:'x-formpanel-btn-blue',
         xtype:'button',

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

@@ -93,7 +93,7 @@ Ext.define('saas.view.stock.report.DataList', {
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -104,14 +104,14 @@ Ext.define('saas.view.stock.report.DataList', {
         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();
+            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.' + xr.join();
+            var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
     }, {
@@ -130,7 +130,7 @@ Ext.define('saas.view.stock.report.DataList', {
     }, {
         text: "物料规格",
         dataIndex: "rc_prodSpec",
-        width: 200,
+        width: 150,
     }, {
         text: "数量",
         xtype: 'numbercolumn',
@@ -154,14 +154,14 @@ Ext.define('saas.view.stock.report.DataList', {
         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();
+            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.' + xr.join();
+            var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
     }, {

+ 56 - 8
frontend/saas-web/app/view/stock/report/ProdinoutCount.js

@@ -58,12 +58,24 @@ Ext.define('saas.view.stock.report.ProdinoutCount', {
             text: '数量',
             dataIndex:'pwm_beginqty',
             xtype: 'numbercolumn',
-            width:110
+            width:110,
+            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:'pwm_beginamount',
             xtype: 'numbercolumn',
-            width:110
+            width:110,
+            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);
+            }
         }]
     }, {
         text: '入库合计',
@@ -71,12 +83,24 @@ Ext.define('saas.view.stock.report.ProdinoutCount', {
             text: '数量',
             dataIndex:'pwm_nowinqty',
             xtype: 'numbercolumn',
-            width:110
+            width:110,
+            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:'pwm_nowinamount',
             xtype: 'numbercolumn',
-            width:110
+            width:110,
+            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);
+            }
         }]
     }, {
         text: '出库合计',
@@ -84,12 +108,24 @@ Ext.define('saas.view.stock.report.ProdinoutCount', {
             text: '数量',
             dataIndex:'pwm_nowoutqty',
             xtype: 'numbercolumn',
-            width: 110
+            width: 110,
+            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:'pwm_nowoutamount',
             xtype: 'numbercolumn',
-            width: 110
+            width: 110,
+            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);
+            }
         }]
     }, {
         text: '结存',
@@ -97,12 +133,24 @@ Ext.define('saas.view.stock.report.ProdinoutCount', {
             text: '数量',
             dataIndex:'pwm_endqty',
             xtype: 'numbercolumn',
-            width: 110
+            width: 110,
+            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:'pwm_endamount',
             xtype: 'numbercolumn',
-            width: 110
+            width: 110,
+            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);
+            }
         }]
     }]
 });

+ 6 - 1
frontend/saas-web/app/view/stock/report/Prodiodetail.js

@@ -128,7 +128,12 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
         text: '成本单价',
         xtype: 'numbercolumn',
         dataIndex: 'pd_price',
-        xtype: 'numbercolumn'
+        renderer: function(v) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
+            return Ext.util.Format.number(v, format);
+        }
     },{
         text: '订单号',
         dataIndex: 'pd_ordercode',

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

@@ -142,7 +142,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
                         '<tpl if="!begin">x-guide-mask </tpl>',
                         '" src="resources/images/guide/begin.png" style="background: #ffffff;" align ="center" width="135" height="90" alt="开始使用"  >',
                         '<figcaption>',
-                        '开启云进销存',
+                        '开启U企云服务',
                         '</figcaption>',
                         '</figure>',
 

+ 15 - 0
frontend/saas-web/overrides/exporter/Stylesheet.js

@@ -0,0 +1,15 @@
+Ext.define('saas.override.exporter.Stylesheet', {
+    override: 'Ext.exporter.file.ooxml.excel.Stylesheet',
+
+    numberPatterns: {
+        'General Number': 1,
+        'Fixed': 2,
+        'Standard': 2,
+        'Percent': 10,
+        'Scientific': 11,
+        'Currency': '"$"#,##0.00',
+        'Euro Currency': '"€"#,##0.00',
+        'Total':'#,##0.00'
+    }
+
+});