Browse Source

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

guq 7 năm trước cách đây
mục cha
commit
cf0ad4d946
45 tập tin đã thay đổi với 307 bổ sung135 xóa
  1. 7 4
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  2. 4 3
      applications/document/document-server/src/main/resources/mapper/BomMapper.xml
  3. 1 1
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  4. 27 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/AccountDetailsView.java
  5. 12 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/CustomerCheckView.java
  6. 4 1
      applications/money/money-server/src/main/resources/mapper/AccountDetailsViewMapper.xml
  7. 1 1
      applications/money/money-server/src/main/resources/mapper/CustmonthMapper.xml
  8. 2 0
      applications/money/money-server/src/main/resources/mapper/CustomerCheckViewMapper.xml
  9. 1 1
      applications/money/money-server/src/main/resources/mapper/VendmonthMapper.xml
  10. 4 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/po/report/SaleProfitView.java
  11. 2 0
      applications/sale/sale-server/src/main/resources/mapper/SaleProfitViewMapper.xml
  12. 1 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/Make.java
  13. 3 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/report/ProdiodetailView.java
  14. 12 4
      applications/storage/storage-server/src/main/resources/mapper/MakeMapper.xml
  15. 2 0
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml
  16. 36 27
      frontend/saas-portal-web/src/components/conenter/addenterprise.vue
  17. 7 7
      frontend/saas-portal-web/src/components/conenter/company.vue
  18. 5 2
      frontend/saas-portal-web/src/components/conenter/details.vue
  19. 23 19
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  20. 1 3
      frontend/saas-portal-web/src/components/conenter/home.vue
  21. 1 1
      frontend/saas-portal-web/src/pages/index/index.vue
  22. 1 2
      frontend/saas-web/app/view/core/query/QueryGridPanel.scss
  23. 1 1
      frontend/saas-web/app/view/core/report/ReportPanel.js
  24. 21 2
      frontend/saas-web/app/view/main/Main.js
  25. 14 7
      frontend/saas-web/app/view/main/Main.scss
  26. 87 1
      frontend/saas-web/app/view/main/MainController.js
  27. 2 1
      frontend/saas-web/app/view/main/Navigation.js
  28. 15 1
      frontend/saas-web/app/view/main/Navigation.scss
  29. 8 8
      frontend/saas-web/app/view/money/report/AccountDetails.js
  30. 1 1
      frontend/saas-web/app/view/stock/otherIn/QueryPanel.js
  31. 1 1
      frontend/saas-web/app/view/stock/otherOut/QueryPanel.js
  32. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中粗-简.ttf
  33. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中粗-繁.ttf
  34. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中黑-简.ttf
  35. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中黑-繁.ttf
  36. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-准-简.ttf
  37. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-准-繁.ttf
  38. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-极细-简.ttf
  39. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-极细-繁.ttf
  40. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-纤细-简.ttf
  41. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-纤细-繁.ttf
  42. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-细-简.ttf
  43. BIN
      frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-细-繁.ttf
  44. 0 1
      frontend/saas-web/packages/local/theme-default/sass/etc/all.scss
  45. 0 35
      frontend/saas-web/packages/local/theme-default/sass/etc/fontset.scss

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

@@ -154,9 +154,12 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                 //找到原始单据,反过账并删除
                 String inoutCode = getMapper().selectProdIOCode(product.getPr_code(), BaseContextHolder.getCompanyId(), "库存初始化");
                 if (!StringUtils.isEmpty(inoutCode)) {
-                    post(inoutCode, "反过账");
-                    getMapper().deleteProdIODetailByCode(inoutCode, BaseContextHolder.getCompanyId());
-                    getMapper().deleteProdIOByCode(inoutCode, BaseContextHolder.getCompanyId());
+                    String[] inoutArr = inoutCode.split(",");
+                    for (int i = 0;i<inoutArr.length;i++){
+                        post(inoutArr[i], "反过账");
+                        getMapper().deleteProdIODetailByCode(inoutArr[i], BaseContextHolder.getCompanyId());
+                        getMapper().deleteProdIOByCode(inoutArr[i], BaseContextHolder.getCompanyId());
+                    }
                 }
                 //此种情况不可能发生明细行数量,只会发生明细行数据修改/新增明细行
                 //a.更新明细行数据
@@ -774,6 +777,6 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             }
             //billCode = maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.PRODUCT.getCaller()).getData();
         }
-        return billCode;
+        return code;
     }
 }

+ 4 - 3
applications/document/document-server/src/main/resources/mapper/BomMapper.xml

@@ -28,13 +28,14 @@
   </resultMap>
   <sql id="Base_Column_List" >
     bo_id, bo_motherid, bo_mothercode, bo_mothername, bo_version, bo_status, bo_statuscode, 
-    companyId, updaterId,updaterName,updateTime, bo_text1,
-    bo_text2, bo_text3, bo_text4, bo_text5,creatorName,creatorId,createTime
+    bom.companyId,  bom.updaterId, bom.updaterName, bom.updateTime, bo_text1,
+    bo_text2, bo_text3, bo_text4, bo_text5, bom.creatorName, bom.creatorId, bom.createTime,
+    pr_spec,pr_brand,pr_orispeccode,pr_unit
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
     select 
     <include refid="Base_Column_List" />
