rainco %!s(int64=7) %!d(string=hai) anos
pai
achega
7a44cc5682
Modificáronse 100 ficheiros con 1910 adicións e 656 borrados
  1. 7 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/MoneyReportColltroller.java
  2. 10 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/AccountDetailsViewMapper.java
  3. 94 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/AccountDetailsView.java
  4. 9 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VendorAcountView.java
  5. 1 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/MoneyReportService.java
  6. 9 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/MoneyReportServiceImpl.java
  7. 40 36
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java
  8. 41 36
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java
  9. 27 0
      applications/money/money-server/src/main/resources/mapper/AccountDetailsViewMapper.xml
  10. 1 0
      applications/money/money-server/src/main/resources/mapper/VendorAcountViewMapper.xml
  11. 18 0
      frontend/saas-portal-web/.babelrc
  12. 9 0
      frontend/saas-portal-web/.editorconfig
  13. 4 2
      frontend/saas-portal-web/.gitignore
  14. 10 0
      frontend/saas-portal-web/.postcssrc.js
  15. 0 5
      frontend/saas-portal-web/Dockerfile
  16. 23 11
      frontend/saas-portal-web/README.md
  17. 7 0
      frontend/saas-portal-web/config/dev.env.js
  18. 69 0
      frontend/saas-portal-web/config/index.js
  19. 4 0
      frontend/saas-portal-web/config/prod.env.js
  20. 7 0
      frontend/saas-portal-web/config/test.env.js
  21. 44 0
      frontend/saas-portal-web/index.html
  22. 69 17
      frontend/saas-portal-web/package.json
  23. 0 20
      frontend/saas-portal-web/runtime/nginx/default.conf
  24. 29 0
      frontend/saas-portal-web/src/App.vue
  25. BIN=BIN
      frontend/saas-portal-web/src/assets/logo.png
  26. 106 0
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  27. 153 0
      frontend/saas-portal-web/src/components/conenter/company.vue
  28. 98 0
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  29. 285 0
      frontend/saas-portal-web/src/components/conenter/home.vue
  30. 161 0
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  31. 81 0
      frontend/saas-portal-web/src/components/footer/footer.vue
  32. 55 0
      frontend/saas-portal-web/src/components/header/header.vue
  33. 0 507
      frontend/saas-portal-web/src/index.html
  34. 16 0
      frontend/saas-portal-web/src/main.js
  35. 45 0
      frontend/saas-portal-web/src/router/index.js
  36. 0 0
      frontend/saas-portal-web/static/.gitkeep
  37. 0 0
      frontend/saas-portal-web/static/css/animate.css
  38. 0 0
      frontend/saas-portal-web/static/css/bootstrap.min.css
  39. 347 0
      frontend/saas-portal-web/static/css/gongsi.css
  40. 0 0
      frontend/saas-portal-web/static/css/ionicons.min.css
  41. 0 0
      frontend/saas-portal-web/static/css/jquery.fancybox.css
  42. 31 22
      frontend/saas-portal-web/static/css/main.css
  43. 0 0
      frontend/saas-portal-web/static/css/owl.carousel.css
  44. 0 0
      frontend/saas-portal-web/static/css/slit-slider.css
  45. 0 0
      frontend/saas-portal-web/static/fonts/ionicons.ttf
  46. 0 0
      frontend/saas-portal-web/static/fonts/ionicons.woff
  47. 0 0
      frontend/saas-portal-web/static/img/assets/1.png
  48. 0 0
      frontend/saas-portal-web/static/img/assets/2.png
  49. 0 0
      frontend/saas-portal-web/static/img/assets/Group3x.png
  50. 0 0
      frontend/saas-portal-web/static/img/assets/back2x.png
  51. 0 0
      frontend/saas-portal-web/static/img/assets/beijing.png
  52. 0 0
      frontend/saas-portal-web/static/img/assets/beijing2x.png
  53. 0 0
      frontend/saas-portal-web/static/img/assets/chahao.png
  54. 0 0
      frontend/saas-portal-web/static/img/assets/chatu.png
  55. 0 0
      frontend/saas-portal-web/static/img/assets/dalogo3x.png
  56. 0 0
      frontend/saas-portal-web/static/img/assets/dalogo@3x.png
  57. 0 0
      frontend/saas-portal-web/static/img/assets/denglu3x.png
  58. 0 0
      frontend/saas-portal-web/static/img/assets/dianzi3x.png
  59. 0 0
      frontend/saas-portal-web/static/img/assets/fen xi@2x.png
  60. 0 0
      frontend/saas-portal-web/static/img/assets/jin3x.png
  61. 0 0
      frontend/saas-portal-web/static/img/assets/kuaisu@2x.png
  62. 0 0
      frontend/saas-portal-web/static/img/assets/logo-lan3x.png
  63. 0 0
      frontend/saas-portal-web/static/img/assets/logo.png
  64. 0 0
      frontend/saas-portal-web/static/img/assets/logo@2x.png
  65. 0 0
      frontend/saas-portal-web/static/img/assets/logo@3x.png
  66. 0 0
      frontend/saas-portal-web/static/img/assets/password.png
  67. 0 0
      frontend/saas-portal-web/static/img/assets/phone.png
  68. 0 0
      frontend/saas-portal-web/static/img/assets/qing3x.png
  69. 0 0
      frontend/saas-portal-web/static/img/assets/ren3x.png
  70. 0 0
      frontend/saas-portal-web/static/img/assets/shuaxin.png
  71. 0 0
      frontend/saas-portal-web/static/img/assets/sou.png
  72. 0 0
      frontend/saas-portal-web/static/img/assets/timg.jpg
  73. 0 0
      frontend/saas-portal-web/static/img/assets/tishi1x.png
  74. 0 0
      frontend/saas-portal-web/static/img/assets/weixin.png
  75. 0 0
      frontend/saas-portal-web/static/img/assets/weixuanzhong2x.png
  76. 0 0
      frontend/saas-portal-web/static/img/assets/xuanzhong2x.png
  77. 0 0
      frontend/saas-portal-web/static/img/assets/xun3x.png
  78. 0 0
      frontend/saas-portal-web/static/img/assets/xunzhao@2x.png
  79. 0 0
      frontend/saas-portal-web/static/img/assets/yanzhengma.png
  80. 0 0
      frontend/saas-portal-web/static/img/assets/zhuce3x.png
  81. 0 0
      frontend/saas-portal-web/static/img/assets/zi3x.png
  82. BIN=BIN
      frontend/saas-portal-web/static/img/fanhui.png
  83. 0 0
      frontend/saas-portal-web/static/img/features.jpg
  84. 0 0
      frontend/saas-portal-web/static/img/gongneng/ xiao shou 3@3x.png
  85. 0 0
      frontend/saas-portal-web/static/img/gongneng/FEN XI 8@3x.png
  86. 0 0
      frontend/saas-portal-web/static/img/gongneng/QIAN BAO 7@3x.png
  87. 0 0
      frontend/saas-portal-web/static/img/gongneng/cai gou 4@3x.png
  88. 0 0
      frontend/saas-portal-web/static/img/gongneng/cang ku 5@3x.png
  89. 0 0
      frontend/saas-portal-web/static/img/gongneng/jia gong 6@3x.png
  90. 0 0
      frontend/saas-portal-web/static/img/gongneng/ren wu 1@3x.png
  91. 0 0
      frontend/saas-portal-web/static/img/gongneng/xu xian@3x.png
  92. 0 0
      frontend/saas-portal-web/static/img/gongneng/zi yuan 2@3x.png
  93. 0 0
      frontend/saas-portal-web/static/img/icons/quotes.png
  94. 0 0
      frontend/saas-portal-web/static/img/login
  95. 0 0
      frontend/saas-portal-web/static/img/logo_w.png
  96. BIN=BIN
      frontend/saas-portal-web/static/img/qiye/CHA HAO.png
  97. BIN=BIN
      frontend/saas-portal-web/static/img/qiye/buneng kaitong@1x.png
  98. BIN=BIN
      frontend/saas-portal-web/static/img/qiye/chahao.png
  99. BIN=BIN
      frontend/saas-portal-web/static/img/qiye/dengji@1x.png
  100. BIN=BIN
      frontend/saas-portal-web/static/img/qiye/tanchuang.png

+ 7 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/MoneyReportColltroller.java

@@ -55,4 +55,11 @@ public class MoneyReportColltroller {
         PageInfo listData = moneyReportService.customercheck(page, req);
         return Result.success(listData);
     }
+
+    //冲账明细表
+    @GetMapping("/accountdetails")
+    public Result accountdetails(PageRequest page, ListReqDTO req) {
+        PageInfo listData = moneyReportService.accountdetails(page, req);
+        return Result.success(listData);
+    }
 }

+ 10 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/AccountDetailsViewMapper.java

@@ -0,0 +1,10 @@
+package com.usoftchina.saas.money.mapper;
+
+import com.usoftchina.saas.money.po.AccountDetailsView;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AccountDetailsViewMapper {
+    List<AccountDetailsView> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
+}

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

@@ -0,0 +1,94 @@
+package com.usoftchina.saas.money.po;
+
+import java.util.Date;
+
+public class AccountDetailsView {
+    private String SL_CODE;
+
+    private String SL_KIND;
+
+    private String VE_NAME;
+
+    private Double SL_AMOUNT;
+
+    private Integer PB_ID;
+
+    private String PB_KIND;
+
+    private String PB_CODE;
+
+    private Double total;
+    private Date date;
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getSL_CODE() {
+        return SL_CODE;
+    }
+
+    public void setSL_CODE(String SL_CODE) {
+        this.SL_CODE = SL_CODE == null ? null : SL_CODE.trim();
+    }
+
+    public String getSL_KIND() {
+        return SL_KIND;
+    }
+
+    public void setSL_KIND(String SL_KIND) {
+        this.SL_KIND = SL_KIND == null ? null : SL_KIND.trim();
+    }
+
+    public String getVE_NAME() {
+        return VE_NAME;
+    }
+
+    public void setVE_NAME(String VE_NAME) {
+        this.VE_NAME = VE_NAME == null ? null : VE_NAME.trim();
+    }
+
+    public Double getSL_AMOUNT() {
+        return SL_AMOUNT;
+    }
+
+    public void setSL_AMOUNT(Double SL_AMOUNT) {
+        this.SL_AMOUNT = SL_AMOUNT;
+    }
+
+    public Integer getPB_ID() {
+        return PB_ID;
+    }
+
+    public void setPB_ID(Integer PB_ID) {
+        this.PB_ID = PB_ID;
+    }
+
+    public String getPB_KIND() {
+        return PB_KIND;
+    }
+
+    public void setPB_KIND(String PB_KIND) {
+        this.PB_KIND = PB_KIND == null ? null : PB_KIND.trim();
+    }
+
+    public String getPB_CODE() {
+        return PB_CODE;
+    }
+
+    public void setPB_CODE(String PB_CODE) {
+        this.PB_CODE = PB_CODE == null ? null : PB_CODE.trim();
+    }
+
+    public Double getTotal() {
+        return total;
+    }
+
+    public void setTotal(Double total) {
+        this.total = total;
+    }
+}

+ 9 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VendorAcountView.java

