瀏覽代碼

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

guq 7 年之前
父節點
當前提交
5d0e966bdb
共有 25 個文件被更改,包括 378 次插入137 次删除
  1. 2 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 4 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/SubledgerMapper.java
  3. 15 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  4. 16 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  5. 6 0
      applications/document/document-server/src/main/resources/mapper/SubledgerMapper.xml
  6. 2 2
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VerificationList.java
  7. 4 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  8. 4 3
      applications/money/money-server/src/main/resources/mapper/VerificationListMapper.xml
  9. 2 2
      applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml
  10. 18 8
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  11. 87 44
      frontend/saas-portal-web/src/components/conenter/company.vue
  12. 13 11
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  13. 84 28
      frontend/saas-portal-web/src/components/conenter/home.vue
  14. 100 18
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  15. 7 4
      frontend/saas-portal-web/src/store/index.js
  16. 2 2
      frontend/saas-portal-web/static/css/main.css
  17. 二進制
      frontend/saas-portal-web/static/img/gongneng/Group 32.png
  18. 二進制
      frontend/saas-portal-web/static/img/gongneng/chahua12x.png
  19. 二進制
      frontend/saas-portal-web/static/img/gongneng/chahua22x.png
  20. 二進制
      frontend/saas-portal-web/static/img/gongneng/chahua32x.png
  21. 7 7
      frontend/saas-portal-web/static/js/mains.js
  22. 1 0
      frontend/saas-web/app/view/money/othreceipts/FormPanel.js
  23. 1 0
      frontend/saas-web/app/view/money/othspendings/FormPanel.js
  24. 1 1
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  25. 2 3
      frontend/saas-web/app/view/money/verification/QueryPanel.js

+ 2 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -47,6 +47,8 @@ public enum BizExceptionCode implements BaseExceptionCode {
     ACCOUNT_EXISTS(79505, "账号已存在"),
     DEAL_FAILED(79800, "编号:<u>%s</u>处理失败,%s"),
     USING_EXISTS(79504, ""),
+    LIMIT_PERIOD_VENDOR(79505,"修改供应商失败!不能修改系统结账期间%s之前的供应商的期初"),
+    LIMIT_PERIOD_CUSTOMER(79506,"修改客户失败!不能修改系统结账期间%s之前的供应商的期初"),
 
     VENDOR_ISCLOSE(79505, "供应商已关闭"),
     PRODUCT_ISCLOSE(79506, "物料已关闭"),

+ 4 - 2
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/SubledgerMapper.java

@@ -26,14 +26,16 @@ public interface SubledgerMapper {
     List<Subledger> selectSubledgerBycondition(@Param("con") String con, @Param("companyId") Long companyId);
 
     Long selectByKindCodeCustid(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
-                                     @Param("sl_custid") Integer sl_custid ,@Param("companyid") Long companyid);
+                                     @Param("sl_custid") Integer sl_custid ,@Param("companyid") Long companyid,@Param("sl_ym") String sl_ym);
 
     Long selectByKindCodeVendid(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
-                                     @Param("sl_vendid") Integer sl_vendid ,@Param("companyid") Long companyid);
+                                     @Param("sl_vendid") Integer sl_vendid ,@Param("companyid") Long companyid,@Param("sl_ym") String sl_ym);
 
     void deleteCustomer(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
                         @Param("sl_custid") Integer sl_custid);
 
     void deleteVendor(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
                         @Param("sl_vendid") Integer sl_vendid);
+
+    String selectUnPeriod(@Param("companyId") Long companyId);
 }

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

@@ -134,6 +134,20 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         Double preamount = main.getCu_preamount()==null? new Double(0):main.getCu_preamount();
         customer.setCu_leftamount(beginapamount-beginprepayamount+recamount-preamount);
 
+        //获取已结账的期间
+        String YM = subledgerMapper.selectUnPeriod(companyId);
+        if(YM==null || YM.equals("")){
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
+            YM = simpleDateFormat.format(main.getCu_begindate());
+        }else{
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
+            String beginDate = simpleDateFormat.format(main.getCu_begindate());
+            if(Integer.valueOf(YM)>Integer.valueOf(beginDate)){
+                int code = BizExceptionCode.LIMIT_PERIOD_CUSTOMER.getCode();
+                String mes = String.format(BizExceptionCode.LIMIT_PERIOD_CUSTOMER.getMessage(),YM);
+                throw new BizException(code , mes);
+            }
+        }
         //编号校验
         cu_code = RegexpUtils.replaceSpecCharacter(cu_code);
         cu_code = pushMaxnubmer(cu_code, cu_id);