-    from bom
+    from bom left join product on pr_code = bo_mothercode and bom.companyId = product.companyId
     where bo_id = #{id}
   </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >

+ 1 - 1
applications/document/document-server/src/main/resources/mapper/ProductMapper.xml

@@ -907,7 +907,7 @@
         </foreach>
     </update>
     <select id="selectProdIOCode" resultType="java.lang.String">
-        SELECT PI_INOUTNO FROM PRODINOUT
+        SELECT group_concat(PI_INOUTNO) FROM PRODINOUT
         <where>
             <if test="code!=null">
                 AND PI_TEXT1 = #{code}

+ 27 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/AccountDetailsView.java

@@ -20,6 +20,33 @@ public class AccountDetailsView {
     private Double total;
     private Date date;
     private Long companyId;
+    private Double sl_orderamount;
+    private Double pbd_nowbalance;
+    private Date pb_date;
+
+    public Double getPbd_nowbalance() {
+        return pbd_nowbalance;
+    }
+
+    public void setPbd_nowbalance(Double pbd_nowbalance) {
+        this.pbd_nowbalance = pbd_nowbalance;
+    }
+
+    public Date getPb_date() {
+        return pb_date;
+    }
+
+    public void setPb_date(Date pb_date) {
+        this.pb_date = pb_date;
+    }
+
+    public Double getSl_orderamount() {
+        return sl_orderamount;
+    }
+
+    public void setSl_orderamount(Double sl_orderamount) {
+        this.sl_orderamount = sl_orderamount;
+    }
 
     public String getCu_name() {
         return cu_name;

+ 12 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/CustomerCheckView.java

@@ -37,6 +37,18 @@ public class CustomerCheckView {
 
     private Long companyId;
 
+    private String pr_brand;
+
+    private String pr_orispeccode;
+
+    public String getPr_brand(){return pr_brand;}
+
+    public void setPr_brand(String pr_brand){ this.pr_brand = pr_brand;}
+
+    public String getPr_orispeccode(){return pr_orispeccode;}
+
+    public void setPr_orispeccode(String pr_orispeccode){ this.pr_orispeccode = pr_orispeccode;}
+
     public Long getCompanyId() {
         return companyId;
     }

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

@@ -12,7 +12,10 @@
     <result column="pb_code" property="pb_code" jdbcType="VARCHAR" />
     <result column="total" property="total" jdbcType="DOUBLE" />
     <result column="date" property="date" jdbcType="TIMESTAMP" />
+    <result column="sl_orderamount" property="sl_orderamount" jdbcType="DOUBLE" />
+    <result column="pb_date" property="pb_date" jdbcType="TIMESTAMP" />
     <result column="companyId" property="companyId" jdbcType="INTEGER" />
+    <result column="pbd_nowbalance" property="pbd_nowbalance" jdbcType="DOUBLE" />
   </resultMap>
   <select id="selectByCondition" resultMap="BaseResultMap">
     select  *  from account_details_view
@@ -24,7 +27,7 @@
         and  companyId = #{companyId}
       </if>
     </where>
-    order by sl_code desc ,date desc
+    order by sl_code desc ,pb_date desc
   </select>
 
   <select id="selectCalculateFields" resultType="string">

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

@@ -29,7 +29,7 @@
         ${con}
       </if>
       <if test="companyId != null">
-        and  companyId = #{companyId} and (cm_endamount +cm_nowamount+ cm_nowpreamount + cm_beginamount) != 0
+        and  companyId = #{companyId} and abs(cm_beginamount)+abs(cm_beginpreamount)+abs(cm_nowamount)+abs(cm_nowpreamount)>0
       </if>
     </where>
     order by cm_yearmonth desc,cm_custcode

+ 2 - 0
applications/money/money-server/src/main/resources/mapper/CustomerCheckViewMapper.xml

@@ -18,6 +18,8 @@
         <result column="pd_total" property="pd_total" jdbcType="DOUBLE" />
         <result column="pd_netprice" property="pd_netprice" jdbcType="DOUBLE" />
         <result column="pd_nettotal" property="pd_nettotal" jdbcType="DOUBLE" />
+        <result column="pr_brand" property="pr_brand" jdbcType="VARCHAR" />
+        <result column="pr_orispeccode" property="pr_orispeccode" jdbcType="VARCHAR" />
     </resultMap>
 
     <select id="selectByCondition" resultMap="BaseResultMap">

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

@@ -29,7 +29,7 @@
         ${con}
       </if>
       <if test="companyId != null">
-        and  companyid = #{companyId} and (vm_endamount+ vm_nowamount+vm_nowpreamount+vm_beginamount) != 0
+        and  companyid = #{companyId} and abs(vm_beginamount)+abs(vm_beginpreamount)+abs(vm_nowamount)+abs(vm_nowpreamount)>0
       </if>
     </where>
     order by vm_yearmonth desc,vm_vendcode

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

@@ -60,4 +60,8 @@ public class SaleProfitView {
     private Double pw_costprice;
 
     private Date pi_date;
+
+    private String pr_brand;
+
+    private String pr_orispeccode;
 }

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

@@ -27,6 +27,8 @@
     <result column="companyid" property="companyid" jdbcType="INTEGER" />
       <result column="pd_remark" property="pd_remark" jdbcType="VARCHAR" />
     <result column="pw_costprice" property="pw_costprice" jdbcType="DOUBLE" />
+    <result column="pr_orispeccode" property="pr_orispeccode" jdbcType="VARCHAR" />
+    <result column="pr_brand" property="pr_brand" jdbcType="VARCHAR" />
   </resultMap>
   <select id="selectByCondition" resultMap="BaseResultMap">
     select  *  from Sale_Profit_View

+ 1 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/Make.java

@@ -54,5 +54,6 @@ public class Make extends CommonBaseEntity implements Serializable {
 
     private Date ma_auditdate;
 
+    private String ma_prodorispec;
 
 }

+ 3 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/report/ProdiodetailView.java

@@ -32,4 +32,7 @@ public class ProdiodetailView implements Serializable{
 
     private String pd_whname;
 
+    private String pr_brand;
+    private String pr_orispeccode;
+
 }

+ 12 - 4
applications/storage/storage-server/src/main/resources/mapper/MakeMapper.xml

@@ -79,7 +79,7 @@
   <sql id="Base_Column_List" >
     ma_id, ma_code, ma_status, ma_statuscode, ma_type, ma_prodid, ma_prodcode, ma_proddetail, 
     ma_prodspec, ma_version, ma_produnit, ma_qty, ma_whid, ma_whcode, ma_whname,ma_price, ma_total,ma_auditman,ma_auditdate, companyId, updaterId,updaterName,updateTime,creatorid,creatorName,createtime, ma_text1,
-    ma_text2, ma_text3, ma_text4, ma_text5
+    ma_text2, ma_text3, ma_text4, ma_text5,ma_prodorispec
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
     select 
@@ -102,7 +102,7 @@
       ma_whid, ma_whcode, ma_whname, ma_price,
       ma_total, ma_auditman,ma_auditdate,companyId, updaterId,
       updateTime, ma_text1, ma_text2, 
-      ma_text3, ma_text4, ma_text5
+      ma_text3, ma_text4, ma_text5,ma_prodorispec
       )
     values (#{ma_code,jdbcType=VARCHAR}, #{ma_status,jdbcType=VARCHAR}, 
       #{ma_statuscode,jdbcType=VARCHAR}, #{ma_type,jdbcType=VARCHAR}, #{ma_prodid,jdbcType=INTEGER}, 
@@ -111,7 +111,7 @@
       #{ma_whid,jdbcType=INTEGER}, #{ma_whcode,jdbcType=VARCHAR}, #{ma_whname,jdbcType=VARCHAR}, #{ma_price,jdbcType=DOUBLE},
       #{ma_total,jdbcType=DOUBLE}, #{ma_auditman,jdbcType=VARCHAR},#{ma_auditdate.jdbcType=TIMESTAMP},#{companyId,jdbcType=INTEGER}, #{updaterId,jdbcType=INTEGER},
       #{updateTime,jdbcType=TIMESTAMP}, #{ma_text1,jdbcType=VARCHAR}, #{ma_text2,jdbcType=VARCHAR}, 
-      #{ma_text3,jdbcType=VARCHAR}, #{ma_text4,jdbcType=VARCHAR}, #{ma_text5,jdbcType=VARCHAR}
+      #{ma_text3,jdbcType=VARCHAR}, #{ma_text4,jdbcType=VARCHAR}, #{ma_text5,jdbcType=VARCHAR},#{ma_prodorispec,jdbcType=VARCHAR}
       )
   </insert>
   <insert id="insertSelective" parameterType="com.usoftchina.saas.storage.po.Make">
@@ -211,6 +211,9 @@
       <if test="updaterName != null">
         updaterName,
       </if>
+      <if test="ma_prodorispec != null">
+        ma_prodorispec,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
 
@@ -304,6 +307,9 @@
       <if test="updaterName != null">
         #{updaterName,jdbcType=VARCHAR},
       </if>
+      <if test="ma_prodorispec != null">
+        #{ma_prodorispec,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.storage.po.Make" >
@@ -387,6 +393,7 @@
       <if test="ma_text5 != null" >
         ma_text5 = #{ma_text5,jdbcType=VARCHAR},
       </if>
+
     </set>
     where ma_id = #{id}
   </update>
@@ -417,7 +424,8 @@
       ma_text2 = #{ma_text2,jdbcType=VARCHAR},
       ma_text3 = #{ma_text3,jdbcType=VARCHAR},
       ma_text4 = #{ma_text4,jdbcType=VARCHAR},
-      ma_text5 = #{ma_text5,jdbcType=VARCHAR}
+      ma_text5 = #{ma_text5,jdbcType=VARCHAR},
+      ma_prodorispec = #{ma_prodorispec,jdbcType=VARCHAR}
     where ma_id = #{id}
   </update>
   <select id="getListDataByCondition" resultMap="BaseResultMap">

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

@@ -21,6 +21,8 @@
     <result column="pd_remark" jdbcType="VARCHAR" property="pd_remark" />
     <result column="companyid" jdbcType="INTEGER" property="companyid" />
     <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />
+    <result column="pr_brand" jdbcType="VARCHAR" property="pr_brand" />
+    <result column="pr_orispeccode" jdbcType="VARCHAR" property="pr_orispeccode" />
   </resultMap>
 
 

+ 36 - 27
frontend/saas-portal-web/src/components/conenter/addenterprise.vue

@@ -8,7 +8,7 @@
             <div class="gs-worp qy-worp tj-up">
                 <div class="qy-title" style="position: relative;">
                     <ul class="over">
-                        <li class="left xs" v-for="(d, i) in tab" :key="i" :class= "{qyactive:nowindex == i}" @click="tabwith(i)">{{d.name}}</li>
+                        <li class="left xs" v-for="(d, i) in tab" :key="i" :class= "{qyactive:nowindex == i}" @click="tabwatch(i)">{{d.name}}</li>
                     </ul>
                 </div>
                 <div class="qy-conent" :class= "{showqiye:nowindex == 0}" style="padding-top: 60px;">
@@ -120,7 +120,7 @@ import { setTimeout } from 'timers';
                 // area:'',//区
                 qymingzi: false,//企业名是否注册
                 Email: '',
-                mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
+                mytoken: Session.get(),//本地储存的用户信息
                 reg: new RegExp(/[\@\#\$\%\&\*!\¥]/),//非法字符
                 regname:new RegExp(/[\@\#\$\%\&\*!\¥0-9]/),//非法字符加数字
                 isaddress: false,//公司地址验证
@@ -142,6 +142,7 @@ import { setTimeout } from 'timers';
                 isTestingname:false,
                 isregname:false,
                 companyId:null,
+                admin:null,
                 arr:[]
             }
         },
@@ -153,7 +154,7 @@ import { setTimeout } from 'timers';
             this.$refs.email.value = this.mytoken.account.email;
         },
         methods: {
-            tabwith(i){
+            tabwatch(i){
                 this.nowindex = i;
             },
             //取消添加企业
@@ -219,8 +220,11 @@ import { setTimeout } from 'timers';
                             this.islookup = true;   
                         } else if (res.data.success == false && res.data.message == '公司不存在') {
                             this.$refs.warningqyname.innerHTML = '<img style="width:14px" src="/static/img/warning.png" alt=""> 该企业不存在';
+                            this.islookup = false; 
                         } else {
                             this.$message.error('请求失败,请重试');
+                            this.islookup = false; 
+                            this.$refs.warningqyname.innerHTML = '<img style="width:14px" src="/static/img/warning.png" alt="">'
                         }
                     })
                 }
@@ -260,6 +264,7 @@ import { setTimeout } from 'timers';
             // 选择要加入的企业
             qylist(i){
                 this.companyId = this.arr[i].id,
+                this.admin = this.arr[i].admin,
                 this.newindex = i
             },
             //加入企业提交按钮
@@ -273,30 +278,34 @@ import { setTimeout } from 'timers';
                 } else if (!this.isregname) {
                     this.$message.error('姓名不能包含符号、数字等非法字符');
                 } else if (this.companyId){
-                    this.$ajax({
-                        url: this.$url.api+'/api/account/accountCenter/company/join',
-                        method:'POST',
-                        data:{
-                            username:username,
-                            accountId:this.mytoken.account.id,
-                            companyId:this.companyId,
-                        },
-                        headers:{
-                            "Authorization":token,
-                        }
-                    })
-                    .then(res=>{
-                        if (res.data.success) {
-                            this.$message.success('提交成功,待管理员批准加入');
-                            this.$store.state.ishongdian = true;//显示红点
-                            setTimeout(()=>{
-                                this.$router.push({name:'company'});
-                                document.documentElement.scrollTop = 0;
-                            },3000)
-                        } else {
-                            this.$message.error(res.data.message);
-                        }
-                    })
+                    if (this.admin == this.mytoken.account.realname) {
+                        this.$message.error('账号已在企业服务中,不能重复加入');
+                    } else {
+                        this.$ajax({
+                            url: this.$url.api+'/api/account/accountCenter/company/join',
+                            method:'POST',
+                            data:{
+                                username:username,
+                                accountId:this.mytoken.account.id,
+                                companyId:this.companyId,
+                            },
+                            headers:{
+                                "Authorization":token,
+                            }
+                        })
+                        .then(res=>{
+                            if (res.data.success) {
+                                this.$message.success('提交成功,待管理员批准加入');
+                                this.$store.state.ishongdian = true;//显示红点
+                                setTimeout(()=>{
+                                    this.$router.push({name:'company'});
+                                    document.documentElement.scrollTop = 0;
+                                },3000)
+                            } else {
+                                this.$message.error(res.data.message);
+                            }
+                        })
+                    }
                 } else {
                     this.$message.error('请选择要加入的企业');
                 }

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