@@ -35,6 +35,15 @@ public class VendorAcountView {
 
     private Double pd_nettotal;
     private Integer companyId;
+    private String pd_remark;
+
+    public String getPd_remark() {
+        return pd_remark;
+    }
+
+    public void setPd_remark(String pd_remark) {
+        this.pd_remark = pd_remark;
+    }
 
     public Integer getCompanyId() {
         return companyId;

+ 1 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/MoneyReportService.java

@@ -14,4 +14,5 @@ public interface MoneyReportService {
     PageInfo recDetail(PageRequest page, ListReqDTO req);
     PageInfo acountBalance(PageRequest page, ListReqDTO req);
     PageInfo customercheck(PageRequest page, ListReqDTO req);
+    PageInfo accountdetails(PageRequest page, ListReqDTO req);
 }

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

@@ -28,6 +28,8 @@ public class MoneyReportServiceImpl implements MoneyReportService {
     private AcountbalanceViewMapper acountbalanceViewMapper;
     @Autowired
     private CustomerCheckViewMapper customerCheckViewMapper;
+    @Autowired
+    private AccountDetailsViewMapper accountDetailsViewMapper;
 
     @Override
     public PageInfo vendorCheck(PageRequest page, ListReqDTO req) {
@@ -54,6 +56,11 @@ public class MoneyReportServiceImpl implements MoneyReportService {
         return getListDATA(page, req, "customercheck");
     }
 
+    @Override
+    public PageInfo accountdetails(PageRequest page, ListReqDTO req) {
+        return getListDATA(page, req, "accountdetails");
+    }
+
     private PageInfo getListDATA(PageRequest page, ListReqDTO req, String type) {
         //设置默认分页
         if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
@@ -88,6 +95,8 @@ public class MoneyReportServiceImpl implements MoneyReportService {
             list = acountbalanceViewMapper.selectByCondition(con, companyId);
         }else if ("customercheck".equals(type)){
             list = customerCheckViewMapper.selectByCondition(con, companyId);
+        }else if ("accountdetails".equals(type)){
+            list = accountDetailsViewMapper.selectByCondition(con, companyId);
         }
         return list;
     }

+ 40 - 36
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java

@@ -147,29 +147,31 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
          * cu_recamount=nvl(cu_recamount,0)-rb_rbdamount,
          * cu_leftamount=cu_beginaramount-cu_beginprerecamount+cu_recamount-cu_preamount;
          */
-        Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
-        Double preamount = customerData.getCu_preamount()==null?new Double(0):customerData.getCu_preamount();
-        Double beginapamount = customerData.getCu_beginaramount()==null?new Double(0):customerData.getCu_beginaramount();
-        Double beginprepayamount= customerData.getCu_beginprerecamount()==null?new Double(0):customerData.getCu_beginprerecamount();
-        Double recamount = customerData.getCu_recamount()==null?new Double(0):customerData.getCu_recamount();
-
-        Customer customer = new Customer();
-        customer.setId(Long.valueOf(othreceipts.getOr_custid()));
-        customer.setCu_preamount(preamount);
-        customer.setCu_recamount(recamount-or_amount);
-        customer.setCu_leftamount(beginapamount-beginprepayamount+recamount-or_amount-preamount);
-        recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
-
-        //插入subledger中间表
-        Subledger subledger = new Subledger();
-        subledger.setSl_code(othreceipts.getOr_code());
-        subledger.setSl_kind("其他收入单");
-        subledger.setSl_custid(othreceipts.getOr_custid());
-        subledger.setSl_vendid(0);
-        subledger.setSl_date(othreceipts.getOr_date());
-        subledger.setSl_amount(or_amount);
-        subledger.setCompanyId(BaseContextHolder.getCompanyId());
-        subledgerMapper.insertSelective(subledger);
+        if (othreceipts.getOr_custid() != null && othreceipts.getOr_custid() != 0) {
+            Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
+            Double preamount = customerData.getCu_preamount() == null ? new Double(0) : customerData.getCu_preamount();
+            Double beginapamount = customerData.getCu_beginaramount() == null ? new Double(0) : customerData.getCu_beginaramount();
+            Double beginprepayamount = customerData.getCu_beginprerecamount() == null ? new Double(0) : customerData.getCu_beginprerecamount();
+            Double recamount = customerData.getCu_recamount() == null ? new Double(0) : customerData.getCu_recamount();
+
+            Customer customer = new Customer();
+            customer.setId(Long.valueOf(othreceipts.getOr_custid()));
+            customer.setCu_preamount(preamount);
+            customer.setCu_recamount(recamount - or_amount);
+            customer.setCu_leftamount(beginapamount - beginprepayamount + recamount - or_amount - preamount);
+            recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
+
+            //插入subledger中间表
+            Subledger subledger = new Subledger();
+            subledger.setSl_code(othreceipts.getOr_code());
+            subledger.setSl_kind("其他收入单");
+            subledger.setSl_custid(othreceipts.getOr_custid());
+            subledger.setSl_vendid(0);
+            subledger.setSl_date(othreceipts.getOr_date());
+            subledger.setSl_amount(or_amount);
+            subledger.setCompanyId(BaseContextHolder.getCompanyId());
+            subledgerMapper.insertSelective(subledger);
+        }
 
 
         //计算期间金额
@@ -209,7 +211,6 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
         //删除中间表
         othreceipts = othreceiptsMapper.selectByPrimaryKey(id);
         banksubledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
-        subledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
 
         //更新资金
         Double amount = banksubledgerMapper.selectThisamount(othreceipts.getOr_bankcode());
@@ -242,18 +243,21 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
          * cu_recamount=nvl(cu_recamount,0)-rb_rbdamount,
          * cu_leftamount=cu_beginaramount-cu_beginprerecamount+cu_recamount-cu_preamount;
          */
-        Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
-        Double preamount = customerData.getCu_preamount()==null?new Double(0):customerData.getCu_preamount();
-        Double beginapamount = customerData.getCu_beginaramount()==null?new Double(0):customerData.getCu_beginaramount();
-        Double beginprepayamount= customerData.getCu_beginprerecamount()==null?new Double(0):customerData.getCu_beginprerecamount();
-        Double recamount = customerData.getCu_recamount()==null?new Double(0):customerData.getCu_recamount();
-
-        Customer customer = new Customer();
-        customer.setId(Long.valueOf(othreceipts.getOr_custid()));
-        customer.setCu_preamount(preamount);
-        customer.setCu_recamount(recamount-or_amount);
-        customer.setCu_leftamount(beginapamount+beginprepayamount-recamount+or_amount+preamount);
-        recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
+        if (othreceipts.getOr_custid() != null && othreceipts.getOr_custid() != 0) {
+            Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(othreceipts.getOr_custid());
+            Double preamount = customerData.getCu_preamount() == null ? new Double(0) : customerData.getCu_preamount();
+            Double beginapamount = customerData.getCu_beginaramount() == null ? new Double(0) : customerData.getCu_beginaramount();
+            Double beginprepayamount = customerData.getCu_beginprerecamount() == null ? new Double(0) : customerData.getCu_beginprerecamount();
+            Double recamount = customerData.getCu_recamount() == null ? new Double(0) : customerData.getCu_recamount();
+
+            Customer customer = new Customer();
+            customer.setId(Long.valueOf(othreceipts.getOr_custid()));
+            customer.setCu_preamount(preamount);
+            customer.setCu_recamount(recamount - or_amount);
+            customer.setCu_leftamount(beginapamount + beginprepayamount - recamount + or_amount + preamount);
+            recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
+            subledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
+        }
 
 
         //计算期间金额

+ 41 - 36
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java

@@ -184,29 +184,31 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
          * ve_payamount=nvl(ve_payamount,0)-pb_pbdamount,
          * ve_leftamount=ve_beginapamount-ve_beginprepayamount+ve_payamount-ve_preamount;
          */
-        Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
-        Double preamount = vendorData.getVe_preamount()==null?new Double(0):vendorData.getVe_preamount();
-        Double beginapamount = vendorData.getVe_beginapamount()==null?new Double(0):vendorData.getVe_beginapamount();
-        Double beginprepayamount= vendorData.getVe_beginprepayamount()==null?new Double(0):vendorData.getVe_beginprepayamount();
-        Double payamount = vendorData.getVe_payamount()==null?new Double(0):vendorData.getVe_payamount();
-
-        Vendor vendor = new Vendor();
-        vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
-        vendor.setVe_preamount(preamount);
-        vendor.setVe_payamount(payamount - bk_amount);
-        vendor.setVe_leftamount(beginapamount-beginprepayamount+payamount-bk_amount-preamount);
-        paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
-
-        //插入subledger中间表
-        Subledger subledger = new Subledger();
-        subledger.setSl_code(othspendings.getOs_code());
-        subledger.setSl_kind("其他支出单");
-        subledger.setSl_custid(0);
-        subledger.setSl_vendid(othspendings.getOs_vendid());
-        subledger.setSl_date(othspendings.getOs_date());
-        subledger.setSl_amount(bk_amount);
-        subledger.setCompanyId(BaseContextHolder.getCompanyId());
-        subledgerMapper.insertSelective(subledger);
+        if (othspendings.getOs_vendid() != null && othspendings.getOs_vendid() != 0) {
+            Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
+            Double preamount = vendorData.getVe_preamount() == null ? new Double(0) : vendorData.getVe_preamount();
+            Double beginapamount = vendorData.getVe_beginapamount() == null ? new Double(0) : vendorData.getVe_beginapamount();
+            Double beginprepayamount = vendorData.getVe_beginprepayamount() == null ? new Double(0) : vendorData.getVe_beginprepayamount();
+            Double payamount = vendorData.getVe_payamount() == null ? new Double(0) : vendorData.getVe_payamount();
+
+            Vendor vendor = new Vendor();
+            vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
+            vendor.setVe_preamount(preamount);
+            vendor.setVe_payamount(payamount - bk_amount);
+            vendor.setVe_leftamount(beginapamount - beginprepayamount + payamount - bk_amount - preamount);
+            paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
+
+            //插入subledger中间表
+            Subledger subledger = new Subledger();
+            subledger.setSl_code(othspendings.getOs_code());
+            subledger.setSl_kind("其他支出单");
+            subledger.setSl_custid(0);
+            subledger.setSl_vendid(othspendings.getOs_vendid());
+            subledger.setSl_date(othspendings.getOs_date());
+            subledger.setSl_amount(bk_amount);
+            subledger.setCompanyId(BaseContextHolder.getCompanyId());
+            subledgerMapper.insertSelective(subledger);
+        }
 
         //计算期间金额
         Statsinfo statsinfo = new Statsinfo();
@@ -241,7 +243,6 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
         //删除中间表
         othspendings = othspendingsMapper.selectByPrimaryKey(id);
         banksubledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单");
-        subledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单");
 
         //资金
         Double amount = banksubledgerMapper.selectThisamount(othspendings.getOs_bankcode());
@@ -273,18 +274,22 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
          * ve_payamount=nvl(ve_payamount,0)-pb_pbdamount,
          * ve_leftamount=ve_beginapamount-ve_beginprepayamount+ve_payamount-ve_preamount;
          */
-        Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
-        Double preamount = vendorData.getVe_preamount()==null?new Double(0):vendorData.getVe_preamount();
-        Double beginapamount = vendorData.getVe_beginapamount()==null?new Double(0):vendorData.getVe_beginapamount();
-        Double beginprepayamount= vendorData.getVe_beginprepayamount()==null?new Double(0):vendorData.getVe_beginprepayamount();
-        Double payamount = vendorData.getVe_payamount()==null?new Double(0):vendorData.getVe_payamount();
-
-        Vendor vendor = new Vendor();
-        vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
-        vendor.setVe_preamount(preamount);
-        vendor.setVe_payamount(payamount + bk_amount);
-        vendor.setVe_leftamount(beginapamount+beginprepayamount-payamount+bk_amount+preamount);
-        paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
+        if (othspendings.getOs_vendid() != null && othspendings.getOs_vendid() != 0) {
+            Vendor vendorData = paybalanceMapper.selectVendorByPrimaryKey(othspendings.getOs_vendid());
+            Double preamount = vendorData.getVe_preamount() == null ? new Double(0) : vendorData.getVe_preamount();
+            Double beginapamount = vendorData.getVe_beginapamount() == null ? new Double(0) : vendorData.getVe_beginapamount();
+            Double beginprepayamount = vendorData.getVe_beginprepayamount() == null ? new Double(0) : vendorData.getVe_beginprepayamount();
+            Double payamount = vendorData.getVe_payamount() == null ? new Double(0) : vendorData.getVe_payamount();
+
+            Vendor vendor = new Vendor();
+            vendor.setId(Long.valueOf(othspendings.getOs_vendid()));
+            vendor.setVe_preamount(preamount);
+            vendor.setVe_payamount(payamount + bk_amount);
+            vendor.setVe_leftamount(beginapamount + beginprepayamount - payamount + bk_amount + preamount);
+            paybalanceMapper.updateVendorByPrimaryKeySelective(vendor);
+
+            subledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他支出单");
+        }
 
 
         //计算期间金额

+ 27 - 0
applications/money/money-server/src/main/resources/mapper/AccountDetailsViewMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.usoftchina.saas.money.mapper.AccountDetailsViewMapper" >
+  <resultMap id="BaseResultMap" type="com.usoftchina.saas.money.po.AccountDetailsView" >
+    <result column="SL_CODE" property="SL_CODE" jdbcType="VARCHAR" />
+    <result column="SL_KIND" property="SL_KIND" jdbcType="VARCHAR" />
+    <result column="VE_NAME" property="VE_NAME" jdbcType="VARCHAR" />
+    <result column="SL_AMOUNT" property="SL_AMOUNT" jdbcType="DOUBLE" />
+    <result column="PB_ID" property="PB_ID" jdbcType="INTEGER" />
+    <result column="PB_KIND" property="PB_KIND" jdbcType="VARCHAR" />
+    <result column="PB_CODE" property="PB_CODE" jdbcType="VARCHAR" />
+    <result column="total" property="total" jdbcType="DOUBLE" />
+    <result column="date" property="date" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <select id="selectByCondition" resultMap="BaseResultMap">
+    select  *  from account_details_view
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  companyId = #{companyId}
+      </if>
+    </where>
+    order by date desc
+  </select>
+</mapper>

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

@@ -19,6 +19,7 @@
     <result column="pd_netprice" property="pd_netprice" jdbcType="DOUBLE" />
     <result column="pd_nettotal" property="pd_nettotal" jdbcType="DOUBLE" />
     <result column="companyId" property="companyId" jdbcType="INTEGER" />
+    <result column="pd_remark" property="pd_remark" jdbcType="VARCHAR"/>
   </resultMap>
 
   <select id="selectByCondition" resultMap="BaseResultMap">

+ 18 - 0
frontend/saas-portal-web/.babelrc

@@ -0,0 +1,18 @@
+{
+  "presets": [
+    ["env", {
+      "modules": false,
+      "targets": {
+        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
+      }
+    }],
+    "stage-2"
+  ],
+  "plugins": ["transform-vue-jsx", "transform-runtime"],
+  "env": {
+    "test": {
+      "presets": ["env", "stage-2"],
+      "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"]
+    }
+  }
+}

+ 9 - 0
frontend/saas-portal-web/.editorconfig

@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true

+ 4 - 2
frontend/saas-portal-web/.gitignore

@@ -1,10 +1,12 @@
 .DS_Store
 node_modules/
-dist/
+/dist/
 npm-debug.log*
 yarn-debug.log*
 yarn-error.log*
-package-lock.json
+/test/unit/coverage/
+/test/e2e/reports/
+selenium-debug.log
 
 # Editor directories and files
 .idea

+ 10 - 0
frontend/saas-portal-web/.postcssrc.js

@@ -0,0 +1,10 @@
+// https://github.com/michael-ciniawsky/postcss-load-config
+
+module.exports = {
+  "plugins": {
+    "postcss-import": {},
+    "postcss-url": {},
+    // to edit target browsers: use "browserslist" field in package.json
+    "autoprefixer": {}
+  }
+}

+ 0 - 5
frontend/saas-portal-web/Dockerfile

@@ -1,5 +0,0 @@
-FROM hub.c.163.com/library/nginx
-MAINTAINER USOFTCHINA <yingp@usoftchina.com>
-RUN rm /etc/nginx/conf.d/default.conf
-ADD runtime/nginx/default.conf /etc/nginx/conf.d/
-COPY dist/ /usr/share/nginx/html/

+ 23 - 11
frontend/saas-portal-web/README.md

@@ -1,18 +1,30 @@
-## Build Setup
+# y
+
+> y
 
-```bash
-# Install dependencies
-yarn
+## Build Setup
 
-# 或者
-npm install --registry=https://registry.npm.taobao.org
+``` bash
+# install dependencies
+npm install
 
-# Serve at http://127.0.0.1
+# serve with hot reload at localhost:8080
 npm run dev
 
-# Build for production
+# build for production with minification
 npm run build
 
-# Build for docker image
-docker build -t saas-portal-web:1.0.0 .
-```
+# build for production and view the bundle analyzer report
+npm run build --report
+
+# run unit tests
+npm run unit
+
+# run e2e tests
+npm run e2e
+
+# run all tests
+npm test
+```
+
+For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).

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

@@ -0,0 +1,7 @@
+'use strict'
+const merge = require('webpack-merge')
+const prodEnv = require('./prod.env')
+
+module.exports = merge(prodEnv, {
+  NODE_ENV: '"development"'
+})

+ 69 - 0
frontend/saas-portal-web/config/index.js

@@ -0,0 +1,69 @@
+'use strict'
+// Template version: 1.3.1
+// see http://vuejs-templates.github.io/webpack for documentation.
+
+const path = require('path')
+
+module.exports = {
+  dev: {
+
+    // Paths
+    assetsSubDirectory: 'static',
+    assetsPublicPath: '/',
+    proxyTable: {},
+
+    // Various Dev Server settings
+    host: 'localhost', // 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,
+    notifyOnErrors: true,
+    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
+
+    
+    /**
+     * Source Maps
+     */
+
+    // https://webpack.js.org/configuration/devtool/#development
+    devtool: 'cheap-module-eval-source-map',
+
+    // If you have problems debugging vue-files in devtools,
+    // set this to false - it *may* help
+    // https://vue-loader.vuejs.org/en/options.html#cachebusting
+    cacheBusting: true,
+
+    cssSourceMap: true
+  },
+
+  build: {
+    // Template for index.html
+    index: path.resolve(__dirname, '../dist/index.html'),
+
+    // Paths
+    assetsRoot: path.resolve(__dirname, '../dist'),
+    assetsSubDirectory: 'static',
+    assetsPublicPath: '/',
+
+    /**
+     * Source Maps
+     */
+
+    productionSourceMap: true,
+    // https://webpack.js.org/configuration/devtool/#production
+    devtool: '#source-map',
+
+    // Gzip off by default as many popular static hosts such as
+    // Surge or Netlify already gzip all static assets for you.
+    // Before setting to `true`, make sure to:
+    // npm install --save-dev compression-webpack-plugin
+    productionGzip: false,
+    productionGzipExtensions: ['js', 'css'],
+
+    // Run the build command with an extra argument to
+    // View the bundle analyzer report after build finishes:
+    // `npm run build --report`
+    // Set to `true` or `false` to always turn it on or off
+    bundleAnalyzerReport: process.env.npm_config_report
+  }
+}

+ 4 - 0
frontend/saas-portal-web/config/prod.env.js

@@ -0,0 +1,4 @@
+'use strict'
+module.exports = {
+  NODE_ENV: '"production"'
+}

+ 7 - 0
frontend/saas-portal-web/config/test.env.js

@@ -0,0 +1,7 @@
+'use strict'
+const merge = require('webpack-merge')
+const devEnv = require('./dev.env')
+
+module.exports = merge(devEnv, {
+  NODE_ENV: '"testing"'
+})

+ 44 - 0
frontend/saas-portal-web/index.html

@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <!-- meta character set -->
+		<!-- Always force latest IE rendering engine or request Chrome Frame -->
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+		<!-- Meta Description -->
+        <meta name="description" content="Blue One Page Creative HTML5 Template">
+        <meta name="keywords" content="one page, single page, onepage, responsive, parallax, creative, business, html5, css3, css3 animation">
+        <meta name="author" content="Themefisher">
+
+        <link rel="stylesheet" href="./static/css/animate.css">
+        <link rel="stylesheet" href="./static/css/bootstrap.min.css">
+        <link rel="stylesheet" href="./static/css/ionicons.min.css">
+        <link rel="stylesheet" href="./static/css/jquery.fancybox.css">
+        <link rel="stylesheet" href="./static/css/owl.carousel.css">
+        <link rel="stylesheet" href="./static/css/slit-slider.css">
+        <link rel="stylesheet" href="./static/css/main.css">
+        <link rel="stylesheet" href="./static/css/gongsi.css">
+
+        <script src="./static/js/modernizr-2.6.2.min.js"></script>
+
+        <script src="./static/js/jquery-1.11.1.min.js"></script>
+        <script src="./static/js/bootstrap.min.js"></script>
+        <script src="./static/js/jquery.singlePageNav.min.js"></script> 
+        <script src="./static/js/jquery.fancybox.pack.js"></script>
+        <script src="./static/js/owl.carousel.min.js"></script>
+        <script src="./static/js/isotope.pkgd.min.js"></script>
+        <script src="./static/js/jquery.easing.min.js"></script>
+        <script src="./static/js/jquery.slitslider.js"></script>
+        <script src="./static/js/jquery.ba-cond.min.js"></script>
+        <script src="./static/js/wow.min.js"></script>
+        <script src="./static/js/mains.js"></script>
+
+        <script src="./static/js/sockjs.min.js"></script>
+        <script src="./static/js/stomp.min.js"></script>
+    <title>sass</title>
+  </head>
+  <body>
+    <div id="app"></div>
+  </body>
+</html>

+ 69 - 17
frontend/saas-portal-web/package.json

@@ -1,24 +1,76 @@
 {
-  "name": "saas-portal-web",
+  "name": "y",
   "version": "1.0.0",
-  "description": "saas portal",
-  "main": "index.js",
+  "description": "y",
+  "author": "n",
+  "private": true,
   "scripts": {
-    "dev": "webpack-dev-server --mode development --inline --progress --config ./webpack.dev.conf.js",
+    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
     "start": "npm run dev",
-    "build": "webpack --mode production --config ./webpack.conf.js"
+    "unit": "jest --config test/unit/jest.conf.js --coverage",
+    "e2e": "node test/e2e/runner.js",
+    "test": "npm run unit && npm run e2e",
+    "build": "node build/build.js"
+  },
+  "dependencies": {
+    "vue": "^2.5.2",
+    "vue-router": "^3.0.1"
   },
-  "keywords": [
-    "saas"
-  ],
-  "author": "yingp@usoftchina.com",
-  "license": "ISC",
   "devDependencies": {
-    "clean-webpack-plugin": "^1.0.0",
-    "copy-webpack-plugin": "^4.6.0",
-    "html-webpack-plugin": "^3.2.0",
-    "webpack": "^4.25.1",
-    "webpack-cli": "^3.1.2",
-    "webpack-dev-server": "^3.1.10"
-  }
+    "autoprefixer": "^7.1.2",
+    "babel-core": "^6.22.1",
+    "babel-helper-vue-jsx-merge-props": "^2.0.3",
+    "babel-jest": "^21.0.2",
+    "babel-loader": "^7.1.1",
+    "babel-plugin-dynamic-import-node": "^1.2.0",
+    "babel-plugin-syntax-jsx": "^6.18.0",
+    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
+    "babel-plugin-transform-runtime": "^6.22.0",
+    "babel-plugin-transform-vue-jsx": "^3.5.0",
+    "babel-preset-env": "^1.3.2",
+    "babel-preset-stage-2": "^6.22.0",
+    "babel-register": "^6.22.0",
+    "chalk": "^2.0.1",
+    "chromedriver": "^2.27.2",
+    "copy-webpack-plugin": "^4.0.1",
+    "cross-spawn": "^5.0.1",
+    "css-loader": "^0.28.0",
+    "extract-text-webpack-plugin": "^3.0.0",
+    "file-loader": "^1.1.4",
+    "friendly-errors-webpack-plugin": "^1.6.1",
+    "html-webpack-plugin": "^2.30.1",
+    "jest": "^22.0.4",
+    "jest-serializer-vue": "^0.3.0",
+    "nightwatch": "^0.9.12",
+    "node-notifier": "^5.1.2",
+    "optimize-css-assets-webpack-plugin": "^3.2.0",
+    "ora": "^1.2.0",
+    "portfinder": "^1.0.13",
+    "postcss-import": "^11.0.0",
+    "postcss-loader": "^2.0.8",
+    "postcss-url": "^7.2.1",
+    "rimraf": "^2.6.0",
+    "selenium-server": "^3.0.1",
+    "semver": "^5.3.0",
+    "shelljs": "^0.7.6",
+    "uglifyjs-webpack-plugin": "^1.1.1",
+    "url-loader": "^0.5.8",
+    "vue-jest": "^1.0.2",
+    "vue-loader": "^13.3.0",
+    "vue-style-loader": "^3.0.1",
+    "vue-template-compiler": "^2.5.2",
+    "webpack": "^3.6.0",
+    "webpack-bundle-analyzer": "^2.9.0",
+    "webpack-dev-server": "^2.9.1",
+    "webpack-merge": "^4.1.0"
+  },
+  "engines": {
+    "node": ">= 6.0.0",
+    "npm": ">= 3.0.0"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not ie <= 8"
+  ]
 }

+ 0 - 20
frontend/saas-portal-web/runtime/nginx/default.conf

@@ -1,20 +0,0 @@
-server {
-    listen       80;
-    server_name  localhost;
-
-    charset utf-8;
-
-    location / {
-        root   /usr/share/nginx/html;
-        index  index.html index.htm;
-    }
-
-    #error_page  404              /404.html;
-
-    # redirect server error pages to the static page /50x.html
-    #
-    error_page   500 502 503 504  /50x.html;
-    location = /50x.html {
-        root   html;
-    }
-}

+ 29 - 0
frontend/saas-portal-web/src/App.vue

@@ -0,0 +1,29 @@
+<template>
+  <div id="app">
+    <headers></headers>
+    <router-view/>
+    <footers></footers>
+  </div>
+</template>
+<script>
+import Headers from './components/header/header.vue';
+import footers from './components/footer/footer.vue';
+export default {
+  name: 'App',
+  components: {
+      Headers,
+      footers
+  }
+}
+</script>
+
+<style>
+/* #app {
+  font-family: 'Avenir', Helvetica, Arial, sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  text-align: center;
+  color: #2c3e50;
+  margin-top: 60px;
+} */
+</style>

BIN=BIN
frontend/saas-portal-web/src/assets/logo.png


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

@@ -0,0 +1,106 @@
+<template>
+    <div>
+        <div>
+            <div class="gs-worp qy-worp" style="width: 100%">
+                <div class="qy-title" style="position: relative;">
+                    <span>企业基本信息</span>
+                    <div class="qy-anniu">
+                        <span @click= "Preservation" class="qy-xiugai dianji" style="left: 0">保存</span>
+                        <span @click= "tjquxiao" class="qy-quxiao xs">取消</span>
+                    </div>
+                </div>
+                <div class="qy-conent">
+                    <ul>
+                        <li>
+                            <span class="qy-biaoti"><span class="xingxing">*</span>公司名称</span>
+                            <input type="text">
+                        </li>
+                        <li>
+                            <span class="qy-biaoti"><span class="xingxing">*</span>营业执照</span>
+                            <input type="text">
+                        </li>
+                        <li style="height:60px;">
+                            <span class="qy-biaoti"><span class="xingxing">*</span>注册地址</span>
+                            <div class="addbiaoqian">
+                                <input type="text">
+                                <input class="qy-xiangxi" type="text" placeholder="输入企业详细地址">
+                            </div>
+                        </li>
+                        <li>
+                            <span class="qy-biaoti">官方地址</span>
+                            <select style="width:71%" name="selectAge" id="selectAge">   
+                                <option value="1">飞飞公司</option>   
+                                <option value="2">飞飞公司</option>   
+                                <option value="3">飞飞公司</option>   
+                            </select>
+                        </li>
+                        <li>
+                            <span class="qy-biaoti">所属行业</span>
+                            <input type="text">
+                        </li>
+                        <li>
+                            <span class="qy-biaoti">公司标签</span>
+                            <div class="addbiaoqian">
+                                <span v-if= "tjbiaoqian" class="tj-biaoqian">暂无标签</span>
+                                <span v-else v-for="(b , i) in biaoqian" :key="i" class="qy-biaoqian tj-bqleft">{{b}}</span>
+                            </div>
+                            <div class="tj-gsbiaoqian">
+                                <input type="text" ref="biaoqian" name="" id="biaoqian" placeholder="请输入小于等于10个字符">
+                                <span @click= "addbiaoqian" class="dianji">添加标签</span>
+                            </div>
+                        </li>
+                    </ul>
+                </div>
+            </div>
+            <div class="gs-worp qy-worp" style="width: 100%">
+                <div class="qy-title">
+                    <span>管理员信息</span>
+                </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>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data(){
+            return {
+                tjbiaoqian:true,//标签切换
+                biaoqian:[],//标签数组
+            }
+        },
+        mounted(){
+            
+        },
+        methods: {
+            //取消添加企业
+            tjquxiao(){
+                document.documentElement.scrollTop = 0;
+                this.$router.push({name:'company',}); 
+            },
+            //保存
+            Preservation(){
+                document.documentElement.scrollTop = 0;
+                this.$router.push({name:'company',}); 
+            },
+            //添加标签
+            addbiaoqian(){
+                let text = this.$refs.biaoqian.value;
+                this.biaoqian.push(text);
+                this.tjbiaoqian = false;
+                this.$refs.biaoqian.value = '';
+            }
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

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

@@ -0,0 +1,153 @@
+<template>
+    <div>
+        <!-- 遮罩 -->
+        <div class="zhezhao"></div>
+        <!-- 设置默认弹窗 -->
+        <div class="tanchuang szmoren">
+            <div class="over"><img @click= "guanbitc" class="right xs" src="../../../static/img/qiye/chahao.png" alt=""></div>
+            <div v-if= "moren">
+                <div class="tc-text tc-queren"><span>是否确认设为默认企业?</span></div>
+                <div class="tc-anniu">
+                    <button @click= "addmoren">确认</button>
+                    <button @click= "guanbitc">取消</button>
+                </div>
+            </div>
+            <div v-else>
+                <div class="tc-conent"><img src="../../../static/img/qiye/dengji@1x.png" alt=""></div>
+                <div class="tc-text"><span>已设为默认企业</span></div>
+            </div>
+        </div>
+        <!-- 开通sass服务弹窗 -->
+        <div class="tanchuang ktsass">
+            <div class="over"><img @click= "guanbitc" class="right xs" src="../../../static/img/qiye/chahao.png" alt=""></div>
+            <div v-if= "ktsass">
+                <div class="tc-text tc-queren"><span>是否确认开通saas服务?</span></div>
+                <div class="tc-anniu">
+                    <button @click= "addsass">确认</button>
+                    <button @click= "guanbitc">取消</button>
+                </div>
+            </div>
+            <div v-else>
+                <div class="tc-text tc-conent"><span>开通成功</span></div>
+                <div style="margin-top: 40px;"><span @click= "offfuwu" class="gs-btn1 dianji">进入服务</span></div>
+            </div>
+        </div>
+        <!-- 该企业已开通服务弹窗 -->
+        <div class="tanchuang qy-yikaitong" style="display: none">
+            <div class="over"><img @click= "guanbitc" class="right xs" src="../../../static/img/qiye/chahao.png" alt=""></div>
+            <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>
+                </div>
+            </div>
+        </div>
+        <!-- 开通10个不能继续开通 -->
+        <div class="tanchuang nokaitong" style="display:none">
+            <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>您已开通了10个企业服务</p>
+                    <p>不能再继续开通服务</p>
+                </div>
+            </div>
+        </div>
+
+        <div>
+            <!-- 点击查看企业详情 -->
+            <div v-for="(d , i) in arr " :key="i" class="gs-xiangqing xs">
+                <div class="left gs-xqleft" @click= "chakanxq">
+                    <div class="gs-lefttext">
+                        <p class="gs-qynema"><span>企业名称:</span>{{d.name}}</p>
+                        <p><span>管理员:</span>飞飞飞飞</p>
+                        <p><span>开通日期:</span>{{d.time}}</p>
+                    </div>
+                </div>
+                <div class="right gs-xqright">
+                    <div class="gs-border">
+                        <!-- <span class="gs-btn1 dianji">进入服务</span> -->
+                        <span @click= "kaitong" class="gs-btn1 kaitong xs">开通服务</span>
+                    </div>
+                    <div>
+                        <span v-if = "moren" @click= "szmoren" class="gs-btn2 xs">设为默认</span>
+                        <span v-else class="gs-btn2 gs-btn3">默认企业</span>
+                    </div>
+                </div>
+            </div>
+            <div class="gs-xiangqing dotted">
+                <p class="gs-tianja">
+                    <!-- <span @click= "tianjia"></span> -->
+                    <span @click= "tianjia"><router-link to="/addenterprise">+添加企业</router-link></span>
+                </p>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data(){
+            return {
+                biaoqian: [],//标签数组
+                ktsass: true,//开通sass
+                moren: true,//开通默认
+                arr: [
+                    { name:"公司", time:"2018年11月20"},
+                    { name:"df公司", time:"2018年11月23"},
+                    { name:"fdf公司", time:"2018年11月24"},
+                ]
+            }
+        },
+        methods: {
+            tianjia(){
+                document.documentElement.scrollTop = 0;
+            },
+             //添加企业标签
+            addbiaoqian(){
+                this.biaoqian.push(this.$refs.biaoqian.value)
+                this.tjbiaoqian = false;
+            },
+            //关闭弹窗
+            guanbitc(){
+                $(".tanchuang").css("display","none");
+                $(".zhezhao").css("display","none");
+            },
+            //设置默认弹窗
+            szmoren(){
+                $(".szmoren").css("display","block");
+                $(".zhezhao").css("display","block");
+                // this.moren = false;
+            },
+            //确认默认
+            addmoren(){
+                this.moren = false;
+            },
+            //开通sass
+            kaitong(){
+                $(".ktsass").css('display','block');
+                $(".zhezhao").css("display","block");
+                this.ktsass = true;
+            },
+            addsass(){//确认sass
+                this.ktsass = false;
+            },
+            //进入服务
+            offfuwu(){
+                $(".ktsass").css('display','none');
+                $(".zhezhao").css("display","none");
+            },
+            //查看企业详情
+            chakanxq(){
+                document.documentElement.scrollTop = 0;
+                this.$router.push({name:'details',});
+            }
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 98 - 0
frontend/saas-portal-web/src/components/conenter/enterprise.vue

@@ -0,0 +1,98 @@
+<template>
+    <div class="div">
+
+        <div class="gs-worp">
+            <!-- 顶部tab -->
+            <div class="gs-tab">
+                <ul>
+                    <li class="xs" v-for="(btn , index) in tab" :key='index' :class= "{gsactive:nowindex == index}" @click= "qiehuan(index)">{{btn.name}}</li>
+                </ul>
+            </div>
+            <div class="gs-none">
+                <div :class= "{gsqiye:nowindex == 0}"> 
+                    
+    <!-- 企业列表展示-------添加企业-------------企业详细信息展示 ---------------------------- -->
+                    <router-view></router-view>
+
+                </div>
+    <!-- 个人信息------------------------------------------------------------------- -->
+                <div :class="{gsqiye:nowindex == 1}">
+                    <div class="over gr-worp" style="matgin-buttom:30px">
+                        <div class="left gr-left">
+                            <img src="../../../static/img/qiye/yonghu@2x.png" alt="">
+                        </div>
+                        <div class="left gr-right">
+                            <ul>
+                                <li>
+                                    <span>用户名</span><span>分分分你</span>
+                                </li>
+                                <li>
+                                    <span>UU号</span><span>分分分你</span>
+                                </li>
+                                <li>
+                                    <span>邮箱</span><span>分分分你</span>
+                                </li>
+                                <li>
+                                    <span>手机号</span><span>分分分你</span>
+                                </li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+    <!-- 安全信息----------------------------------------------------------------------------- -->
+                <div :class="{gsqiye:nowindex == 2}">
+                    <div class="gs-anquanxinxi">
+                        <div class="over aq-title"><span class="left">登录密码</span><button class="right dianji">更换密码</button></div>
+                        <div class="aq-text">
+                            <p>飞飞有限公司生生世世生生世世生生世世生生世生生世世生生世世生生世世生生世世生生世世生生世世生生世世生世
+                                呜呜呜呜呜呜
+                            </p>
+                        </div>
+                    </div>
+                    <div class="gs-anquanxinxi">
+                        <div class="over aq-title"><span class="left">手机验证</span><button class="right dianji">修改手机号</button></div>
+                        <div class="aq-text">
+                            <p>飞飞有限公司生生世世生生世世生生世世生生世生生世世生生世世生生世世生生世世生生
+                            </p>
+                        </div>
+                    </div>
+                    <div class="gs-anquanxinxi">
+                        <div class="over aq-title"><span class="left">邮箱认证</span><button class="right dianji">绑定邮箱</button></div>
+                        <div class="aq-text">
+                            <p>飞飞有限公司生生世世生生世世生生
+                            </p>
+                        </div>
+                    </div>
+                    
+                </div>
+            </div>
+            
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data(){
+            return{
+                nowindex: 0,//tab切换
+                tianjiaqiye: true,//添加企业切换
+                tab: [
+                    {name: '企业信息'},
+                    {name: '个人信息'},
+                    {name: '安全信息'},
+                    ],
+            }
+        },
+        methods: {
+            // tab切换
+            qiehuan(index){
+                this.nowindex = index;
+            }, 
+        }
+    }
+</script>
+
+<style scoped>
+    /* @import '../../../static/css/gongsi'; */
+</style>

+ 285 - 0
frontend/saas-portal-web/src/components/conenter/home.vue

@@ -0,0 +1,285 @@
+<template>
+    <div>
+
+        <main class="site-content" role="main">
+			<!-- 遮罩 -->
+			<div class="zhezhao"></div>   
+			<div id="box" class="box">
+				<div>
+					<img class="tc-on xs" style="float: right;padding: 10px" src="../../../static/img/qiye/chahao.png" alt="">
+				</div>
+				<iframe width="430" height="440"></iframe>
+			</div>
+		<!-- 登录嵌套 -->
+			<!-- <iframe id="box" class="qiantao qiantaodl" src="http://10.1.51.91:3001/sassLogin?appId=sp&returnURL=https://www.usoftchina.com"></iframe> -->
+		<!-- 注册嵌套 -->
+			<!-- <iframe id="box-zc" class="qiantao" src="http://10.1.51.91:3001/sassLogin/register?appId=sp&returnURL=https://www.usoftchina.com "></iframe> -->
+			
+<!--Home Slider==================================== -->
+		<section id="home-slider">
+            <div id="slider" class="sl-slider-wrapper">
+				<div class="sl-slider">
+				
+					<div class="sl-slide" data-orientation="horizontal" data-slice1-rotation="-25" data-slice2-rotation="-25" 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="">
+                        </div>
+						<!-- 首页内容 -->
+						<div class="my-text">
+							<button class='my-tiyan'>立即体验</button> 
+						</div>
+						<div class="slide-caption">
+                        	<div class="caption-content"></div>
+                    	</div>
+					</div>
+				</div>
+			</div>
+		</section>
+		
+    <!-- End Home SliderEnd==================================== -->
+			
+			<!-- 特色 -->
+			<section id="feature">
+				<div class="container ts-worp">
+						<div class="section-title text-center">
+							<p class="ts-title">我们的特色</p>
+							<p class="ts-text">云端部署 &nbsp;&nbsp; 轻量应用</p>
+						</div>
+						<div class="ts-box">
+							<div style="margin:50px 0;">
+								<img  class="ts-img" src="../../../static/img/features.jpg" alt="">
+							</div>
+							<div class="right right-text">
+								<img class="ts-minimg" src="../../../static/img/assets/1.png" alt="">
+								<div class="ts-mintext">
+									<p style="font-size: 32px !important;margin-bottom: 36px;"><img class="ts-textimg" src="../../../static/img/assets/xunzhao@2x.png" alt="">迅速找到您想要的</p>
+									<p>寻找供应商资源</p>
+									<p>寻找产品货源  寻找产品资料</p>
+								</div>
+							</div>
+						</div>
+						<div class="ts-box">
+							<div class="left left-text">
+								<img class="ts-minimg" style="left:0;" src="../../../static/img/assets/2.png" alt="">
+								<div class="ts-mintext ts-lefttext">
+									<p style="font-size: 32px !important;margin-bottom: 36px;">直观看到您想看的<img class="ts-textleftimg" src="../../../static/img/assets/fen xi@2x.png" alt=""></p>
+									<p>每日订单量、收付款、月度销售分析、采购分析</p>
+									<p>让你成为企业经营老司机</p>
+								</div>
+							</div>
+							<div style="margin:50px 0;">
+								<img  class="ts-img" src="../../../static/img/features.jpg" alt="">
+							</div>
+						</div>
+						<div class="ts-box">
+							<div style="margin:50px 0;">
+								<img  class="ts-img" src="../../../static/img/features.jpg" alt="">
+							</div>
+							<div class="right right-text">
+								<img class="ts-minimg" src="../../../static/img/assets/1.png" alt="">
+								<div class="ts-mintext" style="right: 145px;">
+									<p style="font-size: 32px !important;margin-bottom: 36px;"><img class="ts-textimg" src="../../../static/img/assets/kuaisu@2x.png" alt="">快速上手 生意简单做</p>
+									<p>移动端的交互体验</p>
+									<p>简短清晰的业务流程 让你三分钟上手</p>
+								</div>
+							</div>
+						</div>
+				</div>
+			</section>
+
+			<!-- Service section 功能-->
+			<section id="service">
+				<div class="container" style="position: relative;">
+					<img class="gn-beijing" src="../../../static/img/gongneng/xu xian@3x.png" alt="">
+					<div class="row">
+						<div class="section-title text-center">
+							<p class="ts-title">我们的功能</p>
+						</div>
+						<div class="gn-hei">
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<p class="gn-text gn-color">任务管理</p>
+									<p>任务分配,高效工作</p>
+									<p>管好每一件事</p>
+									<div class="gn-img">
+										<img src="../../../static/img/gongneng/ren wu 1@3x.png" alt="">
+									</div>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<p class="gn-text">资源管理</p>
+									<p>一键查询,海量供应商产品信息</p>
+									<p>节约时间</p>
+									<div class="gn-img gn-huise">
+										<img src="../../../static/img/gongneng/zi yuan 2@3x.png" alt="">
+									</div>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<p class="gn-text">销售管理</p>
+									<p>快速制单</p>
+									<p>利润实时算</p>
+									<div class="gn-img">
+										<img src="../../../static/img/gongneng/ xiao shou 3@3x.png" alt="">
+										<div class="gn-xiaoqiu"></div>
+									</div>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<p class="gn-text">采购管理</p>
+									<p>寻源.定价.采购</p>
+									<p>一条流程</p>
+									<div class="gn-img gn-huise">
+										<img src="../../../static/img/gongneng/cai gou 4@3x.png" alt="">
+									</div>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<div class="gn-img gn-huise">
+										<img src="../../../static/img/gongneng/cang ku 5@3x.png" alt="">
+										<div class="gn-xiaoqiu"></div>
+									</div>
+									<p class="gn-text">仓库管理</p>
+									<p>库存盘点,库存账龄</p>
+									<p>呆滞分析</p>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<div class="gn-img">
+										<img src="../../../static/img/gongneng/jia gong 6@3x.png" alt="">
+									</div>
+									<p class="gn-text">加工管理</p>
+									<p>BOM成本及时看</p>
+									<p>加工单自动出入库作业</p>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<div class="gn-img gn-huise">
+										<img src="../../../static/img/gongneng/QIAN BAO 7@3x.png" alt="">
+									</div>
+									<p class="gn-text">资金管理</p>
+									<p>清晰核算</p>
+									<p>实时查看供应商和客户账款情况</p>
+								</div>
+							</div>
+							<div class="col-md-3 col-sm-6 col-xs-12">
+								<div class="service-item">
+									<div class="gn-img">
+										<img src="../../../static/img/gongneng/FEN XI 8@3x.png" alt="">
+										<div class="gn-xiaoqiu gn-left"></div>
+									</div>
+									<p class="gn-text gn-color">智能分析</p>
+									<p>直观数据看板,看库存分析</p>
+									<p>收款分析,付款分析</p>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</section>
+			<!-- end Service section -->
+
+			<!-- 帮助中心 -->
+			<section id="prototype">
+				<div class="container">
+					<div class="row">
+						<div class="section-title text-center">
+							<p class="ts-title">帮助中心</p>
+						</div>
+						<div class="bz-worp">
+							<div class="bz-box">
+								<div class="bz-sskuang">
+									<span><img class="bz-sousuoimg" src="../../../static/img/assets/sou.png" alt=""></span>
+									<input class="bz-sousuo" type="text" placeholder="输入标题搜索"/>
+								</div>
+								<button class="bz-btn">搜索</button>
+							</div>
+							<div class="bz-content">
+								<div class="bz-left">
+									<ul class="bz-ul">
+										<li class='active'>操作文档</li>
+										<li>常见问题</li>
+									</ul>
+								</div>
+								<div class="bz-right">
+									<div class="bz-right-conent">
+										<div>
+											<ul>
+												<li>
+													<span class="left bz-yuandian"></span>
+													<span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx操作文档 </span>
+													<span class="right">2018年10月31日  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>
+												</li>
+												<li>
+													<span class="left bz-yuandian"></span>
+													<span class="left">XXXXXXXXXXXXXXX操作文档</span>
+													<span class="right">2018年10月31日  12:00</span>
+												</li>
+											</ul>
+										</div>
+										<div>
+											<ul>
+												<li>
+													<span class="left bz-yuandian"></span>
+													<span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx常见问题 </span>
+													<span class="right">2018年10月31日  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>
+												</li>
+												<li>
+													<span class="left bz-yuandian"></span>
+													<span class="left">XXXXXXXXXXXXXXX常见问题</span>
+													<span class="right">2018年10月31日  12:00</span>
+												</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</section>
+		</main>
+    </div>
+</template>
+
+<script>
+    export default {
+        data(){
+			return {
+
+			}
+		},
+		mounted(){
+		
+		},
+		updated(){
+
+		},
+		methods:{
+			home(){
+                document.documentElement.scrollTop = 0;
+			},
+		}
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 161 - 0
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue

@@ -0,0 +1,161 @@
+<template>
+    <div>
+        <!-- 企业详细信息 -->
+        <div v-if= "xiugai">
+            <div class="gs-worp qy-worp" style="width:100%">
+                <div class="qy-title">
+                    <span><img @click= "gobick" style="float: left;padding: 20px; cursor:pointer" src="../../../static/img/fanhui.png" alt=""></span>
+                    <span>企业基本信息</span>
+                    <span @click="xiugaiqiye" class="qy-xiugai dianji">修改</span>
+                </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><span>飞飞有限公司</span></li>
+                        <li><span class="qy-biaoti">官方地址</span><span>飞飞有限公司</span></li>
+                        <li><span class="qy-biaoti">所属行业</span><span>飞飞有限公司</span></li>
+                        <li><span class="qy-biaoti">营业范围</span><span class="qy-biaoqian">飞飞标签</span><span class="qy-biaoqian">飞飞标签</span></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="gs-worp qy-worp" style="width:100%">
+                <div class="qy-title">
+                    <span>管理员信息</span>
+                </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><span>飞飞有限公司</span></li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+        <!-- 修改企业信息 ------------------------------------------  -->
+        <div v-else>
+            <div class="gs-worp qy-worp" style="width: 100%">
+                <div class="qy-title" style="position: relative;">
+                    <span>企业基本信息</span>
+                    <div class="qy-anniu">
+                        <span @click= "baocunxiugai" class="qy-xiugai dianji" style="left: 0">保存</span>
+                        <span @click= "quxiaoxiugai" class="qy-quxiao xs">取消</span>
+                    </div>
+                </div>
+                <div class="qy-conent">
+                    <ul>
+                        <li>
+                            <span class="qy-biaoti"><span class="xingxing">*</span>公司名称</span>
+                            <span>飞飞有限公司</span>
+                        </li>
+                        <li>
+                            <span class="qy-biaoti"><span class="xingxing">*</span>营业执照</span>
+                            <span>飞飞有限公司</span>
+                        </li>
+                        <li style="height:60px;">
+                            <span class="qy-biaoti"><span class="xingxing">*</span>注册地址</span>
+                            <span>飞飞有限公司</span>
+                        </li>
+                        <li>
+                            <span class="qy-biaoti">官方地址</span>
+                            <input type="text">
+                        </li>
+                        <li>
+                            <span class="qy-biaoti">所属行业</span>
+                            <input type="text">
+                        </li>
+                        <li class="over">
+                            <span class="qy-biaoti">公司标签</span>
+                            <div class="addbiaoqian">
+                                <div style="overflow: hidden;padding-top: 5px;">
+                                    <span v-for="(b , i) in biaoqian" :key="i" class="xg-biaoqian tj-bqleft">
+                                        {{b}}
+                                        <img class="qcbiaoqian xs" @click="qcbiaoqian(i)" src="../../../static/img/qiye/CHA HAO.png"/>
+                                    </span>
+                                </div>
+                                <div>
+                                    <input style="100%" type="text" placeholder="飞飞公司" />
+                                </div>
+                            </div>
+                            <!-- <div class="tj-gsbiaoqian">
+                                <input type="text" ref="biaoqian" name="" id="biaoqian" placeholder="请输入小于等于10个字符">
+                                <span @click= "addbiaoqian" class="dianji">添加标签</span>
+                            </div> -->
+                        </li>
+                    </ul>
+                </div>
+            </div>
+            <div class="gs-worp qy-worp" style="width: 100%">
+                <div class="qy-title">
+                    <span>管理员信息</span>
+                </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>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+
+    export default {
+        data(){
+            return {
+                xiugai:true,
+                biaoqian: [
+                    'feifei',
+                    '飞飞公司',
+                    '飞飞企业',
+                ]
+            }
+        },
+        mounted(){
+
+        },
+        methods: {//修改企业信息
+            xiugaiqiye(){
+                document.documentElement.scrollTop = 0;
+                this.xiugai = false;
+                // this.$router.push({name:'modify'});
+            },
+            // 取消修改
+            quxiaoxiugai(){
+                document.documentElement.scrollTop = 0;
+                this.xiugai = true;
+            },
+            // 保存修改
+            baocunxiugai(){
+                document.documentElement.scrollTop = 0;
+                this.xiugai = true;
+            },
+            //清除标签
+            qcbiaoqian(i){
+                this.biaoqian.splice(i,1);
+            },
+            //返回
+            gobick(){
+                this.$router.go(-1);
+            }
+        }
+    }
+</script>
+
+<style scoped>
+.xg-biaoqian {
+    padding: 6px 20px;
+    border-radius: 2px;
+    margin-right: 8px;
+    background: #F1F7FC;
+    color: #243A52;
+}
+.qcbiaoqian {
+    position: relative;
+    top: -17px;
+    right: -21px;
+}
+</style>

+ 81 - 0
frontend/saas-portal-web/src/components/footer/footer.vue

@@ -0,0 +1,81 @@
+<template>
+    <div>
+        <div class="footer footer-section">
+			<div class="container">
+				<div class="footer-list">
+					<div class="about">
+						<div class="logo"><img src="../../../static/img/logo_w.png" alt=""/></div>
+						<div class="time">客服热线:400-830-1818</div>
+						<div class="time">工作时间:周一至周五08:30~18:00</div>
+						<!--<div class="time">意见反馈:usoftmall.com</div>-->
+					</div>
+					<div class="link">
+						<ul>
+							<li><span>帮助中心</span></li>
+							<li><a href="#">常见问题</a></li>
+							<li><a href="#">操作手册</a></li>
+						</ul>
+						<ul>
+							<li><span>公司</span></li>
+							<li><a href="#">关于我们</a></li>
+							<li><a href="#">企业文化</a></li>
+							<li><a href="https://www.usoftchina.com/contact">联系我们</a></li>
+						</ul>
+						<!-- <ul>
+							<li><span>闯客网</span></li>
+							<li><a href="https://www.uuzcc.com/article/detail/13260.html">需求发布流程</a></li>
+							<li><a href="https://www.uuzcc.com/article/detail/13457.html">认证流程</a></li>
+							<li><a href="https://www.uuzcc.com/article/detail/13456.html">服务商规则</a></li>
+						</ul> -->
+						<ul>
+							<li><span>产品</span></li>
+							<li><a class="no-link">u企云服</a></li>
+							<li><a class="no-link">u软商城</a></li>
+							<li><a href="#">u智融</a></li>
+							<li><a href="#">u创客</a></li>
+						</ul>
+					</div>
+					
+					<div class="qr">
+						<div class="qr-top">
+							<div class="qr-tech qr-code">
+								<img src="../../../static/img/qr-tech.png" alt="">
+								<div class="db-text">
+									<span>科技公众号</span>
+								</div>
+							</div>
+							
+							<!-- <div class="qr-mall qr-code">
+								<img src="./img/qr_mall.jpg" alt="">
+								商城公众号
+							</div> -->
+						</div>
+						<!-- <div class="qr-bottom">
+							粤ICP备15112126号
+							<br/>2018 © 深圳市优软科技有限公司
+						</div> -->
+					</div>
+				</div>
+				
+			</div>
+		</div>
+		<div class="friend-link">
+			<ul>
+				<li><span>常用链接:</span></li>
+				<li><a href="#">uas官网</a></li>
+				<li><a href="#">u软云</a></li>
+				<li><a href="#">英唐官网</a></li>
+			</ul>
+		</div>
+    </div>
+</template>
+
+<script>
+    export default {
+        
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 55 - 0
frontend/saas-portal-web/src/components/header/header.vue

@@ -0,0 +1,55 @@
+<template>
+    <div>
+        <!-- 页面加载loding -->
+        <!-- <div id="preloader">
+            <div class="loder-box">
+            	<div class="battery"></div>
+            </div>
+		</div> -->
+        <div id="navigation" class="navbar-inverse navbar-fixed-top animated-header">
+        <div class="container">
+            <div class="navbar-header">
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                    <span class="sr-only">Toggle navigation</span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                </button>
+                <h1 class="navbar-brand">
+                    <a href="#">
+                        <img class="logo-img" src="../../../static/img/assets/dalogo3x.png" alt="">
+                    </a>
+                </h1>
+            </div>
+            <div class="collapse navbar-collapse navbar-right" role="navigation">
+                <ul id="nav" class="nav navbar-nav menu">
+                    <li><a href="#"><span>首页</span></a></li>
+                    <!-- <li @click= "home"><router-link to="/home"><a href="#"><span>首页</span></a></router-link></li> -->
+                    <!-- <li><a href="#feature"><span>特色</span></a></li> -->
+                    <li @click= "home"><router-link to="/enterprise"><a href="#"><span>特色</span></a></router-link></li>
+                    <li><a href="#service"><span>功能</span></a></li>
+                    <li><a href="#prototype"><span>帮助中心</span></a></li>
+                    <li><a href="#prototype"><span>联系我们</span></a></li>
+                    <li class="login">
+                        <span class="btn1"><img src="../../../static/img/assets/denglu3x.png" alt="">登录  &nbsp;</span>
+                        <span class="register"><img src="../../../static/img/assets/zhuce3x.png" alt="">注册</span>
+                    </li>
+                </ul>
+            </div>
+        </div>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        methods:{
+            home(){
+                document.documentElement.scrollTop = 0;
+            }
+        }
+    }
+</script>
+
+<style>
+
+</style>

+ 0 - 507
frontend/saas-portal-web/src/index.html

@@ -1,507 +0,0 @@
-<!DOCTYPE html>
-<!--[if lt IE 7]>      <html lang="en" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
-<!--[if IE 7]>         <html lang="en" class="no-js lt-ie9 lt-ie8"> <![endif]-->
-<!--[if IE 8]>         <html lang="en" class="no-js lt-ie9"> <![endif]-->
-<!--[if gt IE 8]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
-    <head>
-    	<!-- meta character set -->
-        <meta charset="utf-8">
-		<!-- Always force latest IE rendering engine or request Chrome Frame -->
-        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-        <title>Blue Pro</title>		
-		<!-- Meta Description -->
-        <meta name="description" content="Blue One Page Creative HTML5 Template">
-        <meta name="keywords" content="one page, single page, onepage, responsive, parallax, creative, business, html5, css3, css3 animation">
-        <meta name="author" content="Themefisher">
-		
-		<!-- Mobile Specific Meta -->
-        <meta name="viewport" content="width=device-width, initial-scale=1">
-		
-		<!-- CSS
-		================================================== -->
-		
-		<!--<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,700">-->
-		
-        <!-- Ion Icons Font -->
-        <link rel="stylesheet" href="css/ionicons.min.css">
-		<!-- bootstrap.min -->
-        <link rel="stylesheet" href="css/jquery.fancybox.css">
-		<!-- bootstrap.min -->
-        <link rel="stylesheet" href="css/bootstrap.min.css">
-		<!-- bootstrap.min -->
-        <link rel="stylesheet" href="css/owl.carousel.css">
-		<!-- bootstrap.min -->
-        <link rel="stylesheet" href="css/slit-slider.css">
-		<!-- bootstrap.min -->
-        <link rel="stylesheet" href="css/animate.css">
-		<!-- Main Stylesheet -->
-		<link rel="stylesheet" href="css/main.css">
-		
-		<!-- Modernizer Script for old Browsers -->
-        <script src="js/modernizr-2.6.2.min.js"></script>
-
-    </head>
-	
-    <body id="body">
-
-		<!-- preloader -->
-		<div id="preloader">
-            <div class="loder-box">
-            	<div class="battery"></div>
-            </div>
-		</div>
-		<!-- end preloader -->
-
-        <!--
-        Fixed Navigation
-        ==================================== -->
-        <header id="navigation" class="navbar-inverse navbar-fixed-top animated-header">
-            <div class="container">
-                <div class="navbar-header">
-                    <!-- responsive nav button -->
-					<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-						<span class="sr-only">Toggle navigation</span>
-						<span class="icon-bar"></span>
-						<span class="icon-bar"></span>
-						<span class="icon-bar"></span>
-                    </button>
-					<!-- /responsive nav button -->
-					
-					<!-- logo -->
-					<h1 class="navbar-brand">
-						<a href="#body">
-							<img class="logo-img" src="./img/assets/dalogo3x.png" alt="">
-							<!-- <img src="./img/assets/logo.png" alt=""><span>企云服</span> -->
-						</a>
-					</h1>
-					<!-- /logo -->
-                </div>
-
-				<!-- main nav -->
-                <nav class="collapse navbar-collapse navbar-right" role="navigation">
-                    <ul id="nav" class="nav navbar-nav menu">
-                        <li><a href="#body"><span>首页</span></a></li>
-                        <li><a href="#feature"><span>特色</span></a></li>
-                        <li><a href="#service"><span>功能</span></a></li>
-                        <li><a href="#prototype"><span>帮助中心</span></a></li>
-                        <li><a href="#footer"><span>联系我们</span></a></li>
-						</li>
-						<li class="login">
-							<span class="btn1"><img src="./img/assets/denglu3x.png" alt="">登录  &nbsp;</span>
-							<span class="register"><img src="./img/assets/zhuce3x.png" alt="">注册</span>
-						</li>
-						<li class="profile" style="display:none">
-							<span class="user-info">
-								<img src="./img/assets/denglu3x.png" alt="">
-								<span id="user-info"></span>
-							</span>|
-							<a href="#">账户管理</a>
-						</li>
-                    </ul>
-                </nav>
-				<!-- /main nav -->
-
-        </header>
-<!--End Fixed Navigation==================================== -->
-		
-		<main class="site-content" role="main">
-			<!-- 遮罩 -->
-			<div class="zhezhao"></div>
-			<div id="box" class="box">
-				<iframe width="346" height="511"></iframe>
-			</div>
-			
-		<section id="home-slider">
-            <div id="slider" class="sl-slider-wrapper">
-
-				<div class="sl-slider">
-				
-					<div class="sl-slide" data-orientation="horizontal" data-slice1-rotation="-25" data-slice2-rotation="-25" data-slice1-scale="2" data-slice2-scale="2">
-						<div class="mask-overly"></div>
-						<div class="bg-img slider-1">
-						</div>
-						<!-- 首页内容 -->
-						<div class="my-text">
-							<!-- <img class="sy-dianzi sy-mb" src="./img/assets/dianzi3x.png" alt="">
-							<div class="sy-mb">
-								<img src="./img/assets/xun3x.png" alt="">
-								<img class='sy-mbimg2' src="./img/assets/jin3x.png" alt="">
-							</div>
-							<div class="sy-mb">
-								<img src="./img/assets/ren3x.png" alt="">
-								<img src="./img/assets/zi3x.png" alt="">
-							</div>
-							<div class="sy-mb">
-								<img src="./img/assets/Group3x.png" alt="">
-								<img src="./img/assets/qing3x.png" alt="">
-							</div> -->
-							<button class='my-tiyan'>立即体验</button> 
-						</div>
-						<!-- <div class="sy-img"><img class="chrw" src="./img/assets/chatu.png" alt=""></div> -->
-						<div class="slide-caption">
-                        	<div class="caption-content"></div>
-                    	</div>
-					</div>
-				</div>
-			</div>
-		</section>
-		
-    <!-- End Home SliderEnd==================================== -->
-			
-			<!-- 特色 -->
-			<section id="feature">
-				<div class="container ts-worp">
-						<div class="section-title text-center">
-							<p class="ts-title">我们的特色</p>
-							<p class="ts-text">云端部署 &nbsp;&nbsp; 轻量应用</p>
-						</div>
-						<div class="ts-box">
-							<div style="margin:50px 0;">
-								<img  class="ts-img" src="img/features.jpg" alt="">
-							</div>
-							<div class="right right-text">
-								<img class="ts-minimg" src="./img/assets/1.png" alt="">
-								<div class="ts-mintext">
-									<p><img class="ts-textimg" src="./img/assets/xunzhao@2x.png" alt="">迅速找到您想要的</p>
-									<p>寻找供应商资源</p>
-									<p>寻找产品货源  寻找产品资料</p>
-								</div>
-							</div>
-						</div>
-						<div class="ts-box">
-							<div class="left left-text">
-								<img class="ts-minimg" style="left:0;" src="./img/assets/2.png" alt="">
-								<div class="ts-mintext ts-lefttext">
-									<p>直观看到您想看的<img class="ts-textleftimg" src="./img/assets/fen xi@2x.png" alt=""></p>
-									<p>每日订单量、收付款、月度销售分析、采购分析</p>
-									<p>让你成为企业经营老司机</p>
-								</div>
-							</div>
-							<div style="margin:50px 0;">
-								<img  class="ts-img" src="img/features.jpg" alt="">
-							</div>
-						</div>
-						<div class="ts-box">
-							<div style="margin:50px 0;">
-								<img  class="ts-img" src="img/features.jpg" alt="">
-							</div>
-							<div class="right right-text">
-								<img class="ts-minimg" src="./img/assets/1.png" alt="">
-								<div class="ts-mintext" style="right: 145px;">
-									<p><img class="ts-textimg" src="./img/assets/kuaisu@2x.png" alt="">快速上手 生意简单做</p>
-									<p>移动端的交互体验</p>
-									<p>简短清晰的业务流程 让你三分钟上手</p>
-								</div>
-							</div>
-						</div>
-				</div>
-			</section>
-
-			<!-- Service section 功能-->
-			<section id="service">
-				<div class="container" style="position: relative;">
-					<img class="gn-beijing" src="./img/gongneng/xu xian@3x.png" alt="">
-					<div class="row">
-						<div class="section-title text-center">
-							<p class="ts-title">我们的功能</p>
-						</div>
-						<div class="gn-hei">
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<p class="gn-text gn-color">任务管理</p>
-									<p>任务分配,高效工作</p>
-									<p>管好每一件事</p>
-									<div class="gn-img">
-										<img src="./img/gongneng/ren wu 1@3x.png" alt="">
-									</div>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<p class="gn-text">资源管理</p>
-									<p>一键查询,海量供应商产品信息</p>
-									<p>节约时间</p>
-									<div class="gn-img gn-huise">
-										<img src="./img/gongneng/zi yuan 2@3x.png" alt="">
-									</div>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<p class="gn-text">销售管理</p>
-									<p>快速制单</p>
-									<p>利润实时算</p>
-									<div class="gn-img">
-										<img src="./img/gongneng/ xiao shou 3@3x.png" alt="">
-										<div class="gn-xiaoqiu"></div>
-									</div>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<p class="gn-text">采购管理</p>
-									<p>寻源.定价.采购</p>
-									<p>一条流程</p>
-									<div class="gn-img gn-huise">
-										<img src="./img/gongneng/cai gou 4@3x.png" alt="">
-									</div>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<div class="gn-img gn-huise">
-										<img src="./img/gongneng/cang ku 5@3x.png" alt="">
-										<div class="gn-xiaoqiu"></div>
-									</div>
-									<p class="gn-text">仓库管理</p>
-									<p>库存盘点,库存账龄</p>
-									<p>呆滞分析</p>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<div class="gn-img">
-										<img src="./img/gongneng/jia gong 6@3x.png" alt="">
-									</div>
-									<p class="gn-text">加工管理</p>
-									<p>BOM成本及时看</p>
-									<p>加工单自动出入库作业</p>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<div class="gn-img gn-huise">
-										<img src="./img/gongneng/QIAN BAO 7@3x.png" alt="">
-									</div>
-									<p class="gn-text">资金管理</p>
-									<p>清晰核算</p>
-									<p>实时查看供应商和客户账款情况</p>
-								</div>
-							</div>
-							<div class="col-md-3 col-sm-6 col-xs-12">
-								<div class="service-item">
-									<div class="gn-img">
-										<img src="./img/gongneng/FEN XI 8@3x.png" alt="">
-										<div class="gn-xiaoqiu gn-left"></div>
-									</div>
-									<p class="gn-text gn-color">智能分析</p>
-									<p>直观数据看板,看库存分析</p>
-									<p>收款分析,付款分析</p>
-								</div>
-							</div>
-						</div>
-					</div>
-				</div>
-			</section>
-			<!-- end Service section -->
-
-			<!-- 帮助中心 -->
-			<section id="prototype">
-				<div class="container">
-					<div class="row">
-						<div class="section-title text-center">
-							<p class="ts-title">帮助中心</p>
-						</div>
-						<div class="bz-worp">
-							<div class="bz-box">
-								<div class="bz-sskuang">
-									<span><img class="bz-sousuoimg" src="./img/assets/sou.png" alt=""></span>
-									<input class="bz-sousuo" type="text" placeholder="输入标题搜索"/>
-								</div>
-								<button class="bz-btn">搜索</button>
-							</div>
-							<div class="bz-content">
-								<div class="bz-left">
-									<ul class="bz-ul">
-										<li class='active'>操作文档</li>
-										<li>常见问题</li>
-									</ul>
-								</div>
-								<div class="bz-right">
-									<div class="bz-right-conent">
-										<div>
-											<ul>
-												<li>
-													<span class="left bz-yuandian"></span>
-													<span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx操作文档 </span>
-													<span class="right">2018年10月31日  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>
-												</li>
-												<li>
-													<span class="left bz-yuandian"></span>
-													<span class="left">XXXXXXXXXXXXXXX操作文档</span>
-													<span class="right">2018年10月31日  12:00</span>
-												</li>
-											</ul>
-										</div>
-										<div>
-											<ul>
-												<li>
-													<span class="left bz-yuandian"></span>
-													<span class="left">方式不同吧好像是差不多哇来访黑哇哦发检测句ID回复开展了好xxxxx常见问题 </span>
-													<span class="right">2018年10月31日  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>
-												</li>
-												<li>
-													<span class="left bz-yuandian"></span>
-													<span class="left">XXXXXXXXXXXXXXX常见问题</span>
-													<span class="right">2018年10月31日  12:00</span>
-												</li>
-											</ul>
-										</div>
-									</div>
-								</div>
-							</div>
-						</div>
-					</div>
-				</div>
-			</section>
-			
-			
-			<!-- Contact section -->
-			<!-- <section id="contact" >
-				<div class="container">
-					<div class="row">
-						<div class="section-title text-center">
-							<h2>Contact</h2>
-							<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloribus, <br> sapiente. Libero ipsam, dolore quibusdam magni.</p>
-						</div>
-						<div class="col-md-7 contact-form">
-							<form id="contact-form" action="#" method="post">
-								<div class="input-field">
-									<input type="text" name="name" class="form-control" placeholder="Your Name...">
-								</div>
-								<div class="input-field">
-									<input type="email" name="email" class="form-control" placeholder="Your Email...">
-								</div>
-								<div class="input-field">
-									<input type="text" name="subject" class="form-control" placeholder="Subject...">
-								</div>
-								<div class="input-field">
-									<textarea name="message" class="form-control" placeholder="Messages..."></textarea>
-								</div>
-						       	<button type="submit" id="submit" class="btn btn-blue btn-effect">Send</button>
-							</form>
-						</div>
-						<div class="col-md-5">
-							<address class="contact-details">
-								<h3>Our Address</h3>						
-								<p><i class="ion-ios-home-outline"></i>Phoenix Inc.<span>PO Box 345678</span> <span>Little Lonsdale St, Melbourne </span><span>Australia</span></p><br>
-								<p><i class="ion-ios-telephone-outline"></i>Phone: (415) 124-5678 </p>
-								<p><i class="ion-ios-email-outline"></i>website@yourname.com</p>
-							</address>
-						</div>
-					</div>
-				</div>
-			</section> -->
-			<!-- end Contact section -->
-		</main>
-
-	<!-- 底部 ------------------------------------------------>
-		<!--footer begin-->
-		<div class="footer footer-section">
-			<div class="container">
-				<div class="footer-list">
-					<div class="about">
-						<div class="logo"><img src="./img/logo_w.png" alt=""/></div>
-						<div class="time">客服热线:400-830-1818</div>
-						<div class="time">工作时间:周一至周五08:30~18:00</div>
-						<!--<div class="time">意见反馈:usoftmall.com</div>-->
-					</div>
-					<div class="link">
-						<ul>
-							<li><span>帮助中心</span></li>
-							<li><a href="#">常见问题</a></li>
-							<li><a href="#">操作手册</a></li>
-						</ul>
-						<ul>
-							<li><span>公司</span></li>
-							<li><a href="#">关于我们</a></li>
-							<li><a href="#">企业文化</a></li>
-							<li><a href="https://www.usoftchina.com/contact">联系我们</a></li>
-						</ul>
-						<!-- <ul>
-							<li><span>闯客网</span></li>
-							<li><a href="https://www.uuzcc.com/article/detail/13260.html">需求发布流程</a></li>
-							<li><a href="https://www.uuzcc.com/article/detail/13457.html">认证流程</a></li>
-							<li><a href="https://www.uuzcc.com/article/detail/13456.html">服务商规则</a></li>
-						</ul> -->
-						<ul>
-							<li><span>产品</span></li>
-							<li><a class="no-link">u企云服</a></li>
-							<li><a class="no-link">u软商城</a></li>
-							<li><a href="#">u智融</a></li>
-							<li><a href="#">u创客</a></li>
-						</ul>
-					</div>
-					
-					<div class="qr">
-						<div class="qr-top">
-							<div class="qr-tech qr-code">
-								<img src="./img/qr-tech.png" alt="">
-								<div class="db-text">
-									<span>科技公众号</span>
-								</div>
-							</div>
-							
-							<!-- <div class="qr-mall qr-code">
-								<img src="./img/qr_mall.jpg" alt="">
-								商城公众号
-							</div> -->
-						</div>
-						<!-- <div class="qr-bottom">
-							粤ICP备15112126号
-							<br/>2018 © 深圳市优软科技有限公司
-						</div> -->
-					</div>
-				</div>
-				
-			</div>
-		</div>
-		<div class="friend-link">
-			<ul>
-				<li><span>常用链接:</span></li>
-				<li><a href="#">uas官网</a></li>
-				<li><a href="#">u软云</a></li>
-				<li><a href="#">英唐官网</a></li>
-			</ul>
-		</div>
-		<!--footer end-->
-		
-		<!-- Essential jQuery Plugins
-		================================================== -->
-		<!-- Main jQuery -->
-        <script src="js/jquery-1.11.1.min.js"></script>
-		<!-- Twitter Bootstrap -->
-        <script src="js/bootstrap.min.js"></script>
-		<!-- Single Page Nav -->
-        <script src="js/jquery.singlePageNav.min.js"></script>
-		<!-- jquery.fancybox.pack -->
-        <script src="js/jquery.fancybox.pack.js"></script>
-		<!-- Owl Carousel -->
-        <script src="js/owl.carousel.min.js"></script>
-        <!-- jquery easing -->
-        <script src="js/isotope.pkgd.min.js"></script>
-        <script src="js/jquery.easing.min.js"></script>
-        <!-- Fullscreen slider -->
-        <script src="js/jquery.slitslider.js"></script>
-        <script src="js/jquery.ba-cond.min.js"></script>
-		<!-- onscroll animation -->
-		<script src="js/wow.min.js"></script>
-		<!-- socket -->
-		<script src="js/sockjs.min.js"></script>
-		<script src="js/stomp.min.js"></script>
-		<!-- Custom Functions jq表单提交插件-->
-        <!-- <script src="js/jquery.form.min.js"></script> -->
-        <!-- <script src="js/jquery.validate.min.js"></script> -->
-        <script src="js/main.js"></script>
-    </body>
-</html>

+ 16 - 0
frontend/saas-portal-web/src/main.js

@@ -0,0 +1,16 @@
+// The Vue build version to load with the `import` command
+// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
+
+import Vue from 'vue'
+import App from './App'
+import router from './router'
+
+Vue.config.productionTip = false
+
+/* eslint-disable no-new */
+new Vue({
+  el: '#app',
+  router,
+  components: { App },
+  template: '<App/>'
+})

+ 45 - 0
frontend/saas-portal-web/src/router/index.js

@@ -0,0 +1,45 @@
+import Vue from 'vue'
+import Router from 'vue-router'
+import Home from '../components/conenter/home.vue'
+import enterprise from '../components/conenter/enterprise.vue'//企业设置首页
+import company from '../components/conenter/company.vue'//企业列表
+import addenterprise from '../components/conenter/addgongsi.vue'//添加公司
+import details from '../components/conenter/qiyexiangxi.vue'//企业详细
+
+Vue.use(Router)
+
+export default new Router({
+  routes: [
+    {
+      path: '/home',
+      name: 'Home',
+      component: Home
+    },
+    {
+      path: '/',
+      redirect:'/home'
+    },
+    {
+      path: '/enterprise',
+      name: 'enterprise',
+      component: enterprise,
+      children:[
+        {
+          path: '/',
+          name: 'company',
+          component: company,
+        },
+        {
+          path: '/addenterprise',
+          name: 'addenterprise',
+          component: addenterprise,
+        },
+        {
+          path: '/details',
+          name: 'details',
+          component: details,
+        },
+      ]
+    }
+  ]
+})

+ 0 - 0
frontend/saas-portal-web/src/img/login → frontend/saas-portal-web/static/.gitkeep


+ 0 - 0
frontend/saas-portal-web/src/css/animate.css → frontend/saas-portal-web/static/css/animate.css


+ 0 - 0
frontend/saas-portal-web/src/css/bootstrap.min.css → frontend/saas-portal-web/static/css/bootstrap.min.css


+ 347 - 0
frontend/saas-portal-web/static/css/gongsi.css

@@ -0,0 +1,347 @@
+.div {
+    padding-top: 100px;
+    background: #FDFDFD;
+}
+.xs:hover {
+    cursor:pointer;
+    border-bottom: 1px solid #2868c8;
+    box-shadow: 1px 1px 1px #ccc;
+}
+.dianji:hover{
+    border-bottom: 1px solid #2868c8;
+    background: #317ef3;
+    box-shadow: 1px 1px 1px #ccc;
+    cursor:pointer;
+}
+.left {
+    float: left;
+}
+.right {
+    float: right;
+}
+.over {
+    overflow: hidden;
+}
+/* 弹窗 -----------------------------------------------*/
+.tanchuang {
+    display: none;
+    background-image: url('../img/qiye/tanchuang.png');
+    width: 340px;
+    height: 214px;
+    position: fixed;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%); 
+    z-index: 10;
+    border: 1px solid black;
+    padding: 16px;
+    text-align: center
+}
+.tc-conent {
+    padding: 33px 0 16px 0;
+}
+.tc-text {
+    font-family: PingFangSC-Medium;
+    font-size: 18px;
+    color: #293648;
+    font-weight: 600;
+}
+.tc-queren {
+    padding: 29px 0 46px 0;
+}
+.tc-anniu button {
+    padding: 5px 25px;
+    background: #1E88F5;
+    border-radius: 2px;
+    color: #FFFFFF;
+    border: 0;
+}
+.tc-anniu button:nth-child(1) {
+    margin-right: 60px;
+}
+.tc-okkaitong {
+    font-family: PingFangSC-Medium;
+    font-size: 16px;
+    color: #293648;
+    font-weight: 600;
+    padding: 29px 0 30px 0;
+}
+.tc-context {
+    text-align: left;
+    margin-left: 12px;
+    color: #4A4A4A;
+}
+
+
+
+
+
+/* 主体 */
+.gs-worp {
+    width: 68%;
+    margin: 0 auto;
+    font-size: 14px;
+    color: #243A52;
+}
+.gs-tab ul {
+    overflow: hidden;
+    padding: 0;
+    margin-bottom: 40px;
+}
+.gs-tab li {
+    float: left;
+    list-style: none;
+    background: #F1F7FC;
+    border-radius: 2px;
+    padding: 6px 23px;
+}
+.gsactive {
+    background: #1E88F5 !important;
+    color: white;
+}
+.gs-none > div{
+    display: none
+}
+.gsqiye {
+    display: block !important;
+}
+.gs-xiangqing {
+    height: 112px;
+    background: #FFFFFF;
+    border: 1px solid rgba(30,136,245,0.32);
+    box-shadow: 0 20px 60px 8px #F4F8FC;
+    border-radius: 4px;
+    overflow: hidden;
+    margin-bottom: 24px;
+}
+.gs-qynema {
+    font-weight: 600;
+}
+.dotted {
+    border: 1px dashed rgba(30,136,245,0.32);
+    line-height: 112px;
+}
+.gs-tianja {
+    padding: 0 80px;
+    font-family: PingFangSC-Medium;
+    color: #BDBEBE;
+    letter-spacing: 0.25px;
+}
+.gs-tianja span:hover {
+    border: 1px dashed #ccc;
+    padding: 6px 20px;
+    cursor:pointer;
+}
+.gs-xqleft {
+    width: 70%;
+    height: 100%;
+}
+.gs-lefttext {
+    padding: 20px 80px;
+}
+.gs-xqright {
+    width: 30%;
+    height: 100%;
+    overflow: hidden;
+}
+.gs-xqright div {
+    float: left;
+    width: 50%;
+    text-align: center;
+    line-height: 90px;
+    margin-top: 10px;
+}
+.gs-border {
+    border-right: 1px solid #B7D9FB;
+}
+.gs-btn1 {
+    padding: 5px 20px;
+    background: #1E88F5;
+    border-radius: 2px;
+    color: white;
+}
+.kaitong {
+    background: #F2F9FF;
+    border: 1px solid #1E88F5;
+    border-radius: 2px;
+    color: #1E88F5;
+}
+.gs-btn2 {
+    font-family: PingFangSC-Regular;
+    font-size: 14px;
+    padding: 5px 20px;
+    color: #1E88F5;
+    border: 1px solid #1E88F5;
+    border-radius: 2px;
+    letter-spacing: 0.25px;
+}
+.gs-btn3 {
+    border: 0
+}
+
+
+/* 添加企业信息-------------------------------------------------------- */
+.qy-quxiao {
+    background: #FFFFFF;
+    border: 1px solid #1E88F5;
+    border-radius: 2px;
+    color: #1E88F5;
+    text-align: center;
+    position: relative;
+    padding: 6px 33px;
+    font-size: 14px;
+}
+.xingxing {
+    color: red;
+}
+.qy-anniu {
+    position: absolute;
+    top: 0;
+    right: 100px;
+}
+.qy-conent input {
+    border: 1px solid #1E88F5;
+    width: 71%;
+}
+.tj-biaoqian {
+    border: 1px dashed #7CBAFA;
+    border-radius: 2px;
+    color: #7CBAFA;
+    padding: 6px 20px;
+}
+.tj-gsbiaoqian {
+    width: 86%;
+    margin: 24px 0 0 144px;
+}
+.tj-gsbiaoqian span {
+    background: #1E88F5;
+    border-radius: 2px;
+    padding: 5px 12px;
+    color: #ffffff;
+}
+.addbiaoqian {
+    width: 71%;
+    float: right;
+    margin-right: 102px;
+}
+.qy-xiangxi {
+    width: 100% !important;
+    margin-top: 8px;
+}
+.tj-bqleft {
+    float: left;
+    margin-bottom: 20px;
+}
+
+/* 个人信息--------------------------------------------------------------------- */
+.gr-worp {
+    background: #FFFFFF;
+    border: 1px solid rgba(30,136,245,0.32);
+    box-shadow: 0 20px 60px 8px #F4F8FC;
+    border-radius: 2px;
+}
+.gr-worp div {
+    width: 50%;
+}
+.gr-left img {
+    width: 189px;
+    margin: 49px 88px 69px 186px
+}
+.gr-right li {
+    list-style: none;
+    margin-top: 38px;
+}
+.gr-right span:nth-child(1) {
+    font-weight: 600;
+    width: 80px;
+    display: inline-block;
+}
+/* 安全信息-------------------------------------------------------------------------------- */
+.gs-anquanxinxi {
+    height: 153px;
+    background: #FFFFFF;
+    border: 1px solid rgba(30,136,245,0.32);
+    box-shadow: 0 20px 60px 8px #F4F8FC;
+    border-radius: 4px;
+    overflow: hidden;
+    margin-bottom: 24px;
+    padding: 28px 93px 28px 103px;
+}
+.aq-title span {
+    font-family: PingFangSC-Medium;
+    color: #243A52;
+    font-weight: 600;
+}
+.aq-title button {
+    font-family: PingFangSC-Regular;
+    color: #FFFFFF;
+    text-align: center;
+    border: 0;
+    padding: 6px 20px;
+    background: #1E88F5;
+    border-radius: 2px;
+    width: 110px;
+}
+.aq-text {
+    font-family: PingFangSC-Regular;
+    font-size: 14px;
+    color: #243A52;
+    text-align: left;
+    margin-top: 20px;
+}
+
+
+
+
+/* 企业基本信息----------------------------------------------------------------------------- */
+.qy-worp {
+    background: #FFFFFF;
+    border: 1px solid rgba(30,136,245,0.32);
+    box-shadow: 0 20px 60px 8px #F4F8FC;
+    border-radius: 4px;
+    margin-bottom: 25px;
+}
+.qy-title {
+    background: #F4F8FC;
+    border-radius: 3px 3px 0 0;
+    text-align: center;
+    height: 70px;
+    line-height: 70px;
+    font-size: 16px;
+    font-weight: 600;
+}
+.qy-xiugai {
+    font-family: PingFangSC-Regular;
+    font-size: 14px;
+    color: #FFFFFF;
+    letter-spacing: 0.25px;
+    text-align: center;
+    position: relative;
+    left: 200px;
+    padding: 6px 33px;
+    background: #1E88F5;
+    border-radius: 2px;
+}
+.qy-conent {
+    padding: 50px 0 0 20px;
+}
+.qy-conent li{
+    list-style: none;
+    margin-bottom: 40px;
+}
+.qy-biaoti {
+    font-family: PingFangSC-Medium;
+    color: #243A52;
+    text-align: right;
+    font-weight: 600;
+    margin-right: 40px;
+    width: 100px;
+    display: inline-block;
+}
+.qy-biaoqian {
+    padding: 6px 20px;
+    color: #FFFFFF;
+    background: #1E88F5;
+    border-radius: 2px;
+    margin-right: 8px;
+}

+ 0 - 0
frontend/saas-portal-web/src/css/ionicons.min.css → frontend/saas-portal-web/static/css/ionicons.min.css


+ 0 - 0
frontend/saas-portal-web/src/css/jquery.fancybox.css → frontend/saas-portal-web/static/css/jquery.fancybox.css


+ 31 - 22
frontend/saas-portal-web/src/css/main.css → frontend/saas-portal-web/static/css/main.css

@@ -110,29 +110,40 @@ main > section {
     margin-top: -4px;
     margin-right: 10px;
 }
-.qiantao {
+
+.qiantao,.qiantaodl {
     display: none;
     position: fixed;
     top: 55%;
     left: 50%;
     z-index: 10;
-    margin-left: -220px;
-    margin-top: -230px;
-    width: 440px;
-    height: 460px;
-    /* width: 100%;
-    height: 100%; */
-}
-.box{
+    margin-left: -214px;
+    margin-top: -219px;
+    width: 428px;
+    height: 438px;
+}
+.qiantaodl {
+    height: 296px;
+    margin-top: -148px;
+    width: 350px;
+    margin-left: -175px;
+}
+
+.box,.box-zc{
     display:none;
+    width: 430px;
+    height: 440px; 
     position: fixed;
     background:white; 
     top: 55%;
     left:50%;
-    margin-left: -189px;
-    margin-top: -225px;
+    margin-left: -215px;
+    margin-top: -220px;
     z-index: 10;
 }
+.box-zc {
+    height: 450px;
+}
 .tc-login {
     text-align: center;
     color: black;
@@ -264,24 +275,19 @@ main > section {
     border: #0080E6 1px solid;
 }
 /* 11/12注册页面 ..........................................*/
-.login,.profile {
-    color: white;
-    font-size: 14px;
-}
 .login {
     margin-top: 12px;
+    color: white;
+    font-size: 14px;
 }
-.login img,.profile img {
+.login img {
     width: 25px;
     height: 24px;
 }
-.login > span:hover, .profile > span:hover{
+.login > span:hover{
     cursor:pointer;
     color: #0aa6bd;
 }
-.profile .user-info {
-    margin: 0 18px;
-}
 .my-label {
     float: left;
     line-height: 40px;
@@ -996,8 +1002,9 @@ h1.navbar-brand {
     font-size: 40px;
     line-height: 1.5;
 }
-.slider-1 {
-    background-image: url(../img/assets/beijing2x.png);
+.slider-1  img{
+    width: 100%;
+    height: 100%;
 }
 .sl-slider-wrapper {
     width: 100%;
@@ -1010,6 +1017,8 @@ h1.navbar-brand {
     position: absolute;
     top: 0;
     left: 0;
+    right: 0;
+    bottom: 0;
 }
 
 /* Slide wrapper and slides */

+ 0 - 0
frontend/saas-portal-web/src/css/owl.carousel.css → frontend/saas-portal-web/static/css/owl.carousel.css


+ 0 - 0
frontend/saas-portal-web/src/css/slit-slider.css → frontend/saas-portal-web/static/css/slit-slider.css


+ 0 - 0
frontend/saas-portal-web/src/fonts/ionicons.ttf → frontend/saas-portal-web/static/fonts/ionicons.ttf


+ 0 - 0
frontend/saas-portal-web/src/fonts/ionicons.woff → frontend/saas-portal-web/static/fonts/ionicons.woff


+ 0 - 0
frontend/saas-portal-web/src/img/assets/1.png → frontend/saas-portal-web/static/img/assets/1.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/2.png → frontend/saas-portal-web/static/img/assets/2.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/Group3x.png → frontend/saas-portal-web/static/img/assets/Group3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/back2x.png → frontend/saas-portal-web/static/img/assets/back2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/beijing.png → frontend/saas-portal-web/static/img/assets/beijing.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/beijing2x.png → frontend/saas-portal-web/static/img/assets/beijing2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/chahao.png → frontend/saas-portal-web/static/img/assets/chahao.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/chatu.png → frontend/saas-portal-web/static/img/assets/chatu.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/dalogo3x.png → frontend/saas-portal-web/static/img/assets/dalogo3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/dalogo@3x.png → frontend/saas-portal-web/static/img/assets/dalogo@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/denglu3x.png → frontend/saas-portal-web/static/img/assets/denglu3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/dianzi3x.png → frontend/saas-portal-web/static/img/assets/dianzi3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/fen xi@2x.png → frontend/saas-portal-web/static/img/assets/fen xi@2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/jin3x.png → frontend/saas-portal-web/static/img/assets/jin3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/kuaisu@2x.png → frontend/saas-portal-web/static/img/assets/kuaisu@2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/logo-lan3x.png → frontend/saas-portal-web/static/img/assets/logo-lan3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/logo.png → frontend/saas-portal-web/static/img/assets/logo.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/logo@2x.png → frontend/saas-portal-web/static/img/assets/logo@2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/logo@3x.png → frontend/saas-portal-web/static/img/assets/logo@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/password.png → frontend/saas-portal-web/static/img/assets/password.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/phone.png → frontend/saas-portal-web/static/img/assets/phone.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/qing3x.png → frontend/saas-portal-web/static/img/assets/qing3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/ren3x.png → frontend/saas-portal-web/static/img/assets/ren3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/shuaxin.png → frontend/saas-portal-web/static/img/assets/shuaxin.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/sou.png → frontend/saas-portal-web/static/img/assets/sou.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/timg.jpg → frontend/saas-portal-web/static/img/assets/timg.jpg


+ 0 - 0
frontend/saas-portal-web/src/img/assets/tishi1x.png → frontend/saas-portal-web/static/img/assets/tishi1x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/weixin.png → frontend/saas-portal-web/static/img/assets/weixin.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/weixuanzhong2x.png → frontend/saas-portal-web/static/img/assets/weixuanzhong2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/xuanzhong2x.png → frontend/saas-portal-web/static/img/assets/xuanzhong2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/xun3x.png → frontend/saas-portal-web/static/img/assets/xun3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/xunzhao@2x.png → frontend/saas-portal-web/static/img/assets/xunzhao@2x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/yanzhengma.png → frontend/saas-portal-web/static/img/assets/yanzhengma.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/zhuce3x.png → frontend/saas-portal-web/static/img/assets/zhuce3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/assets/zi3x.png → frontend/saas-portal-web/static/img/assets/zi3x.png


BIN=BIN
frontend/saas-portal-web/static/img/fanhui.png


+ 0 - 0
frontend/saas-portal-web/src/img/features.jpg → frontend/saas-portal-web/static/img/features.jpg


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/xiao shou 3@3x.png → frontend/saas-portal-web/static/img/gongneng/ xiao shou 3@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/FEN XI 8@3x.png → frontend/saas-portal-web/static/img/gongneng/FEN XI 8@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/QIAN BAO 7@3x.png → frontend/saas-portal-web/static/img/gongneng/QIAN BAO 7@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/cai gou 4@3x.png → frontend/saas-portal-web/static/img/gongneng/cai gou 4@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/cang ku 5@3x.png → frontend/saas-portal-web/static/img/gongneng/cang ku 5@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/jia gong 6@3x.png → frontend/saas-portal-web/static/img/gongneng/jia gong 6@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/ren wu 1@3x.png → frontend/saas-portal-web/static/img/gongneng/ren wu 1@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/xu xian@3x.png → frontend/saas-portal-web/static/img/gongneng/xu xian@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/gongneng/zi yuan 2@3x.png → frontend/saas-portal-web/static/img/gongneng/zi yuan 2@3x.png


+ 0 - 0
frontend/saas-portal-web/src/img/icons/quotes.png → frontend/saas-portal-web/static/img/icons/quotes.png


+ 0 - 0
frontend/saas-portal-web/static/img/login


+ 0 - 0
frontend/saas-portal-web/src/img/logo_w.png → frontend/saas-portal-web/static/img/logo_w.png


BIN=BIN
frontend/saas-portal-web/static/img/qiye/CHA HAO.png


BIN=BIN
frontend/saas-portal-web/static/img/qiye/buneng kaitong@1x.png


BIN=BIN
frontend/saas-portal-web/static/img/qiye/chahao.png


BIN=BIN
frontend/saas-portal-web/static/img/qiye/dengji@1x.png


BIN=BIN
frontend/saas-portal-web/static/img/qiye/tanchuang.png


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio