Browse Source

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

guq 7 years ago
parent
commit
c28c2101e2
48 changed files with 404 additions and 84 deletions
  1. 4 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 4 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/EndProductMapper.java
  3. 8 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/EndProductServiceImpl.java
  4. 86 0
      applications/commons/commons-server/src/main/resources/mapper/EndProductMapper.xml
  5. 12 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/CustomerController.java
  6. 6 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java
  7. 3 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/EmployeeMapper.java
  8. 3 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/CustomerService.java
  9. 8 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  10. 22 9
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/EmployeeServiceImpl.java
  11. 5 0
      applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml
  12. 8 0
      applications/document/document-server/src/main/resources/mapper/EmployeeMapper.xml
  13. 6 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/VerificationController.java
  14. 5 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/VerificationService.java
  15. 6 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  16. 9 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  17. 3 0
      applications/money/money-server/src/main/resources/application.yml
  18. 10 0
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRspDTO.java
  19. 2 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java
  20. 1 1
      base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml
  21. 57 0
      frontend/saas-portal-web/build/utils.js
  22. 8 3
      frontend/saas-portal-web/build/webpack.base.conf.js
  23. 11 6
      frontend/saas-portal-web/build/webpack.dev.conf.js
  24. 22 17
      frontend/saas-portal-web/build/webpack.prod.conf.js
  25. 1 1
      frontend/saas-portal-web/config/dev.env.js
  26. 2 2
      frontend/saas-portal-web/config/index.js
  27. 1 0
      frontend/saas-portal-web/package.json
  28. 1 1
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  29. 2 1
      frontend/saas-portal-web/src/components/conenter/company.vue
  30. 2 1
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  31. 8 5
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  32. 2 1
      frontend/saas-portal-web/src/pages/index/index.html
  33. 3 3
      frontend/saas-portal-web/src/pages/index/index.js
  34. 2 1
      frontend/saas-portal-web/src/pages/index/index.vue
  35. 25 0
      frontend/saas-portal-web/src/pages/remove-token/remove-token.html
  36. 0 0
      frontend/saas-portal-web/src/pages/remove-token/remove-token.js
  37. 15 0
      frontend/saas-portal-web/src/pages/remove-token/remove-token.vue
  38. 1 0
      frontend/saas-portal-web/src/store/index.js
  39. 3 0
      frontend/saas-web/app.json
  40. 0 1
      frontend/saas-web/app/Application.scss
  41. 7 4
      frontend/saas-web/app/view/document/kind/ChildForm.js
  42. 1 1
      frontend/saas-web/app/view/main/Main.js
  43. 0 6
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  44. 1 1
      frontend/saas-web/app/view/sys/account/DataList.js
  45. 1 1
      frontend/saas-web/app/view/sys/finish/DataList.js
  46. 8 3
      frontend/saas-web/app/view/viewport/ViewportController.js
  47. 9 0
      frontend/saas-web/index.html
  48. 0 10
      frontend/saas-web/resources/json/navigation.json

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

@@ -41,6 +41,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     REPEAT_CODE(79502, "编号重复"),
     REPEAT_CUSTOMERCODE(79503, "客户名称或编号重复"),
     REPEAT_TEL(79504, "电话号码重复"),
+    REPEAT_EMNAMECODE(79505, "姓名或编号重复"),
     NO_DATA(79998, "未找到数据"),
     ILLEGAL_ID(79999, "id不正确"),
     PRODUCT_HAS_WAREHOUSE(79502, "存在物料默认仓库资料为该仓库,无法删除"),
