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

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

rainco 7 жил өмнө
parent
commit
0e3eb018ef
30 өөрчлөгдсөн 831 нэмэгдсэн , 237 устгасан
  1. 45 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/HomePageController.java
  2. 16 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/HomePageMapper.java
  3. 41 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/HomePageService.java
  4. 80 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/HomePageServiceImpl.java
  5. 62 0
      applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml
  6. 15 0
      frontend/saas-web/app/model/document/ProductDetail.js
  7. 8 0
      frontend/saas-web/app/model/home/Info.js
  8. 2 1
      frontend/saas-web/app/view/core/form/FormPanelController.js
  9. 0 2
      frontend/saas-web/app/view/document/customer/FormPanel.js
  10. 65 0
      frontend/saas-web/app/view/document/product/FormController.js
  11. 124 0
      frontend/saas-web/app/view/document/product/FormPanel.js
  12. 10 36
      frontend/saas-web/app/view/home/Home.js
  13. 21 2
      frontend/saas-web/app/view/home/Home.scss
  14. 31 2
      frontend/saas-web/app/view/home/HomeModel.js
  15. 135 92
      frontend/saas-web/app/view/home/InfoCard.js
  16. 47 35
      frontend/saas-web/app/view/home/InfoCard.scss
  17. 13 9
      frontend/saas-web/app/view/main/Main.js
  18. 54 0
      frontend/saas-web/app/view/main/Main.scss
  19. 2 0
      frontend/saas-web/app/view/sale/sale/FormPanelController.js
  20. 4 21
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  21. 47 0
      frontend/saas-web/app/view/sys/manager/FormPanel.js
  22. 1 1
      frontend/saas-web/app/view/viewport/ViewportModel.js
  23. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot
  24. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js
  25. 0 21
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg
  26. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf
  27. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff
  28. 1 13
      frontend/saas-web/packages/font-saas/sass/etc/icons.scss
  29. BIN
      frontend/saas-web/resources/images/default/user-icon.png
  30. 7 2
      frontend/saas-web/resources/json/navigation.json

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

@@ -0,0 +1,45 @@
+package com.usoftchina.saas.commons.controller;
+
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.service.HomePageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.ServletRequest;
+
+/**
+ * @author: guq
+ * @create: 2018-11-12 19:19
+ * saas首页接口
+ **/
+@RestController
+@RequestMapping("homePage")
+public class HomePageController {
+
+    @Autowired
+    private HomePageService homePageService;
+
+
+    @GetMapping("liveData")
+    public Result liveData(ServletRequest req) {
+        return homePageService.liveDate();
+    }
+
+    @GetMapping("purchaseData")
+    public Result purchaseData(Boolean sixMonths) {
+        return homePageService.purchaseData(sixMonths);
+    }
+
+    @GetMapping("storageData")
+    public Result storageData(ServletRequest req) {
+        return homePageService.storageData();
+    }
+
+
+    @RequestMapping("payAndRecData")
+    public Result payAndRecData(ServletRequest req) {
+        return homePageService.payAndRecData();
+    }
+}

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

@@ -0,0 +1,16 @@
+package com.usoftchina.saas.commons.mapper;
+
+import java.util.Map;
+
+public interface HomePageMapper {
+
+    void getLiveData(Map<String, Object> map);
+
+    String getPurchaseDataNow(Long componyId);
+
+    String getPurchaseDataInSixMonth(Long componyId);
+
+    String getStorageData(Long componyId);
+
+    String getPayAndRecData(Long companyId);
+}

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

@@ -0,0 +1,41 @@
+package com.usoftchina.saas.commons.service;
+
+import com.usoftchina.saas.base.Result;
+
+public interface HomePageService {
+
+    /**
+    * @Description 获取首页实时数据
+    * @Param: []
+    * @return: com.usoftchina.saas.base.Result
+    * @Author: guq
+    * @Date: 2018/11/12
+    */
+    Result liveDate();
+
+    /**
+    * @Description  获取采购额
+    * @Param: [sixMonths] 区别本月与6个月
+    * @return: com.usoftchina.saas.base.Result
+    * @Author: guq
+    * @Date: 2018/11/13
+    */
+    Result purchaseData(Boolean sixMonths);
+
+    /**
+    * @Description 获取库存数据
+    * @Param: []
+    * @return: com.usoftchina.saas.base.Result
+    * @Author: guq
+    * @Date: 2018/11/13
+    */
+    Result storageData();
+    /**
+    * @Description 获取本月收入支出数据
+    * @Param: []
+    * @return: com.usoftchina.saas.base.Result
+    * @Author: guq
+    * @Date: 2018/11/13
+    */
+    Result payAndRecData();
+}

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

@@ -0,0 +1,80 @@
+package com.usoftchina.saas.commons.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.mapper.HomePageMapper;
+import com.usoftchina.saas.commons.service.HomePageService;
+import com.usoftchina.saas.context.BaseContextHolder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author: guq
+ * @create: 2018-11-12 19:30
+ **/
+@Service
+public class HomePageServiceImpl implements HomePageService{
+
+    @Autowired
+    private HomePageMapper homePageMapper;
+
+    @Override
+    public Result liveDate() {
+        Long componyId = BaseContextHolder.getCompanyId();
+        Object json = null;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("componyid", componyId);
+        map.put("res", "");
+        homePageMapper.getLiveData(map);
+        if (null != map.get("res")) {
+            json = parseJson(map.get("res").toString());
+        }
+        return Result.success(json);
+    }
+
+    @Override
+    public Result purchaseData(Boolean sixMonths) {
+        Long componyId = BaseContextHolder.getCompanyId();
+        String res = null;
+        Object json = null;
+        if (null != sixMonths && sixMonths) {
+            res = homePageMapper.getPurchaseDataInSixMonth(componyId);
+            json = parseJson(res);
+            return Result.success(json);
+        }
+        res = homePageMapper.getPurchaseDataNow(componyId);
+        json = parseJson(res);
+        return Result.success(json);
+    }
+
+    @Override
+    public Result storageData() {
+        Long componyId = BaseContextHolder.getCompanyId();
+        Object json = parseJson(homePageMapper.getStorageData(componyId));
+        return Result.success(json);
+    }
+
+    @Override
+    public Result payAndRecData() {
+        Long componyId = BaseContextHolder.getCompanyId();
+        Object json = parseJson(homePageMapper.getPayAndRecData(componyId));
+        return Result.success(json);
+    }
+
+    private Object parseJson(String text) {
+        Object json = null;
+        if (null != text) {
+            try {
+                json = JSON.parse(text);
+            }catch (Exception e) {
+                e.printStackTrace();
+            }
+            return json;
+        }
+        return null;
+    }
+}

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

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.usoftchina.saas.commons.mapper.HomePageMapper" >
+    <parameterMap id="sp_livedata" type="java.util.Map">
+        <parameter property="componyid"  mode="IN" />
+        <parameter property="res" jdbcType="VARCHAR" mode="OUT" />
+    </parameterMap>
+
+    <select id="getLiveData" parameterMap="sp_livedata" statementType="CALLABLE">
+        CALL  SP_LIVEDATA(?,?)
+    </select>
+
+    <select id="getPurchaseDataNow" parameterType="long" resultType="string">
+        select concat('{',GROUP_CONCAT(concat('"',si_vendname,'":',IFNULL(si_amount,0))),'}') from statsinfo
+        where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(now(),'%Y%m') and si_type='PURC' ORDER BY si_amount desc
+    </select>
+
+    <select id="getPurchaseDataInSixMonth" parameterType="long" resultType="string">
+    select concat('{',d1,',',d2,',',d3,',',d4,',',d5,',',d6,'}') from (
+(select concat('"',DATE_FORMAT(now(),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d1 from   statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(now(),'%Y%m') and si_type='PURC' ORDER BY si_amount desc) data_1,
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 1 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d2 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 1 MONTH),'%Y%m') and si_type='PURC' ORDER BY si_amount desc)data_2,
+
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 2 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d3 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 2 MONTH),'%Y%m') and si_type='PURC' ORDER BY si_amount desc)data_3,
+
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 3 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d4 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 3 MONTH),'%Y%m') and si_type='PURC' ORDER BY si_amount desc) data_4,
+
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 4 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d5 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 4 MONTH),'%Y%m') and si_type='PURC' ORDER BY si_amount desc)data_5,
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 5 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d6 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 5 MONTH),'%Y%m') and si_type='PURC' ORDER BY si_amount desc)data_6)
+ </select>
+
+
+    <select id="getStorageData" parameterType="long" resultType="string">
+      select concat('{',d1,',',d2,',',d3,',',d4,',',d5,',',d6,'}') from (
+
+(select concat('"',DATE_FORMAT(now(),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d1 from   statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(now(),'%Y%m') and si_type='STOCK' ORDER BY si_amount desc) data_1,
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 1 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d2 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 1 MONTH),'%Y%m') and si_type='STOCK' ORDER BY si_amount desc)data_2,
+
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 2 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d3 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 2 MONTH),'%Y%m') and si_type='STOCK' ORDER BY si_amount desc)data_3,
+
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 3 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d4 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 3 MONTH),'%Y%m') and si_type='STOCK' ORDER BY si_amount desc) data_4,
+
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 4 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d5 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 4 MONTH),'%Y%m') and si_type='STOCK' ORDER BY si_amount desc)data_5,
+
+(select concat('"',DATE_FORMAT(date_sub(now(),interval 5 MONTH),'%Y%m'),'":',ifnull(ROUND(sum((ifnull(si_amount,0))),2),'0')) d6 from  statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(date_sub(now(),interval 5 MONTH),'%Y%m') and si_type='STOCK' ORDER BY si_amount desc)data_6);
+    </select>
+
+
+    <select id="getPayAndRecData" parameterType="long" resultType="string">
+     select concat('{"支出":',ifnull(si_amount_pay,'0'),',"收入":',ifnull(si_amount_rec,'0'),'}') from statsinfo where companyid=#{componyId} and si_yearmonth=DATE_FORMAT(now(),'%Y%m') and si_type='FUND'
+    </select>
+
+
+</mapper>

