Browse Source

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

huangx 7 years ago
parent
commit
226731a932
24 changed files with 844 additions and 157 deletions
  1. 23 0
      base-servers/account/account-server/src/test/java/com/usoftchina/saas/account/api/AccountCacheTest.java
  2. 18 0
      base-servers/account/account-server/src/test/java/com/usoftchina/saas/account/service/AccountServiceTest.java
  3. 1 0
      base-servers/auth/pom.xml
  4. 32 0
      base-servers/auth/sso-api/pom.xml
  5. 51 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserApi.java
  6. 8 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserSpaceApi.java
  7. 85 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoResult.java
  8. 251 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoUser.java
  9. 191 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoUserSpace.java
  10. 20 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoUserSpaceList.java
  11. 18 0
      base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoTest.java
  12. 47 0
      base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoUserApiTest.java
  13. 3 0
      base-servers/auth/sso-api/src/test/resources/application.yml
  14. 7 0
      framework/core/src/main/java/com/usoftchina/saas/cache/RedisHashCache.java
  15. 1 1
      frontend/saas-portal-web/config/index.js
  16. 1 8
      frontend/saas-portal-web/src/App.vue
  17. 8 30
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  18. 30 42
      frontend/saas-portal-web/src/components/conenter/company.vue
  19. 1 5
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  20. 37 12
      frontend/saas-portal-web/src/components/conenter/home.vue
  21. 7 38
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  22. 1 0
      frontend/saas-portal-web/src/main.js
  23. 3 0
      frontend/saas-portal-web/static/css/gongsi.css
  24. 0 21
      frontend/saas-portal-web/static/js/mains.js

+ 23 - 0
base-servers/account/account-server/src/test/java/com/usoftchina/saas/account/api/AccountCacheTest.java

@@ -0,0 +1,23 @@
+package com.usoftchina.saas.account.api;
+
+import com.usoftchina.saas.account.cache.AccountCache;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class AccountCacheTest {
+
+    @Test
+    public void hdel() {
+        AccountCache.of(43).hdel();
+        System.out.println(AccountCache.of(43).exists());
+    }
+}

+ 18 - 0
base-servers/account/account-server/src/test/java/com/usoftchina/saas/account/service/AccountServiceTest.java

@@ -1,13 +1,19 @@
 package com.usoftchina.saas.account.service;
 
+import com.usoftchina.saas.account.cache.AccountCache;
 import com.usoftchina.saas.account.constant.AccountType;
+import com.usoftchina.saas.account.dto.AccountDTO;
 import com.usoftchina.saas.account.po.Account;
+import com.usoftchina.saas.utils.CollectionUtils;
 import org.junit.*;
 import org.junit.runner.RunWith;
 import org.junit.runners.MethodSorters;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+import java.util.Set;
 //import org.springframework.transaction.annotation.Transactional;
 
 @RunWith(SpringRunner.class)
@@ -54,4 +60,16 @@ public class AccountServiceTest {
         Assert.assertTrue(removed);
     }
 
+    @Test
+    public void testD_clearAccountCacheByRoleId() {
+        long roleId = 25;
+        List<Account> accounts = accountService.findByRoleId(roleId);
+        if (!CollectionUtils.isEmpty(accounts)) {
+            accounts.forEach(account -> accountService.clearCache(account.getId()));
+        }
+        AccountCache.current().keys().forEach(System.out::println);
+
+        AccountCache.of(43).getAccount();
+    }
+
 }

+ 1 - 0
base-servers/auth/pom.xml

@@ -18,6 +18,7 @@
         <module>auth-server</module>
         <module>auth-client</module>
         <module>auth-common</module>
+        <module>sso-api</module>
     </modules>
 
 </project>

+ 32 - 0
base-servers/auth/sso-api/pom.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>auth</artifactId>
+        <groupId>com.usoftchina.saas</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>sso-api</artifactId>
+    <description>account center api</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>

+ 51 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserApi.java