@@ -94,6 +95,9 @@ public enum BizExceptionCode implements BaseExceptionCode {
     DOCUMENTS_UNAUDITED(74010,"存在未审核单据:%S"),
     BANK_AMOUNT_NOTENOUGHS(74011, "资金账号不足:%S"),
 
+    //反结账
+    EARLY_USERING(74012, "期初余额被使用,无法反结账"),
+
 
 
     //库存

+ 4 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/EndProductMapper.java

@@ -17,4 +17,8 @@ public interface EndProductMapper {
     List<MessagelogDTO> getListData(@Param("condition") String condition, @Param("companyId") Long companyId);
 
     void updatePeriodStatus(@Param("status") Long status,@Param("period") String period, @Param("companyId") Long companyId);
+
+    int checkPay(Long companyId);
+    int checkRec(Long companyId);
+    void deleteSub(Long companyId);
 }

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

@@ -58,6 +58,7 @@ public class EndProductServiceImpl implements EndProductService {
     @Override
     public String endAccount() {
         String period = endProductMapper.selectPeriod(BaseContextHolder.getCompanyId());
+
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("yearMonth", period);
         map.put("companyId", BaseContextHolder.getCompanyId());
@@ -71,6 +72,13 @@ public class EndProductServiceImpl implements EndProductService {
 
     @Override
     public void unEndAccount() {
+        int payc = endProductMapper.checkPay(BaseContextHolder.getCompanyId());
+        int recc = endProductMapper.checkRec(BaseContextHolder.getCompanyId());
+        if(payc !=0 || recc != 0){
+            throw new BizException(500, BizExceptionCode.EARLY_USERING.getMessage());
+        }
+        endProductMapper.deleteSub(BaseContextHolder.getCompanyId());
+
         String period = endProductMapper.selectUnPeriod(BaseContextHolder.getCompanyId());
         if (StringUtils.isEmpty(period)){
             throw new BizException(BizExceptionCode.BIZ_UNENDPRODUCT);

+ 86 - 0
applications/commons/commons-server/src/main/resources/mapper/EndProductMapper.xml

@@ -31,4 +31,90 @@
     <update id="updatePeriodStatus" >
         update periodsdetail set pd_status=#{status} where pd_detno=#{period} and companyId=#{companyId}
     </update>
+
+    <select id="checkPay" parameterType="java.lang.Long" resultType="java.lang.Integer">
+        select count(1) from vendor where (ve_id,companyid) in (select pb_vendid,companyid from (
+        select pbd_ym,pb_vendid,paybalance.companyid from paybalance,paybalancedetail where pb_id=pbd_pbid and pbd_slkind='期初余额'
+        union all select vd_ym,vc_vendid,verification.companyid from verification,verificationdet where vc_id=vd_vcid and vd_slkind='期初余额'
+        and ifnull(vc_vendid,0)!=0
+        union all select vcd_ym,vc_vendid,verification.companyid from verification,verificationdetail where vc_id=vcd_vcid and vcd_slkind='期初余额' and ifnull(vc_vendid,0)!=0
+        union all select vd_ym,vc_turnvendid,verification.companyid from verification,verificationdet where vc_id=vd_vcid and vd_slkind='期初余额' and ifnull(vc_turnvendid,0)!=0
+        )a where a.pbd_ym =(select min(pd_detno) from periodsdetail where pd_status=0 and companyId = #{companyId} )) ;
+    </select>
+
+    <select id="checkRec" parameterType="java.lang.Long" resultType="java.lang.Integer">
+        SELECT
+        count(1)
+        FROM
+        customer
+        WHERE
+        (cu_id, companyid) IN (
+        SELECT
+        rb_custid,
+        companyid
+        FROM
+        (
+        SELECT
+        rbd_ym,
+        rb_custid,
+        recbalance.companyid
+        FROM
+        recbalance,
+        recbalancedetail
+        WHERE
+        rb_id = rbd_rbid
+        AND rbd_slkind = '期初余额'
+        UNION ALL
+        SELECT
+        vd_ym,
+        vc_custid,
+        verification.companyid
+        FROM
+        verification,
+        verificationdet
+        WHERE
+        vc_id = vd_vcid
+        AND vd_slkind = '期初余额'
+        AND ifnull(vc_custid, 0) != 0
+        UNION ALL
+        SELECT
+        vcd_ym,
+        vc_custid,
+        verification.companyid
+        FROM
+        verification,
+        verificationdetail
+        WHERE
+        vc_id = vcd_vcid
+        AND vcd_slkind = '期初余额'
+        AND ifnull(vc_custid, 0) != 0
+        UNION ALL
+        SELECT
+        vd_ym,
+        vc_turncustid,
+        verification.companyid
+        FROM
+        verification,
+        verificationdet
+        WHERE
+        vc_id = vd_vcid
+        AND vd_slkind = '期初余额'
+        AND ifnull(vc_turncustid, 0) != 0
+        ) a
+        WHERE
+        a.rbd_ym = (
+        SELECT
+        min(pd_detno)
+        FROM
+        periodsdetail
+        WHERE
+        pd_status = 0 and companyid = #{companyId}
+        )
+        )
+    </select>
+
+    <delete id="deleteSub" parameterType="java.lang.Long" >
+    DELETE from subledger where sl_ym =
+    (select min(pd_detno) from periodsdetail where pd_status=0 and companyid=#{companyId}) and companyid = #{companyId}
+  </delete>
 </mapper>

+ 12 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/CustomerController.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.document.controller;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.document.dto.CustomerFormDTO;
@@ -12,6 +13,8 @@ import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * Created by zdw
  * 2018-10-23 11:39.
@@ -101,6 +104,15 @@ public class CustomerController {
         return Result.success();
     }
 
+
+    @GetMapping("/getAddressCombo")
+    public Result getCombo(Long id){
+        List<ComboDTO> comboDTOList = customerService.getAddressCombo(id);
+        return Result.success(comboDTOList);
+    }
+
+
+
     /**
      * 客户资料批量删除
      *

+ 6 - 2
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java

@@ -1,9 +1,11 @@
 package com.usoftchina.saas.document.mapper;
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.document.entities.Customer;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 public interface CustomerMapper extends CommonBaseMapper<Customer> {
@@ -24,13 +26,15 @@ public interface CustomerMapper extends CommonBaseMapper<Customer> {
     Integer validateCodeWhenUpdate(@Param("code") String code, @Param("id") Long id,
                                    @Param("companyId") Long companyId);
 
-    int validNameAndCodeWhenInsert(Customer record);
+    int validNameAndCodeWhenInsert(@Param("cu_code") String cu_code,@Param("cu_name") String cu_name,@Param("companyId") Long companyId);
 
-    int validNameAndCodeWhenUpdate(Customer record);
+    int validNameAndCodeWhenUpdate(@Param("cu_code") String cu_code,@Param("cu_name") String cu_name,@Param("id") Long cu_id,@Param("companyId") Long companyId);
 
     int validFinish(@Param("id") Long id,@Param("companyId") Long companyId);
 
     void check(Map<String, Object> map);
 
     int validNameAndCodeWhenRelated(Customer customer);
+
+    List<ComboDTO> getCombo(@Param("id") Long id,@Param("companyId") Long companyId);
 }

+ 3 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/EmployeeMapper.java

@@ -29,4 +29,7 @@ public interface EmployeeMapper extends CommonBaseMapper<Employee> {
     Integer validatePhoneWhenUpdate(@Param("phone") String phone, @Param("id") Long id, @Param("companyId") Long company);
 
 
+    Integer validateNameAndCodeWhenInsert(@Param("code") String code,@Param("name") String em_name,@Param("companyId") Long companyId);
+
+    Integer validateNameAndCodeWhenUpdate(@Param("code") String code,@Param("name") String em_name,@Param("id") Long em_id,@Param("companyId") Long id);
 }

+ 3 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/CustomerService.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.document.service;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.document.dto.CustomerFormDTO;
@@ -41,4 +42,6 @@ public interface CustomerService extends CommonBaseService<CustomerMapper, Custo
     void batchOpen(BatchDealBaseDTO baseDTOs);
 
     PageInfo<CustomerList> getDbfind(PageRequest page, ListReqDTO listReqDTO);
+
+    List<ComboDTO> getAddressCombo(Long id);
 }

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

@@ -6,6 +6,7 @@ import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
@@ -160,7 +161,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         //新增
         if (StringUtils.isEmpty(cu_id) || "0".equals(cu_id.toString())) {
             //检查名称和编号
-            int count = getMapper().validNameAndCodeWhenInsert(customer);
+            int count = getMapper().validNameAndCodeWhenInsert(cu_code,customer.getCu_name(),companyId);
             if (count>0) {
                 throw new BizException(BizExceptionCode.REPEAT_CUSTOMERCODE);
             }
@@ -197,7 +198,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
             //更新
         }else {
             //检查名称和编号
-            int count = getMapper().validNameAndCodeWhenUpdate(customer);
+            int count = getMapper().validNameAndCodeWhenUpdate(cu_code,customer.getCu_name(),customer.getId(),companyId);
             if (count > 0) {
                 throw new BizException(BizExceptionCode.REPEAT_CUSTOMERCODE);
             }
@@ -479,6 +480,11 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         return pageInfo;
     }
 
+    @Override
+    public List<ComboDTO> getAddressCombo(Long id) {
+        return getMapper().getCombo(id,BaseContextHolder.getCompanyId());
+    }
+
 
     private List<CustomerList> getListByMode(ListReqDTO req) {
         List<CustomerList> list = null;

+ 22 - 9
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/EmployeeServiceImpl.java

@@ -65,29 +65,39 @@ public class EmployeeServiceImpl extends CommonBaseServiceImpl<EmployeeMapper, E
     @Override
     public DocBaseDTO saveFormData(Employee employee) {
         DocBaseDTO docBaseDTO = null;
+        String code = pushMaxnubmer(employee.getEm_code(), employee.getId());
         if(employee.getId() == 0){
-            String code = pushMaxnubmer(employee.getEm_code(), employee.getId());
-            employee.setCompanyId(BaseContextHolder.getCompanyId());
-            employee.setCreatorId(BaseContextHolder.getUserId());
-            employee.setCreateTime(new Date());
-            employee.setCreatorName(BaseContextHolder.getUserName());
+            //检查名称和编号
+            int count = getMapper().validateNameAndCodeWhenInsert(code,employee.getEm_name(),BaseContextHolder.getCompanyId());
+            if (count>0) {
+                throw new BizException(BizExceptionCode.REPEAT_EMNAMECODE);
+            }
             //检查电话号码
-            int count = getMapper().validatePhoneWhenInsert(employee.getEm_mobile(),BaseContextHolder.getCompanyId());
+            count = getMapper().validatePhoneWhenInsert(employee.getEm_mobile(),BaseContextHolder.getCompanyId());
             if (count>0) {
                 throw new BizException(BizExceptionCode.REPEAT_TEL);
             }
+            employee.setCompanyId(BaseContextHolder.getCompanyId());
+            employee.setCreatorId(BaseContextHolder.getUserId());
+            employee.setCreateTime(new Date());
+            employee.setCreatorName(BaseContextHolder.getUserName());
             getMapper().insertSelective(employee);
             docBaseDTO = generateMsgObj(employee.getId(), code);
             //记录LOG
             messageLogService.save(docBaseDTO);
         }else{
-            employee.setUpdaterId(BaseContextHolder.getUserId());
-            employee.setUpdateTime(new Date());
+            //检查名称和编号
+            int count = getMapper().validateNameAndCodeWhenUpdate(code,employee.getEm_name(),employee.getId(),BaseContextHolder.getCompanyId());
+            if (count>0) {
+                throw new BizException(BizExceptionCode.REPEAT_EMNAMECODE);
+            }
             //检查电话号码
-            int count = getMapper().validatePhoneWhenUpdate(employee.getEm_mobile(),employee.getId(),BaseContextHolder.getCompanyId());
+            count = getMapper().validatePhoneWhenUpdate(employee.getEm_mobile(),employee.getId(),BaseContextHolder.getCompanyId());
             if (count>0) {
                 throw new BizException(BizExceptionCode.REPEAT_TEL);
             }
+            employee.setUpdaterId(BaseContextHolder.getUserId());
+            employee.setUpdateTime(new Date());
             getMapper().updateByPrimaryKeySelective(employee);
             docBaseDTO = generateMsgObj(employee.getId(), employee.getEm_code());
             //记录LOG
@@ -199,6 +209,9 @@ public class EmployeeServiceImpl extends CommonBaseServiceImpl<EmployeeMapper, E
             Integer count = "0".equals(String.valueOf(id)) ? getMapper().validateCodeWhenInsert(code, companyId) :
                     getMapper().validateCodeWhenUpdate(code, id, companyId);
             em_code =  maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.EMPLOYEE.getCaller()).getData();
+            if (em_code==null){
+                em_code = code;
+            }
         }
         return em_code;
     }

+ 5 - 0
applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml

@@ -393,4 +393,9 @@
   </select>
 
 
+  <select id="getCombo" resultType="com.usoftchina.saas.commons.dto.ComboDTO">
+    SELECT ca_address display,ca_address value FROM customeraddress WHERE ca_cuid=#{id} and COMPANYID=#{companyId} order by ca_id desc
+  </select>
+
+
 </mapper>

+ 8 - 0
applications/document/document-server/src/main/resources/mapper/EmployeeMapper.xml

@@ -236,4 +236,12 @@
   </select>
 
 
+  <select id="validateNameAndCodeWhenInsert" resultType="int">
+    select count(*) from Employee where (em_code = #{code} or em_name = #{name}) and companyId =#{companyId}
+  </select>
+  <select id="validateNameAndCodeWhenUpdate" resultType="int" >
+    select count(*) from Employee where (em_code = #{code} or em_name = #{name}) and em_id !=#{id} and companyId =#{companyId}
+  </select>
+
+
 </mapper>

+ 6 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/VerificationController.java

@@ -120,4 +120,10 @@ public class VerificationController {
         verificationService.batchUnAudit(body);
         return Result.success();
     }
+
+    @RequestMapping("/batchDelete")
+    public Result batchDelete(@RequestBody BatchDealBaseDTO body) {
+        verificationService.batchDelete(body);
+        return Result.success();
+    }
 }

+ 5 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/VerificationService.java

@@ -83,4 +83,9 @@ public interface VerificationService {
      * @param id
      */
     void batchUnAudit(BatchDealBaseDTO baseDTO);
+
+    /**
+     * 批量删除
+     */
+    void batchDelete(BatchDealBaseDTO baseDTO);
 }

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

@@ -299,6 +299,9 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         for (Recbalancedetail detail: recbalancedetail) {
             Subledger subledger1 = new Subledger();
             Subledger nowSubledger = subledgerMapper.selectByPrimaryKey(detail.getRbd_slid());
+            if (nowSubledger == null){
+                throw new BizException(500, BizExceptionCode.SUBLEDGER_NOT_EXIS.getMessage());
+            }
             subledger1.setId(Long.valueOf(String.valueOf(detail.getRbd_slid())));
             Double yamount = nowSubledger.getSl_yamount()==null?new Double(0):nowSubledger.getSl_yamount();
             Double namount = nowSubledger.getSl_namount()==null?new Double(0):nowSubledger.getSl_namount();
@@ -389,6 +392,9 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         for(Recbalancedetail detail: recbalancedetail) {
             Subledger subledger1 = new Subledger();
             Subledger nowSubledger = subledgerMapper.selectByPrimaryKey(detail.getRbd_slid());
+            if (nowSubledger == null){
+                throw new BizException(500, BizExceptionCode.SUBLEDGER_NOT_EXIS.getMessage());
+            }
             subledger1.setId(Long.valueOf(String.valueOf(detail.getRbd_slid())));Double yamount = nowSubledger.getSl_yamount()==null?new Double(0):nowSubledger.getSl_yamount();
             Double namount = nowSubledger.getSl_namount()==null?new Double(0):nowSubledger.getSl_namount();
             Double nowBalance = detail.getRbd_nowbalance()==null?new Double(0):detail.getRbd_nowbalance();

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

@@ -954,6 +954,15 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         }
     }
 
+    @Override
+    public void batchDelete(BatchDealBaseDTO baseDTO) {
+        Iterator isList = baseDTO.getBaseDTOs().iterator();
+        while (isList.hasNext()){
+            DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            this.delete(docBaseDTO.getId());
+        }
+    }
+
     private String pushMaxnubmer(String code, Long id) {
         if (null == code) {
             throw new BizException(BizExceptionCode.NULL_CODE);

+ 3 - 0
applications/money/money-server/src/main/resources/application.yml

@@ -69,5 +69,8 @@ info:
 mybatis:
   type-aliases-package: com.usoftchina.saas.money.po
   mapper-locations: classpath:mapper/*.xml
+logging:
+  level:
+     com.usoftchina.saas.money.mapper : debug
 auth:
   public-key: auth/pub.key

+ 10 - 0
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRspDTO.java

@@ -43,6 +43,16 @@ public class CompanyRspDTO implements Serializable {
 
     private Long adminId;
 
+    private Long adminEmail;
+
+    public Long getAdminEmail() {
+        return adminEmail;
+    }
+
+    public void setAdminEmail(Long adminEmail) {
+        this.adminEmail = adminEmail;
+    }
+
     public String getType() {
         return type;
     }

+ 2 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java

@@ -75,6 +75,7 @@ public class AccountCenterServiceImpl implements AccountCenterService {
             company.setBusinessCode(StringUtils.createBusinessCode());
         }
         companyService.save(company);
+        companyService.bindApp(company.getId(), "trade-app");
         //b. 同步企业信息到优软云 ——>  创建企业
         if ("0".equals(type)) {
             String result = ssoUserSpaceApi.registerLogin(company.getName(), company.getBusinessCode(), Long.parseLong(accountRegDTO.getUu()));
@@ -163,7 +164,7 @@ public class AccountCenterServiceImpl implements AccountCenterService {
                         ssoUserSpace.getRegAddress(),
                         false,
                         false,
-                        ssoUserSpace.getSpaceUU().toString(),
+                        ssoUserSpace.getSpaceUU()!=null ? ssoUserSpace.getSpaceUU().toString() : "0",
                         ssoUserSpace.getAdmin()!=null ? ssoUserSpace.getAdmin().getVipName() : null,
                         0L,
                         ssoUserSpace.getProfession()

+ 1 - 1
base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml

@@ -14,7 +14,7 @@
         delete from ac_account_company where company_id=#{companyId}
     </delete>
     <select id="getCompanyListByAccountMobile" resultType="com.usoftchina.saas.account.dto.CompanyRspDTO">
-        SELECT cmp.id,cmp.name,cmp.uu,cmp.business_code businessCode,cmp.address,accmp.is_default default_,'1' saas_,aci.realname admin,cmp.creator_id adminId,cmp.type from ac_company cmp
+        SELECT cmp.id,cmp.name,cmp.uu,cmp.business_code businessCode,cmp.address,accmp.is_default default_,'1' saas_,aci.realname admin,cmp.creator_id adminId,cmp.type,ac.email adminEmail from ac_company cmp
         left join ac_account_company accmp on accmp.company_id=cmp.id
         left join ac_account ac on ac.id = accmp.account_id
         left join ac_account aci on aci.id = cmp.creator_id

+ 57 - 0
frontend/saas-portal-web/build/utils.js

@@ -83,6 +83,63 @@ exports.styleLoaders = function (options) {
   return output
 }
 
+/* 这里是添加的部分 ---------------------------- 开始 */
+// glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 *等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件
+var glob = require('glob')
+// 页面模板
+var HtmlWebpackPlugin = require('html-webpack-plugin')
+// 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
+var PAGE_PATH = path.resolve(__dirname, '../src/pages')
+// 用于做相应的merge处理
+var merge = require('webpack-merge')
+
+
+//多入口配置
+// 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
+// 那么就作为入口处理
+exports.entries = function () {
+    var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
+    var map = {}
+    entryFiles.forEach((filePath) => {
+        var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
+        map[filename] = filePath
+    })
+    return map
+}
+
+//多页面输出配置
+// 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
+exports.htmlPlugin = function () {
+    let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
+    let arr = []
+    entryHtml.forEach((filePath) => {
+        let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
+        let conf = {
+            // 模板来源
+            template: filePath,
+            // 文件名称
+            filename: filename + '.html',
+            // 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本
+            chunks: ['manifest', 'vendor', filename],
+            inject: true
+        }
+        if (process.env.NODE_ENV === 'production') {
+            conf = merge(conf, {
+                minify: {
+                    removeComments: true,
+                    collapseWhitespace: true,
+                    removeAttributeQuotes: true
+                },
+                chunksSortMode: 'dependency'
+            })
+        }
+        arr.push(new HtmlWebpackPlugin(conf))
+    })
+    return arr
+}
+/* 这里是添加的部分 ---------------------------- 结束 */
+
+
 exports.createNotifierCallback = () => {
   const notifier = require('node-notifier')
 

+ 8 - 3
frontend/saas-portal-web/build/webpack.base.conf.js

@@ -12,9 +12,14 @@ function resolve (dir) {
 
 module.exports = {
   context: path.resolve(__dirname, '../'),
-  entry: {
-    app: './src/main.js'
-  },
+
+ /* 修改部分 ---------------- 开始 */
+ entry: utils.entries(),
+ /* 修改部分 ---------------- 结束 */
+
+  // entry: {
+  //   app: './src/main.js'
+  // },
   output: {
     path: config.build.assetsRoot,
     filename: '[name].js',

+ 11 - 6
frontend/saas-portal-web/build/webpack.dev.conf.js

@@ -52,11 +52,15 @@ const devWebpackConfig = merge(baseWebpackConfig, {
     new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
     new webpack.NoEmitOnErrorsPlugin(),
     // https://github.com/ampedandwired/html-webpack-plugin
-    new HtmlWebpackPlugin({
-      filename: 'index.html',
-      template: 'index.html',
-      inject: true
-    }),
+
+    /* 注释这个区域的文件 ------------- 开始 */
+    // new HtmlWebpackPlugin({
+    //   filename: 'index.html',
+    //   template: 'index.html',
+    //   inject: true
+    // }),
+     /* 注释这个区域的文件 ------------- 结束 */
+
     // copy custom static assets
     new CopyWebpackPlugin([
       {
@@ -65,7 +69,8 @@ const devWebpackConfig = merge(baseWebpackConfig, {
         ignore: ['.*']
       }
     ])
-  ]
+     /* 添加 .concat(utils.htmlPlugin()) ------------------ */
+  ].concat(utils.htmlPlugin())
 })
 
 module.exports = new Promise((resolve, reject) => {

+ 22 - 17
frontend/saas-portal-web/build/webpack.prod.conf.js

@@ -62,22 +62,26 @@ const webpackConfig = merge(baseWebpackConfig, {
     // generate dist index.html with correct asset hash for caching.
     // you can customize output by editing /index.html
     // see https://github.com/ampedandwired/html-webpack-plugin
-    new HtmlWebpackPlugin({
-      filename: process.env.NODE_ENV === 'testing'
-        ? 'index.html'
-        : config.build.index,
-      template: 'index.html',
-      inject: true,
-      minify: {
-        removeComments: true,
-        collapseWhitespace: true,
-        removeAttributeQuotes: true
-        // more options:
-        // https://github.com/kangax/html-minifier#options-quick-reference
-      },
-      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
-      chunksSortMode: 'dependency'
-    }),
+
+    /* 注释这个区域的内容 ---------------------- 开始 */
+    // new HtmlWebpackPlugin({
+    //   filename: process.env.NODE_ENV === 'testing'
+    //     ? 'index.html'
+    //     : config.build.index,
+    //   template: 'index.html',
+    //   inject: true,
+    //   minify: {
+    //     removeComments: true,
+    //     collapseWhitespace: true,
+    //     removeAttributeQuotes: true
+    //     // more options:
+    //     // https://github.com/kangax/html-minifier#options-quick-reference
+    //   },
+    //   // necessary to consistently work with multiple chunks via CommonsChunkPlugin
+    //   chunksSortMode: 'dependency'
+    // }),
+     /* 注释这个区域的内容 ---------------------- 结束 */
+
     // keep module.id stable when vendor modules does not change
     new webpack.HashedModuleIdsPlugin(),
     // enable scope hoisting
@@ -120,7 +124,8 @@ const webpackConfig = merge(baseWebpackConfig, {
         ignore: ['.*']
       }
     ])
-  ]
+     /* 该位置添加 .concat(utils.htmlPlugin()) ------------------- */
+  ].concat(utils.htmlPlugin())
 })
 
 if (config.build.productionGzip) {

+ 1 - 1
frontend/saas-portal-web/config/dev.env.js

@@ -8,8 +8,8 @@ module.exports = merge(prodEnv, {
     // 前端地址
     web: '"http://192.168.0.181"',
     // 后端接口网关
-    // api: '"http://192.168.253.31:8560"',
     api: '"http://192.168.0.181:8560"',
+    // api:'"http://192.168.253.31:8560"',
     // 账户中心接口
     sso: '"http://192.168.253.12:32323"'
   }

+ 2 - 2
frontend/saas-portal-web/config/index.js

@@ -14,7 +14,7 @@ module.exports = {
 
     // Various Dev Server settings
     // host: 'localhost', // can be overwritten by process.env.HOST
-    host: '192.168.253.183', // can be overwritten by process.env.HOST
+    host: '127.0.0.1', // can be overwritten by process.env.HOST
     port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: false,
     errorOverlay: true,
@@ -44,7 +44,7 @@ module.exports = {
     // Paths
     assetsRoot: path.resolve(__dirname, '../dist'),
     assetsSubDirectory: 'static',
-    assetsPublicPath: '/',
+    assetsPublicPath: './',
 
     /**
      * Source Maps

+ 1 - 0
frontend/saas-portal-web/package.json

@@ -42,6 +42,7 @@
     "extract-text-webpack-plugin": "^3.0.0",
     "file-loader": "^1.1.4",
     "friendly-errors-webpack-plugin": "^1.6.1",
+    "glob": "^7.1.3",
     "html-webpack-plugin": "^2.30.1",
     "jest": "^22.0.4",
     "jest-serializer-vue": "^0.3.0",

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

@@ -69,7 +69,7 @@
                         <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
                         <li style='margin:0'>
                             <span class="qy-biaoti">邮箱</span>
-                            <input class="inpind" @change="email" ref="email" type="email">
+                            <input class="inpind" @change="email" ref="email" type="email" value="">
                             <div class="qy-Tips Tips-buttom"><span style="color:red">{{Email}}</span></div>
                         </li>
                     </ul>

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

@@ -150,6 +150,7 @@
                     }
                     this.$store.commit('Loginfalse')
                     // console.log(res.data.data)
+                    this.$store.state.email = this.arr[0].adminEmail
                 })
                 .catch(err=>{
                     // console.log("请求失败",err)
@@ -242,7 +243,7 @@
                 let account = {'realname':name,'email':email,'mobile':mobile, 'uu':uu}
                 // let id = this.saasid;
                 this.$ajax({
-                    url: "http://192.168.253.31:8560/api/account/accountCenter/companyAccount/save",
+                    url: this.$url.api+"/api/account/accountCenter/companyAccount/save",
                     method: 'post',
                     data: {
                         companyRegDTO:company,

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

@@ -61,7 +61,7 @@
                                     <span>UU号</span><span>{{mytoken.uu}}</span>
                                 </li>
                                 <li>
-                                    <span>邮箱</span><span>{{mytoken.email}}</span>
+                                    <span>邮箱</span><span>{{email}}</span>
                                 </li>
                                 <li>
                                     <span>手机号</span><span>{{mytoken.mobile}}</span>
@@ -111,6 +111,7 @@ import { setTimeout } from 'timers';
             return{
                 nowindex: 0,//tab切换
                 tianjiaqiye: true,//添加企业切换
+                email: this.$store.state.email,
                 mytoken: JSON.parse(localStorage.getItem('app-state-session')).account,//本地储存的用户信息
                 tab: [
                     {name: '企业信息'},

+ 8 - 5
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue

@@ -25,7 +25,7 @@
                     <ul>
                         <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>
+                        <li><span class="qy-biaoti">邮箱</span><span>{{content.adminEmail}}</span></li>
                     </ul>
                 </div>
             </div>
@@ -120,13 +120,15 @@
         },
         methods: {
             selects(){
-                let selects = this.$refs.qyindustry
-                let options = selects.options
+                let selects = this.$refs.qyindustry;
+                let options = selects.options;
                 for (let i = 0; i < options.length; i++) {
                     if (options[i].innerHTML == this.content.type) {
                         options[i].selected = true
                     }
-                }
+                };
+                let email = this.$refs.email;
+                email.value = this.content.adminEmail;
             },
             //修改企业信息
             xiugaiqiye(){
@@ -187,7 +189,8 @@
                         if (res.data.success) {
                             document.documentElement.scrollTop = 0;
                             this.xiugai = true;
-                            this.content.type = qyindustry
+                            this.content.type = qyindustry;
+                            this.content.adminEmail = email
                         };
                     })
                     .catch(err=>{

+ 2 - 1
frontend/saas-portal-web/index.html → frontend/saas-portal-web/src/pages/index/index.html

@@ -15,7 +15,8 @@
         <meta name="author" content="优软科技">
         <meta name="Robots" content="all|index|follow">
         
-        <link rel="icon" type="image/x-icon" href="./static/img/logo.png"/>
+        <!-- <link rel="icon" type="image/x-icon" href="./static/img/logo.png"/> -->
+        <link rel="icon" type="image/x-icon" href="../../../static/img/logo.png"/>
 
         <link rel="stylesheet" href="./static/css/animate.css">
         <link rel="stylesheet" href="./static/css/bootstrap.min.css">

+ 3 - 3
frontend/saas-portal-web/src/main.js → frontend/saas-portal-web/src/pages/index/index.js

@@ -1,9 +1,9 @@
 
 import Vue from 'vue'
-import App from './App'
-import router from './router'
+import App from './index.vue'
+import router from '../../router'
 import Axios from 'axios'
-import store from './store'
+import store from '../../store'
 
 Vue.prototype.$ajax = Axios;
 Vue.config.productionTip = false

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

@@ -5,7 +5,8 @@
   </div>
 </template>
 <script>
-import footers from './components/footer/footer.vue';
+// import footers from './components/footer/footer.vue';
+import footers from '../../components/footer/footer.vue';
 export default {
   name: 'App',
   components: {

+ 25 - 0
frontend/saas-portal-web/src/pages/remove-token/remove-token.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>Document</title>
+</head>
+<body>
+    <div id="app">hello</div>
+    <script>
+        // iframe接收消息
+        window.addEventListener('message', function(e) {
+            if (e.data == 'removeToken') {
+                if (e.source != window.parent) {
+                    return;
+                }
+                var storeKey = 'app-state-session';
+                localStorage.removeItem(storeKey);
+                window.parent.postMessage("success", "*");
+            }
+        });
+    </script>
+</body>
+</html>

+ 0 - 0
frontend/saas-portal-web/src/pages/remove-token/remove-token.js


+ 15 - 0
frontend/saas-portal-web/src/pages/remove-token/remove-token.vue

@@ -0,0 +1,15 @@
+<template>
+    <div>
+
+    </div>
+</template>
+
+<script>
+    export default {
+        
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 0
frontend/saas-portal-web/src/store/index.js

@@ -5,6 +5,7 @@ Vue.use(Vuex)
 export default new Vuex.Store({
     state:{
         data: [],
+        email:'',
         isAutoLogin: false,
     },
     mutations:{

+ 3 - 0
frontend/saas-web/app.json

@@ -295,6 +295,7 @@
             "type": "yui"
         },
         "server": {
+            "accountCenter":"https://saas.usoftchina.com",
             "basePath": "https://saas-api.usoftchina.com",
             "urlPattern": "^\/api\/"
         }
@@ -305,6 +306,7 @@
      */
     "testing": {
         "server": {
+            "accountCenter":"http://192.168.0.181:8000",
             "basePath": {
                 "https": "https://saas-api-dev.usoftchina.com:5443",
                 "http": "http://192.168.0.181:8560"
@@ -321,6 +323,7 @@
             "delay": 250
         },
         "server": {
+            "accountCenter":"http://192.168.0.181:8000",
             "basePath": {
                 "https": "https://saas-api-dev.usoftchina.com:5443",
                 "http": "http://192.168.0.181:8560"

+ 0 - 1
frontend/saas-web/app/Application.scss

@@ -187,7 +187,6 @@ body.launching {
 
 .x-btn-default-small,
 .x-btn-default-toolbar-small{
-  min-width: 86px !important;
   border-radius: 2px !important;
 }
 

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

@@ -290,7 +290,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 beforeLabelTextTpl: "",
             },{
                 xtype:'textfield',
-                fieldLabel: '手机号码',
+                fieldLabel: '联系电话',
                 name: 'mobile',
                 readOnly:true,
                 editable:false,
@@ -311,7 +311,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         accountadd:{
             items:[{
                 xtype:'textfield',
-                fieldLabel: '手机号码',
+                fieldLabel: '联系号码',
                 name: 'mobile',
                 hideTrigger:true,
                 allowBlank:false,
@@ -343,14 +343,17 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                                         }
                                     }else{
                                         saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
+                                        f.setValue('');
                                     }
                                 },
                                 failure: function (response) {
                                     if(response.responseText){
                                         var localJson = Ext.decode(response.responseText);
                                         saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
+                                        f.setValue('');
                                     }else{
                                         saas.util.BaseUtil.showErrorToast('手机号校验接口连接超时');
+                                        f.setValue('');
                                     }
                                 }
                             });
@@ -367,7 +370,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '邮箱',
                 name: 'email',
-                allowBlank:false,
+                allowBlank:true,
                 beforeLabelTextTpl: "",
                 regex:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
                 regexText:'请输入正确的邮箱',
@@ -417,7 +420,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 fieldLabel: '关联角色',
                 name: 'roleIds',
                 allowBlank:false,
-                maxLength: 20,
+                maxLength: 30,
             }]
         },
         warehouse:{

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

@@ -140,7 +140,7 @@ Ext.define('saas.view.main.Main', {
                             text: '账户中心',
                             iconCls:'x-fa fa-user-o sa-navicon',
                             handler:function(){
-                                window.open('http://www.usoftchina.com','_blank');
+                                window.open(Ext.manifest.server.accountCenter,'_blank');
                             }
                         },{  
                             text: '意见反馈',

+ 0 - 6
frontend/saas-web/app/view/sale/sale/FormPanel.js

@@ -276,12 +276,6 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                     var format = '0,000.' + xr.join();
                     return Ext.util.Format.number(v, format);
                 }
-            },{
-                text : "关联采购订单", 
-                dataIndex : "sd_pucode",
-                width : 150.0, 
-                items : null,
-                ignore:true
             },{
                 text : "备注", 
                 dataIndex : "sd_remark",

+ 1 - 1
frontend/saas-web/app/view/sys/account/DataList.js

@@ -84,7 +84,7 @@ Ext.define('saas.view.sys.account.DataList', {
         dataIndex : 'mobile', 
         width : 110.0,
     },{
-        text : '联系邮箱', 
+        text : '邮箱', 
         dataIndex : 'email', 
         width : 180.0, 
         xtype : '', 

+ 1 - 1
frontend/saas-web/app/view/sys/finish/DataList.js

@@ -84,7 +84,7 @@ Ext.define('saas.view.sys.finish.DataList', {
         width : 110.0, 
     },{
         text : "操作日期", 
-        width : 150.0, 
+        width : 220.0, 
         format:'Y-m-d H:i:s',
         dataIndex : "createTime", 
         xtype:'datecolumn',

+ 8 - 3
frontend/saas-web/app/view/viewport/ViewportController.js

@@ -23,6 +23,8 @@ Ext.define('saas.view.viewport.ViewportController', {
     },
 
     mainviewboxready: function() {
+        //初始化accountPage地址
+        document.getElementsByName('accountPage')[0].setAttribute('src',getTokenPage());
         if(!Ext.isChrome && !Ext.isFirefox) {
             saas.util.BaseUtil.showConfirm('温馨提示', '为了更好地呈现页面效果,推荐使用Chrome浏览器或火狐浏览器');
         }
@@ -117,7 +119,7 @@ Ext.define('saas.view.viewport.ViewportController', {
     terminateSession: function() {
         this.setRequestToken(null);
         this.saveSession(null);
-        this.showAuth();
+        //this.showAuth();
     },
 
     saveSession: function(session) {
@@ -141,7 +143,6 @@ Ext.define('saas.view.viewport.ViewportController', {
         var me = this,
             view = me.getView(),
             session = me.session;
-
         if (!session || !session.isValid()) {
             return false;
         }
@@ -153,7 +154,11 @@ Ext.define('saas.view.viewport.ViewportController', {
             me.originalRoute = Ext.History.getToken();
             me.terminateSession();
             view.unmask();
-            me.redirectTo('login', {replace: true});
+            //跳转到账户中心
+            const frame = window.frames[window.frames.length - 1];
+            frame.postMessage('removeToken','*');
+            window.location.href = getAccountPage();
+            //me.redirectTo('login', {replace: true});
         });
     },
 

+ 9 - 0
frontend/saas-web/index.html

@@ -12,6 +12,15 @@
 
     <!-- The line below must be kept intact for Sencha Cmd to build your application -->
     <script id="microloader" data-app="a20e1670-7932-41f6-8e9c-55b77cba3f26" type="text/javascript" src="bootstrap.js"></script>
+    <script>
+        function getTokenPage(){
+            return Ext.manifest.server.accountCenter + "/remove-token.html"
+        }
+        function getAccountPage(){
+            return Ext.manifest.server.accountCenter
+        }
+    </script>
 </head>
+<iframe name="accountPage" hidden></iframe>
 <body class="launching"></body>
 </html>

+ 0 - 10
frontend/saas-web/resources/json/navigation.json

@@ -18,11 +18,6 @@
             "text": "采购验退单",
             "addType": "purchase-purchaseout-formpanel",
             "viewType": "purchase-purchaseout-querypanel"
-        }, {
-            "id": "inquiry",
-            "text": "采购询价单",
-            "addType": "purchase-inquiry-formpanel",
-            "viewType": "purchase-inquiry-querypanel"
         }]
     }, {
         "text": "报表",
@@ -56,11 +51,6 @@
             "text": "销售退货单",
             "addType": "sale-salein-formpanel",
             "viewType": "sale-salein-querypanel"
-        }, {
-            "id": "saleToPur",
-            "text": "以销定购",
-            "addType": "sale-saletopur-formpanel",
-            "viewType": "sale-saletopur-querypanel"
         }]
     }, {
         "text": "报表",