@@ -284,7 +298,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         subledger.setSl_namount(Math.abs(amount));
 
         Long sl_id  = subledgerMapper.selectByKindCodeCustid("期初余额","期初余额",
-                Math.toIntExact(customer.getId()),BaseContextHolder.getCompanyId());
+                Math.toIntExact(customer.getId()),BaseContextHolder.getCompanyId(),YM);
         subledger.setId(sl_id);
         if ( sl_id!=null && sl_id > 0 ) {
             subledgerMapper.updateByPrimaryKeySelective(subledger);

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

@@ -119,6 +119,21 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         main.setCompanyId(BaseContextHolder.getCompanyId());
         List<Vendorcontact> items = vendorListDTO.getItems();
         String ve_code = main.getVe_code().trim().toUpperCase();
+
+        //获取已结账的期间
+        String YM = subledgerMapper.selectUnPeriod(companyId);
+        if(YM==null || YM.equals("")){
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
+            YM = simpleDateFormat.format(main.getVe_begindate());
+        }else{
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
+            String beginDate = simpleDateFormat.format(main.getVe_begindate());
+            if(Integer.valueOf(YM)>Integer.valueOf(beginDate)){
+                int code = BizExceptionCode.LIMIT_PERIOD_VENDOR.getCode();
+                String mes = String.format(BizExceptionCode.LIMIT_PERIOD_VENDOR.getMessage(),YM);
+                throw new BizException(code , mes);
+            }
+        }
         ve_code = RegexpUtils.replaceSpecCharacter(ve_code);
         String code = pushMaxnubmer(ve_code, main.getId());
         if(main.getId() == 0){
@@ -237,7 +252,7 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         subledger.setSl_orderamount(Math.abs(amount));
         subledger.setSl_namount(Math.abs(amount));
         Long sl_id = subledgerMapper.selectByKindCodeVendid("期初余额","期初余额",
-                Math.toIntExact(main.getId()),BaseContextHolder.getCompanyId());
+                Math.toIntExact(main.getId()),BaseContextHolder.getCompanyId(),YM);
         subledger.setId(sl_id);
         if ( sl_id!=null && sl_id > 0 ) {
             subledgerMapper.updateByPrimaryKeySelective(subledger);

+ 6 - 0
applications/document/document-server/src/main/resources/mapper/SubledgerMapper.xml

@@ -253,6 +253,7 @@
   from subledger
   where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind,jdbcType=VARCHAR} and
     sl_custid = #{sl_custid,jdbcType=INTEGER} and companyId = #{companyid,jdbcType=INTEGER}
+    and sl_ym=#{sl_ym,jdbcType=VARCHAR}
   </select>
 
   <select id="selectByKindCodeVendid" resultType="java.lang.Long">
@@ -261,6 +262,7 @@
     from subledger
     where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind,jdbcType=VARCHAR} and
     sl_vendid = #{sl_vendid,jdbcType=INTEGER} and companyId = #{companyid,jdbcType=INTEGER}
+    and sl_ym=#{sl_ym,jdbcType=VARCHAR}
   </select>
 
   <delete id="deleteCustomer">
@@ -274,4 +276,8 @@
     where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind, jdbcType=VARCHAR} and
     sl_vendid = #{sl_vendid,jdbcType=INTEGER}
   </delete>
+
+  <select id="selectUnPeriod" resultType="string">
+        select PD_DETNO from periodsdetail where companyid=#{companyId} and pd_status=99 order by PD_DETNO desc LIMIT 1;
+    </select>
 </mapper>

+ 2 - 2
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VerificationList.java

@@ -55,9 +55,9 @@ public class VerificationList extends CommonBaseEntity implements Serializable {
 
     private Date vc_recorddate;
 
-    private Integer vc_status;
+    private String vc_status;
 
-    private BigDecimal vc_statuscode;
+    private String vc_statuscode;
 
     private String vc_remark;
 

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

@@ -208,6 +208,7 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         List<Verificationdetail> items2 = verificationdetailMapper.selectByFK(id);
 
         String type = main.getVc_kind();
+        type = transferKind(type);
         if(type.equals("receipts_offset_receivable") || type.equals("prepaid_offset_payable") ||
                 type.equals("receivable_offset_payable")){
             Double total1 = new Double(0);
@@ -478,6 +479,9 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
             }
         }
         baseDTO.setId(id);
+        baseDTO.setName(BillCodeSeq.VERIFICATION.getCaller());
+        baseDTO.setCode(formData.getMain().getVc_code());
+        messageLogService.audit(baseDTO);
         return baseDTO;
     }
 

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

@@ -22,8 +22,8 @@
         <result column="vc_recorderid" property="vc_recorderid" jdbcType="INTEGER" />
         <result column="vc_recorder" property="vc_recorder" jdbcType="VARCHAR" />
         <result column="vc_recorddate" property="vc_recorddate" jdbcType="TIMESTAMP" />
-        <result column="vc_status" property="vc_status" jdbcType="INTEGER" />
-        <result column="vc_statuscode" property="vc_statuscode" jdbcType="DECIMAL" />
+        <result column="vc_status" property="vc_status" jdbcType="VARCHAR" />
+        <result column="vc_statuscode" property="vc_statuscode" jdbcType="VARCHAR" />
         <result column="vc_remark" property="vc_remark" jdbcType="VARCHAR" />
         <result column="vc_text1" property="vc_text1" jdbcType="VARCHAR" />
         <result column="vc_text2" property="vc_text2" jdbcType="VARCHAR" />
@@ -46,7 +46,8 @@
 
     </resultMap>
     <sql id="Base_Column_List">
-    vc_id, vc_code, vc_kind, vc_date, vc_vendid, vc_vendcode ,vc_custcode ,vc_custid ,vc_amount1
+    vc_id, vc_code, vc_kind, vc_date, vc_vendid, vc_vendcode ,vc_custcode ,vc_custid ,vc_amount1,
+    vc_status,vc_statuscode,vc_vendname,vc_custname
   </sql>
     <select id="selectVerificationListByCondition"  resultMap="BaseResultMap">
         select

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

@@ -23,8 +23,8 @@
     <result column="vc_recorderid" property="vc_recorderid" jdbcType="INTEGER" />
     <result column="vc_recorder" property="vc_recorder" jdbcType="VARCHAR" />
     <result column="vc_recorddate" property="vc_recorddate" jdbcType="TIMESTAMP" />
-    <result column="vc_status" property="vc_status" jdbcType="INTEGER" />
-    <result column="vc_statuscode" property="vc_statuscode" jdbcType="DECIMAL" />
+    <result column="vc_status" property="vc_status" jdbcType="VARCHAR" />
+    <result column="vc_statuscode" property="vc_statuscode" jdbcType="VARCHAR" />
     <result column="vc_remark" property="vc_remark" jdbcType="VARCHAR" />
     <result column="companyId" property="companyId" jdbcType="INTEGER" />
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />

+ 18 - 8
frontend/saas-portal-web/src/components/conenter/addgongsi.vue

@@ -54,6 +54,7 @@
                         <li>
                             <span class="qy-biaoti">邮箱</span>
                             <input @input="email" ref="email" type="email">
+                            <span style="color:red">{{Email}}</span>
                         </li>
                     </ul>
                 </div>
@@ -70,7 +71,8 @@ import VDistpicker from 'v-distpicker'
                 province:'',//省
                 city:'',//市
                 area:'',//区
-                qymingzi: '',
+                qymingzi: false,//企业名是否注册
+                Email: '',
                 mytoken: JSON.parse(localStorage.getItem('app-state-session'))//本地储存的用户信息
             }
         },
@@ -102,13 +104,15 @@ import VDistpicker from 'v-distpicker'
                         }
                     })
                     .then(res=>{
-                        // console.log(res);
-                        // this.qymingzi = on;
-                        // console.log(this.qymingzi)
+                        if (res.data.data.success) {
+                            this.qymingzi = true;
+                        } else {
+                            this.$refs.qyno.innerHTML = '企业已注册';
+                            this.qymingzi = false
+                        }
                     })
                     .catch(err=>{
-                        console.log(err);
-                        this.$refs.qyno.innerHTML = '企业已注册';
+                        console.log("请求错误",err);
                     })
                 }
             },
@@ -123,7 +127,13 @@ import VDistpicker from 'v-distpicker'
             },
             
             email(){
+                let reg = new RegExp("^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$"); 
                 let email = this.$refs.email.value;//邮箱
+                if (!reg.test(email)) {
+                    this.Email = '邮箱格式错误'
+                } else {
+                    this.Email = ''
+                }
 
             },
             //保存
@@ -139,9 +149,9 @@ import VDistpicker from 'v-distpicker'
                 let mobile = mytoken.account.mobile;//手机号
                 let company = {'name':qyname,'address':address};
                 let account = {'realname':name,'email':email,'mobile':mobile, 'uu':uu}