@@ -0,0 +1,51 @@
+package com.usoftchina.sso.api;
+
+import com.usoftchina.sso.dto.SsoResult;
+import com.usoftchina.sso.dto.SsoUser;
+import com.usoftchina.sso.dto.SsoUserSpaceList;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+@FeignClient(url = "${sso.base-url}", name = "sso-server", fallback = SsoUserApi.DefaultFallback.class)
+@RequestMapping("/api/user")
+public interface SsoUserApi {
+
+    /**
+     * 手机号查找用户
+     *
+     * @param userUU
+     * @return
+     */
+    @GetMapping("/info")
+    SsoResult<SsoUser> getUserByUu(@RequestParam("userUU") Long userUU);
+
+    /**
+     * 手机号查找绑定企业
+     *
+     * @param mobile
+     * @return
+     */
+    @GetMapping("/getSpace")
+    @Deprecated
+    SsoUserSpaceList getUserSpacesByMobile(@RequestParam("mobile") String mobile);
+
+    @Component
+    class DefaultFallback implements SsoUserApi{
+        @Override
+        public SsoResult<SsoUser> getUserByUu(Long userUU) {
+            return SsoResult.fallback();
+        }
+
+        @Override
+        public SsoUserSpaceList getUserSpacesByMobile(String mobile) {
+            return null;
+        }
+    }
+}

+ 8 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserSpaceApi.java

@@ -0,0 +1,8 @@
+package com.usoftchina.sso.api;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+public interface SsoUserSpaceApi {
+}

+ 85 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoResult.java

@@ -0,0 +1,85 @@
+package com.usoftchina.sso.dto;
+
+import com.usoftchina.saas.exception.ExceptionCode;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+public class SsoResult<T> {
+    private boolean success;
+
+    private boolean error;
+
+    private String errCode;
+
+    private String errMsg;
+
+    private String errDetail;
+
+    private T content;
+
+    public SsoResult() {
+    }
+
+    /**
+     * 异常返回
+     *
+     * @return
+     */
+    public static SsoResult fallback() {
+        SsoResult result = new SsoResult();
+        result.setError(true);
+        result.setErrCode(String.valueOf(ExceptionCode.SYSTEM_BUSY.getCode()));
+        result.setErrMsg(ExceptionCode.SYSTEM_BUSY.getMessage());
+        return result;
+    }
+
+    public boolean isSuccess() {
+        return success;
+    }
+
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+
+    public boolean isError() {
+        return error;
+    }
+
+    public void setError(boolean error) {
+        this.error = error;
+    }
+
+    public String getErrMsg() {
+        return errMsg;
+    }
+
+    public void setErrMsg(String errMsg) {
+        this.errMsg = errMsg;
+    }
+
+    public String getErrCode() {
+        return errCode;
+    }
+
+    public void setErrCode(String errCode) {
+        this.errCode = errCode;
+    }
+
+    public String getErrDetail() {
+        return errDetail;
+    }
+
+    public void setErrDetail(String errDetail) {
+        this.errDetail = errDetail;
+    }
+
+    public T getContent() {
+        return content;
+    }
+
+    public void setContent(T content) {
+        this.content = content;
+    }
+}

+ 251 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoUser.java