+ 15 - 0
frontend/saas-web/app/model/document/ProductDetail.js

@@ -0,0 +1,15 @@
+Ext.define('saas.model.document.ProductDetail', {
+    extend: 'saas.model.Base',
+    fields: [
+        { name: 'id', type: 'int' },
+        { name: 'pd_prodid', type: 'int' },
+        { name: 'pd_prodcode', type: 'string' },
+        { name: 'pd_detno', type: 'int' },
+        { name: 'pd_whcode', type: 'string' },
+        { name: 'pd_whname', type: 'string' },
+        { name: 'pd_whid', type: 'int' },
+        { name: 'pd_price', type: 'string' },
+        { name: 'pd_amount', type: 'int' },
+        { name: 'pd_num', type: 'int' }
+    ]
+});

+ 8 - 0
frontend/saas-web/app/model/home/Info.js

@@ -0,0 +1,8 @@
+Ext.define('saas.model.home.Info', {
+    extend: 'saas.model.Base',
+    fields: [
+        { name: 'title', type: 'string' },
+        { name: 'content', type: 'string' },
+        { name: 'color', type: 'string' }
+    ]
+});

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

@@ -175,11 +175,12 @@ Ext.define('saas.view.core.form.FormPanelController', {
         form = this.getView(),
         detailCount = form.detailCount,
         viewModel = me.getViewModel(),
+        id = viewModel.get(form._idField),
         modelData = viewModel.getData();
 
         var dirty = form.isDirty();
 
-        if(dirty) {
+        if(id && dirty) {
             showConfirm('提示', form.dirtyAuditText)
             .then(function(yes) {
                 if(yes == 'yes') {

+ 0 - 2
frontend/saas-web/app/view/document/customer/FormPanel.js

@@ -215,7 +215,6 @@ Ext.define('saas.view.document.customer.FormPanel', {
         hidden:true,
         columnWidth : 0
     }, {
-        height: 169,
         xtype : "detailGridField", 
         storeModel:'saas.model.document.customercontact',
         detnoColumn: 'cc_detno',
@@ -321,7 +320,6 @@ Ext.define('saas.view.document.customer.FormPanel', {
                 }
             }]
     } ,{
-        height: 169,
         xtype : "detailGridField", 
         storeModel:'saas.model.document.customeraddress',
         detnoColumn: 'ca_detno',

+ 65 - 0
frontend/saas-web/app/view/document/product/FormController.js

@@ -133,6 +133,71 @@ Ext.define('saas.view.document.product.FormController', {
                     }) ;   
 
                 }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pd_whname]': {
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dataUrl: '/api/document/warehouse/list',
+                        addXtype: 'other-warehouse',
+                        addTitle: '仓库资料',
+                        defaultCondition:"wh_statuscode='OPEN'",
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'pd_whid',ignore:true
+                        }, {
+                            from: 'wh_code',
+                            to: 'pd_whcode'
+                        }, {
+                            from: 'wh_description',
+                            to: 'pd_whname'
+                        }],
+                        dbtpls: [{
+                            field: 'pd_whcode',
+                            width: 100
+                        }, {
+                            field: 'pd_whname',
+                            width: 100
+                        }],
+                        dbSearchFields:[{
+                            emptyText:'输入仓库编号或名称',
+                            xtype : "textfield", 
+                            name : "wh_code", 
+                            allowBlank : true, 
+                            columnWidth : 0.25,
+                            getCondition:function(v){
+                                return "(upper(wh_code) like '%"+v.toUpperCase()+"%' or upper(wh_description) like '%"+v.toUpperCase()+"%')";
+                            }
+                        }],                        
+                        dbColumns: [{
+                            "text": "仓库ID",
+                            "flex": 0,
+                            "dataIndex": "id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "仓库编号",
+                            "flex": 1,
+                            "dataIndex": "wh_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "仓库名称",
+                            "flex": 1,
+                            "dataIndex": "wh_description",
+                            "xtype": "",
+                            "items": null
+                        },{
+                            "text": "仓库类型",
+                            "flex": 1,
+                            "dataIndex": "wh_type",
+                            "xtype": "",
+                            "items": null
+                        }]
+                    });
+                },
             }
         });
 

+ 124 - 0
frontend/saas-web/app/view/document/product/FormPanel.js