@@ -100,7 +100,7 @@
                 </div>
             </div>
         </div>
-      </div>
+    </div>
 </template>
 
 <script>
@@ -118,7 +118,7 @@
                 ktsass: true,//开通saas
                 isDefault: true,//开通默认
                 isAutoLogin: this.$store.state.isAutoLogin,
-                mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
+                mytoken: Session.get(),//本地储存的用户信息
                 list: [],//企业列表信息
                 isheigh:false,//是否添加默认高度
                 admin: '',
@@ -138,7 +138,7 @@
             }
         },
         created(){
-            let mytoken = JSON.parse(localStorage.getItem('app-state-session'));
+            let mytoken = Session.get();
             let token = String(mytoken.token);
             //企业列表
             this.$ajax({
@@ -167,7 +167,7 @@
                                 enterprise.push(addenterprise)
                             }
                         };
-                        let session = JSON.parse(window.localStorage.getItem('app-state-session'));
+                        let session = Session.get();
                         if (enterprise.length != session.account.companies.length) {
                             session.account.companies = enterprise;
                             Session.set(session);
@@ -177,7 +177,7 @@
                         let token = res.data.data.token.token;
                         if (this.isAutoLogin) {
                             if (hasCompany) {
-                                let session=JSON.parse(localStorage.getItem('app-state-session'));
+                                let session = Session.get();
                                 session.account.companyId=companyId;
                                 session.span = session.timestamp - new Date().getTime();
                                 session.token=token;
@@ -260,7 +260,7 @@
                 })
                 .then(res=>{
                     let mytoken = res.data.data.token;
-                    let session=JSON.parse(localStorage.getItem('app-state-session'));
+                    let session = Session.get();
                     session.account.companyId=id;
                     session.span = session.timestamp - new Date().getTime();
                     session.token=mytoken;
@@ -346,8 +346,8 @@
             //查看企业详情
             getEnterpriseInfo(d){
                 document.documentElement.scrollTop = 0;
-                this.$router.push({path:'/details'});
                 window.sessionStorage.setItem('content',JSON.stringify(d))
+                this.$router.push({path:'/details'});
             },
              //添加企业
             addEnterprise(){

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

@@ -97,14 +97,14 @@
 </template>
 
 <script>
-
+import Session from '@/utils/session'
     export default {
         data(){
             return {
                 modify:true,
                 content: JSON.parse(window.sessionStorage.getItem("content")),
                 Email: '',
-                mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
+                mytoken: Session.get(),//本地储存的用户信息
                 isId: false,
                 isemail: true,//正则邮箱
                 ismodifyId: false
@@ -187,6 +187,9 @@
                         if (res.data.success) {
                             document.documentElement.scrollTop = 0;
                             this.modify = true;
+                            let session = Session.get();
+                            session.account.email = email;
+                            Session.set(session);
                             this.content.type = qyindustry;
                             this.content.adminEmail = email
                         };

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

@@ -44,8 +44,9 @@
                 <div :class= "{gsqiye:nowindex == 0}"> 
                     
     <!-- 企业列表展示-------添加企业-------------企业详细信息展示 ---------------------------- -->
+                <!-- <keep-alive> -->
                     <router-view></router-view>
-
+                <!-- </keep-alive> -->
                 </div>
     <!-- 个人信息------------------------------------------------------------------- -->
                 <div :class= "{gsqiye:nowindex == 1}">
@@ -150,9 +151,10 @@
                         <div v-if="isnews" class="my-pagination">
                             <el-pagination
                                 background
+                                :page-size=size
                                 @current-change="handleCurrentChange"
                                 layout="prev, pager, next"
-                                :total= list>
+                                :total= listtotal>
                             </el-pagination>
                         </div>
                     </div>
@@ -170,7 +172,7 @@ import { setTimeout } from 'timers';
             return{
                 nowindex: 0,//tab切换
                 tianjiaqiye: true,//添加企业切换
-                mytoken: JSON.parse(localStorage.getItem('app-state-session')).account,//本地储存的用户信息
+                mytoken: Session.get().account,//本地储存的用户信息
                 mobile: null,
                 ismodifyname:true,
                 isname:true,//姓名验证
@@ -184,7 +186,8 @@ import { setTimeout } from 'timers';
                     {name: '消息'},
                 ],
                 arr: [],
-                list:1
+                listtotal:1,
+                size:10,//每页显示数量
             }
         },
         mounted(){
@@ -211,15 +214,15 @@ import { setTimeout } from 'timers';
         methods: {
             // tab切换
             tabswitch(index){
+                this.mytoken = Session.get().account;
                 if (index == 3) {
                     this.nowindex = 3;
-                    let mytoken = Session.get();
-                    let id = mytoken.account.id;
+                    let id = this.mytoken.id;
                     let param = {
                         type:'condition',
                         value:'creatorId='+id+''
                     }
-                    // tab切换到消息的时候执行
+                    // tab切换到消息的时候获取申请列表
                     this.$ajax({
                         url: this.$url.api+'/api/commons/remind/apply/list',
                         method:'GET',
@@ -227,18 +230,18 @@ import { setTimeout } from 'timers';
                         params: {
                             condition:JSON.stringify(param),
                             number:1,
-                            size:10
+                            size:this.size
                         },
                         headers:{
                             'Access-Control-Allow-Origin':'*',
-                            "Authorization":mytoken.token,
+                            "Authorization":Session.getToken(),
                             'Content-Type':'application/json;charset=UTF-8'
                         }
                     })
                     .then(res=>{
                         if (res.data.success) {
                             this.arr = res.data.data.list;
-                            this.list = res.data.data.total;
+                            this.listtotal = res.data.data.total;
                             this.$store.state.ishongdian = false;
                         }
                     })
@@ -247,9 +250,6 @@ import { setTimeout } from 'timers';
                 }
                 
             },
-            setTurnHome(){
-                this.$parent.turnHome = true
-            },
             //重新加入
             Rejoin(i){
                 this.$ajax({
@@ -268,13 +268,14 @@ import { setTimeout } from 'timers';
                     if (res.data.success) {
                         this.$message.success('提交成功,待管理员批准');
                         this.tabswitch(3);//本页面刷新
+                    } else {
+                        this.$message.error(res.data.message);
                     }
                 })
             },
             // 分页
              handleCurrentChange(val) {
-                let mytoken = Session.get();
-                let id = mytoken.account.id;
+                let id = this.mytoken.id;
                 let param = {
                     type:'condition',
                     value:'creatorId='+id+''
@@ -286,11 +287,11 @@ import { setTimeout } from 'timers';
                     params: {
                         condition:JSON.stringify(param),
                         number:val,
-                        size:10
+                        size:this.size
                     },
                     headers:{
                         'Access-Control-Allow-Origin':'*',
-                        "Authorization":mytoken.token,
+                        "Authorization":Session.getToken(),
                         'Content-Type':'application/json;charset=UTF-8'
                     }
                 })
@@ -300,6 +301,9 @@ import { setTimeout } from 'timers';
                     }
                 })
             },
+            setTurnHome(){
+                this.$parent.turnHome = true
+            },
             //退出
             loginout(){
                 const frame = window.frames[window.frames.length - 1]
@@ -369,10 +373,10 @@ import { setTimeout } from 'timers';
                     })
                 }
             },
-            //没有内容也要有一定的高度
+            //内容不足500固定高度
             boxheight(){
                 let H = this.$refs.qiyebox.offsetHeight;
-                if (H <= 500) {
+                if (H < 500) {
                     this.isheigh = true
                 } else {
                     this.isheigh = false

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

@@ -264,8 +264,7 @@
       };
       let token;
       if(localStorage.getItem('app-state-session')){
-        let mytoken = JSON.parse(localStorage.getItem('app-state-session'));
-        token = String(mytoken.token);
+        token = Session.getToken();
       }
       this.$ajax({
         url: this.$url.api+'/api/auth/info',
@@ -424,7 +423,6 @@
                 const frame = window.frames[window.frames.length - 1]
                 frame.postMessage(JSON.stringify(session), '*')
                 window.location.href = me.$url.web
-                // console.log("请求成功",res)
                 phone = ''
             })
             .catch(err=>{

+ 1 - 1
frontend/saas-portal-web/src/pages/index/index.vue

@@ -13,7 +13,7 @@ export default {
   name: 'App',
   data(){
     return {
-
+      
     }
   },
   components: {

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

@@ -3,8 +3,7 @@
     .x-querygrid-code-column {
 
         .x-grid-cell-inner {
-            text-decoration: underline;
-            color: #3E80F6;
+            color: #53b0f3;
             cursor: pointer;
         }
     }

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

@@ -30,7 +30,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
 
     calculateProperty: 'data.calculate',
     rootProperty: 'data.list.list',
-    totalProperty: 'list.total',
+    totalProperty: 'data.list.total',
 
     initComponent: function () {
         var me = this;

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

@@ -23,7 +23,7 @@ Ext.define('saas.view.main.Main', {
         {
             xtype: 'toolbar',
             cls: 'main-headerbar shadow',
-            height: 64,
+            height: 50,
             itemId: 'headerBar',
             items: [
                 {
@@ -65,6 +65,14 @@ Ext.define('saas.view.main.Main', {
 					    window.open('http://www.usoftchina.com','_blank');
                     }
                 },
+                {
+                    margin:'0 3 0 6',
+                    iconCls:'x-fa fa-share-alt-square',
+                    cls:'sa-nav-button',
+                    ui: 'header',
+                    tooltip: '企业分享',
+                    handler:'shareCompany'
+                },
                 {
                     iconCls:'x-sa sa-help',
                     cls:'sa-nav-button',
@@ -134,6 +142,7 @@ Ext.define('saas.view.main.Main', {
                                 if(rolesMap&&rolesMap.length>0){
                                     for(var i = 0; i < rolesMap.length; i++) {
                                         if(rolesMap[i].type==0){
+                                             main.isAdmin = true;
                                              main.getController().loadInvitationMsg(1,nowCompanyId)
                                         }
                                      }
@@ -169,11 +178,21 @@ Ext.define('saas.view.main.Main', {
                             iconCls:'x-fa fa-comment-o sa-navicon',
                             handler:'feedbackMsg'
                         }, {  
-                            text: '加入邀请',
+                            text: '加入申请',
+                            hidden:true,
                             name:'join',
                             iconCls:'x-fa fa-handshake-o sa-navicon',
                             handler:function(b){
                                 saas.util.BaseUtil.openTab('sys-invitation-datalist','申请列表', 'sys-invitation-datalist');
+                            },
+                            listeners:{
+                                afterrender:function(b){
+                                    if(b.ownerCt.ownerCmp.ownerCt.ownerCt.isAdmin){
+                                        b.show();
+                                    }else{
+                                        b.ownerCt.el.dom.style.height = "100px"
+                                    }
+                                }
                             }
                         }, {
                             text: '退出',

+ 14 - 7
frontend/saas-web/app/view/main/Main.scss

@@ -45,6 +45,13 @@ $treelist-nav-ui: (
     
     .x-panel-bodyWrap {
 
+        // &>.x-tab-bar {
+        //     height: 40px;
+        //     &>.x-tab-bar-body {
+        //         height: 40px;
+        //         padding: 0;
+        //     }
+        // }
         #main-tab-panel-body {
             background: #EEF4F9;
 
@@ -55,7 +62,7 @@ $treelist-nav-ui: (
 
 .main-logo-wrap {
     background-color: $base-color;
-    height: 70px;
+    height: 50px;
 
     font-size: 16px;
     font-weight: $font-weight-bold;
@@ -68,7 +75,7 @@ $treelist-nav-ui: (
         img {
             width: 32px;
             height: 32px;
-            top: 16px;
+            top: 8px;
             left: 28px;
             position: relative;
         }
@@ -78,7 +85,7 @@ $treelist-nav-ui: (
             font-size: 14px;
             color: #FFFFFF;
             text-align: left;
-            top: 30px;
+            top: 22px;
             position: absolute;
             left: 64px;
         }
@@ -161,14 +168,14 @@ $treelist-nav-ui: (
 }
 
 .x-gudie-information{
-    width: 64px;
-    height: 64px;
+    width: 50px;
+    height: 50px;
     background: url(../../../../resources/images/guide/information.png) 0 0 no-repeat;
 }
 
 .x-gudie-end{
-    width: 64px;
-    height: 64px;
+    width: 50px;
+    height: 50px;
     background: url(../../../../resources/images/guide/end.png) 0 0 no-repeat;
 }
 

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

@@ -40,7 +40,7 @@ Ext.define('saas.view.main.MainController', {
         navigationList = refs.navigationTreeList,
         navCollapsed = !navigationList.navCollapsed,
         new_width = navCollapsed ? viewModel.get('smallNavWidth') : viewModel.get('navWidth'),
-        newLogoImgStyle = navCollapsed ? { width: 36, height: 36, top: 12, left: 12 } : { width: 32, height: 32, top: 16, left: 28 },
+        newLogoImgStyle = navCollapsed ? { width: 36, height: 36, top: 6, left: 12 } : { width: 32, height: 32, top: 8, left: 28 },
         newLogoTextStyle = navCollapsed ? {
             5: { opacity: 0 },
             10: { opacity: 0 },
@@ -238,5 +238,91 @@ Ext.define('saas.view.main.MainController', {
             });
             win.show();
         }
+    },
+
+    shareCompany:function(){
+        //打开分享窗口
+        var win = Ext.create('Ext.window.Window', {  
+            cls:'x-window-dbfind', 
+            height: 385,
+            width: 350,
+            modal:true,
+            title: '分享企业',
+            bodyPadding: 10,
+            constrain: true,
+            closable: true,
+            layout: 'fit',
+            items:[{
+                plain:true,
+                xtype:'tabpanel',
+                cls:'x-tab-shareTab',
+                items:[{
+                    title:'二维码分享',
+                    xtype:'panel',
+                    layout: {
+                        type: 'vbox',
+                        align: 'center'
+                    },
+                    items:[{
+                        width:180,
+                        height:180,
+                        xtype: 'image',
+                        margin:'35 0 0 0',
+                        padding:'5',
+                        style:'border: 1px solid #000;',
+                        src:'resources/images/default/basePhoto.png',
+                        //src: (serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath) + '/api/file/download?path='+signet,
+                        name:'QRcode',
+                        listeners:{
+                            afterrender:function(f){
+                                var serverOptions = Ext.manifest.server;
+                                var delay = 15;//天
+                                var basePath = serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath;
+                                f.setSrc('/api/commons/share/qrcode?basePath='+basePath)
+                            }
+                        }
+                    },{
+                        xtype:'displayfield',
+                        value:'扫描二维码分享至微信/QQ'
+                    }]
+                },{
+                    title:'链接分享',
+                    xtype:'panel',
+                    layout: {
+                        type: 'vbox',
+                        align: 'center'
+                    },
+                    items:[{
+                        margin:'60 0 0 0',
+                        xtype:'displayfield',
+                        value:'复制以下链接分享给好友'
+                    },{
+                        xtype:'textfield',
+                        width:200,
+                        value:'https://www.usoftchina.com?admin=false&_noc=0'
+                    },{
+                        margin:'10 0 0 0',
+                        width:110,
+                        xtype:'button',
+                        text:'复 制',
+                        handler:function(b){
+                            var text = b.ownerCt.items.items[1].value;
+                            var target = Ext.DomHelper.append(document.body, {
+                                tag: 'textarea',
+                                style: 'opacity: 0;position: absolute;top: -10000px;right: 0;',
+                                html: text
+                            });
+                            target.focus();
+                            target.select();
+                            document.execCommand('Copy');
+                            target.blur();
+                            document.body.removeChild(target);
+                            saas.util.BaseUtil.showSuccessToast('复制链接成功');
+                        }
+                    }]
+                }]
+            }]
+        });
+        win.show();
     }
 });

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

@@ -89,7 +89,7 @@ Ext.define('saas.view.main.Navigation', {
                         '<div class="menu-content">',
                             '<tpl for="items">',
                             '<div class="menuitem">',
-                                '<div class="item-text" title="{text}" data-config="{config}" data-id="{id}" data-text="{text}" data-type="query" data-viewType="{viewType}">',
+                                '<div class="item-text" data-config="{config}" data-id="{id}" data-text="{text}" data-type="query" data-viewType="{viewType}">',
                                     '{text}',
                                 '</div>',
                                 '<tpl if="{addType}">',
@@ -190,6 +190,7 @@ Ext.define('saas.view.main.Navigation', {
                 width: window.innerWidth,
                 cls: 'x-nav-menu',
                 layout: 'fit',
+                shadow: 'drop',
                 bodyPadding: me.menuPadding,
                 items: [view]
             });

+ 15 - 1
frontend/saas-web/app/view/main/Navigation.scss

@@ -157,7 +157,7 @@ $nav-font-color-over: #fff;
 
             .menu-title {
                 padding-left: 30px;
-                background: #595B7E;
+                background: #484A69;
 
                 .menu-title-text {
                     height: 40px;
@@ -224,4 +224,18 @@ $nav-font-color-over: #fff;
             }
         }
     }
+}
+
+.x-tab-shareTab{
+    .x-tab-active{
+        .x-tab-wrap-default{
+            border-bottom: 1px solid #000000 !important; 
+        }
+    }
+    .x-tab-bar-plain .x-tab-inner-default {
+        color: #a9a7a7;
+    }
+    .x-tab-bar-plain .x-tab.x-tab-active.x-tab-default .x-tab-inner-default {
+        color: #000000;
+    }
 }

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

@@ -30,7 +30,7 @@ Ext.define('saas.view.money.report.AccountDetails', {
             ["销售退货单", "销售退货单"]
         ]
     }, {
-        name: 'date',
+        name: 'pb_date',
         xtype: 'condatefield',
         emptyText: '日期',
         columnWidth: 0.3
@@ -62,11 +62,6 @@ Ext.define('saas.view.money.report.AccountDetails', {
         text: '单据类型',
         dataIndex: 'sl_kind',
         width: 110
-    }, {
-        text: '单据日期',
-        dataIndex: 'date',
-        xtype: 'datecolumn',
-        width: 110
     }, {
         text: '供应商名称',
         dataIndex: 've_name',
@@ -79,9 +74,14 @@ Ext.define('saas.view.money.report.AccountDetails', {
         text: '核销单号',
         dataIndex: 'pb_code',
         width: 200
+    }, {
+        text: '单据日期',
+        dataIndex: 'pb_date',
+        xtype: 'datecolumn',
+        width: 110
     }, {
         text: '本期核销金额',
-        dataIndex: 'sl_amount',
+        dataIndex: 'pbd_nowbalance',
         exportFormat: 'Amount',
         xtype: 'numbercolumn',
         width: 130,
@@ -93,7 +93,7 @@ Ext.define('saas.view.money.report.AccountDetails', {
         }
     }, {
         text: '总金额',
-        dataIndex: 'total',
+        dataIndex: 'sl_orderamount',
         xtype: 'numbercolumn',
         exportFormat: 'Amount',
         width: 110,

+ 1 - 1
frontend/saas-web/app/view/stock/otherIn/QueryPanel.js

@@ -184,7 +184,7 @@ Ext.define('saas.view.stock.otherIn.QueryPanel', {
             text: '数量',
             dataIndex: 'pd_inqty',
             xtype:'numbercolumn',
-            width: 10,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');

+ 1 - 1
frontend/saas-web/app/view/stock/otherOut/QueryPanel.js

@@ -184,7 +184,7 @@ Ext.define('saas.view.stock.otherOut.QueryPanel', {
             text: '数量',
             dataIndex: 'pd_inqty',
             xtype:'numbercolumn',
-            width: 10,
+            width: 110,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');

BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中粗-简.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中粗-繁.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中黑-简.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-中黑-繁.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-准-简.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-准-繁.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-极细-简.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-极细-繁.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-纤细-简.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-纤细-繁.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-细-简.ttf


BIN
frontend/saas-web/packages/local/theme-default/resources/fonts/pingfang/苹方黑体-细-繁.ttf


+ 0 - 1
frontend/saas-web/packages/local/theme-default/sass/etc/all.scss

@@ -1 +0,0 @@
-@import 'fontset.scss';

+ 0 - 35
frontend/saas-web/packages/local/theme-default/sass/etc/fontset.scss

@@ -1,35 +0,0 @@
-$ext-font-path: get-resource-path('fonts');
-
-@font-face {
-    font-family: 'pingFangSC-Regular';
-    src: url('#{$ext-font-path}/pingfang/苹方黑体-准-简.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-}
-
-@font-face {
-    font-family: 'PingFangSC-Ultralight';
-    src: url('#{$ext-font-path}/pingfang/苹方黑体-极细-简.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-}
-
-@font-face {
-    font-family: 'PingFangSC-Light';
-    src: url('#{$ext-font-path}/pingfang/苹方黑体-细-简.ttf?t=1541646656813') format('truetype');
-}
-
-@font-face {
-    font-family: 'PingFangSC-Thin';
-    src: url('#{$ext-font-path}/pingfang/苹方黑体-纤细-简.ttf?t=1541646656813') format('truetype');
-}
-
-@font-face {
-    font-family: 'PingFangSC-Medium';
-    src: url('#{$ext-font-path}/pingfang/苹方黑体-中黑-简.ttf?t=1541646656813') format('truetype');
-}
-
-@font-face {
-    font-family: 'PingFangSC-Medium';
-    src: url('#{$ext-font-path}/pingfang/苹方黑体-中粗-简.ttf?t=1541646656813') format('truetype');
-}