@@ -0,0 +1,251 @@
+package com.usoftchina.sso.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import java.io.Serializable;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class SsoUser implements Serializable{
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * uu号
+     */
+    private Long userUU;
+
+    /**
+     * 会员名
+     */
+    private String vipName;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 手机号所属区域(continent or Hongkong)
+     */
+    private String mobileArea;
+
+    /**
+     * 手机号认证状态
+     */
+    private Short mobileValidCode;
+
+    /**
+     * 用户密码
+     */
+    private String password;
+
+    /**
+     * 用户erp密码
+     */
+    private String erpPassword;
+
+    /**
+     * 盐值
+     */
+    private String salt;
+
+    /**
+     * 用户邮箱
+     */
+    private String email;
+
+    /**
+     * 用户邮箱认证状态
+     */
+    private Short emailValidCode;
+
+    /**
+     * 身份认证状态
+     */
+    private Short identityValidCode;
+
+    /**
+     * 账户是否冻结(1、冻结)
+     */
+    private Short lock;
+
+    /**
+     * 企业uu号
+     */
+    private Long spaceUU;
+
+    /**
+     * 企业名称
+     */
+    private String spaceName;
+
+    /**
+     * 营业执照号
+     */
+    private String businessCode;
+
+    /**
+     * 企业域名
+     */
+    private String spaceDomain;
+
+    /**
+     * 应用唯一标志
+     */
+    private String appId;
+
+    /**
+     * 上次登录时间
+     */
+    private Long lastLoginTime;
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public String getVipName() {
+        return vipName;
+    }
+
+    public void setVipName(String vipName) {
+        this.vipName = vipName;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getMobileArea() {
+        return mobileArea;
+    }
+
+    public void setMobileArea(String mobileArea) {
+        this.mobileArea = mobileArea;
+    }
+
+    public Short getMobileValidCode() {
+        return mobileValidCode;
+    }
+
+    public void setMobileValidCode(Short mobileValidCode) {
+        this.mobileValidCode = mobileValidCode;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getErpPassword() {
+        return erpPassword;
+    }
+
+    public void setErpPassword(String erpPassword) {
+        this.erpPassword = erpPassword;
+    }
+
+    public String getSalt() {
+        return salt;
+    }
+
+    public void setSalt(String salt) {
+        this.salt = salt;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public Short getEmailValidCode() {
+        return emailValidCode;
+    }
+
+    public void setEmailValidCode(Short emailValidCode) {
+        this.emailValidCode = emailValidCode;
+    }
+
+    public Short getIdentityValidCode() {
+        return identityValidCode;
+    }
+
+    public void setIdentityValidCode(Short identityValidCode) {
+        this.identityValidCode = identityValidCode;
+    }
+
+    public Short getLock() {
+        return lock;
+    }
+
+    public void setLock(Short lock) {
+        this.lock = lock;
+    }
+
+    public Long getSpaceUU() {
+        return spaceUU;
+    }
+
+    public void setSpaceUU(Long spaceUU) {
+        this.spaceUU = spaceUU;
+    }
+
+    public String getSpaceName() {
+        return spaceName;
+    }
+
+    public void setSpaceName(String spaceName) {
+        this.spaceName = spaceName;
+    }
+
+    public String getBusinessCode() {
+        return businessCode;
+    }
+
+    public void setBusinessCode(String businessCode) {
+        this.businessCode = businessCode;
+    }
+
+    public String getSpaceDomain() {
+        return spaceDomain;
+    }
+
+    public void setSpaceDomain(String spaceDomain) {
+        this.spaceDomain = spaceDomain;
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public Long getLastLoginTime() {
+        return lastLoginTime;
+    }
+
+    public void setLastLoginTime(Long lastLoginTime) {
+        this.lastLoginTime = lastLoginTime;
+    }
+}

+ 191 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoUserSpace.java

@@ -0,0 +1,191 @@
+package com.usoftchina.sso.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import java.io.Serializable;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class SsoUserSpace implements Serializable{
+    /**
+     * 企业uu号
+     */
+    private Long spaceUU;
+
+    /**
+     * 企业名称
+     */
+    private String spaceName;
+
+    /**
+     * 法定代表人
+     */
+    private String corporation;
+
+    /**
+     * 注册日期
+     */
+    private Long registerDate;
+
+    /**
+     * 管理员
+     */
+    private SsoUser admin;
+
+    /**
+     * 营业执照号
+     */
+    private String businessCode;
+
+    /**
+     * 营业执照
+     */
+    private String businessCodeImage;
+
+    /**
+     * 注册地址
+     */
+    private String regAddress;
+
+    /**
+     * 企业信息认证状态
+     */
+    private Short validCode;
+
+    /**
+     * logo图片
+     */
+    private String logoImage;
+
+    /**
+     * 企业联系电话
+     */
+    private String telephone;
+
+    /**
+     * 行业
+     */
+    private String profession;
+
+    /**
+     * 经营范围标签,逗号分隔
+     */
+    private String tags;
+
+    private String accessSecret;
+
+    public Long getSpaceUU() {
+        return spaceUU;
+    }
+
+    public void setSpaceUU(Long spaceUU) {
+        this.spaceUU = spaceUU;
+    }
+
+    public String getSpaceName() {
+        return spaceName;
+    }
+
+    public void setSpaceName(String spaceName) {
+        this.spaceName = spaceName;
+    }
+
+    public String getCorporation() {
+        return corporation;
+    }
+
+    public void setCorporation(String corporation) {
+        this.corporation = corporation;
+    }
+
+    public Long getRegisterDate() {
+        return registerDate;
+    }
+
+    public void setRegisterDate(Long registerDate) {
+        this.registerDate = registerDate;
+    }
+
+    public SsoUser getAdmin() {
+        return admin;
+    }
+
+    public void setAdmin(SsoUser admin) {
+        this.admin = admin;
+    }
+
+    public String getBusinessCode() {
+        return businessCode;
+    }
+
+    public void setBusinessCode(String businessCode) {
+        this.businessCode = businessCode;
+    }
+
+    public String getBusinessCodeImage() {
+        return businessCodeImage;
+    }
+
+    public void setBusinessCodeImage(String businessCodeImage) {
+        this.businessCodeImage = businessCodeImage;
+    }
+
+    public String getRegAddress() {
+        return regAddress;
+    }
+
+    public void setRegAddress(String regAddress) {
+        this.regAddress = regAddress;
+    }
+
+    public Short getValidCode() {
+        return validCode;
+    }
+
+    public void setValidCode(Short validCode) {
+        this.validCode = validCode;
+    }
+
+    public String getLogoImage() {
+        return logoImage;
+    }
+
+    public void setLogoImage(String logoImage) {
+        this.logoImage = logoImage;
+    }
+
+    public String getTelephone() {
+        return telephone;
+    }
+
+    public void setTelephone(String telephone) {
+        this.telephone = telephone;
+    }
+
+    public String getProfession() {
+        return profession;
+    }
+
+    public void setProfession(String profession) {
+        this.profession = profession;
+    }
+
+    public String getTags() {
+        return tags;
+    }
+
+    public void setTags(String tags) {
+        this.tags = tags;
+    }
+
+    public String getAccessSecret() {
+        return accessSecret;
+    }
+
+    public void setAccessSecret(String accessSecret) {
+        this.accessSecret = accessSecret;
+    }
+}

+ 20 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/dto/SsoUserSpaceList.java

@@ -0,0 +1,20 @@
+package com.usoftchina.sso.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+public class SsoUserSpaceList implements Serializable{
+    private List<SsoUserSpace> spaces;
+
+    public List<SsoUserSpace> getSpaces() {
+        return spaces;
+    }
+
+    public void setSpaces(List<SsoUserSpace> spaces) {
+        this.spaces = spaces;
+    }
+}

+ 18 - 0
base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoTest.java

@@ -0,0 +1,18 @@
+package com.usoftchina.sso.test;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+@SpringBootApplication(scanBasePackages = "com.usoftchina")
+@EnableFeignClients("com.usoftchina.sso")
+public class SsoTest {
+
+    public static void main(String[] args) {
+        SpringApplication.run(SsoTest.class, args);
+    }
+}

+ 47 - 0
base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoUserApiTest.java

@@ -0,0 +1,47 @@
+package com.usoftchina.sso.test;
+
+import com.usoftchina.saas.utils.CollectionUtils;
+import com.usoftchina.sso.api.SsoUserApi;
+import com.usoftchina.sso.dto.SsoResult;
+import com.usoftchina.sso.dto.SsoUser;
+import com.usoftchina.sso.dto.SsoUserSpaceList;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * @author yingp
+ * @date 2018/11/23
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class SsoUserApiTest {
+
+    @Autowired
+    private SsoUserApi ssoUserApi;
+
+    final static long userUU = 200040149;
+
+    final static String mobile = "13798490565";
+
+    @Test
+    public void testA_getUserByUu() {
+        SsoResult<SsoUser> result = ssoUserApi.getUserByUu(userUU);
+        if (result.isSuccess()) {
+            System.out.println(result.getContent().getVipName());
+        }
+    }
+
+    @Test
+    public void testB_getUserSpacesByMobile() {
+        SsoUserSpaceList list = ssoUserApi.getUserSpacesByMobile(mobile);
+        if (null != list && !CollectionUtils.isEmpty(list.getSpaces())) {
+            list.getSpaces().forEach(space -> System.out.println(space.getSpaceName()));
+        }
+    }
+}

+ 3 - 0
base-servers/auth/sso-api/src/test/resources/application.yml

@@ -0,0 +1,3 @@
+sso:
+  base-url: http://192.168.253.12:32323
+#  base-url: https://sso.ubtob.com

+ 7 - 0
framework/core/src/main/java/com/usoftchina/saas/cache/RedisHashCache.java

@@ -4,6 +4,7 @@ import org.springframework.data.redis.core.BoundHashOperations;
 import org.springframework.data.redis.core.RedisTemplate;
 
 import java.util.Optional;
+import java.util.Set;
 import java.util.function.Supplier;
 
 /**
@@ -27,6 +28,10 @@ public abstract class RedisHashCache<K, F, V> extends BaseRedisCache<K, V> {
         return super.getRedisTemplate().boundHashOps(key());
     }
 
+    public Set<F> keys() {
+        return this.getBoundHashOperations().keys();
+    }
+
     /**
      * 获取
      *
@@ -89,4 +94,6 @@ public abstract class RedisHashCache<K, F, V> extends BaseRedisCache<K, V> {
     public void hdel() {
         this.getBoundHashOperations().delete(this.field());
     }
+
+
 }

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

@@ -14,7 +14,7 @@ module.exports = {
 
     // Various Dev Server settings
     // host: 'localhost', // can be overwritten by process.env.HOST
-    host: '127.0.0.1', // can be overwritten by process.env.HOST
+    host: '192.168.253.183', // 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,

+ 1 - 8
frontend/saas-portal-web/src/App.vue

@@ -18,12 +18,5 @@ export default {
 </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>

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

@@ -36,17 +36,6 @@
                                 <input ref="address" class="qy-xiangxi" type="text" placeholder="输入企业详细地址">
                             </div>
                         </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>
@@ -64,7 +53,7 @@
                         <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
                         <li>
                             <span class="qy-biaoti">邮箱</span>
-                            <input ref="email" type="email">
+                            <input @input="email" ref="email" type="email">
                         </li>
                     </ul>
                 </div>
@@ -78,8 +67,6 @@ import VDistpicker from 'v-distpicker'
     export default {
         data(){
             return {
-                tjbiaoqian:true,//标签切换
-                biaoqian:[],//标签数组
                 province:'',//省
                 city:'',//市
                 area:'',//区
@@ -91,13 +78,7 @@ import VDistpicker from 'v-distpicker'
             VDistpicker
         },
         mounted(){
-            this.$ajax.get('../../../static/data.json')
-            .then(res=>{
-                // console.log('请求成功',res.data);
-            })
-            .catch(err=>{
-                // console.log('请求失败',err);
-            });
+
         },
         methods: {
             //取消添加企业
@@ -133,6 +114,11 @@ import VDistpicker from 'v-distpicker'
                     this.$refs.usname.innerHTML = ''
                 }
             },
+            
+            email(){
+                let email = this.$refs.email.value;//邮箱
+
+            },
             //保存
             Preservation(){
                 let qyname = this.$refs.qyname.value;//公司名字
@@ -140,7 +126,6 @@ import VDistpicker from 'v-distpicker'
                 let address = this.province+this.city+this.area+this.$refs.address.value;//公司详细地址
                 let name = this.$refs.name.value;//个人姓名
                 let email = this.$refs.email.value;//邮箱
-                // let mobile = this.$store.state.data.mobile;//手机号
                 let mytoken = JSON.parse(localStorage.getItem('app-state-session'));
                 let token = String(mytoken.token);
                 let uu = mytoken.account.uu;
@@ -149,7 +134,7 @@ import VDistpicker from 'v-distpicker'
                 let account = {'realname':name,'email':email,'mobile':mobile, 'uu':uu}
                 if (name != '' && qyname != '') {
                     this.$ajax({
-                        url:"http://192.168.253.31:8560/api/account/accountCenter/companyAccount/save",
+                        url: this.$url.api+"/api/account/accountCenter/companyAccount/save",
                         method: 'post',
                         data: {
                             companyRegDTO:company,
@@ -189,13 +174,6 @@ import VDistpicker from 'v-distpicker'
             qyarea(qu){
                 this.area = qu.value;
             },
-            //添加标签
-            addbiaoqian(){
-                let text = this.$refs.biaoqian.value;
-                this.biaoqian.push(text);
-                this.tjbiaoqian = false;
-                this.$refs.biaoqian.value = '';
-            },
         }
     }
 </script>

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

@@ -1,5 +1,6 @@
 <template>
   <div>
+    <iframe hidden :src="setTokenPage"></iframe>
     <!-- 遮罩 -->
     <div class="zhezhao"></div>
     <!-- 设置默认弹窗 -->
@@ -8,7 +9,7 @@
       <div v-if="moren">
         <div class="tc-text tc-queren"><span>是否确认设为默认企业?</span></div>
         <div class="tc-anniu">
-          <button @click="addmoren">确认</button>
+          <button @click="setDefault">确认</button>
           <button @click="guanbitc">取消</button>
         </div>
       </div>
@@ -23,13 +24,13 @@
       <div v-if="ktsass">
         <div class="tc-text tc-queren"><span>是否确认开通saas服务?</span></div>
         <div class="tc-anniu">
-          <button @click="addsass">确认</button>
+          <button @click="confirmSaas">确认</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 style="margin-top: 40px;"><span @click="showServeWin" class="gs-btn1 dianji">进入服务</span></div>
       </div>
     </div>
     <!-- 该企业已开通服务弹窗 -->
@@ -59,7 +60,7 @@
         <div class="gs-qiyebox">
             <!-- 点击查看企业详情 -->
             <div v-for="(d , i) in arr " :key="i" class="gs-xiangqing xs">
-                <div class="left gs-xqleft" @click= "chakanxq">
+                <div class="left gs-xqleft" @click= "getEnterpriseInfo(d)">
                     <div class="gs-lefttext">
                         <p class="gs-qynema"><span>企业名称:</span>{{d.address}}</p>
                         <p><span>管理员:</span>{{d.name}}</p>
@@ -68,37 +69,30 @@
                 </div>
                 <div class="right gs-xqright">
                     <div class="gs-border">
-                        <span v-if= "d.saas_" class="gs-btn1 dianji" @click="jinru(d.id)">进入服务</span>
-                        <span v-else @click= "kaitong" class="gs-btn1 kaitong xs">开通服务</span>
+                        <span v-if= "d.saas_" class="gs-btn1 dianji" @click="selectServe(d.id)">进入服务</span>
+                        <span v-else @click= "showOpenServeWin" class="gs-btn1 kaitong xs">开通服务</span>
                     </div>
                     <div>
                         <span v-if = "d.default_" class="gs-btn2 gs-btn3">默认企业</span>
-                        <span v-else @click="szmoren(i)" class="gs-btn2 xs">设为默认</span>
+                        <span v-else @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
                         
                     </div>
                 </div>
             </div>
             <div class="gs-xiangqing dotted">
                 <p class="gs-tianja">
-                    <span @click= "tianjia"><router-link to="/addenterprise">+添加企业</router-link></span>
+                    <span @click= "addEnterprise"><router-link to="/addenterprise">+添加企业</router-link></span>
                 </p>
             </div>
         </div>
       </div>
-      <!-- <div class="gs-xiangqing dotted">
-        <p class="gs-tianja">
-          <span @click="tianjia"><router-link to="/addenterprise">+添加企业</router-link></span>
-        </p>
-      </div> -->
-    <!-- </div>
-  </div> -->
 </template>
 
 <script>
+ import Session from '@/utils/session'
     export default {
         data(){
             return {
-                biaoqian: [],//标签数组
                 index:0,
                 ktsass: true,//开通sass
                 moren: true,//开通默认
@@ -107,15 +101,20 @@
                 arr: []//企业列表信息
             }
         },
+        computed :{
+            setTokenPage() {
+                return this.$url.web + '/set-token.html'
+            }
+        },
         mounted(){
             this.boxheight();
             // console.log("我是子路由的"+this.comdata)
-            this.addqy();
             let mytoken = JSON.parse(localStorage.getItem('app-state-session'));
             let token = String(mytoken.token);
             // console.log(mytoken.account)
+            console.log(this.$url.api)
             this.$ajax({
-                    url:"http://192.168.253.31:8560/api/account/accountCenter/company/list",
+                    url: "/api/account/accountCenter/company/list",
                     method: 'get',
                     params: {
                         mobile: mytoken.account.mobile
@@ -135,17 +134,17 @@
         },
         methods: {
             //设置默认弹窗
-            szmoren(i){
+            showDefaultWin(i){
                 this.index = i;
                 $(".szmoren").css("display","block");
                 $(".zhezhao").css("display","block");
             },
             //确认默认
-            addmoren(){
+            setDefault(){
                 let i = this.index;
                 let token = this.mytoken.token;
                 this.$ajax({
-                    url:'http://192.168.253.31:8560/api/account/accountCenter/bind/defaultCompany',
+                    url: '/api/account/accountCenter/bind/defaultCompany',
                     method: 'post',
                     data:{
                         companyId: this.arr[i].id,
@@ -166,14 +165,14 @@
                 
             },
             //进入服务
-            jinru(id){
+            selectServe(id){
                 let token = this.mytoken.token;
                 const frame = window.frames[window.frames.length - 1];
                 this.$ajax({
-                    url: 'http://192.168.253.31:8560/api/auth/switch/company?companyId='+id,
+                    url: '/api/auth/switch/company?companyId='+id,//http://192.168.253.31:8560
                     method :'get',
                     headers: {
-                        "Authorization":token,
+                        "Authorization":token
                     }
                 })
                 .then(res=>{
@@ -182,11 +181,8 @@
                     session.account.companyId=id;
                     session.span = session.timestamp - new Date().getTime();
                     session.token=mytoken;
-                    debugger
-                    localStorage.setItem('app-state-session',JSON.stringify(session));
                     frame.postMessage(JSON.stringify(session), '*');
-                    // window.location.href = 'http://192.168.0.181';
-                    // console.log('请求成功',res)
+                    window.location.href = me.$url.web
                 })
                 .catch(err=>{
                     console.log('请求失败',err)
@@ -194,36 +190,28 @@
             
             },
             //开通sass
-            kaitong(){
+            showOpenServeWin(){
                 $(".ktsass").css('display','block');
                 $(".zhezhao").css("display","block");
                 this.ktsass = true;
             },
-            addsass(){//确认sass
+            confirmSaas(){//确认sass
                 this.ktsass = false;
             },
             //进入服务
-            offfuwu(){
+            showServeWin(){
                 $(".ktsass").css('display','none');
                 $(".zhezhao").css("display","none");
             },
             //查看企业详情
-            chakanxq(){
+            getEnterpriseInfo(d){
                 document.documentElement.scrollTop = 0;
-                this.$router.push({name:'details',});
+                this.$router.push({path:'/details',query:{content:d}});
             },
              //添加企业
-            tianjia(){
+            addEnterprise(){
                 document.documentElement.scrollTop = 0;
             },
-            addqy(){
-
-            },
-             //添加企业标签
-            addbiaoqian(){
-                this.biaoqian.push(this.$refs.biaoqian.value)
-                this.tjbiaoqian = false;
-            },
             //关闭弹窗
             guanbitc(){
                 $(".tanchuang").css("display","none");

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

@@ -17,15 +17,11 @@
             </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><router-link to="/home"><a href="#"><span>首页</span></a></router-link></li>
-                    <li><a href="#"><span>特色</span></a></li>
-                    <!-- <li><router-link to="/enterprise"><a href="#"><span>特色</span></a></router-link></li> -->
-                    <li><a href="#"><span>功能</span></a></li>
                     <li><a href="https://uas.usoftchina.com/about" target="_blank"><span>关于我们</span></a></li>
                     <li>
                         <a href="#"><span class="">{{mytoken.realname}}</span></a>
-                        <a href=""><span class="">账户中心</span></a>
+                        <a href=""><span class="">退出</span></a>
                     </li>
                 </ul>
             </div>

+ 37 - 12
frontend/saas-portal-web/src/components/conenter/home.vue

@@ -18,9 +18,9 @@
             <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><a href="#feature"><span>特色</span></a></li> -->
             <li @click="home">
-              <router-link to="/enterprise"><a href="#"><span>特色</span></a></router-link>
+              <a href="#"><span>特色</span></a>
+              <!-- <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>
@@ -33,8 +33,10 @@
 							<span class="user-info">
 								<img src="/static/img/assets/denglu3x.png" alt="">
 								<span id="user-info">{{account.realname || account.username}}</span>
-							</span>|
-              <a href="#">账户管理</a>
+							</span>
+              <span>退出</span>    |
+              <router-link to="/enterprise"><a href="#"><span>账户管理</span></a></router-link>
+              <!-- <a href="#">账户管理</a> -->
             </li>
           </ul>
         </div>
@@ -45,15 +47,20 @@
 
     <main class="site-content" role="main">
       <!-- 遮罩 -->
-      <div class="zhezhao" v-if="isLogin || isRegister"></div>
+      <div class="zhezhao" v-if="isLogin || isRegister || isexperience"></div>
       <div class="box" v-if="isLogin || isRegister">
         <div>
-          <img @click="closeModal" class="tc-on xs" style="float: right;padding: 10px"
+          <img @click="closeModal" class="tc-on shut"
                src="/static/img/qiye/chahao.png" alt="">
         </div>
         <iframe width="430" height="440" :src="ssoPage"></iframe>
         <iframe hidden :src="setTokenPage"></iframe>
       </div>
+      <div class="tiyan" v-if="isexperience">
+        我是体验
+        <img @click="Closeexperience" class="tc-on shut"
+               src="/static/img/qiye/chahao.png" alt="">
+      </div>
 
       <!--Home Slider==================================== -->
       <section id="home-slider">
@@ -68,7 +75,7 @@
               </div>
               <!-- 首页内容 -->
               <div class="my-text">
-                <button class='my-tiyan'>立即体验</button>
+                <button class='my-tiyan' @click="experience">立即体验</button>
 
               </div>
               <div class="slide-caption">
@@ -317,7 +324,8 @@
         isLogin: false,
         isRegister: false,
         clientId: null,
-        account: null
+        account: null,
+        isexperience: false
       }
     },
     mounted() {
@@ -353,6 +361,7 @@
           Session.set(session)
           const frame = window.frames[window.frames.length - 1]
           window.addEventListener('message', () => {
+           if(me.isLogin){
             me.isLogin = false
             if (!account.companyId) {
               // 添加企业
@@ -361,6 +370,7 @@
               // 跳转应用页面
               window.location.href = me.$url.web
             }
+           } 
           }, false)
           frame.postMessage(JSON.stringify(session), '*')
         })
@@ -382,20 +392,35 @@
           me.isLogin = false
           me.isRegister = false
         })
+      },
+      //体验
+      experience(){
+        this.isexperience = true;
+      },
+      //关闭体验
+      Closeexperience(){
+        this.isexperience = false;
       }
     }
   }
 </script>
 
 <style scoped>
-.tc-guanbi {
-	cursor: pointer;
+.shut {
+  cursor: pointer;
+  position: absolute;
+  top: 10px;
+  right: 10px;
 }
 .tiyan {
-	display: none;
+  position: absolute;
+  top: 50%;
+  left: 50%;
 	width: 400px;
 	height: 200px;
 	margin-left: -200px;
-    margin-top: -100px;
+  margin-top: -100px;
+  z-index: 10001;
+  background: white;
 }
 </style>

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

@@ -1,7 +1,7 @@
 <template>
     <div>
         <!-- 企业详细信息 -->
-        <div v-if= "xiugai">
+        <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>
@@ -10,10 +10,9 @@
                 </div>
                 <div class="qy-conent">
                     <ul>
-                        <li><span class="qy-biaoti">公司名称</span><span>飞飞有限公司</span></li>
+                        <li><span class="qy-biaoti">公司名称</span><span>{{content.address}}</span></li>
                         <li><span class="qy-biaoti">所属行业</span><span>飞飞有限公司</span></li>
-                        <li><span class="qy-biaoti">公司地址</span><span>飞飞有限公司</span></li>
-                        <!-- <li><span class="qy-biaoti">营业范围</span><span class="qy-biaoqian">飞飞标签</span><span class="qy-biaoqian">飞飞标签</span></li> -->
+                        <li><span class="qy-biaoti">公司地址</span><span>{{content.address}}</span></li>
                     </ul>
                 </div>
             </div>
@@ -44,7 +43,7 @@
                     <ul>
                         <li>
                             <span class="qy-biaoti"><span class="xingxing">*</span>公司名称</span>
-                            <span>飞飞有限公司</span>
+                            <span>{{content.address}}</span>
                         </li>
                         <li>
                             <span class="qy-biaoti">所属行业</span>
@@ -52,30 +51,8 @@
                         </li>
                         <li>
                             <span class="qy-biaoti">公司地址</span>
-                            <span>飞飞有限公司</span>
+                            <span>{{content.address}}</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 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>
-                        </li> -->
                     </ul>
                 </div>
             </div>
@@ -101,15 +78,11 @@
         data(){
             return {
                 xiugai:true,
-                biaoqian: [
-                    'feifei',
-                    '飞飞公司',
-                    '飞飞企业',
-                ]
+                content: this.$route.query.content,
             }
         },
         mounted(){
-
+            // console.log(this.content)
         },
         methods: {//修改企业信息
             xiugaiqiye(){
@@ -126,10 +99,6 @@
                 document.documentElement.scrollTop = 0;
                 this.xiugai = true;
             },
-            //清除标签
-            qcbiaoqian(i){
-                this.biaoqian.splice(i,1);
-            },
             //返回
             gobick(){
                 // this.$router.go(-1); 

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

@@ -12,6 +12,7 @@ Vue.config.productionTip = false
 
 // 注入url配置
 Vue.prototype.$url = process.env.BASE_URL
+Axios.defaults.baseURL = 'http://192.168.253.31:8560'
 /* eslint-disable no-new */
 new Vue({
   el: '#app',

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

@@ -141,6 +141,9 @@
     position: absolute;
     top: 50%;
     left: 50%;
+    width: 70%;
+    margin-left: 30%;
+    height: 50%;
     transform: translate(-100%,-50%);
 }
 .gs-xqright {

+ 0 - 21
frontend/saas-portal-web/static/js/mains.js

@@ -36,55 +36,34 @@ $(function() {
             } ),
 
             init = function() {
-
                 initEvents();
-
             },
             initEvents = function() {
-
                 // add navigation events
                 $navArrows.children( ':last' ).on( 'click', function() {
-
                     slitslider.next();
                     return false;
-
                 } );
 
                 $navArrows.children( ':first' ).on( 'click', function() {
-
                     slitslider.previous();
                     return false;
-
                 } );
-
                 $nav.each( function( i ) {
-
                     $( this ).on( 'click', function( event ) {
-
                         var $dot = $( this );
-
                         if( !slitslider.isActive() ) {
-
                             $nav.removeClass( 'nav-dot-current' );
                             $dot.addClass( 'nav-dot-current' );
-
                         }
-
                         slitslider.jump( i + 1 );
                         return false;
-
                     } );
-
                 } );
-
             };
-
             return { init : init };
-
     })();
-
     Page.init();
-
 });