-                if (name != '' && qyname != '') {
+                if (name != '' && qyname != '' && this.qymingzi) {
                     this.$ajax({
-                        url: this.$url.api+"/api/account/accountCenter/companyAccount/save",
+                        url: this.$url.api+"/api/account/accountCenter/companyAccount/save",//http://192.168.253.31:8560
                         method: 'post',
                         data: {
                             companyRegDTO:company,

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

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <iframe hidden :src="setTokenPage"></iframe>
+    <!-- <iframe hidden :src="setTokenPage"></iframe> -->
     <!-- 遮罩 -->
-    <div class="zhezhao" v-if="issetDefault || isOpensaas"></div>
+    <div class="zhezhao" v-if="issetDefault || isOpensaas || isNoopen"></div>
     <!-- 设置默认弹窗 -->
     <div class="tanchuang szmoren" v-if="issetDefault">
       <div class="over"><img @click="guanbitc" class="right xs" src="/static/img/qiye/chahao.png" alt=""></div>
@@ -39,14 +39,14 @@
       <div>
         <div class="tc-okkaitong"><span>该企业已开通服务,联系管理员邀请加入</span></div>
         <div class="tc-context">
-          <p><span>管理员:</span><span>飞飞</span></p>
-          <p><span>管理员手机号:</span><span>123456566767</span></p>
-          <p><span>管理员邮箱:</span><span>jjfdks@163.com</span></p>
+          <!-- <p><span>管理员:</span><span>{{arr[0].admin}}</span></p> -->
+          <p><span>管理员手机号:</span><span>{{mytoken.account.mobile}}</span></p>
+          <p><span>管理员邮箱:</span><span></span></p>
         </div>
       </div>
     </div>
     <!-- 开通10个不能继续开通 -->
-    <div class="tanchuang nokaitong" style="display:none" v-if="isNoopen">
+    <div class="tanchuang nokaitong" v-if="isNoopen">
       <div class="over"><img @click="guanbitc" class="right xs" src="/static/img/qiye/chahao.png" alt=""></div>
       <div>
         <div class="tc-conent"><img src="/static/img/qiye/buneng kaitong@1x.png" alt=""></div>
@@ -62,20 +62,19 @@
             <div v-for="(d , i) in arr " :key="i" class="gs-xiangqing xs">
                 <div class="left gs-xqleft" @click= "getEnterpriseInfo(d)">
                     <div class="gs-lefttext">
-                        <p class="gs-qynema"><span>企业名称:</span>{{d.address}}</p>
-                        <p><span>管理员:</span>{{d.name}}</p>
+                        <p class="gs-qynema"><span>企业名称:</span>{{d.name}}</p>
+                        <p><span>管理员:</span>{{d.admin}}</p>
                         <p v-if= "d.time"><span>开通日期:</span>{{d.time}}</p>
                     </div>
                 </div>
                 <div class="right gs-xqright">
                     <div class="gs-border">
                         <span v-if= "d.saas_" class="gs-btn1 dianji" @click="selectServe(d.id)">进入服务</span>
-                        <span v-else @click= "showOpenServeWin" class="gs-btn1 kaitong xs">开通服务</span>
+                        <span v-else @click="showOpenServeWin(d.id , i)" class="gs-btn1 kaitong xs">开通服务</span>
                     </div>
                     <div>
                         <span v-if = "d.default_" class="gs-btn2 gs-btn3">默认企业</span>
                         <span v-else @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
-                        
                     </div>
                 </div>
             </div>
@@ -97,7 +96,9 @@
                 isOpensaas: false,//开通saas弹窗
                 isNoopen: false,//开通10个不能继续开通
                 index:0,
-                ktsass: true,//确认开通saas
+                saasid:null,
+                saasindex:0,
+                ktsass: true,//开通saas
                 isDefault: true,//开通默认
                 comdata: this.$store.state.data,//登录成功后的本地数据
                 isAutoLogin: this.$store.state.isAutoLogin,
@@ -121,6 +122,7 @@
             let mytoken = JSON.parse(localStorage.getItem('app-state-session'));
             let token = String(mytoken.token);
             // console.log(mytoken.account)
+            //企业列表
             this.$ajax({
                     url: this.$url.api+"/api/account/accountCenter/company/list",
                     method: 'get',
@@ -133,31 +135,36 @@
                     }
                 })
                 .then(res=>{
+                    const frame = window.frames[window.frames.length - 1];
                     this.arr = res.data.data.spaces;
                     let hasCompany = res.data.data.hasDefaultCompany;
                     let companyId = res.data.data.defaultCompanyId;
+                    let token = res.data.data.token.token;
                     if (this.isAutoLogin) {
                         if (hasCompany) {
-                            this.selectServe(companyId)
+                            let session=JSON.parse(localStorage.getItem('app-state-session'));
+                            session.account.companyId=companyId;
+                            session.span = session.timestamp - new Date().getTime();
+                            session.token=token;
+                            frame.postMessage(JSON.stringify(session), '*');
+                            window.location.href = this.$url.web
                         }
-                        this.isAutoLogin = false
                     }
+                    this.$store.commit('Loginfalse')
                     // console.log(res.data.data)
                 })
                 .catch(err=>{
                     console.log("请求失败",err)
                 })
-            
+            this.boxheight();
         },
         methods: {
-            //设置默认弹窗
+            //设置默认企业
             showDefaultWin(i){
                 this.index = i;
                 this.issetDefault = true;
-                // $(".szmoren").css("display","block");
-                // $(".zhezhao").css("display","block");
             },
-            //确认默认
+            //确认默认企业
             setDefault(){
                 let i = this.index;
                 let token = this.mytoken.token;
@@ -176,6 +183,7 @@
                 .then(res=>{
                     // console.log('请求成功',res);
                     this.isDefault = false;
+                    this.$router.go(0);
                 })
                 .catch(err=>{
                     console.log('请求失败',err);
@@ -207,26 +215,69 @@
                 })
             
             },
-            //开通sass
-            showOpenServeWin(){
-                this.isOpensaas = true;
-                // $(".ktsass").css('display','block');
-                // $(".zhezhao").css("display","block");
-                this.ktsass = true;
+            //开通saas服务开通数量达到10的时候禁止开通
+            showOpenServeWin(id , i){
+                let saasNum = [];
+                let arr = this.arr;
+                for (let j = 0; j < arr.length; j++) {
+                    if (arr[j].saas_) {
+                        saasNum.push(arr[j].saas_)
+                    }
+                }
+                if (saasNum.length >= 10) {
+                    this.isNoopen = true;
+                } else {
+                    this.isOpensaas = true;
+                }
+                this.saasindex = i;
+                this.saasid = id;
             },
-            confirmSaas(){//确认sass
-                this.ktsass = false;
+            confirmSaas(){//确认saas开通
+                let i = this.saasindex;
+                let token = this.mytoken.token;
+                let qyname = this.arr[i].name;//公司名字
+                let address = this.arr[i].address;//公司详细地址
+                let name = this.arr[i].realname;//名字
+                let email = this.arr[i].email;//邮箱
+                let mobile = this.mytoken.account.mobile;//手机号
+                let uu = this.arr[i].uu;
+                let company = {'name':qyname,'address':address};
+                let account = {'realname':name,'email':email,'mobile':mobile, 'uu':uu}
+                // let id = this.saasid;
+                this.$ajax({
+                    url: this.$url.api+"/api/account/accountCenter/companyAccount/save",
+                    method: 'post',
+                    data: {
+                        companyRegDTO:company,
+                        accountRegDTO:account,
+                        type:1
+                    },
+                    headers: {
+                        "Authorization":token
+                    }
+                })
+                .then(res=>{
+                    console.log('请求成功',res)
+                    if (res.data.data.success) {
+                        this.ktsass = false;
+                    }
+                })
+                .catch(err=>{
+                    console.log('请求失败',err)
+                })
             },
-            //进入服务
+            //进入saas服务
             showServeWin(){
-                this.isOpensaas = false
-                // $(".ktsass").css('display','none');
-                // $(".zhezhao").css("display","none");
+                let id = this.saasid;
+                this.isOpensaas = false;
+                this.$options.methods.selectServe(id)
             },
             //查看企业详情
             getEnterpriseInfo(d){
                 document.documentElement.scrollTop = 0;
-                this.$router.push({path:'/details',query:{content:d}});
+                // this.$router.push({path:'/details',query:{content:d}});
+                this.$router.push({path:'/details'});
+                window.sessionStorage.setItem('content',JSON.stringify(d))
             },
              //添加企业
             addEnterprise(){
@@ -235,19 +286,16 @@
             //关闭弹窗
             guanbitc(){
                 this.issetDefault = false;
-                this.isOpensaas = false
-                // $(".tanchuang").css("display","none");
-                // $(".zhezhao").css("display","none");
+                this.isOpensaas = false;
+                this.isNoopen = false
             },
             //没有内容也要有一定的高度
             boxheight(){
                 let H = this.$refs.qiyebox.offsetHeight;
-                // let H = $(".gs-qiyebox").height();
-                console.log(H)
                 if (H < 300) {
-                    $(".gs-qiyebox").css("height",'500px')
+                    this.$refs.qiyebox.style.height = 500+'px';
                 } else {
-                    $(".gs-qiyebox").css("height",'')
+                    this.$refs.qiyebox.style.height = '';
                 }
             },
         }
@@ -255,10 +303,5 @@
 </script>
 
 <style scoped>
-.zhezhao {
-    /* display: none */
-}
-.tanchuang {
-    /* display: none */
-}
+
 </style>

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

@@ -1,6 +1,6 @@
 <template>
     <div class="div">
-        <iframe hidden :src="setTokenPage"></iframe>
+        
         <div id="navigation" class="navbar-inverse navbar-fixed-top animated-header">
         <div class="container">
             <div class="navbar-header">
@@ -25,13 +25,13 @@
                             <img style="width: 25px;" src="/static/img/assets/denglu3x.png" alt="">
                             {{mytoken.realname}}
                         </span>
-                        <a href=""><span @click="loginout" class="">【退出】</span></a>
+                        <a href=""><span @click="loginout">【退出】</span></a>
                     </li>
                 </ul>
             </div>
         </div>
         </div>
-
+        <iframe hidden :src="setTokenPage"></iframe>
         <div class="gs-worp">
             <!-- 顶部tab -->
             <div class="gs-tab">
@@ -47,7 +47,7 @@
 
                 </div>
     <!-- 个人信息------------------------------------------------------------------- -->
-                <div :class="{gsqiye:nowindex == 1}">
+                <div :class= "{gsqiye:nowindex == 1}">
                     <div class="over gr-worp" style="margin-bottom: 30px;">
                         <div class="left gr-left">
                             <img src="../../../static/img/qiye/yonghu@2x.png" alt="">
@@ -111,7 +111,6 @@ import Session from '@/utils/session'
                 nowindex: 0,//tab切换
                 tianjiaqiye: true,//添加企业切换
                 mytoken: JSON.parse(localStorage.getItem('app-state-session')).account,//本地储存的用户信息
-                mydata: this.$route.query.mydata,//登录成功传递的数据
                 tab: [
                     {name: '企业信息'},
                     {name: '个人信息'},
@@ -119,11 +118,14 @@ import Session from '@/utils/session'
                     ],
             }
         },
-        mounted(){
-            // console.log(this.mydata)
+        computed :{
+            setTokenPage() {
+                return this.$url.web + '/set-token.html'
+            }
         },
-        components: {
-            
+        mounted(){
+            console.log(window.frames[window.frames.length - 1])
+            console.log(window.frames.length)
         },
         methods: {
             // tab切换
@@ -134,8 +136,8 @@ import Session from '@/utils/session'
             loginout(){
                 const frame = window.frames[window.frames.length - 1]
                 frame.postMessage('', '*')
-                Session.remove();
-                this.$router.push({name:'name',});
+                Session.remove()
+                this.$router.push({name:'name'});
             } 
         },
     }

+ 84 - 28
frontend/saas-portal-web/src/components/conenter/home.vue

@@ -52,17 +52,19 @@
           <img @click="closeModal" class="tc-on shut"
                src="/static/img/qiye/chahao.png" alt="">
         </div>
-        <iframe width="430" height="440" :src="ssoPage"></iframe>
+        <iframe width="430" height="474" :src="ssoPage"></iframe>
         <iframe hidden :src="setTokenPage"></iframe>
       </div>
       <div class="tiyan" v-if="isexperience">
-        <div><span>欢迎你访问u企云服</span></div>
-        <div>
-          <p>1.</p>
+        <img @click="Closeexperience" class="tc-on shut" src="/static/img/qiye/chahao.png" alt="" />
+        <div class="ty-title"><span>填写手机号后,可体验电子行业贸易版所有功能</span></div>
+        <div class="ty-phone over">
+          <div class="left"><input type="text" placeholder="请输入您的11位手机号"></div>
+          <button>立即申请试用</button>
+        </div>
+        <div class="contact">
+          <span>客服电话:400-830-1818</span>
         </div>
-        我是体验
-        <img @click="Closeexperience" class="tc-on shut"
-               src="/static/img/qiye/chahao.png" alt="">
       </div>
 
       <!--Home Slider==================================== -->
@@ -74,7 +76,8 @@
                  data-slice1-scale="2" data-slice2-scale="2">
               <div class="mask-overly"></div>
               <div class="bg-img slider-1">
-                <img src="/static/img/assets/beijing2x.png" alt="">
+                <!-- <img src="/static/img/assets/beijing2x.png" alt=""> -->
+                <img src="../../../static/img/gongneng/Group 32.png" alt="">
               </div>
               <!-- 首页内容 -->
               <div class="my-text">
@@ -100,7 +103,8 @@
           </div>
           <div class="ts-box">
             <div style="margin:50px 0;">
-              <img class="ts-img" src="/static/img/features.jpg" alt="">
+              <!-- <img class="ts-img" src="/static/img/features.jpg" alt=""> -->
+              <img class="ts-img" src="/static/img/gongneng/chahua12x.png" alt="">
             </div>
             <div class="right right-text">
               <img class="ts-minimg" src="/static/img/assets/1.png" alt="">
@@ -125,12 +129,12 @@
               </div>
             </div>
             <div style="margin:50px 0;">
-              <img class="ts-img" src="/static/img/features.jpg" alt="">
+              <img class="ts-img" src="/static/img/gongneng/chahua22x.png" alt="">
             </div>
           </div>
           <div class="ts-box">
             <div style="margin:50px 0;">
-              <img class="ts-img" src="/static/img/features.jpg" alt="">
+              <img class="ts-img" src="/static/img/gongneng/chahua32x.png" alt="">
             </div>
             <div class="right right-text">
               <img class="ts-minimg" src="/static/img/assets/1.png" alt="">
@@ -262,17 +266,18 @@
               <div class="bz-content">
                 <div class="bz-left">
                   <ul class="bz-ul">
-                    <li class='active'>操作文档</li>
-                    <li>常见问题</li>
+                    <!-- <li class='active'>操作文档</li>
+                    <li>常见问题</li> -->
+                    <li v-for="(d,i) in arr" :key="i" :class= "{active:Nowindex == i}" @click="tab(i)">{{d}}</li>
                   </ul>
                 </div>
                 <div class="bz-right">
                   <div class="bz-right-conent">
-                    <div>
+                    <div :class= "{shows:Nowindex == 0}">
                       <ul>
                         <li>
                           <span class="left bz-yuandian"></span>
-                          <span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx操作文档 </span>
+                          <span class="left">方式不同吧好像是差不多 </span>
                           <span class="right">2018年10月31日  12:00</span>
                         </li>
                         <li>
@@ -287,22 +292,22 @@
                         </li>
                       </ul>
                     </div>
-                    <div>
+                    <div :class= "{shows:Nowindex == 1}">
                       <ul>
                         <li>
                           <span class="left bz-yuandian"></span>
                           <span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx常见问题 </span>
-                          <span class="right">2018年10月31日  12:00</span>
+                          <span class="right">2018年11月24日  12:00</span>
                         </li>
                         <li>
                           <span class="left bz-yuandian"></span>
                           <span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx常见问题</span>
-                          <span class="right">2018年10月31日  12:00</span>
+                          <span class="right">2018年11月24日  12:00</span>
                         </li>
                         <li>
                           <span class="left bz-yuandian"></span>
                           <span class="left">XXXXXXXXXXXXXXX常见问题</span>
-                          <span class="right">2018年10月31日  12:00</span>
+                          <span class="right">2018年11月24日  12:00</span>
                         </li>
                       </ul>
                     </div>
@@ -328,14 +333,15 @@
         isRegister: false,
         clientId: null,
         account: null,
-        isexperience: false
+        isexperience: false,
+        arr: ["操作文档","常见手册"],
+        Nowindex: 0
       }
     },
     mounted() {
       this.clientId = Math.random().toString(36).substr(2)
       // 从本地加载已经登录的信息
       this.account = Session.getAccount()
-      console.log(this.$store.state.isAutoLogin)
     },
     computed: {
       setTokenPage() {
@@ -353,6 +359,9 @@
       }
     },
     methods: {
+      tab(i){
+        this.Nowindex = i;
+      },
       home() {
         document.documentElement.scrollTop = 0;
       },
@@ -370,7 +379,7 @@
             if (!account.companyId) {
               // 添加企业
               me.$router.push({path: '/enterprise', query: {mydata: account}})
-              me.$store.state.isAutoLogin = true;
+              me.$store.commit('Logintrue')
             } else {
               // 跳转应用页面
               window.location.href = me.$url.web
@@ -418,14 +427,28 @@
 </script>
 
 <style scoped>
+.shows {
+  display: block !important;
+}
+.bz-right-conent div {
+  display: none;
+}
 .shut {
   cursor: pointer;
   position: absolute;
   top: 10px;
   right: 10px;
 }
+.navbar-inverse {
+  /* padding: 3px; */
+  padding: 0px;
+  /* height: 70px;
+  line-height: 70px; */
+}
+
+/* 体验 */
 .tiyan {
-  position: absolute;
+  position: fixed;
   top: 50%;
   left: 50%;
 	width: 400px;
@@ -435,10 +458,43 @@
   z-index: 10001;
   background: white;
 }
-.navbar-inverse {
-  /* padding: 3px; */
-  padding: 0px;
-  /* height: 70px;
-  line-height: 70px; */
+.tiyan div {
+  height: 33%;
+}
+.ty-title {
+  text-align: center;
+  margin-top: 30px;
+  font-size: 18px;
+  font-weight: 600;
+}
+.ty-title span {
+  margin-top: 30px;
+  display: inline-block;
+}
+.ty-phone div {
+  width: 60%;
+  height: 40px;
+  border-radius: 20px;
+  border: 1px solid rgb(162, 151, 231);
+  line-height: 40px;
+  margin: 0 10px;
+}
+.ty-phone input{
+  outline:none;
+  border: 0;
+  height: 30px;
+  margin-left: 10px;
+}
+.ty-phone button{
+  color: white;
+  width: 30%;
+  height: 40px;
+  border-radius: 20px;
+  background: rgb(162, 151, 231);
+  border: 0;
+}
+.contact {
+    margin-left: 20px;
+    font-size: 18px;
 }
 </style>

+ 100 - 18
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue

@@ -1,5 +1,19 @@
 <template>
     <div>
+        <!-- 遮罩 -->
+        <div class="zhezhao" v-if="isId"></div>
+        <!-- 不是管理员不能修改企业信息 -->
+        <div class="tanchuang nokaitong" v-if="isId">
+            <div class="over"><img @click="guanbitc" class="right xs" src="/static/img/qiye/chahao.png" alt=""></div>
+            <div>
+                <div class="tc-conent"><img src="/static/img/qiye/buneng kaitong@1x.png" alt=""></div>
+                <div class="tc-text">
+                <p>您不是管理员不能修改企业信息</p>
+                <!-- <p>不能再继续开通服务</p> -->
+                </div>
+            </div>
+        </div>
+        <span class="Tips" ref="Tips"></span>
         <!-- 企业详细信息 -->
         <div v-if="xiugai">
             <div class="gs-worp qy-worp" style="width:100%">
@@ -10,8 +24,8 @@
                 </div>
                 <div class="qy-conent">
                     <ul>
-                        <li><span class="qy-biaoti">公司名称</span><span>{{content.address}}</span></li>
-                        <li><span class="qy-biaoti">所属行业</span><span>飞飞有限公司</span></li>
+                        <li><span class="qy-biaoti">公司名称</span><span>{{content.name}}</span></li>
+                        <li><span class="qy-biaoti">所属行业</span><span></span></li>
                         <li><span class="qy-biaoti">公司地址</span><span>{{content.address}}</span></li>
                     </ul>
                 </div>
@@ -22,9 +36,9 @@
                 </div>
                 <div class="qy-conent">
                     <ul>
-                        <li><span class="qy-biaoti">姓名</span><span>飞飞有限公司</span></li>
-                        <li><span class="qy-biaoti">手机号</span><span>1588888888888</span></li>
-                        <li><span class="qy-biaoti">邮箱</span><span>飞飞有限公司</span></li>
+                        <li><span class="qy-biaoti">姓名</span><span>{{content.admin}}</span></li>
+                        <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
+                        <li><span class="qy-biaoti">邮箱</span><span>{{mytoken.account.email}}</span></li>
                     </ul>
                 </div>
             </div>
@@ -43,11 +57,11 @@
                     <ul>
                         <li>
                             <span class="qy-biaoti"><span class="xingxing">*</span>公司名称</span>
-                            <span>{{content.address}}</span>
+                            <span>{{content.name}}</span>
                         </li>
                         <li>
                             <span class="qy-biaoti">所属行业</span>
-                            <span>飞飞有限公司</span>
+                            <span></span>
                         </li>
                         <li>
                             <span class="qy-biaoti">公司地址</span>
@@ -62,9 +76,13 @@
                 </div>
                 <div class="qy-conent">
                     <ul>
-                        <li><span class="qy-biaoti">姓名</span><span>飞飞有限公司</span></li>
-                        <li><span class="qy-biaoti">手机号</span><span>飞飞有限公司</span></li>
-                        <li><span class="qy-biaoti">邮箱</span><input type="text"></li>
+                        <li><span class="qy-biaoti">姓名</span><span>{{content.admin}}</span></li>
+                        <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
+                        <li>
+                            <span class="qy-biaoti">邮箱</span>
+                            <input @input="email" ref="email" type="text" value="">
+                            <span style="color:red">{{Email}}</span>
+                        </li>
                     </ul>
                 </div>
             </div>
@@ -78,16 +96,38 @@
         data(){
             return {
                 xiugai:true,
-                content: this.$route.query.content,
+                // content: this.$route.query.content,
+                content: JSON.parse(window.sessionStorage.getItem("content")),
+                Email: '',
+                mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
+                isId: false,
+                isemail: false,//正则邮箱
             }
         },
         mounted(){
-            // console.log(this.content)
+
         },
         methods: {//修改企业信息
             xiugaiqiye(){
-                document.documentElement.scrollTop = 0;
-                this.xiugai = false;
+                if (this.content.adminId == this.mytoken.account.id) { //如果不是管理员不能修改企业信息
+                    document.documentElement.scrollTop = 0;
+                    this.xiugai = false;
+                } else {
+                    this.isId = true
+                }
+            },
+            guanbitc(){
+                this.isId = false
+            },
+            email(){ //验证邮箱
+                let reg = new RegExp("^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$"); 
+                let email = this.$refs.email.value;//邮箱
+                if (!reg.test(email)) {
+                    this.Email = '邮箱格式错误'
+                } else {
+                    this.Email = '',
+                    this.isemail = true
+                }
             },
             // 取消修改
             quxiaoxiugai(){
@@ -96,13 +136,49 @@
             },
             // 保存修改
             baocunxiugai(){
-                document.documentElement.scrollTop = 0;
-                this.xiugai = true;
+                if (this.isemail) {
+                    let email = this.$refs.email.value;
+                    let qyname = this.content.name;//公司名字
+                    let address = this.content.address;//公司详细地址
+                    let companyId = this.content.id;
+                    let name = this.content.realname;//名字
+                    let mobile = this.mytoken.account.mobile;//手机号
+                    let uu = this.content.uu;
+                    let company = {'name':qyname,'address':address, 'id':companyId};
+                    let account = {'realname':name,'email':email,'mobile':mobile, 'uu':uu};
+                    this.$ajax({
+                        url: this.$url.api+"/api/account/accountCenter/companyAccount/update",//http://192.168.253.31:8560
+                        method: 'post',
+                        data: {
+                            companyRegDTO:company,
+                            accountRegDTO:account,
+                        },
+                        headers: {
+                            "Authorization":this.mytoken.token,
+                        }
+                    })
+                    .then(res=>{
+                        console.log("请求成功",res)
+                        if (res.data.success) {
+                            document.documentElement.scrollTop = 0;
+                            this.xiugai = true;
+                        };
+                    })
+                    .catch(err=>{
+                        console.log("请求失败",err)
+                    })
+                } else {
+                    this.$refs.Tips.innerHTML= "邮箱格式错误"
+                    // this.isTipsmail = true;
+                    setTimeout(()=>{
+                        this.$refs.Tips.innerHTML= ""
+                    },2000)
+                }
             },
             //返回
             gobick(){
-                // this.$router.go(-1); 
-                this.$router.push({name:'company',});
+                // this.$router.go(-1) 
+                this.$router.push({name:'company'});
             }
         }
     }
@@ -121,4 +197,10 @@
     top: -17px;
     right: -21px;
 }
+.Tips {
+    display: block;
+    text-align: center;
+    color: red;
+    height: 20px;
+}
 </style>

+ 7 - 4
frontend/saas-portal-web/src/store/index.js

@@ -5,11 +5,14 @@ Vue.use(Vuex)
 export default new Vuex.Store({
     state:{
         data: [],
-        isAutoLogin: ''
+        isAutoLogin: false,
     },
     mutations:{
-         setId(state ,  id) {
-             state.id = id   
-         }
+         Logintrue(state) {
+             state.isAutoLogin = true;   
+         },
+         Loginfalse(state) {
+             state.isAutoLogin = false;   
+         },
     }
 })

+ 2 - 2
frontend/saas-portal-web/static/css/main.css

@@ -130,13 +130,13 @@ main > section {
 
 .box{
     width: 430px;
-    height: 440px;
+    height: 474px;
     position: fixed;
     background:white;
     top: 55%;
     left:50%;
     margin-left: -215px;
-    margin-top: -220px;
+    margin-top: -237px;
     z-index: 10001;
 }
 

二進制
frontend/saas-portal-web/static/img/gongneng/Group 32.png


二進制
frontend/saas-portal-web/static/img/gongneng/chahua12x.png


二進制
frontend/saas-portal-web/static/img/gongneng/chahua22x.png


二進制
frontend/saas-portal-web/static/img/gongneng/chahua32x.png


+ 7 - 7
frontend/saas-portal-web/static/js/mains.js

@@ -7,13 +7,13 @@ jQuery(window).load(function(){
     $("#preloader").fadeOut("slow");
 
     // 帮助中心
-    $(".bz-right-conent>div").eq(0).show()
-    let abtn = $(".bz-ul").children('li').click(function(){
-        var _index = $(this).index();
-        //让内容框的第 _index 个显示出来,其他的被隐藏
-        $(".bz-right-conent>div").eq(_index).show().siblings().hide();
-        $(this).addClass("active").siblings().removeClass('active')
-    });
+    // $(".bz-right-conent>div").eq(0).show()
+    // let abtn = $(".bz-ul").children('li').click(function(){
+    //     var _index = $(this).index();
+    //     //让内容框的第 _index 个显示出来,其他的被隐藏
+    //     $(".bz-right-conent>div").eq(_index).show().siblings().hide();
+    //     $(this).addClass("active").siblings().removeClass('active')
+    // });
 });
 
 /* ========================================================================= */

+ 1 - 0
frontend/saas-web/app/view/money/othreceipts/FormPanel.js

@@ -87,6 +87,7 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                 width : 150.0, 
                 dataIndex : "ord_type",
                 items : null,
+                allowBlank : false,
                 hiddenBtn:false,//true 则会关闭新增按钮功能
                 editor : {
                     xtype : "remotecombo", 

+ 1 - 0
frontend/saas-web/app/view/money/othspendings/FormPanel.js

@@ -87,6 +87,7 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
                 width : 150.0, 
                 dataIndex : "osd_type",
                 items : null,
+                allowBlank : false,
                 hiddenBtn:false,//true 则会关闭新增按钮功能
                 editor : {
                     xtype : "remotecombo",

+ 1 - 1
frontend/saas-web/app/view/money/othspendings/QueryPanel.js

@@ -19,7 +19,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
     },{
         xtype: 'textfield',
         name: 'os_code',
-        emptyText:'请输入单号或客户或账号',
+        emptyText:'请输入单号或供应商或账号',
         getCondition: function(value) {
             if(value == 'ALL') {
                 return '1=1';

+ 2 - 3
frontend/saas-web/app/view/money/verification/QueryPanel.js

@@ -101,7 +101,7 @@ Ext.define('saas.view.money.verification.QueryPanel', {
             text: '单据日期',
             dataIndex: 'vc_date',
             xtype: 'datecolumn',
-            width: 120
+            width: 100
         },{
             text: '审核状态',
             dataIndex: 'vc_status',
@@ -109,7 +109,7 @@ Ext.define('saas.view.money.verification.QueryPanel', {
         },{
             text: '业务类型',
             dataIndex: 'vc_kind',
-            width: 110
+            width: 100
         }, {
             text: '客户编号',
             dataIndex: 'vc_custcode',
@@ -131,7 +131,6 @@ Ext.define('saas.view.money.verification.QueryPanel', {
             dataIndex: 'vc_amount1',
             xtype: 'numbercolumn',
             width: 100,
-            flex: 1,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
                 var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');