@@ -197,6 +197,130 @@ Ext.define('saas.view.document.product.FormPanel', {
         xtype : "datefield", 
         name : "updateTime", 
         fieldLabel : "更新时间"
+    },{
+        xtype : "detailGridField", 
+        storeModel:'saas.model.document.ProductDetail',
+        detnoColumn: 'pd_detno',
+        showCount: false,
+        deleteDetailUrl:'/api/document/customer/delete/',
+        columns : [{
+            text : "ID", 
+            dataIndex : "id", 
+            hidden : true,  
+            xtype : "numbercolumn"
+        },
+        {
+            text : "物料ID", 
+            dataIndex : "pd_prodid", 
+            hidden : true,  
+            xtype : "numbercolumn"
+        },
+        {
+            allowBlank:false,
+            text : "仓库编号", 
+            editor : {
+                displayField : "display", 
+                editable : true, 
+                format : "", 
+                hideTrigger : false, 
+                maxLength : 100.0, 
+                minValue : null, 
+                positiveNum : false, 
+                queryMode : "local", 
+                store : null, 
+                valueField : "value", 
+                xtype : "dbfindtrigger"
+            },
+            dataIndex : "pd_whcode", 
+            xtype : "", 
+            items : null
+        },
+        {
+            allowBlank:true,
+            readOnly:true,
+            editable:false,
+            text : "仓库名称", 
+            dataIndex : "pd_whname", 
+            xtype : "", 
+        },{
+            allowBlank:true,
+            hidden:true,
+            text : "仓库ID", 
+            dataIndex : "pd_whid", 
+            xtype : "numberfield", 
+        },
+        {
+            allowBlank:true,
+            text : "期初数量", 
+            dataIndex : "pd_num", 
+            xtype: 'numbercolumn',
+            width : 120.0,
+            allowBlank : false,
+            editor : {
+                xtype : "numberfield",
+                decimalPrecision: 0,
+                minValue:0
+            },
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(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)).fill('0');
+                var format = '0.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            }
+        },
+        {
+            text : "单位成本", 
+            dataIndex : "pd_price", 
+            allowBlank:false,
+            xtype: 'numbercolumn',
+            width : 120.0,
+            allowBlank : false,
+            editor : {
+                xtype : "numberfield",
+                decimalPrecision: 8,
+                minValue:0
+            },
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(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)).fill('0');
+                var format = '0.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            }
+        },
+        {
+            text : "期初总价", 
+            dataIndex : "pd_amount", 
+            xtype: 'numbercolumn',
+            width : 120.0,
+            allowBlank : true,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(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)).fill('0');
+                var format = '0.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            }
+        }]
     }],
 
     defaultButtons:[{

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

@@ -11,56 +11,30 @@ Ext.define('saas.view.home.Home', {
 
     controller: 'home',
     viewModel: {
-        type: 'chartsmodel'
+        type: 'home'
     },
 
+    cls: 'x-home-panel',
+
     layout: 'responsivecolumn',
 
     scrollable: true,
 
     defaults: {
         shadow: true,
-        xtype: 'panel',
-        layout: 'column',
-        cls: 'x-home-panel',
+        cls: 'x-home-box',
         userCls: 'big-100 small-100',
     },
 
     items: [{
-        title: '实时数据',
-        xtype: 'infocard',
-        infoData: [{
-            title: '七天内待出货销售',
-            content: '168件',
-            color: 'yellow',
-        }, {
-            title: '七天内待入库采购',
-            content: '168件',
-            color: 'purple',
-        }, {
-            title: '七天内代付款',
-            content: '168件',
-            color: 'red',
-        }, {
-            title: '七天内代收款',
-            content: '168件',
-            color: 'yellow',
-        }, {
-            title: '未审核验收',
-            content: '168件'
-        }, {
-            title: '七天内待出货销售',
-            content: '168件'
-        }, {
-            title: '未审核出货',
-            content: '168件'
-        }]
+        xtype: 'infocard'
     }, {
+        xtype: 'panel',
         title: '2018年11月经营分析',
-        latyout: 'column',
+        latyout: 'responsivecolumn',
         // items: [{
         //     xtype: 'core-chart-pie',
-        //     columnWidth: 0.33,
+        //     userCls: 'big-33 small-50',
         //     chartConfig: {
         //         captions: {
         //             credits: {
@@ -72,10 +46,10 @@ Ext.define('saas.view.home.Home', {
         //     }
         // }, {
         //     xtype: 'core-chart-bar',
-        //     columnWidth: 0.33
+        //     userCls: 'big-33 small-50',
         // }, {
         //     xtype: 'core-chart-gauge',
-        //     columnWidth: 0.33
+        //     userCls: 'big-33 small-50',
         // }]
     }, {
         title: '2018年11月经营分析',

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

@@ -92,6 +92,17 @@ $unaudit-purc-container-color: dynamic(#e91e63);
 }
 
 .x-home-panel {
+
+    &> .x-autocontainer-outerCt {
+        display: block;
+
+        &> .x-autocontainer-innerCt {
+            display: block;
+        }
+    }
+}
+
+.x-home-box {
     border-radius: 2px;
 
     &>.x-panel-header {
@@ -126,26 +137,32 @@ $unaudit-purc-container-color: dynamic(#e91e63);
 }
 
 .big-100 {
+    // width: 100%;
     @include responsivecolumn-item(100%);
 }
 
 .big-60 {
+    // width: 60%;
     @include responsivecolumn-item(60%);
 }
 
 .big-50 {
+    // width: 50%;
     @include responsivecolumn-item(50%);
 }
 
 .big-40 {
+    // width: 40%;
     @include responsivecolumn-item(40%);
 }
 
 .big-33 {
+    // width: 33.33%;
     @include responsivecolumn-item(33.33%);
 }
 
 .big-20 {
+    // width: 20%;
     @include responsivecolumn-item(20%);
 }
 
@@ -154,10 +171,12 @@ $unaudit-purc-container-color: dynamic(#e91e63);
 
  .x-responsivecolumn-small {
      > .small-100 {
-         @include responsivecolumn-item(100%);
+        // width: 100%;
+        @include responsivecolumn-item(100%);
      }
 
      > .small-50 {
-         @include responsivecolumn-item(50%);
+        // width: 50%;
+        @include responsivecolumn-item(50%);
      }
 }

+ 31 - 2
frontend/saas-web/app/view/home/ChartsModel.js → frontend/saas-web/app/view/home/HomeModel.js

@@ -1,8 +1,37 @@
-Ext.define('saas.view.home.ChartsModel', {
+Ext.define('saas.view.home.HomeModel', {
     extend: 'Ext.app.ViewModel',
-    alias: 'viewmodel.chartsmodel',
+    alias: 'viewmodel.home',
 
     stores: {
+        infoData: {
+            model: 'saas.model.home.Info',
+            autoLoad: true,
+            proxy: {
+                type: 'ajax',
+                // url: 'http://192.168.253.58:8920/homePage/liveData',
+                url: '/api/common/homePage/liveData',
+                reader: {
+                    type: 'json'
+                },
+                listeners: {
+                    exception: function(proxy, response, operation, eOpts) {
+                        Ext.getCmp('infocard').setLoading(false);
+                    }
+                }
+            },
+            listeners: {
+                beforeload: function() {
+                    Ext.getCmp('infocard').setLoading(true);
+                },
+                load: function(s, d) {
+                    Ext.getCmp('infocard').setLoading(false);
+
+                    var res = d[0].data.data || {};
+
+                    Ext.getCmp('infocard').addCardItems(res);
+                }
+            }
+        },
         barData: {
             model: 'saas.model.chart.DataXY',
             data: [

+ 135 - 92
frontend/saas-web/app/view/home/InfoCard.js

@@ -2,127 +2,170 @@ Ext.define('saas.view.home.InfoCard', {
     extend: 'Ext.panel.Panel',
     xtype: 'infocard',
 
-    latyou: 'fit',
+    id: 'infocard',
 
-    initComponent: function() {
-        var me = this;
+    requires: [
+        'Ext.layout.container.Card'
+    ],
 
-        var view = Ext.create('Ext.view.View', {
-            store : Ext.create('Ext.data.Store', {
-				fields: ['title', 'content', 'color'],
-				data: me.infoData,
-			}),
-            tpl: new Ext.XTemplate([
-                '<div class="x-row">',
-                    '<tpl for=".">',
-                    '<div class="x-col">',
-                        '<div>',
-                            '<div class="x-box ',
-                                '<tpl if="color"> x-bg-{color}</tpl>',
-                                '<tpl else"> x-bg-default</tpl>',
-                            '">',
-                                '<h3>{title}</h3>',
-                                '<p>{content}</p>',
-                            '</div>',
-                        '</div>',
-                    '</div>',
-                    '</tpl>',
-                '</div>'
-            ]),
-            itemSelector: 'div.x-info-card-body',
-        });
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+
+    layout: 'card',
+    cardTpl: [
+        '<div class="x-row">',
+        '<tpl for=".">',
+        '<div class="x-col">',
+        '<div>',
+        '<div class="x-box ',
+        '<tpl if="color"> x-bg-{color}</tpl>',
+        '<tpl else"> x-bg-default</tpl>',
+        '">',
+        '<h3>{title}</h3>',
+        '<p>{content}</p>',
+        '</div>',
+        '</div>',
+        '</div>',
+        '</tpl>',
+        '</div>'
+    ],
+
+    cards: {
+        unship: {
+            title: '七天内待出货销售',
+            color: 'yellow'
+        },
+        unstorage: {
+            title: '七天内待入库采购',
+            color: 'purple'
+        },
+        unpay: {
+            title: '七天内代付款',
+            color: 'red'
+        },
+        unreceive: {
+            title: '七天内代收款',
+            color: 'pink'
+        },
+        unauditcheck: {
+            title: '未审核验收',
+            color: 'blue'
+        },
+        unauditship: {
+            title: '未审核出货',
+            color: ''
+        }
+    },
+
+    initComponent: function () {
+        var me = this;
 
         Ext.apply(me, {
             userCls: 'x-info-card ' + me.userCls,
-            items: [{
-                xtype: 'button',
+            lbar: [{
+                itemId: 'card-prev',
                 cls: 'x-scroller-button x-scroller-button-left',
-                // iconCls: 'x-sa sa-arrows-left',
-                disabled: true,
                 handler: function() {
-                    me.scrollBody(1);
-                }
-            }, view, {
-                xtype: 'button',
+                    me. showPrevious();
+                },
+                disabled: true
+            }],
+            rbar: [{
+                itemId: 'card-next',
                 cls: 'x-scroller-button x-scroller-button-right',
-                // iconCls: 'x-sa sa-arrows-right',
                 handler: function() {
-                    me.scrollBody(-1);
+                    me.showNext();
                 }
-            }]
+            }],
+            items: [],
         });
 
         me.callParent(arguments);
     },
 
     listeners: {
-        boxready: function(th) {
-            var list = Ext.fly(th.items.items[1].el.dom);
-            var listWidth = Number(list.getStyle('width').replace('px', ''));
-            var bodyWidth = th.body.getBox().width;
-            var btns = th.query('button');
-
-            if(listWidth <= (bodyWidth-88)) {
-                btns[0].setVisible(false);
-                btns[1].setVisible(false);
-                return;
-            }
-
-            Ext.fly(th.body).on('mousewheel', function() {
-                var ev = window.event;
-                var delta = ev.wheelDelta;
-
-                if(ev.preventDefault) {
-                    ev.preventDefault();  
-                }
-                else {
-                    ev.cancel=true;
-                }
-                th.scrollBody(delta/120);
-            })
+        boforerender: function(m) {
+            m.addCardItems();
         }
     },
 
-    scrollBody: function(delta) {
-        var me = this;
-        var list = Ext.fly(me.items.items[1].el.dom);
-        var marginLeft = Number(list.getStyle('marginLeft').replace('px', ''));
-        var le = marginLeft + delta * 50;
-        var MAX_LEN = list.getBox().width - (me.body.getBox().width - 88);
-
-        if(le > 0) {
-            le = 0;
-            me.scrollLeftDisabled();
-        }else if(le < -MAX_LEN) {
-            le = -MAX_LEN;
-            me.scrollRightDisabled();
-        }else {
-            me.scrollEnable();
+    addCardItems: function(infoData) {
+        infoData = infoData || {};
+        var me = this,
+        p = me.up('home'),
+        cards = me.cards,
+        datas = [],
+        items = [];
+        size = Math.ceil(me.body.el.getBox().width / 235);
+
+        me.removeAll();
+
+        var cl = Ext.Object.getAllKeys(cards);
+
+        for(var x = 0; x < cl.length;) {
+            var d = [];
+            for(var y = 0; y < size && x < cl.length; y++) {
+                var key = cl[x];
+                d.push(Ext.merge(cards[key], {
+                    content: infoData[key] || 0
+                }));
+                x++;
+            }
+            datas.push(d);
         }
 
-        list.setStyle({
-            marginLeft: le + 'px'
+        console.log(datas);
+
+        Ext.Array.each(datas, function(d, i) {
+
+            var store = Ext.create('Ext.data.Store', {
+                fields: ['title', 'content', 'color'],
+                data: d,
+            });
+
+            var view = Ext.create('Ext.view.View', {
+                store: store,
+                tpl: new Ext.XTemplate(me.cardTpl),
+                itemSelector: 'div.x-info-card-body',
+            });
+
+            var item = {
+                xtype: 'panel',
+                id: 'card-' + i,
+                items: view
+            };
+            me.add(item);
         });
+
+        if(datas.length <= 1) {
+            me.hidePageTrigger();
+        }
+
+        me.updateLayout(true);
     },
-    
-    scrollLeftDisabled: function() {
+
+    hidePageTrigger: function() {
         var me = this;
-        var leftBtn = me.query('button')[0];
-        leftBtn.setDisabled(true);
+        me.down('#card-prev').hide();
+        me.down('#card-next').hide();
     },
 
-    scrollRightDisabled: function() {
-        var me = this;
-        var rightBtn = me.query('button')[1];
-        rightBtn.setDisabled(true);
+    showNext: function () {
+        this.doCardNavigation(1);
     },
 
-    scrollEnable: function() {
+    showPrevious: function (btn) {
+        this.doCardNavigation(-1);
+    },
+
+    doCardNavigation: function (incr) {
         var me = this;
-        var btns = me.query('button');
+        var l = me.getLayout();
+        var i = l.activeItem.id.split('card-')[1];
+        var c = me.items.items.length;
+        var next = parseInt(i, 10) + incr;
+        l.setActiveItem(next);
 
-        for(var i = 0; i < btns.length; i ++) {
-            btns[i].setDisabled(false);
-        }
+        me.down('#card-prev').setDisabled(next === 0);
+        me.down('#card-next').setDisabled(next === (c-1));
     }
 });

+ 47 - 35
frontend/saas-web/app/view/home/InfoCard.scss

@@ -1,39 +1,41 @@
-$card-width: 200px;
+$max-card-width: 235px;
 
 .x-info-card {
 
     .x-panel-bodyWrap {
         .x-autocontainer-innerCt {
-            padding: 0 44px;
-        }
-        .x-row {
-            display: flex;
-            flex-wrap: nowrap;
-        
-            .x-col {
-        
-                color: #fff;
-                padding: 10px;
-        
-                .x-box {
-                    padding: 16px;
-                    width: 235px;
-                    height: 131px;
-                    border-radius: 0.5rem;
-                    box-shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);
-                    position: relative;
-                    display: block;
-        
-                    h3 {
-                        font-size: 16px;
-                    }
-        
-                    p {
-                        font-size: 24px;
-                        text-align: center;
-                        margin-top: 32px;
+
+            .x-row {
+                display: flex;
+                width: 100%;
+                justify-content: flex-start;
+            
+                .x-col {
+            
+                    flex: 1;
+                    max-width: $max-card-width;
+                    color: #fff;
+                    padding: 10px;
+            
+                    .x-box {
+                        padding: 16px;
+                        height: 131px;
+                        border-radius: 0.5rem;
+                        box-shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);
+                        position: relative;
+                        display: block;
+            
+                        h3 {
+                            font-size: 16px;
+                        }
+            
+                        p {
+                            font-size: 24px;
+                            text-align: center;
+                            margin-top: 32px;
+                        }
+            
                     }
-        
                 }
             }
         }
@@ -41,12 +43,13 @@ $card-width: 200px;
 }
 
 .x-scroller-button {
-    position: absolute;
+    position: absolute !important;
     z-index: 1;
-    width: 44px;
-    height: 100%;
-    padding: 0;
-    background-color: white;
+    width: 44px !important;
+    min-width: 44px !important;
+    height: 145px !important;
+    padding: 0 !important;
+    background-color: white !important;
     border: none !important;
     box-shadow: none !important;
     background-repeat: no-repeat !important;
@@ -85,4 +88,13 @@ $card-width: 200px;
 }
 .x-bg-red {
     background: linear-gradient(to right, #FA8B86 , #F36487);
+}
+.x-bg-blue {
+    background: linear-gradient(to right, #1AD0C5 , #26CBDB);
+}
+.x-bg-pink {
+    background: linear-gradient(to right, #FA8A86 , #F26187);
+}
+.x-bg-gray {
+    background: linear-gradient(to right, #D8D8D8 , #D8D8D8);
 }

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

@@ -67,6 +67,7 @@ Ext.define('saas.view.main.Main', {
                     iconCls:'x-fa fa-question',
                     ui: 'header',
                     arrowVisible: false,
+                    tooltip: '帮助',
                     width:50, 
                     listeners:{
                         'mouseover':function(){
@@ -78,10 +79,12 @@ Ext.define('saas.view.main.Main', {
                             if(cx <= btnLayout.left || cx >= btnLayout.left+btnLayout.width || cy <= btnLayout.top) {
                                 btn.hideMenu();
                             }
-                        } 
+                        },'mouseleave':function(enu){
+                            this.hide();
+                        }
                     },
                     menu: {
-                        cls:'nav-menu',
+                        cls:'x-main-menu',
                         items: [{
                             text: '新手导航',
                             iconCls:'x-fa fa-comment-o',
@@ -125,7 +128,7 @@ Ext.define('saas.view.main.Main', {
                     }
                 },
                 {
-                    margin: '0 0 0 8',
+                    margin: '0 0 0 0',
                     xtype: 'tbtext',
                     cls:'nav-realname',
                     bind: {
@@ -139,14 +142,15 @@ Ext.define('saas.view.main.Main', {
                 },
                 {
                     ui: 'header',
-                    id:"userImage",
-                    height: 35,
-                    width: 35,
-                     bind: {
-                        html:'<img class="x-img x-box-item x-toolbar-item x-img-header" style="width: 35px; height: 35px; margin: 0px;" src="{avatarUrl}" alt="">'
+                    arrowVisible: false,
+                    id:"userImage",    
+                    width: 50,
+                    height:50,    
+                    bind: {
+                        html:'<img class="x-img x-box-item x-toolbar-item x-img-header" style="height:35px;width:35px;margin-top: 6px;margin-left: 14px;" src="{avatarUrl}" alt="">'
                     }, 
                     menu: {
-                        cls:'nav-menu',
+                        cls:'x-main-menu2',
                         items: [ {  
                             text: '账户中心',
                             iconCls:'x-fa x-fa fa-user-o',

+ 54 - 0
frontend/saas-web/app/view/main/Main.scss

@@ -201,6 +201,18 @@ body > .x-mask {
 .nav-menu{
     color: #48C1F8 !important;
 }
+.icon-feedback{
+    margin-top: 0px;
+    background: url(../../../../resources/images/nav/feedback.png) 0 0 no-repeat; 
+    background-size: 16px 16px;
+    background-position: center;
+} 
+.user-icon{
+    margin-top: 0px;
+    background: url(../../../../resources/images/default/user-icon.png) 0 0 no-repeat; 
+    background-size: 32px 32px;
+    background-position: center;
+}
 .x-guide-mask{
     -webkit-filter: grayscale(100%);
     -moz-filter: grayscale(100%);
@@ -209,3 +221,45 @@ body > .x-mask {
     filter: grayscale(100%);
     filter: gray;
 }
+.x-main-menu::before{
+    content: ' ';
+    display: block;
+    border-style: solid;
+    box-shadow: 0px 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(15, 136, 232, 0.6);
+    box-shadow: aliceblue;
+    border-width: 17px;
+    border-color: #cccccc;
+    /* border-color: #cccccc #6e838e #9c9d9e #bdc3c5; */
+    position: fixed;
+    /* left: 100%; */
+    top: 26px;
+    -moz-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -webkit-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -o-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -ms-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -khtml-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    clip-path: polygon(0 100%, 50% 0, 100% 100%);
+    margin-top: 17px;
+    margin-left: 7px;
+}
+.x-main-menu2::before{
+    content: ' ';
+    display: block;
+    border-style: solid;
+    box-shadow: 0px 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(15, 136, 232, 0.6);
+    box-shadow: aliceblue;
+    border-width: 17px;
+    border-color: #cccccc;
+    /* border-color: #cccccc #6e838e #9c9d9e #bdc3c5; */
+    position: fixed;
+    /* left: 100%; */
+    top: 26px;
+    -moz-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -webkit-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -o-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -ms-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    -khtml-clip-path: polygon(100% 0px, 0 50%, 100% 100%);
+    clip-path: polygon(0 100%, 50% 0, 100% 100%);
+    margin-top: 25px;
+    margin-left: 47px;
+}

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

@@ -124,6 +124,8 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
                         {
                             from:'pr_code',to:'sd_prodcode'
                         }, {
+                            from:'pr_saleprice',to:'sd_price'
+                        },{
                             from:'pr_detail',to:'pr_detail'
                         }, {
                             from:'pr_spec',to:'pr_spec'

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

@@ -31,7 +31,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
                 },{
                     name:'begin',type:'boolean'
                 }],
-				autoLoad: true,
+				autoLoad: false,
                 pageSize: 10,
                 data: [{
                     baseSet:false,
@@ -157,30 +157,12 @@ Ext.define('saas.view.sys.guide.FormPanel', {
     },
 
     refresh:function(){
+        debugger
         this.ownerCt.setTitle('新手指引');
+        this.view.store.load();
         //刷新store数据
     },
 
-    getData:function(store){
-        var me = this;
-        //获取数据
-        me.BaseUtil.request({
-            url: me.dataUrl,
-            params: '',
-            method: 'GET',
-        })
-        .then(function(localJson) {
-            if(localJson.success){
-                store;
-                debugger
-            }
-        })
-        .catch(function(res) {
-            console.error(res);
-            showToast('读取初始化信息失败: ' + res.message);
-        });
-    },
-
     showInformation:function(type,value){
         var message = '';
         var xtype = '';
@@ -233,6 +215,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
         var width = box.width;
 
         var win = form.add(Ext.create('Ext.window.MessageBox', {
+            msg:message,
             buttonAlign : 'right',
             height:0.5*height,
             width:0.5*width,

+ 47 - 0
frontend/saas-web/app/view/sys/manager/FormPanel.js

@@ -0,0 +1,47 @@
+Ext.define('saas.view.sys.manager.FormPanel', {
+    extend: 'Ext.tab.Panel',
+    xtype: 'sys-manager-formpanel',
+    
+    layout:'fit',
+
+    bodyCls:'x-manager-background',
+    //工具类
+    FormUtil: Ext.create('saas.util.FormUtil'),
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+
+    tabBar: {
+        layout: {
+            pack: 'left'
+        },
+        border: false
+    },
+
+    defaults: {
+        iconAlign: 'left',
+        bodyPadding: 15
+    },
+
+    items: [{
+        icon:'x-fa fa-key',
+        title: '公司设置',
+        xtype:'sys-config-formpanel'
+    }, {
+        icon:'x-fa fa-key',
+        title: '账户设置',
+        xtype:'panel' 
+    }, {
+        icon:'x-fa fa-key',
+        title: '权限设置',
+        xtype:'sys-power-formpanel'
+    }],
+
+    initComponent: function () {
+        var me = this;
+        me.callParent(arguments);
+    },
+
+    refresh:function(){
+        this.ownerCt.setTitle('系统管理');
+    },
+
+});

+ 1 - 1
frontend/saas-web/app/view/viewport/ViewportModel.js

@@ -15,7 +15,7 @@ Ext.define('saas.view.viewport.ViewportModel', {
         },
         avatarUrl: function (get) {
             var account = get('account');
-            return (account && account.avatarUrl) || 'resources/images/default/user-profile-default.png'
+            return (account && account.avatarUrl) || 'resources/images/default/user-icon.png'
         }
     }    
 });

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


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


+ 0 - 21
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg

@@ -29,12 +29,6 @@ Created by iconfont
     <glyph glyph-name="weibiaoti1" unicode="&#61188;" d="M877.277612 354.961194L354.579104 354.961194c-33.623881 0-61.134328 27.510448-61.134328 61.134328l0 3.056716c0 33.623881 27.510448 61.134328 61.134328 61.134328l522.698507 0c33.623881 0 61.134328-27.510448 61.134328-61.134328l0-3.056716C935.355224 382.471642 907.844776 354.961194 877.277612 354.961194zM128.38209 896c21.397015 0 953.695522 0 981.20597 0 39.737313 0 122.268657-33.623881 122.268657-134.495522 0-119.21194-103.928358-134.495522-103.928358-134.495522s0-583.832836 0-623.570149c0-73.361194-64.191045-131.438806-128.38209-131.438806-76.41791 0-669.420896 0-764.179104 0s-134.495522 82.531343-134.495522 119.21194 0 635.797015 0 635.797015S0 645.349254 0 764.561194C0 850.149254 73.361194 896 128.38209 896zM195.629851 3.4388059999999996c0-24.453731 18.340299-39.737313 36.680597-39.737313s745.838806 0 767.235821 0 36.680597 21.397015 36.680597 39.737313c0 15.283582 0 593.002985 0 593.002985L195.629851 596.441791C195.629851 596.441791 195.629851 30.949253999999996 195.629851 3.4388059999999996zM91.701493 755.391045c0-21.397015 15.283582-39.737313 42.79403-39.737313 24.453731 0 935.355224 0 965.922388 0s39.737313 24.453731 39.737313 39.737313c0 15.283582 0 12.226866 0 12.226866 0 21.397015-18.340299 39.737313-39.737313 39.737313C1085.134328 804.298507 162.00597 804.298507 131.438806 804.298507 106.985075 804.298507 91.701493 782.901493 91.701493 764.561194 91.701493 761.5044780000001 91.701493 761.5044780000001 91.701493 755.391045z"  horiz-adv-x="1232" />
 
     
-    <glyph glyph-name="tuichu" unicode="&#59063;" d="M509-64H163.5c-54.8 0-99.5 44.6-99.5 99.5v696c0 54.8 44.6 99.5 99.5 99.5H511c16.6 0 30-13.4 30-30s-13.4-30-30-30H163.5c-21.8 0-39.5-17.7-39.5-39.5v-696.1c0-21.8 17.7-39.5 39.5-39.5H509c16.6 0 30-13.4 30-30S525.6-64 509-64zM898 354H414c-16.6 0-30 13.4-30 30s13.4 30 30 30h484c16.6 0 30-13.4 30-30s-13.4-30-30-30zM703.7 150.5c-7.7 0-15.4 2.9-21.2 8.8-11.7 11.7-11.7 30.7 0 42.4L864.8 384 682.5 566.3c-11.7 11.7-11.7 30.7 0 42.4s30.7 11.7 42.4 0l203.5-203.5c11.7-11.7 11.7-30.7 0-42.4L724.9 159.3c-5.9-5.9-13.5-8.8-21.2-8.8z"  horiz-adv-x="1024" />
-
-    
-    <glyph glyph-name="feedback" unicode="&#58994;" d="M285.762-31.706000000000017c-8.668 0-16.344 3.238-22.179 9.366-5.485 5.751-11.822 16.917-10.831 37.406l4.829 99.42h-88.324c-39.291 0-71.254 31.949-71.254 71.212v457.88c0 39.263 31.949 71.198 71.212 71.198h686.547c39.263 0 71.212-31.935 71.212-71.198v-457.88c0-39.263-32.144-71.212-71.658-71.212H485.649L317.976-18.390999999999963c-11.138-8.835-21.983-13.315-32.214-13.315zM169.216 686.19c-23.505 0-42.627-19.122-42.627-42.613v-457.88c0-23.505 19.136-42.627 42.668-42.627H287.59l-6.281-129.387c-0.447-9.268 1.312-14.572 2.973-16.302l1.48-0.503c1.284 0 6.099 0.516 14.46 7.132l175.461 139.06h379.633c23.756 0 43.073 19.122 43.073 42.627v457.88c0 23.491-19.122 42.613-42.627 42.613H169.216zM283.808 400.058c0 7.894 6.465 14.293 14.189 14.293h428.984c7.837 0 14.189-6.63 14.189-14.293 0-7.894-6.465-14.293-14.189-14.293H297.998c-7.837 0.001-14.19 6.631-14.19 14.293zM283.808 500.107c0 7.894 6.465 14.293 14.189 14.293h428.984c7.837 0 14.189-6.63 14.189-14.293 0-7.894-6.465-14.293-14.189-14.293H297.998c-7.837 0-14.19 6.63-14.19 14.293zM283.808 301.797c0 7.893 6.465 14.293 14.189 14.293h428.984c7.837 0 14.189-6.63 14.189-14.293 0-7.894-6.465-14.293-14.189-14.293H297.998c-7.837 0-14.19 6.63-14.19 14.293z"  horiz-adv-x="1024" />
-
-    
     <glyph glyph-name="document" unicode="&#58964;" d="M703.806 83.45799999999997v-145.491l223.781 177.459H735.774c-17.655 0-31.968-14.313-31.968-31.968zM831.682 831.5550000000001H192.318c-52.967 0-95.905-42.938-95.905-95.905v-703.3c0-52.967 42.938-95.905 95.905-95.905h447.555V116.577c0 35.311 28.625 63.937 63.936 63.937h223.778V735.65c0 52.967-42.938 95.905-95.905 95.905zM543.968 235.54100000000005H224.286v65.081h319.682v-65.081z m255.746 195.256H224.286v65.078h575.428v-65.078z m0 195.246H224.286v65.088h575.428v-65.088z"  horiz-adv-x="1024" />
 
     
@@ -47,18 +41,9 @@ Created by iconfont
     <glyph glyph-name="sale" unicode="&#58936;" d="M368.64 637.952l346.112 96.768 62.976-223.744-349.184-94.208L368.64 637.952z m61.952-261.12l524.8 148.992 65.024-216.064-521.728-145.365333-68.096 212.437333z m142.848-262.613333l429.525333 116.736 18.944-58.922667L588.8 55.29600000000005l-15.36 58.922667zM0 862.72h125.952v-16.896h125.952l159.744-628.693333-58.88-20.010667L199.68 796.672l-69.12 1.024-1.536-16.896L0 782.848V862.72z m518.656-830.421333a126.976 126.976 0 1 0-253.909333-0.128 126.976 126.976 0 0 0 253.909333 0.128z"  horiz-adv-x="1024" />
 
     
-    <glyph glyph-name="userBook" unicode="&#58880;" d="M816.78-1.5199999999999818H223a31.66 31.66 0 0 0-31.62 31.62V151.38a7.91 7.91 0 1 0 15.81 0v-121.27A15.83 15.83 0 0 1 223 14.299999999999955h593.78a15.83 15.83 0 0 1 15.81 15.81V765.38a15.83 15.83 0 0 1-15.81 15.81H222.17a15.83 15.83 0 0 1-15.81-15.81v-126.69a7.91 7.91 0 1 0-15.81 0V765.38A31.66 31.66 0 0 0 222.17 797h594.61a31.66 31.66 0 0 0 31.62-31.62v-735.27a31.66 31.66 0 0 0-31.62-31.63zM196.43 552.46a15.81 15.81 0 0 0 15.81-15.81v-77.59a15.81 15.81 0 0 0-15.81-15.81 15.81 15.81 0 0 0-15.81 15.81v77.59a15.81 15.81 0 0 0 15.81 15.81zM142.92 607.0699999999999H254a15.81 15.81 0 0 0 15.81-15.81A15.81 15.81 0 0 0 254 575.45H142.92a15.81 15.81 0 0 0-15.81 15.81 15.81 15.81 0 0 0 15.81 15.81zM142.92 425H254a15.81 15.81 0 0 0 15.81-15.81A15.81 15.81 0 0 0 254 393.42H142.92a15.81 15.81 0 0 0-15.81 15.81A15.81 15.81 0 0 0 142.92 425zM142.92 224.82000000000005H254A15.81 15.81 0 0 0 269.79 209 15.81 15.81 0 0 0 254 193.20000000000005H142.92a15.81 15.81 0 0 0-15.81 15.8 15.81 15.81 0 0 0 15.81 15.82zM196.43 352.24a15.81 15.81 0 0 0 15.81-15.81v-77.59A15.81 15.81 0 0 0 196.43 243a15.81 15.81 0 0 0-15.81 15.81v77.61a15.81 15.81 0 0 0 15.81 15.82zM715.65 461.45l178.35 0 0-145.62-178.35 0 0 145.62ZM874.23 315.83000000000004H735.42a19.78 19.78 0 0 0-19.77 19.77V441.69a19.79 19.79 0 0 0 19.77 19.77h138.81A19.79 19.79 0 0 0 894 441.69V335.6a19.78 19.78 0 0 0-19.77-19.77zM735.42 453.55a11.87 11.87 0 0 1-11.86-11.86V335.6a11.87 11.87 0 0 1 11.86-11.86h138.81a11.87 11.87 0 0 1 11.86 11.86V441.69a11.87 11.87 0 0 1-11.86 11.86zM374.77 607.0699999999999h325.07a15.81 15.81 0 0 0 15.81-15.81 15.81 15.81 0 0 0-15.81-15.81H374.77A15.81 15.81 0 0 0 359 591.26a15.81 15.81 0 0 0 15.77 15.81zM374.77 425h235.9a15.81 15.81 0 0 0 15.81-15.81 15.81 15.81 0 0 0-15.81-15.81h-235.9A15.81 15.81 0 0 0 359 409.23 15.81 15.81 0 0 0 374.77 425z"  horiz-adv-x="1024" />
-
-    
     <glyph glyph-name="arrows-left" unicode="&#61186;" d="M744.32-103.03999999999996a84.48 84.48 0 0 1 0 116.608L385.152 384l359.168 370.368c31.04 32 31.04 84.48 0 116.608a78.464 78.464 0 0 1-113.024 0L216 442.752A83.328 83.328 0 0 1 192.768 384c-0.128-21.312 7.552-42.624 23.232-58.816l415.296-428.16c31.04-32 81.92-32 113.024 0z"  horiz-adv-x="1024" />
 
     
-    <glyph glyph-name="serviceOnline" unicode="&#58895;" d="M820.003587 501.897758h-30.880717C781.775785 648.839462 661.237668 766.392825 511.426009 766.392825S241.076233 648.839462 233.729148 501.897758H202.84843c-48.444843 0-88.165022-39.720179-88.165022-88.165023v-58.776681c0-48.444843 39.720179-88.165022 88.165022-88.165023h29.388341c32.373094 0 58.776682 26.403587 58.776682 58.776682V487.203587c0 121.915695 98.496861 220.412556 220.412556 220.412556s220.412556-98.496861 220.412556-220.412556v-205.718385c0-89.657399-61.761435-164.620628-143.956951-185.169507-10.331839 14.69417-27.895964 23.533632-47.067264 23.533632h-58.776682c-32.373094 0-58.776682-26.403587-58.776681-58.776681 0-32.373094 26.403587-58.776682 58.776681-58.776682h58.776682c23.533632 0 45.574888 14.69417 54.41435 35.243049 107.221525 23.533632 188.039462 116.060987 195.386547 229.252018h29.38834c48.444843 0 88.165022 39.720179 88.165023 88.165023v58.776681c0 48.444843-39.605381 88.165022-88.165023 88.165023zM202.84843 325.567713c-16.186547 0-29.388341 13.201794-29.38834 29.388341v58.776681c0 16.186547 13.201794 29.388341 29.38834 29.388341h29.388341v-117.553363H202.84843z m646.543498 29.388341c0-16.186547-13.201794-29.388341-29.388341-29.388341h-29.38834V443.121076h29.38834c16.186547 0 29.388341-13.201794 29.388341-29.388341v-58.776681z m0 0"  horiz-adv-x="1024" />
-
-    
-    <glyph glyph-name="accountCenter" unicode="&#58906;" d="M534.884174 309.337043c-155.603478 0-277.860174 129.068522-277.860174 293.309218C257.024 766.931478 379.280696 896 534.884174 896c155.603478 0 277.860174-129.068522 277.860174-293.353739 0-164.285217-122.256696-293.309217-277.860174-293.309218z m0 58.679653c122.256696 0 222.297043 105.605565 222.297043 234.629565 0 129.113043-100.040348 234.674087-222.297043 234.674087-122.256696 0-222.297043-105.605565-222.297044-234.629565 0-129.113043 100.040348-234.674087 222.297044-234.674087z m55.56313-410.668522v58.63513H979.478261v-58.63513h-389.030957z m0 175.994435v58.679652H979.478261v-58.679652h-389.030957zM512 308.26852199999996c-227.906783 0-409.021217-181.871304-409.021217-410.668522H44.521739c0 258.137043 210.365217 469.348174 467.478261 469.348174"  horiz-adv-x="1024" />
-
-    
     <glyph glyph-name="warehouse" unicode="&#58940;" d="M512 457.8c247.4 0 448 69.4 448 155s-200.6 155-448 155-448-69.4-448-155 200.6-155 448-155z m380.4 8c-99-44.9-242.6-66.2-380.4-66.2-137.8 0-281.4 21.3-380.4 66.2C88.8 442.1 64 414.1 64 384c0-85.6 200.6-155 448-155s448 69.4 448 155c0 30.1-24.8 58.1-67.6 81.8z m0-228.8c-99-44.9-242.6-66.2-380.4-66.2-137.8 0-281.4 21.3-380.4 66.2C88.8 213.29999999999995 64 185.29999999999995 64 155.20000000000005c0-85.6 200.6-155 448-155s448 69.4 448 155c0 30.1-24.8 58.1-67.6 81.8z"  horiz-adv-x="1024" />
 
     
@@ -71,15 +56,9 @@ Created by iconfont
     <glyph glyph-name="money" unicode="&#59130;" d="M991.371654 719.3010810000001C838.144115 724.799224 509.810223 895.810409 509.810223 895.810409h-5.479184S185.002725 724.799224 31.775186 719.3010810000001C18.996745 654.840102 40.0224 257.83630800000003 147.653276 99.71731899999997c71.248341-106.739797 290.301915-201.724946 355.767726-225.803018a12.683646 12.683646 0 0 1 12.759482-0.379182c84.538678 31.661716 273.579978 106.550206 359.31308 226.1822 118.513406 180.111559 128.334225 553.606054 115.87809 619.583762zM703.193159 416.713662h-155.009695v-72.234214H703.193159v-59.910792h-155.009695v-137.64315h-73.580311v137.64315h-153.720476v59.910792h153.720476v72.234214h-153.720476v60.479566h124.978463l-81.391466 144.468429h80.576224s63.683655-117.167309 66.489604-127.784411c3.298885 11.565058 67.475478 127.784411 67.475477 127.784411h80.576224l-82.453176-144.468429h125.983296v-60.479566z"  horiz-adv-x="1024" />
 
     
-    <glyph glyph-name="commonQuestion" unicode="&#58995;" d="M512-110.93333299999995c-12.8 0-21.333333 4.266667-29.866667 12.8L341.333333 42.66666699999996H42.666667c-25.6 0-42.666667 17.066667-42.666667 42.666666V853.333333c0 25.6 17.066667 42.666667 42.666667 42.666667h938.666666c25.6 0 42.666667-17.066667 42.666667-42.666667v-768c0-25.6-17.066667-42.666667-42.666667-42.666666h-298.666666l-140.8-140.8c-8.533333-8.533333-17.066667-12.8-29.866667-12.8zM64 106.66666699999996h302.933333l145.066667-145.066667 145.066667 145.066667h302.933333v725.333333h-896v-725.333333zM541.866667 209.06666700000005h-81.066667v76.8h81.066667v-76.8z m-4.266667 123.733333H469.333333v4.266667c0 25.6 0 46.933333 4.266667 59.733333 0 12.8 4.266667 25.6 12.8 38.4 4.266667 12.8 12.8 21.333333 25.6 34.133333 8.533333 8.533333 25.6 21.333333 42.666667 38.4 21.333333 21.333333 34.133333 34.133333 42.666666 46.933334v29.866666c0 21.333333-8.533333 42.666667-25.6 59.733334-17.066667 17.066667-38.4 25.6-68.266666 25.6-55.466667 0-85.333333-34.133333-98.133334-98.133334v-4.266666l-68.266666 8.533333v4.266667c4.266667 46.933333 21.333333 85.333333 51.2 110.933333 29.866667 25.6 68.266667 38.4 115.2 38.4s89.6-12.8 119.466666-38.4c29.866667-25.6 46.933333-59.733333 46.933334-102.4 0-21.333333-4.266667-38.4-12.8-59.733333-8.533333-21.333333-29.866667-42.666667-64-72.533334-25.6-21.333333-38.4-38.4-46.933334-51.2-4.266667-12.8-8.533333-34.133333-8.533333-72.533333z"  horiz-adv-x="1024" />
-
-    
     <glyph glyph-name="arrows-right" unicode="&#61185;" d="M215.68-103.03999999999996a84.48 84.48 0 0 0 0 116.608L574.848 384 215.68 754.3679999999999a84.608 84.608 0 0 0 0 116.608 78.464 78.464 0 0 0 113.024 0L744 442.752c15.616-16.192 23.36-37.44 23.232-58.752 0.128-21.312-7.552-42.624-23.232-58.816l-415.296-428.16c-31.04-32-81.92-32-113.024 0z"  horiz-adv-x="1024" />
 
     
-    <glyph glyph-name="userGuite" unicode="&#58966;" d="M906.000638-127.99995999999999a99.290887 99.290887 0 0 0-57.16748 18.052889L483.763632 149.813937l-55.161604-221.649355a40.11753 40.11753 0 0 0-39.114592-30.088147 40.11753 40.11753 0 0 0-39.114592 31.091086l-82.240937 352.031328a20.058765 20.058765 0 0 1-11.032321 14.041135L50.494306 391.522057l-5.014692 3.008815a100.293826 100.293826 0 0 0 18.052889 176.517133L886.944811 888.979432a100.293826 100.293826 0 0 0 136.399603-101.296764l-17.04995-821.406432v-3.008815a99.290887 99.290887 0 0 0-58.170419-81.237998 100.293826 100.293826 0 0 0-42.123407-10.029383z m-11.03232 84.246814a20.058765 20.058765 0 0 1 31.091085 13.038197l17.049951 821.406432v3.008815a20.058765 20.058765 0 0 1-27.079333 21.061703L92.617712 496.830574a20.058765 20.058765 0 0 1-6.017629-34.099901l203.596466-94.276196a99.290887 99.290887 0 0 0 55.161604-68.199801l45.132222-190.558269 29.085209 117.343776a40.11753 40.11753 0 0 0 62.182172 23.06758zM389.487436-101.92356500000005a40.11753 40.11753 0 0 0-27.079333 69.202739l191.561207 176.517134a40.11753 40.11753 0 0 0 54.158666-59.173358L416.566769-90.89124400000003a40.11753 40.11753 0 0 0-27.079333-11.032321zM462.701929 181.907961a40.11753 40.11753 0 0 0-31.091086 65.190987L917.032959 853.876593a40.11753 40.11753 0 1 0 62.182172-50.146913L493.793015 196.95203500000002a40.11753 40.11753 0 0 0-31.091086-15.044074z"  horiz-adv-x="1024" />
-
-    
 
 
   </font>

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


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


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

@@ -1,13 +1,10 @@
+
 .sa-purchase:before { content: "\e613"; }
 
 .sa-xiu:before { content: "\e605"; }
 
 .sa-weibiaoti1:before { content: "\ef04"; }
 
-.sa-tuichu:before { content: "\e6b7"; }
-
-.sa-feedback:before { content: "\e672"; }
-
 .sa-document:before { content: "\e654"; }
 
 .sa-switch-on:before { content: "\e622"; }
@@ -16,14 +13,8 @@
 
 .sa-sale:before { content: "\e638"; }
 
-.sa-userBook:before { content: "\e600"; }
-
 .sa-arrows-left:before { content: "\ef02"; }
 
-.sa-serviceOnline:before { content: "\e60f"; }
-
-.sa-accountCenter:before { content: "\e61a"; }
-
 .sa-warehouse:before { content: "\e63c"; }
 
 .sa-setting:before { content: "\e64b"; }
@@ -32,8 +23,5 @@
 
 .sa-money:before { content: "\e6fa"; }
 
-.sa-commonQuestion:before { content: "\e673"; }
-
 .sa-arrows-right:before { content: "\ef01"; }
 
-.sa-userGuite:before { content: "\e656"; }

BIN
frontend/saas-web/resources/images/default/user-icon.png


+ 7 - 2
frontend/saas-web/resources/json/navigation.json

@@ -288,9 +288,14 @@
             "text": "新手导航",
             "viewType": "sys-guide-formpanel",
             "leaf": true
-        }, {
+        },{  
+            "id":"sys-manager-formpanel",
+            "text": "系统管理",
+            "viewType": "sys-manager-formpanel",
+            "leaf": true
+        }, {  
             "id":"sys-config-formpanel",
-            "text": "系统参数",
+            "text": "公司设置",
             "viewType": "sys-config-formpanel",
             "leaf": true
         }, {

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