diff --git a/Test/MyMaven/pom.xml b/Test/MyMaven/pom.xml index 1628734e..a028ebd8 100644 --- a/Test/MyMaven/pom.xml +++ b/Test/MyMaven/pom.xml @@ -44,11 +44,11 @@ 2.2.6 - - com.google.guava - guava - 29.0-jre - + + + + + diff --git a/Test/src/com/renchao/Test01.java b/Test/src/com/renchao/Test01.java index d9abe473..8d65dfff 100644 --- a/Test/src/com/renchao/Test01.java +++ b/Test/src/com/renchao/Test01.java @@ -332,101 +332,9 @@ public class Test01 { @Test public void test16() { - // System.out.println(isMatch("abcdef", "a*ef")); - // System.out.println(isMatch("aaaef", "a*ef")); - // System.out.println(isMatch("abcdefghi", ".*")); - // System.out.println(isMatch("aa", "a")); - System.out.println(isMatch("aa", "a*")); - // System.out.println(isMatch("aa", "a*b*")); - // System.out.println(isMatch("aab", "c*a*b")); - System.out.println(isMatch("aab", ".*")); - // System.out.println(isMatch("abcde", ".*de")); - // System.out.println(isMatch("mississippi", "mis*is*ip*.")); - // System.out.println(isMatch("mississippi", "mis*is*p*.")); - // System.out.println(isMatch("issippi", "is*p*.")); - - - // System.out.println("abcd".substring(1)); } - public boolean isMatch(String s, String p) { - int row = s.length(); - int col = p.length(); - boolean[][] dp = new boolean[row + 1][col + 1]; - // 初始化首行 - dp[0][0] = true; - for (int j = 2; j <= col; j += 2) { - if (dp[0][j - 2] && p.charAt(j - 1) == '*') { - dp[0][j] = true; - } - } - - // 状态转移 - for (int i = 1; i <= row; i++) { - for (int j = 1; j <= col; j++) { - if (p.charAt(j - 1) == '*') { - if (dp[i][j - 2] || (dp[i - 1][j] && (s.charAt(i - 1) == p.charAt(j - 2) || p.charAt(j - 2) == '.'))) { - dp[i][j] = true; - } - } else { - if (dp[i - 1][j - 1] && (s.charAt(i - 1) == p.charAt(j - 1) || p.charAt(j - 1) == '.')) { - dp[i][j] = true; - } - } - } - } - return dp[row][col]; - } - - public boolean isMatch4(String s, String p) { - if (s.isEmpty() && p.isEmpty()) { - return true; - } - - if (s.isEmpty() || p.isEmpty()) { - return false; - } - - if (p.length() > 1 && p.charAt(1) == '*') { - if (p.charAt(0) == '.') { - return true; - } - int i = 0; - while (i < s.length() && s.charAt(i) == p.charAt(0)) { - i++; - } - return isMatch4(s.substring(i), p.substring(2)); - } else if (p.charAt(0) == s.charAt(0) || p.charAt(0) == '.') { - return isMatch4(s.substring(1), p.substring(1)); - } else { - return false; - } - } - - @Test - public void test21() { - System.out.println(isMatch22("aa", "a*")); - } - - - public boolean isMatch22(String s, String p) { - int m = s.length() + 1, n = p.length() + 1; - boolean[][] dp = new boolean[m][n]; - dp[0][0] = true; - for (int j = 2; j < n; j += 2) - dp[0][j] = dp[0][j - 2] && p.charAt(j - 1) == '*'; - for (int i = 1; i < m; i++) { - for (int j = 1; j < n; j++) { - dp[i][j] = p.charAt(j - 1) == '*' ? - dp[i][j - 2] || dp[i - 1][j] && (s.charAt(i - 1) == p.charAt(j - 2) || p.charAt(j - 2) == '.') : - dp[i - 1][j - 1] && (p.charAt(j - 1) == '.' || s.charAt(i - 1) == p.charAt(j - 1)); - } - } - return dp[m - 1][n - 1]; - } - - } diff --git a/Test/src/com/renchao/ZipDemo.java b/Test/src/com/renchao/ZipDemo.java index 0348202f..4b33adaa 100644 --- a/Test/src/com/renchao/ZipDemo.java +++ b/Test/src/com/renchao/ZipDemo.java @@ -1,9 +1,18 @@ package com.renchao; +import org.junit.Test; + import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.file.StandardOpenOption; +import java.util.List; +import java.util.zip.CRC32; +import java.util.zip.CheckedInputStream; +import java.util.zip.Deflater; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -49,4 +58,96 @@ public class ZipDemo { in.close(); } } + + + + @Test + public void test01() throws IOException { + // ArrayList list = new ArrayList<>(); + // collect(new File("C:\\Users\\RENCHAO\\Desktop\\temp-sss\\aa\\20240314094355A076"), list); + + long l = System.currentTimeMillis(); + File file = new File("C:\\Users\\RENCHAO\\Desktop\\aa.pdf"); + + try (/*FileInputStream in = new FileInputStream(file);*/ + ZipOutputStream out = new ZipOutputStream(new FileOutputStream("C:\\Users\\RENCHAO\\Desktop\\temp-sss\\aa\\output.zip"))) { + ZipEntry entry = new ZipEntry("aa.pdf"); + entry.setMethod(ZipEntry.STORED); + + // Set the size of the file + entry.setSize(file.length()); + + + // Set the CRC-32 checksum of the file + entry.setCrc(calcChecksum(file)); + + + + out.setLevel(Deflater.NO_COMPRESSION); + out.putNextEntry(entry); + System.out.println("创建entry:" + (System.currentTimeMillis() - l)); + + l = System.currentTimeMillis(); + // byte[] buffer = new byte[2048]; + // int len; + // while ((len = in.read(buffer)) > 0) { + // out.write(buffer, 0, len); + // } + + try (FileChannel fileChannel = FileChannel.open(file.toPath(), StandardOpenOption.READ)) { + ByteBuffer buffer = ByteBuffer.allocate(8192); // 8KB缓冲区 + int bytesRead; + while ((bytesRead = fileChannel.read(buffer)) != -1) { + buffer.flip(); // 切换到读模式 + out.write(buffer.array(), 0, bytesRead); + buffer.clear(); // 清空缓冲区 + } + } + + //ZipOutputStream.write可以使用NIO操作吗,以提高效率 + + System.out.println("压缩完成:" + (System.currentTimeMillis() - l)); + } + + + } + + public void collect(File file, List list) { + if (file.isDirectory()) { + File[] files = file.listFiles(); + if (files != null && files.length > 0) { + for (File f : files) { + collect(f, list); + } + } + } else { + list.add(file); + } + } + + + // Calculate CRC-32 checksum of a file + private static long calcChecksum(File file) throws IOException { + try (FileInputStream fis = new FileInputStream(file); + CheckedInputStream cis = new CheckedInputStream(fis, new CRC32())) { + byte[] buffer = new byte[2048]; + while (cis.read(buffer) >= 0) { + // Reading the file to calculate CRC-32 checksum + } + return cis.getChecksum().getValue(); + } + } + + private static long calcChecksum2(File file) throws IOException { + try (FileChannel fileChannel = FileChannel.open(file.toPath(), StandardOpenOption.READ)) { + ByteBuffer buffer = ByteBuffer.allocate(1024); + CRC32 crc32 = new CRC32(); + while (fileChannel.read(buffer) != -1) { + buffer.flip(); + crc32.update(buffer); + buffer.clear(); + } + return crc32.getValue(); + } + } } diff --git a/agile-portal/agile-portal-api/pom.xml b/agile-portal/agile-portal-api/pom.xml index c88e3012..1e36bde3 100644 --- a/agile-portal/agile-portal-api/pom.xml +++ b/agile-portal/agile-portal-api/pom.xml @@ -3,7 +3,7 @@ agile-portal com.jiuyv.sptcc.agile - 0.2.6-SNAPSHOT + 0.2.8-SNAPSHOT 4.0.0 diff --git a/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/common/utils/IpUtils.java b/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/common/utils/IpUtils.java index ab596ace..dc564d00 100644 --- a/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/common/utils/IpUtils.java +++ b/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/common/utils/IpUtils.java @@ -21,8 +21,8 @@ public class IpUtils { // 未知地址 public static final String UNKNOWN = "XX XX"; private static final Logger LOGGER = LoggerFactory.getLogger(IpUtils.class); - private static final RestTemplate restTemplate = new RestTemplate(); - private static final ObjectMapper objectMapper = new ObjectMapper(); + private static RestTemplate restTemplate = new RestTemplate(); + private static ObjectMapper objectMapper = new ObjectMapper(); public static String getRealAddressByIP(String ip, boolean isAddressEnabled) { // 内网不查询 diff --git a/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/dto/PortalUserDTO.java b/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/dto/PortalUserDTO.java index 4bd815e3..be117d82 100644 --- a/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/dto/PortalUserDTO.java +++ b/agile-portal/agile-portal-api/src/main/java/com/jiuyv/sptccc/agile/dto/PortalUserDTO.java @@ -127,6 +127,11 @@ public class PortalUserDTO implements Serializable { */ private String firstFlag; + /** + * 密码过期剩余天数 + */ + private Integer pwdRemainderDate; + /** * Get用户id */ @@ -456,4 +461,12 @@ public class PortalUserDTO implements Serializable { public void setFirstFlag(String firstFlag) { this.firstFlag = firstFlag; } + + public Integer getPwdRemainderDate() { + return pwdRemainderDate; + } + + public void setPwdRemainderDate(Integer pwdRemainderDate) { + this.pwdRemainderDate = pwdRemainderDate; + } } diff --git a/agile-portal/agile-portal-api/src/test/java/com/jiuyv/sptccc/agile/common/utils/IpUtilsTest.java b/agile-portal/agile-portal-api/src/test/java/com/jiuyv/sptccc/agile/common/utils/IpUtilsTest.java index 752abaa5..6de798a0 100644 --- a/agile-portal/agile-portal-api/src/test/java/com/jiuyv/sptccc/agile/common/utils/IpUtilsTest.java +++ b/agile-portal/agile-portal-api/src/test/java/com/jiuyv/sptccc/agile/common/utils/IpUtilsTest.java @@ -12,7 +12,6 @@ import org.springframework.web.client.RestTemplate; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Field; -import java.lang.reflect.Modifier; import static com.jiuyv.sptccc.agile.common.utils.IpUtils.UNKNOWN; import static org.junit.jupiter.api.Assertions.*; @@ -40,17 +39,13 @@ class IpUtilsTest { @BeforeEach void setUp() throws ReflectiveOperationException { - Field modifier = Field.class.getDeclaredField("modifiers"); - modifier.setAccessible(true); Field restTemplateField = IpUtils.class.getDeclaredField("restTemplate"); restTemplateField.setAccessible(true); - modifier.setInt(restTemplateField, restTemplateField.getModifiers() & ~Modifier.FINAL); restTemplateField.set(null, restTemplate); Field objectMapperField = IpUtils.class.getDeclaredField("objectMapper"); objectMapperField.setAccessible(true); - modifier.setInt(objectMapperField, objectMapperField.getModifiers() & ~Modifier.FINAL); objectMapperField.set(null, objectMapper); } diff --git a/agile-portal/agile-portal-gateway/pom.xml b/agile-portal/agile-portal-gateway/pom.xml index b7e9785b..651413c3 100644 --- a/agile-portal/agile-portal-gateway/pom.xml +++ b/agile-portal/agile-portal-gateway/pom.xml @@ -3,7 +3,7 @@ com.jiuyv.sptcc.agile agile-portal - 0.2.6-SNAPSHOT + 0.2.8-SNAPSHOT agile-portal-gateway diff --git a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginService.java b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginService.java index f35f9d48..42660738 100644 --- a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginService.java +++ b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginService.java @@ -147,7 +147,7 @@ public class SysLoginService { captcha = StringUtil.randomNumber(6); localCache.setValueOfCacheName(CacheNames.CACHE_1MIN, phone, captcha); localCache.setValueOfCacheName(CacheNames.CACHE_5MIN, phone, captcha); - LOGGER.info("手机{}验证码:{}", phone, captcha); + LOGGER.info("手机{}验证码:{}", StringUtil.strHide(phone), captcha); if (consoleProperties.isCaptchaTest()) { return captcha; @@ -302,7 +302,11 @@ public class SysLoginService { if (!passwordEncoder.matches(oldPassword, user.getPassword())) { throw new ServiceException("原密码错误"); } - String encodePassword = passwordEncoder.encode(secretService.decodePassword(userPasswordDTO.getPassword())); + String password = secretService.decodePassword(userPasswordDTO.getPassword()); + if (password.equals(oldPassword)) { + throw new ServiceException("新密码不能与原密码相同"); + } + String encodePassword = passwordEncoder.encode(password); userPasswordDTO.setPassword(encodePassword); userPasswordDTO.setUserId(user.getUserId()); R r = userService.resetUserPwd(userPasswordDTO); diff --git a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java index 89aacc3e..8ab48249 100644 --- a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java +++ b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java @@ -59,7 +59,8 @@ public class UserDetailsServiceImpl implements UserDetailsService { // 第一次登录,只有基本权限,修改密码后获取所有权限 List authorities = new ArrayList<>(); authorities.add(new SimpleGrantedAuthority(FrontConstant.AUTHORITY_BASE)); - if (userDTO.getFirstFlag() != null) { + Integer pwdUpdateTime = userDTO.getPwdRemainderDate(); + if (userDTO.getFirstFlag() != null && (pwdUpdateTime == null || pwdUpdateTime >= 0)) { authorities.add(new SimpleGrantedAuthority(FrontConstant.AUTHORITY_ALL)); } return new LoginUser(user.getUserId(), user.getDeptId(), user, authorities); diff --git a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/controller/ContentController.java b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/controller/ContentController.java index 7998a9b7..83d192ad 100644 --- a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/controller/ContentController.java +++ b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/controller/ContentController.java @@ -120,6 +120,7 @@ public class ContentController extends BaseController { Response feignResponse = portalContentFeign.sdkDownload(); response.addHeader("Content-Length", getResponseHeader(feignResponse,"content-length")); response.addHeader("Content-Disposition", "attachment;filename=sdk.rar"); + response.addHeader("Content-Type", "text/html; charset=utf-8"); IOUtils.copy(feignResponse.body().asInputStream(), response.getOutputStream()); } @@ -134,6 +135,7 @@ public class ContentController extends BaseController { response.addHeader("Content-Length", getResponseHeader(feignResponse,"content-length")); String fileName = URLEncoder.encode("(用户版)实验室使用说明.pdf", "UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + fileName); + response.addHeader("Content-Type", "text/html; charset=utf-8"); IOUtils.copy(feignResponse.body().asInputStream(), response.getOutputStream()); } diff --git a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java index 40e2e2e8..57ab2b46 100644 --- a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java +++ b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java @@ -175,6 +175,10 @@ public class TblPortalUser implements Serializable { */ private String firstFlag; + /** + * 密码过期剩余天数 + */ + private Integer pwdRemainderDate; /** * 请求参数 @@ -623,6 +627,14 @@ public class TblPortalUser implements Serializable { this.firstFlag = firstFlag; } + public Integer getPwdRemainderDate() { + return pwdRemainderDate; + } + + public void setPwdRemainderDate(Integer pwdRemainderDate) { + this.pwdRemainderDate = pwdRemainderDate; + } + public Map getParams() { if (params == null) { params = new HashMap<>(); diff --git a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/dto/UserInfoDTO.java b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/dto/UserInfoDTO.java index c2eee835..01d1c378 100644 --- a/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/dto/UserInfoDTO.java +++ b/agile-portal/agile-portal-gateway/src/main/java/com/jiuyv/sptccc/agile/portal/dto/UserInfoDTO.java @@ -91,6 +91,11 @@ public class UserInfoDTO implements Serializable { */ private String firstFlag; + /** + * 密码过期剩余天数 + */ + private Integer pwdRemainderDate; + public Long getUserId() { return userId; } @@ -226,4 +231,12 @@ public class UserInfoDTO implements Serializable { public void setFirstFlag(String firstFlag) { this.firstFlag = firstFlag; } + + public Integer getPwdRemainderDate() { + return pwdRemainderDate; + } + + public void setPwdRemainderDate(Integer pwdRemainderDate) { + this.pwdRemainderDate = pwdRemainderDate; + } } diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/index.html b/agile-portal/agile-portal-gateway/src/main/resources/view/index.html index caae753c..0ececb34 100644 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/index.html +++ b/agile-portal/agile-portal-gateway/src/main/resources/view/index.html @@ -1 +1 @@ -久事大数据开放平台We're sorry but 久事大数据开放平台 doesn't work properly without JavaScript enabled. Please enable it to continue. \ No newline at end of file +久事大数据开放平台We're sorry but 久事大数据开放平台 doesn't work properly without JavaScript enabled. Please enable it to continue. \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/146.ed8bf707.css b/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/146.ed8bf707.css deleted file mode 100644 index cfa2d884..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/146.ed8bf707.css +++ /dev/null @@ -1 +0,0 @@ -.personal-info .el-form-item__label{text-align:left!important;font-size:16px!important}.personal-info .el-form-item__content{font-size:16px!important}.personal-info .el-form-item{margin-bottom:0}.personal-info[data-v-5e8b44ac]{padding-top:20px;font-size:16px}.personal-info .el-icon-success[data-v-5e8b44ac]{margin-right:6px;color:#6cbd7f}.personal-info .change-pwd-link[data-v-5e8b44ac]{margin-left:15px;color:#3165db} \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/229.6db25fd6.css b/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/229.6db25fd6.css deleted file mode 100644 index b7d84bed..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/229.6db25fd6.css +++ /dev/null @@ -1 +0,0 @@ -.lab-apply .top-filter[data-v-de1afecc]{margin-top:24px}.lab-apply .tale-list[data-v-de1afecc] .el-table th.el-table__cell{color:#333;background:#fafafa;padding:5px 0;font-size:16px}.lab-apply .tale-list[data-v-de1afecc] .el-table .cell.el-tooltip{font-size:16px}.lab-apply .tale-list .review-status[data-v-de1afecc]{display:flex;align-items:center}.lab-apply .tale-list .review-status .icon-circle[data-v-de1afecc]{width:6px;height:6px;border-radius:3px;margin-right:8px;background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.grey[data-v-de1afecc]{background:#d9d9d9}.lab-apply .tale-list .review-status .icon-circle.orange[data-v-de1afecc]{background:#ffd859}.lab-apply .tale-list .review-status .icon-circle.green[data-v-de1afecc]{background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.red[data-v-de1afecc]{background:#ff4d4f}.lab-apply[data-v-de1afecc] .el-pagination{text-align:right} \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/42.ebac482c.css b/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/42.ebac482c.css deleted file mode 100644 index 6016f349..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/42.ebac482c.css +++ /dev/null @@ -1 +0,0 @@ -.find-password[data-v-2725d968]{width:100%;min-height:500px;background:#fff}.find-password[data-v-2725d968] .el-step__title{text-align:center}.find-password .title[data-v-2725d968]{padding:40px 20px;text-align:center;font-size:26px;line-height:40px;font-weight:400}.find-password .el-form[data-v-2725d968]{width:382px;margin:60px auto 20px auto}.find-password .procees-contaner[data-v-2725d968]{width:700px;padding:60px 200px;margin:0 auto 50px auto;background:#fff}.divClass[data-v-2725d968]{width:100%;height:10px;margin:5px 0}.divClass span[data-v-2725d968]{float:left;background:#ccc;height:10px;width:31%;margin:0 1%}.divClass .weak[data-v-2725d968]{background-color:#f56c6c}.divClass .medium[data-v-2725d968]{background-color:#e6a23c}.divClass .strong[data-v-2725d968]{background-color:#67c23a} \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/53.44b85bba.css b/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/53.44b85bba.css deleted file mode 100644 index 5082a337..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/53.44b85bba.css +++ /dev/null @@ -1 +0,0 @@ -.inner-container[data-v-351a2db2]{margin:20px auto;background:#fff}.routerList[data-v-351a2db2]{background:#ecf5ff;height:100vh;border-radius:10px 10px 0 0}.routerList h2[data-v-351a2db2]{text-align:center;font-size:24px;background:#e6171e;color:#fff;line-height:45px;border-radius:10px 10px 0 0}.routerList ul[data-v-351a2db2]{line-height:45px;padding:20px 0}.routerList ul li[data-v-351a2db2]{font-size:18px;font-weight:600;padding:0 20px}.routerList ul li.on[data-v-351a2db2]{background:#fff;border-left:5px solid #e6171e}.routerList ul li.on a[data-v-351a2db2]{color:#e6171e}.api-list-container[data-v-351a2db2]{background:#f9f9f9}.api-list-container .guide-pic[data-v-351a2db2]{background:url(../../static/img/data-service.82b45c45.jpg) no-repeat top;background-size:100%}.api-list-container .api-list ul[data-v-351a2db2]{width:100%;align-items:flex-start;flex-wrap:wrap;justify-content:space-between;padding-top:30px;overflow:hidden}.api-list-container .api-list ul li[data-v-351a2db2]{padding:15px;margin-bottom:50px;box-sizing:border-box;width:32%;height:296px;background:#fff;box-shadow:0 0 6px 0 rgba(217,225,238,.47);border-radius:2px;transition-property:box-shadow transform;transition-duration:.25s,1s;float:left;margin-left:1%;cursor:pointer;border:2px solid #409eff}.api-list-container .api-list ul li[data-v-351a2db2]:hover{transform:translateY(-10px);box-shadow:0 0 16px 0 rgba(217,225,238,.47);background:linear-gradient(180deg,#2980b9,#87ceeb);border:2px solid #adb5bd}.api-list-container .api-list ul li:hover .aip-intro[data-v-351a2db2],.api-list-container .api-list ul li:hover .api-info .others b[data-v-351a2db2],.api-list-container .api-list ul li:hover .api-info[data-v-351a2db2],.api-list-container .api-list ul li:hover .api-name[data-v-351a2db2]{color:#fff}.api-list-container .api-list ul li .api-name[data-v-351a2db2]{font-size:18px;color:#181818;font-weight:700;line-height:18px;height:18px;margin-bottom:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.api-list-container .api-list ul li .aip-intro[data-v-351a2db2]{height:120px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;color:#666;line-height:24px;margin-bottom:20px;font-size:14px}.api-list-container .api-list ul li .api-info[data-v-351a2db2]{padding:20px 0;color:#ababab;font-size:14px;border-top:1px solid #d8d8d8}.api-list-container .api-list ul li .api-info .others[data-v-351a2db2]{display:flex;justify-content:space-between}.api-list-container .api-list ul li .api-info .others b[data-v-351a2db2]{font-weight:400;font-size:12px;color:#5274ca;line-height:1;padding:4px 5px;border-radius:2px;border:1px solid #5274ca}.api-list-container .api-list ul li .api-info .data-from[data-v-351a2db2]{padding-bottom:15px}.api-list-container .api-list .pagination-container[data-v-351a2db2]{background:transparent}.api-list-container .api-list[data-v-351a2db2] .el-pagination{text-align:center} \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/777.fe9e1eb2.css b/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/777.fe9e1eb2.css deleted file mode 100644 index e9fb057d..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/css/777.fe9e1eb2.css +++ /dev/null @@ -1 +0,0 @@ -.el-table--scrollable-x .el-table__body-wrapper{height:355px}.lab-apply .top-filter[data-v-b3b3944e]{margin-top:24px}.lab-apply .tale-list[data-v-b3b3944e] .el-table th.el-table__cell{color:#333;background:#fafafa;padding:5px 0;font-size:16px}.lab-apply .tale-list[data-v-b3b3944e] .el-table .cell.el-tooltip{font-size:16px}.lab-apply .tale-list .review-status[data-v-b3b3944e]{display:flex;align-items:center}.lab-apply .tale-list .review-status .icon-circle[data-v-b3b3944e]{width:6px;height:6px;border-radius:3px;margin-right:8px;background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.grey[data-v-b3b3944e]{background:#d9d9d9}.lab-apply .tale-list .review-status .icon-circle.orange[data-v-b3b3944e]{background:#ffd859}.lab-apply .tale-list .review-status .icon-circle.green[data-v-b3b3944e]{background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.red[data-v-b3b3944e]{background:#ff4d4f}.lab-apply[data-v-b3b3944e] .el-pagination,[data-v-b3b3944e] .el-pagination{text-align:right}[data-v-b3b3944e] .el-dialog__body{padding:10px}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{border-radius:7px;background-color:rgba(0,0,0,.25)}::-webkit-scrollbar-track{background-color:#f6f6f6}::-webkit-scrollbar-thumb,::-webkit-scrollbar-track{border:0} \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/146.36cf8861.js b/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/146.36cf8861.js deleted file mode 100644 index 1cb5e8da..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/146.36cf8861.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[146],{53146:(t,e,s)=>{s.r(e),s.d(e,{default:()=>c});var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"personal-info"},[e("el-form",{ref:"form1",attrs:{model:t.form,"label-width":"140px",align:"left"}},[e("el-row",[e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{align:"left",label:"用户名"}},[e("span",[t._v(t._s(t.form.userName))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"手机号"}},[e("span",[t._v(t._s(t.form.phonenumber))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"状态"}},["0"==t.form.status?e("span",{staticStyle:{color:"#6CBD7F"}},[t._v("正常")]):e("span",{staticStyle:{color:"red"}},[t._v("停用")])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"企业名"}},[e("span",[t._v(t._s(t.form.enterpriseName))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"社会统一信用代码"}},[e("span",[t._v(t._s(t.form.socialCreditCode))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"行业类型"}},[e("span",[t._v(t._s(t.form.industryCategory))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"地址"}},[e("span",[t._v(t._s(t.form.enterpriseAddress))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"登录密码"}},[e("i",{staticClass:"icon el-icon-success"}),e("span",[t._v("已设置")]),e("router-link",{staticClass:"change-pwd-link",attrs:{to:"/resetpwd"}},[t._v("更改密码")])],1)],1)],1)],1)],1)},r=[],l=s(12223);const o={name:"UserInfo",data:function(){return{form:{}}},created:function(){this.getUserInfo()},methods:{getUserInfo:function(){var t=this;(0,l.C5)().then((function(e){t.form=e.data,"0"==t.form.firstFlag&&t.$router.push("/resetpwd")["catch"]((function(){}))}))}}},n=o;var f=s(1001),i=(0,f.Z)(n,a,r,!1,null,"5e8b44ac",null);const c=i.exports}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/229.c90319c4.js b/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/229.c90319c4.js deleted file mode 100644 index bf7f6ed1..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/229.c90319c4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[229],{87229:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});var l=function(){var e=this,t=e._self._c;return t("div",{staticClass:"lab-apply"},[t("div",{staticClass:"btn-group",staticStyle:{"text-align":"right","margin-bottom":"10px"}},[t("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.handleImport}},[e._v("新增")])],1),t("div",{staticClass:"tale-list"},[t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{"min-height":"355px","max-height":"500px"},attrs:{stripe:"",data:e.myLablyList,"max-height":"500px"}},[t("div",{staticStyle:{"text-align":"left"},attrs:{slot:"empty"},slot:"empty"},[t("el-empty",{attrs:{description:"暂无数据"}})],1),t("el-table-column",{attrs:{align:"center",label:"文件名称",prop:"fileName","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"上传时间",prop:"createTime","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"文件大小",prop:"fileSize","show-overflow-tooltip":!0},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s(e.convertFileSize(a.row.fileSize)))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"文件说明",prop:"remarks","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"文件类型",prop:"fileType","show-overflow-tooltip":!0},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s("data"==a.row.fileType?"数据文件":"python组件"))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function(a){return["01"!=a.row.reviewStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.handleDelete(a.row)}}},[e._v("删除")]):e._e()]}}])})],1)],1),t("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryParams.pageNum,limit:e.queryParams.pageSize},on:{"update:page":function(t){return e.$set(e.queryParams,"pageNum",t)},"update:limit":function(t){return e.$set(e.queryParams,"pageSize",t)},pagination:e.getList}}),t("el-dialog",{attrs:{title:e.upload.title,visible:e.upload.open,width:"500px","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){return e.$set(e.upload,"open",t)}}},[t("el-form",{ref:"uploadform",attrs:{model:e.upload,rules:e.uploadrules,"label-width":"80px"}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"组件类型",prop:"upData.fileType"}},[t("el-select",{attrs:{placeholder:"请选择组件类型"},on:{change:e.fileTypefn},model:{value:e.upload.upData.fileType,callback:function(t){e.$set(e.upload.upData,"fileType",t)},expression:"upload.upData.fileType"}},e._l(e.fileTypeList,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1)],1),t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"内容说明",prop:"upData.remarks"}},[t("el-input",{attrs:{type:"textarea",placeholder:"请输入内容说明"},model:{value:e.upload.upData.remarks,callback:function(t){e.$set(e.upload.upData,"remarks",t)},expression:"upload.upData.remarks"}})],1)],1)],1)],1),t("el-upload",{ref:"upload",staticStyle:{"text-align":"center"},attrs:{limit:1,accept:e.upload.accept,headers:e.upload.headers,action:"",disabled:e.upload.isUploading,"on-change":e.beforeUpload,"on-success":e.handleFileSuccess,"auto-upload":!1,"http-request":e.uploadSectionFile,"on-remove":e.removeFile,drag:""}},[t("i",{staticClass:"el-icon-upload"}),t("div",{staticClass:"el-upload__text"},[e._v("将文件拖到此处,或"),t("em",[e._v("点击上传")])])]),t("div",{staticClass:"dialog-footer",staticStyle:{"text-align":"right"},attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:e.submitFileForm}},[e._v("确 定")]),t("el-button",{on:{click:function(t){e.upload.open=!1}}},[e._v("取 消")])],1)],1)],1)},o=[],r=(a(9653),a(56977),a(68309),a(94986),a(82772),a(32900));const i={name:"MyData",data:function(){return{loading:!0,total:0,myLablyList:[],fileTypeList:[{value:"python",label:"python组件"},{value:"data",label:"数据文件"}],upload:{open:!1,title:"",isUploading:!1,updateSupport:0,accept:".zip,.tar,.gz,.bz2",upData:{fileType:"python",fileSourceType:"dockerlib"}},queryParams:{pageNum:1,pageSize:10},formdata:null,uploadrules:{upData:{fileType:[{required:!0,message:"不能为空",trigger:"blur"}],remarks:[{required:!0,message:"不能为空",trigger:"blur"}]}}}},created:function(){this.getList()},methods:{getList:function(){var e=this;(0,r.Hc)(this.queryParams).then((function(t){e.myLablyList=t.rows,e.total=t.total,e.loading=!1}))},handleImport:function(){this.upload.title="用户导入",this.upload.open=!0},fileTypefn:function(e){"python"==e?this.upload.accept=".zip,.tar,.gz,.bz2":"data"==e&&(this.upload.accept=".zip,.tar,.gz,.csv,.txt,.xls,.xlsx")},convertFileSize:function(e){if(void 0!=e){var t=Number(e)/1024,a=t/1024,l=a/1024;return l>=1?l.toFixed(2)+" GB":a>=1?a.toFixed(2)+" MB":t>=1?t.toFixed(2)+" KB":Number(e).toFixed(2)+" B"}},removeFile:function(e,t){this.$refs.upload.clearFiles()},beforeUpload:function(e){var t=104857600;if(e&&e.size>t)return alert("文件大小超过限制,请选择小于100MB的文件。"),void this.$refs.upload.clearFiles();var a,l=e.name.substring(e.name.lastIndexOf(".")+1);return"python"==this.upload.upData.fileType?a=["zip","tar","gz","bz2"]:"data"==this.upload.upData.fileType&&(a=["zip","tar","gz","csv","txt","xls","xlsx"]),-1===a.indexOf(l)?(this.$modal.msgWarning("上传文件只能是"+this.upload.accept+"格式"),!1):void 0},uploadSectionFile:function(e){var t=e.file,a=new FormData;a.append("file",t),a.append("fileType",this.upload.upData.fileType),a.append("fileSourceType",this.upload.upData.fileSourceType),a.append("remarks",this.upload.upData.remarks),this.formdata=a,(0,r.cT)(this.formdata).then((function(t){e.onSuccess(t)}))["catch"]((function(e){e.err}))},handleFileSuccess:function(e,t,a){200==e.code&&(this.upload.open=!1,this.$refs.upload.clearFiles(),this.getList())},submitFileForm:function(){var e=this;this.$refs["uploadform"].validate((function(t){t&&e.$refs.upload.submit()}))},handleDelete:function(e){var t=this,a=e.fileId;this.$confirm("确认要删除这条信息吗?").then((function(){return(0,r._I)(a)})).then((function(){t.$message({type:"success",message:"删除成功!"}),t.getList()}))["catch"]((function(){}))}}},n=i;var s=a(1001),u=(0,s.Z)(n,l,o,!1,null,"de1afecc",null);const p=u.exports},32900:(e,t,a)=>{a.d(t,{Cp:()=>Z,F7:()=>k,Hc:()=>v,Ht:()=>s,JE:()=>g,W1:()=>m,WG:()=>i,_I:()=>w,aX:()=>o,bL:()=>_,c0:()=>L,cT:()=>x,d5:()=>r,e_:()=>h,en:()=>u,fR:()=>n,in:()=>S,jr:()=>b,oK:()=>f,qS:()=>d,rK:()=>y,uN:()=>c,ur:()=>p});var l=a(73821);function o(e){return(0,l.Z)({url:"/myApply/laboratoryList",method:"get",params:e})}function r(e){return(0,l.Z)({url:"/myApply/laboratoryDetail?reviewId="+e,method:"get"})}function i(e){return(0,l.Z)({url:"/myApply/exportList",method:"get",params:e})}function n(e){return(0,l.Z)({url:"/myApply/download",method:"get",params:e})}function s(e){return(0,l.Z)({url:"/myLab/list",method:"get",params:e})}function u(e){return(0,l.Z)({url:"/myLab/info?applyId="+e,method:"get"})}function p(e){return(0,l.Z)({url:"/myLab/restart",method:"post",data:e})}function d(e){return(0,l.Z)({url:"/myLab/dataInjection",method:"post",data:e})}function c(e){return(0,l.Z)({url:"/myLab/fileList?applyId="+e,method:"get"})}function m(e){return(0,l.Z)({url:"/myLab/applyDown",method:"post",data:e})}function f(e){return(0,l.Z)({url:"/api/userApiList",method:"get",params:e})}function h(e){return(0,l.Z)({url:"/api/userApiStatisticsList",method:"get",params:e})}function y(e){return(0,l.Z)({url:"/myMessage/page",method:"get",params:e})}function g(e){return(0,l.Z)({url:"/myMessage/detail?msgId="+e,method:"post"})}function b(e){return(0,l.Z)({url:"myMessage/markRead",method:"post",data:e})}function v(e){return(0,l.Z)({url:"/myResources/list",method:"get",params:e})}function x(e){return(0,l.Z)({url:"/myResources/uploadFile",method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})}function w(e){return(0,l.Z)({url:"/myResources/delete?fileId="+e,method:"delete"})}function S(e){return(0,l.Z)({url:"/rePwd/getPhoneByUser?username="+e,method:"get"})}function _(){return(0,l.Z)({url:"/rePwd/sendPhoneCode",method:"get"})}function k(e){return(0,l.Z)({url:"/rePwd/verifyPhoneCode?phoneCode="+e,method:"get"})}function L(e){return(0,l.Z)({url:"/rePwd/reset",method:"post",data:e})}function Z(e){return(0,l.Z)({url:"/changePassword",method:"post",data:e})}}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/42.ea3940b3.js b/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/42.ea3940b3.js deleted file mode 100644 index 07a3253b..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/42.ea3940b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[42],{59042:(t,e,s)=>{s.r(e),s.d(e,{default:()=>c});var r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"find-password container"},[e("h3",{staticClass:"title"},[t._v("修改密码"),"0"==t.firstFlag?e("span",{staticStyle:{"text-align":"center",padding:"10px",color:"red"}},[t._v("(初次登陆需修改初始密码)")]):t._e()]),e("el-card",{staticClass:"procees-contaner"},[e("el-steps",{attrs:{active:t.processActive,"align-center":""}},[e("el-step",{attrs:{title:"设置新密码",description:""}}),e("el-step",{attrs:{title:"完成",description:""}})],1),1==t.processActive?e("el-form",{ref:"form",attrs:{rules:t.rules,model:t.form,"label-width":"100px"}},[e("el-form-item",{attrs:{label:"原密码",prop:"oldPassword"}},[e("el-input",{attrs:{type:"password"},model:{value:t.form.oldPassword,callback:function(e){t.$set(t.form,"oldPassword",e)},expression:"form.oldPassword"}})],1),e("el-form-item",{attrs:{label:"新密码",prop:"password"}},[e("el-input",{attrs:{type:t.flagType,"auto-complete":"off",placeholder:""},on:{input:t.strengthColor},model:{value:t.form.password,callback:function(e){t.$set(t.form,"password",e)},expression:"form.password"}},[e("i",{staticClass:"el-input__icon el-icon-view",staticStyle:{cursor:"pointer"},attrs:{slot:"suffix"},on:{click:function(e){return t.getFlageye()}},slot:"suffix"})]),e("div",{staticClass:"divClass"},[e("span",{class:"1"==t.passwords?"weak":"2"==t.passwords?"medium":"3"==t.passwords?"strong":""}),e("span",{class:"2"==t.passwords?"medium":"3"==t.passwords?"strong":""}),e("span",{class:"3"==t.passwords?"strong":""})])],1),e("el-form-item",{attrs:{label:"确认密码",prop:"passwords"}},[e("el-input",{attrs:{type:"password"},model:{value:t.form.passwords,callback:function(e){t.$set(t.form,"passwords",e)},expression:"form.passwords"}})],1),e("el-form-item",{attrs:{label:""}},[e("el-button",{attrs:{type:"primary"},on:{click:t.handleAuthon}},[t._v(" 提交")])],1)],1):t._e(),2==t.processActive?e("el-form",{ref:"form",attrs:{model:t.form,"label-width":"0px"}},[e("el-form-item",{attrs:{label:""}},[e("div",{staticClass:"success-tips",staticStyle:{color:"#1ae51ad1","font-size":"24px","font-weight":"600","text-align":"center"}},[e("i",{staticClass:"icon el-icon-success"}),t._v(" 修改成功")]),e("div",{staticClass:"go-back",staticStyle:{"text-align":"center"}},[e("span",{staticStyle:{color:"red","font-size":"18px","font-weight":"bold"}},[t._v(t._s(t.remainingTime))]),t._v("秒后 "),e("span",[t._v("自动返回登录页")])]),e("div",{staticClass:"btn-back",staticStyle:{"text-align":"center"}},[e("el-button",{attrs:{type:"primary"},on:{click:t.logout}},[t._v("重新登录")])],1)])],1):t._e()],1)],1)},o=[],a=(s(47941),s(83710),s(32564),s(32900)),n=s(12223),i=s(41051);const l={name:"ResetPwd",data:function(){return{isShowMenu:!1,passwords:"1",flagType:"password",processActive:1,form:{oldPassword:"",password:"",passwords:""},firstFlag:"",remainingTime:5,keyiv:"",countDown:10,rules:{oldPassword:[{required:!0,message:"原密码不能为空",trigger:"blur"}],password:[{required:!0,message:"密码不能为空",trigger:"blur"},{pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/,message:"密码须包含数字、大小写字母且长度在8-16之间",trigger:"blur"}],passwords:[{required:!0,message:"密码不能为空",trigger:"blur"},{pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/,message:"密码须包含数字、大小写字母且长度在8-16之间",trigger:"blur"}]}}},created:function(){var t=localStorage.getItem("myData");if(t){var e=JSON.parse(t);this.firstFlag=e.firstFlag}this.getKeyiv()},methods:{getFlageye:function(){this.flagType="password"==this.flagType?"text":"password"},strengthColor:function(){this.form.password.length<=6?this.passwords="1":this.form.password.length<=10?this.passwords="2":this.passwords="3"},getKeyiv:function(){var t=this;(0,n.Z6)().then((function(e){t.keyiv=e.data}))},logout:function(){var t=this;this.$store.dispatch("LogOut").then((function(){t.$router.push("/login")}))},handleAuthon:function(){var t=this;this.form.password==this.form.passwords?this.$refs["form"].validate((function(e){e&&(t.form.passwords="",t.form.oldPassword=(0,i.H)(t.keyiv,t.form.oldPassword+","+(new Date).getTime()),t.form.password=(0,i.H)(t.keyiv,t.form.password+","+(new Date).getTime()),(0,a.Cp)(t.form).then((function(e){t.processActive++,t.countdownInterval=setInterval((function(){console.log("倒计时结束"),t.remainingTime>0?t.remainingTime--:clearInterval(t.countdownInterval),t.$store.dispatch("LogOut").then((function(){t.$router.push("/login")}))}),1e3)})))})):this.$message({type:"warning",message:"新密码与确认密码不一致!"})}},beforeDestroy:function(){clearTimeout(this.countdownInterval)}},d=l;var u=s(1001),p=(0,u.Z)(d,r,o,!1,null,"2725d968",null);const c=p.exports},32900:(t,e,s)=>{s.d(e,{Cp:()=>P,F7:()=>k,Hc:()=>v,Ht:()=>l,JE:()=>w,W1:()=>m,WG:()=>n,_I:()=>Z,aX:()=>o,bL:()=>C,c0:()=>x,cT:()=>b,d5:()=>a,e_:()=>g,en:()=>d,fR:()=>i,in:()=>_,jr:()=>y,oK:()=>f,qS:()=>p,rK:()=>h,uN:()=>c,ur:()=>u});var r=s(73821);function o(t){return(0,r.Z)({url:"/myApply/laboratoryList",method:"get",params:t})}function a(t){return(0,r.Z)({url:"/myApply/laboratoryDetail?reviewId="+t,method:"get"})}function n(t){return(0,r.Z)({url:"/myApply/exportList",method:"get",params:t})}function i(t){return(0,r.Z)({url:"/myApply/download",method:"get",params:t})}function l(t){return(0,r.Z)({url:"/myLab/list",method:"get",params:t})}function d(t){return(0,r.Z)({url:"/myLab/info?applyId="+t,method:"get"})}function u(t){return(0,r.Z)({url:"/myLab/restart",method:"post",data:t})}function p(t){return(0,r.Z)({url:"/myLab/dataInjection",method:"post",data:t})}function c(t){return(0,r.Z)({url:"/myLab/fileList?applyId="+t,method:"get"})}function m(t){return(0,r.Z)({url:"/myLab/applyDown",method:"post",data:t})}function f(t){return(0,r.Z)({url:"/api/userApiList",method:"get",params:t})}function g(t){return(0,r.Z)({url:"/api/userApiStatisticsList",method:"get",params:t})}function h(t){return(0,r.Z)({url:"/myMessage/page",method:"get",params:t})}function w(t){return(0,r.Z)({url:"/myMessage/detail?msgId="+t,method:"post"})}function y(t){return(0,r.Z)({url:"myMessage/markRead",method:"post",data:t})}function v(t){return(0,r.Z)({url:"/myResources/list",method:"get",params:t})}function b(t){return(0,r.Z)({url:"/myResources/uploadFile",method:"post",data:t,headers:{"Content-Type":"multipart/form-data"}})}function Z(t){return(0,r.Z)({url:"/myResources/delete?fileId="+t,method:"delete"})}function _(t){return(0,r.Z)({url:"/rePwd/getPhoneByUser?username="+t,method:"get"})}function C(){return(0,r.Z)({url:"/rePwd/sendPhoneCode",method:"get"})}function k(t){return(0,r.Z)({url:"/rePwd/verifyPhoneCode?phoneCode="+t,method:"get"})}function x(t){return(0,r.Z)({url:"/rePwd/reset",method:"post",data:t})}function P(t){return(0,r.Z)({url:"/changePassword",method:"post",data:t})}}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/53.561dd0de.js b/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/53.561dd0de.js deleted file mode 100644 index 666e3780..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/53.561dd0de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[53],{77053:(t,a,s)=>{s.r(a),s.d(a,{default:()=>u});var i=function(){var t=this,a=t._self._c;return a("div",{staticClass:"api-list-container container"},[t._m(0),a("div",{staticClass:"inner-container"},[a("el-row",{attrs:{gutter:20}},[a("el-col",{attrs:{span:4,xs:24}},[a("div",{staticClass:"routerList"},[a("h2",[t._v("数据服务")]),a("ul",[a("li",[a("router-link",{attrs:{to:"/service/introduce"}},[t._v("服务介绍")])],1),a("li",[a("router-link",{attrs:{to:"/service/guide"}},[t._v("服务指南")])],1),a("li",{staticClass:"on"},[a("router-link",{attrs:{to:"/service/api"}},[t._v("API列表")])],1)])])]),a("el-col",{attrs:{span:20,xs:24}},[a("div",{staticClass:"api-list",staticStyle:{overflow:"auto"}},[a("ul",{staticClass:"list"},t._l(t.apiList,(function(s){return a("li",{key:s.id},[a("div",{staticClass:"api-name"},[t._v(t._s(s.apiName))]),a("div",{staticClass:"aip-intro"},[t._v(" "+t._s(s.apiName)+" ")]),a("div",{staticClass:"api-info"},[a("div",{staticClass:"data-from"},[t._v("数据提供方:上海公共交通卡有限公司")]),a("div",{staticClass:"others"},[a("span",[t._v("更新时间:"+t._s(s.createTime))]),a("b",[t._v("有条件开放")])])])])})),0),a("pagination",{directives:[{name:"show",rawName:"v-show",value:t.total>0,expression:"total > 0"}],attrs:{total:t.total,page:t.queryParams.pageNum,limit:t.queryParams.pageSize},on:{"update:page":function(a){return t.$set(t.queryParams,"pageNum",a)},"update:limit":function(a){return t.$set(t.queryParams,"pageSize",a)},pagination:t.getList}})],1)])],1)],1)])},e=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"top-banner guide-pic"},[a("div",{staticClass:"slogan"},[a("h3",{staticClass:"title"},[t._v("API列表 ")]),a("div",{staticClass:"summary"},[t._v("旨在优化数据对外服务方式,提高开发效率,为用户提供规范化数据服务")])])])}],r=s(47121);const n={name:"ApiList",data:function(){return{total:0,apiList:[],queryParams:{pageNum:1,pageSize:9}}},computed:{},mounted:function(){this.backToTop(),this.$parent.$parent.$parent.$refs.topnav.topbg=""},created:function(){this.getList()},methods:{backToTop:function(){window.scrollTo({top:0,behavior:"smooth"})},getList:function(){var t=this;(0,r.ZF)(this.queryParams).then((function(a){t.apiList=a.rows,t.total=a.total}))}}},o=n;var l=s(1001),c=(0,l.Z)(o,i,e,!1,null,"351a2db2",null);const u=c.exports}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/777.62079ee2.js b/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/777.62079ee2.js deleted file mode 100644 index bbec8f6e..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/777.62079ee2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[777],{1777:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});a(82772),a(73210);var l=function(){var e=this,t=e._self._c;return t("div",{staticClass:"lab-apply"},[t("div",{staticClass:"top-filter"},[t("el-form",{ref:"queryForm",attrs:{model:e.queryParams,size:"small","label-width":"82px",inline:!0}},[t("el-form-item",{attrs:{label:"实验室名称",prop:"labTitle"}},[t("el-input",{attrs:{clearable:""},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleQuery.apply(null,arguments)}},model:{value:e.queryParams.labTitle,callback:function(t){e.$set(e.queryParams,"labTitle",t)},expression:"queryParams.labTitle"}})],1),t("el-form-item",{attrs:{label:"实验室编号",prop:"applyId"}},[t("el-input",{attrs:{clearable:""},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleQuery.apply(null,arguments)}},model:{value:e.queryParams.applyId,callback:function(t){e.$set(e.queryParams,"applyId",t)},expression:"queryParams.applyId"}})],1),t("el-form-item",{attrs:{label:"实验室状态",prop:"busStatus"}},[t("el-select",{attrs:{placeholder:"请选择",clearable:""},model:{value:e.queryParams.busStatus,callback:function(t){e.$set(e.queryParams,"busStatus","string"===typeof t?t.trim():t)},expression:"queryParams.busStatus"}},e._l(e.busStatusList,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),t("el-form-item",[t("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.handleQuery}},[e._v("搜索")]),t("el-button",{attrs:{size:"mini"},on:{click:e.resetQuery}},[e._v("重置")])],1)],1)],1),t("div",{staticClass:"tale-list"},[t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{"min-height":"355px","max-height":"500px"},attrs:{stripe:"",data:e.myLablyList,"max-height":"500px"}},[t("div",{staticStyle:{"text-align":"left"},attrs:{slot:"empty"},slot:"empty"},[t("el-empty",{attrs:{description:"暂无数据"}})],1),t("el-table-column",{attrs:{align:"center",label:"实验室编号",prop:"applyId","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"实验室名称",prop:"labTitle","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"生效时间",prop:"startDate","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s(e.parseTime(a.row.startDate,"{y}-{m}-{d}")))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"到期时间",prop:"endDate","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s(e.parseTime(a.row.endDate,"{y}-{m}-{d}")))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"硬件资源",prop:"dockerImageName","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(" "+e._s("CPU:"+a.row.cpuLimits+";内存:"+a.row.memoryLimits+"G;硬盘:"+a.row.discLimits+"G")+" ")])]}}])}),t("el-table-column",{attrs:{align:"center",label:"状态","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return["01"===a.row.busStatus?t("span",{staticClass:"review-status"},[t("i",{staticClass:"icon-circle green"}),e._v(e._s(e.busStatusspan(a.row.busStatus))+" ")]):t("span",{staticClass:"review-status"},[t("i",{staticClass:"icon-circle red"}),e._v(e._s(e.busStatusspan(a.row.busStatus))+" ")])]}}])}),t("el-table-column",{attrs:{align:"center",label:"操作",fixed:"right","class-name":"small-padding fixed-width",width:"230"},scopedSlots:e._u([{key:"default",fn:function(a){return["01"===a.row.busStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.myResourcesList(a.row)}}},[e._v("数据注入")]):e._e(),"01"===a.row.busStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.myfileList(a.row)}}},[e._v("申请下载")]):e._e(),t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.goLabDetail(a.row.applyId)}}},[e._v("详情")]),"01"===a.row.busStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.restart(a.row)}}},[e._v("重启")]):e._e()]}}])})],1)],1),t("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryParams.pageNum,limit:e.queryParams.pageSize},on:{"update:page":function(t){return e.$set(e.queryParams,"pageNum",t)},"update:limit":function(t){return e.$set(e.queryParams,"pageSize",t)},pagination:e.getList}}),t("el-dialog",{attrs:{title:"选中资源",visible:e.visible,width:"800px",top:"5vh","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){e.visible=t}}},[t("el-form",{ref:"queryForm",attrs:{model:e.queryParamss,size:"small",inline:!0}},[t("el-form-item",{attrs:{label:"文件类型",prop:"fileType"}},[t("el-select",{attrs:{placeholder:"请选择组件类型"},on:{change:e.myResourcesLists},model:{value:e.queryParamss.fileType,callback:function(t){e.$set(e.queryParamss,"fileType",t)},expression:"queryParamss.fileType"}},e._l(e.fileTypeList,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),t("el-form-item",[t("el-button",{attrs:{type:"primary",icon:"el-icon-search",size:"mini"},on:{click:e.handleQuerys}},[e._v("查询")])],1)],1),t("el-row",[t("el-table",{ref:"table",attrs:{data:e.resourcesList,height:"260px"},on:{"row-click":e.clickRow,"selection-change":e.handleSelectionChange}},[t("div",{staticStyle:{"text-align":"center"},attrs:{slot:"empty"},slot:"empty"},[e._v("暂无数据 ")]),t("el-table-column",{attrs:{align:"center",type:"selection",width:"55"}}),t("el-table-column",{attrs:{align:"center",label:"文件名称",prop:"fileName","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"上传时间",prop:"createTime","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"文件说明",prop:"remarks","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"文件类型",prop:"fileType","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s("data"==a.row.fileType?"数据文件":"python组件"))])]}}])})],1),t("pagination",{directives:[{name:"show",rawName:"v-show",value:e.totals>0,expression:"totals > 0"}],attrs:{total:e.totals,page:e.queryParamss.pageNum,limit:e.queryParamss.pageSize},on:{"update:page":function(t){return e.$set(e.queryParamss,"pageNum",t)},"update:limit":function(t){return e.$set(e.queryParamss,"pageSize",t)},pagination:e.myResourcesLists}})],1),t("el-form",{ref:"applyform",attrs:{"label-width":"80px",model:e.resourcesForm,rules:e.rules}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"申请说明",prop:"applyDesc"}},[t("el-input",{attrs:{maxlength:200,type:"textarea",placeholder:"请输入内容"},model:{value:e.resourcesForm.applyDesc,callback:function(t){e.$set(e.resourcesForm,"applyDesc",t)},expression:"resourcesForm.applyDesc"}})],1)],1)],1)],1),t("div",{staticClass:"dialog-footer",staticStyle:{"text-align":"right"},attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:e.handleSelectUser}},[e._v("确 定")]),t("el-button",{on:{click:function(t){e.visible=!1}}},[e._v("取 消")])],1)],1),t("el-dialog",{attrs:{title:"申请下载",visible:e.open,width:"800px",top:"5vh","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){e.open=t}}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-table",{ref:"filetable",attrs:{data:e.filetableList,height:"260px"}},[t("div",{staticStyle:{"text-align":"center"},attrs:{slot:"empty"},slot:"empty"},[e._v("暂无数据 ")]),t("el-table-column",{attrs:{align:"center",label:"文件名称",prop:"fileName","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.fileCk(a.row)}}},[e._v("申请")])]}}])})],1)],1)],1),t("el-dialog",{attrs:{width:"30%",title:"申请说明",visible:e.opens,"append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){e.opens=t}}},[t("el-form",{ref:"fileForm",attrs:{"label-width":"80px",model:e.fileForm}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"申请说明",prop:"applyDesc"}},[t("el-input",{attrs:{maxlength:200,type:"textarea",placeholder:"请输入内容"},model:{value:e.fileForm.applyDesc,callback:function(t){e.$set(e.fileForm,"applyDesc",t)},expression:"fileForm.applyDesc"}})],1)],1)],1)],1),t("div",{staticClass:"dialog-footer",staticStyle:{"text-align":"right"},attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:e.handlefile}},[e._v("确 定")]),t("el-button",{on:{click:function(t){e.opens=!1}}},[e._v("取 消")])],1)],1)],1)],1)},s=[],r=(a(69826),a(41539),a(21249),a(32900));const o={name:"myLab",data:function(){return{loading:!0,total:0,myLablyList:[],queryParams:{pageNum:1,pageSize:10},busStatusList:[{label:"运行中",value:"01"},{label:"到期结束",value:"02"},{label:"强制结束",value:"03"},{label:"已禁用",value:"04"},{label:"已销毁",value:"05"},{label:"销毁处理中",value:"06"},{label:"重新初始化中",value:"07"},{label:"错误",value:"08"}],visible:!1,open:!1,opens:!1,filetotal:0,filetableList:[],fileForm:{applyDesc:""},fileTypeList:[{value:"python",label:"python组件"},{value:"data",label:"数据文件"}],totals:0,resourcesList:[],resourcesForm:{applyDesc:""},fileQueryParams:{pageNum:1,pageSize:10},queryParamss:{pageNum:1,pageSize:10},rules:{applyDesc:[{required:!0,message:"不能为空",trigger:"blur"}]}}},created:function(){this.getList()},methods:{busStatusspan:function(e){var t=this.busStatusList,a=t.find((function(t){return t.value==e}));return a?a.label:null},getList:function(){var e=this;this.loading=!0,(0,r.Ht)(this.queryParams).then((function(t){e.myLablyList=t.rows,e.total=t.total,e.loading=!1}))},handleQuery:function(){this.queryParams.pageNum=1,this.getList()},resetQuery:function(){this.resetForm("queryForm"),this.handleQuery()},loginUrl:function(e){window.open(e,"_blank")},goLabDetail:function(e){this.$router.push("/user/myapply/myLabDetail/"+e)},clickRow:function(e){this.$refs.table.toggleRowSelection(e)},handleQuerys:function(){this.queryParamss.pageNum=1,this.myResourcesLists()},myResourcesLists:function(){var e=this;(0,r.Hc)(this.queryParamss).then((function(t){e.resourcesList=t.rows,e.totals=t.total,e.loading=!1}))},myResourcesList:function(e){this.visible=!0,this.resourcesForm.applyDesc="",this.resourcesForm.applyId=e.applyId,this.resourcesForm.recToken=e.recToken,this.myResourcesLists()},handleSelectionChange:function(e){this.resourcesForm.fileIds=e.map((function(e){return e.fileId}))},handleSelectUser:function(){var e=this;console.log(this.resourcesForm),this.$refs["applyform"].validate((function(t){t&&(0,r.qS)(e.resourcesForm).then((function(t){e.visible=!1,e.$message({type:"success",message:"数据注入成功!"}),e.getList()}))}))},myfileList:function(e){var t=this;this.open=!0,this.fileForm.applyId=e.applyId,this.fileForm.recToken=e.recToken,(0,r.uN)(e.applyId).then((function(e){t.filetableList=e.data,t.loading=!1}))},fileCk:function(e){this.fileForm.fileName=e.fileName,this.fileForm.applyDesc="",this.opens=!0},handlefile:function(){var e=this;(0,r.W1)(this.fileForm).then((function(t){e.$message({type:"success",message:"申请成功,等待审核!"}),e.open=!1,e.opens=!1,e.getList()}))},restart:function(e){var t=this,a={applyId:e.applyId,recToken:e.recToken};this.loading=!0,(0,r.ur)(a).then((function(e){t.loading=!1,t.$message({type:"success",message:"重启成功!"}),t.getList()}))["catch"]((function(e){e.err;t.loading=!1}))}}},i=o;var n=a(1001),u=(0,n.Z)(i,l,s,!1,null,"b3b3944e",null);const p=u.exports},32900:(e,t,a)=>{a.d(t,{Cp:()=>P,F7:()=>S,Hc:()=>v,Ht:()=>n,JE:()=>b,W1:()=>d,WG:()=>o,_I:()=>k,aX:()=>s,bL:()=>_,c0:()=>x,cT:()=>w,d5:()=>r,e_:()=>y,en:()=>u,fR:()=>i,in:()=>L,jr:()=>g,oK:()=>f,qS:()=>c,rK:()=>h,uN:()=>m,ur:()=>p});var l=a(73821);function s(e){return(0,l.Z)({url:"/myApply/laboratoryList",method:"get",params:e})}function r(e){return(0,l.Z)({url:"/myApply/laboratoryDetail?reviewId="+e,method:"get"})}function o(e){return(0,l.Z)({url:"/myApply/exportList",method:"get",params:e})}function i(e){return(0,l.Z)({url:"/myApply/download",method:"get",params:e})}function n(e){return(0,l.Z)({url:"/myLab/list",method:"get",params:e})}function u(e){return(0,l.Z)({url:"/myLab/info?applyId="+e,method:"get"})}function p(e){return(0,l.Z)({url:"/myLab/restart",method:"post",data:e})}function c(e){return(0,l.Z)({url:"/myLab/dataInjection",method:"post",data:e})}function m(e){return(0,l.Z)({url:"/myLab/fileList?applyId="+e,method:"get"})}function d(e){return(0,l.Z)({url:"/myLab/applyDown",method:"post",data:e})}function f(e){return(0,l.Z)({url:"/api/userApiList",method:"get",params:e})}function y(e){return(0,l.Z)({url:"/api/userApiStatisticsList",method:"get",params:e})}function h(e){return(0,l.Z)({url:"/myMessage/page",method:"get",params:e})}function b(e){return(0,l.Z)({url:"/myMessage/detail?msgId="+e,method:"post"})}function g(e){return(0,l.Z)({url:"myMessage/markRead",method:"post",data:e})}function v(e){return(0,l.Z)({url:"/myResources/list",method:"get",params:e})}function w(e){return(0,l.Z)({url:"/myResources/uploadFile",method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})}function k(e){return(0,l.Z)({url:"/myResources/delete?fileId="+e,method:"delete"})}function L(e){return(0,l.Z)({url:"/rePwd/getPhoneByUser?username="+e,method:"get"})}function _(){return(0,l.Z)({url:"/rePwd/sendPhoneCode",method:"get"})}function S(e){return(0,l.Z)({url:"/rePwd/verifyPhoneCode?phoneCode="+e,method:"get"})}function x(e){return(0,l.Z)({url:"/rePwd/reset",method:"post",data:e})}function P(e){return(0,l.Z)({url:"/changePassword",method:"post",data:e})}}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/app.11080c4c.js b/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/app.11080c4c.js deleted file mode 100644 index f1f715f0..00000000 --- a/agile-portal/agile-portal-gateway/src/main/resources/view/static/js/app.11080c4c.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var t={47121:(t,e,n)=>{n.d(e,{Ci:()=>o,Cm:()=>s,R1:()=>r,Yz:()=>a,ZF:()=>c,fu:()=>l,iA:()=>u});var i=n(73821);function o(t){return(0,i.Z)({url:"/content/banner",method:"get"})}function r(t){return(0,i.Z)({url:"/content/scenesList",method:"get"})}function a(t){return(0,i.Z)({url:"/content/list",method:"get"})}function s(t){return(0,i.Z)({url:"/content/contentInfo?contentId="+t,method:"get"})}function c(t){return(0,i.Z)({url:"/api/list",method:"get",params:t})}function u(){return(0,i.Z)({url:"/content/dataProduct",method:"get"})}function l(){return(0,i.Z)({url:"/content/sdkDownload",method:"get",responseType:"blob"})}},12223:(t,e,n)=>{n.d(e,{A9:()=>o,C5:()=>s,Z6:()=>u,bL:()=>a,kS:()=>c,x4:()=>r});var i=n(73821);function o(t){return(0,i.Z)({url:"/verifyUser",method:"post",data:t})}function r(t){return(0,i.Z)({url:"/login",method:"post",data:t})}function a(t){return(0,i.Z)({url:"/sendPhoneCode",method:"get"})}function s(){return(0,i.Z)({url:"/getInfo",method:"get"})}function c(){return(0,i.Z)({url:"/logout",method:"post"})}function u(){return(0,i.Z)({url:"/getPublicKey",method:"get"})}},33300:(t,e,n)=>{n(66992),n(88674),n(19601),n(17727);var i=n(36369),o=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"app"}},[e("router-view")],1)},r=[],a=n(1001),s={},c=(0,a.Z)(s,o,r,!1,null,null,null);const u=c.exports;var l=n(92268),d=n(9983),p=n(50680),f=n(8499),h=n.n(f),m=n(50124),v=n(48534),g=(n(82772),n(68309),n(40530)),b=n.n(g),y=n(73821);b().configure({showSpinner:!1});var A=["Index","productsList","ProductsDetail","DataServiceGuide","ApiList","DataLaboratory","SuccessCase","Login","ResetPwd","FindPwd","NewsCenter","NewsDetail","introduce","AccountIssues","LegalNotice","privacyStatement","CompanyProfile"];l.Z.beforeEach(function(){var t=(0,v.Z)((0,m.Z)().mark((function t(e,n,i){var o;return(0,m.Z)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:b().start(),o=localStorage.getItem("myData"),o?(y.h.show=!0,d.Z.dispatch("GetInfo").then((function(){y.h.show=!1,i(),b().done()}))["catch"]((function(t){d.Z.dispatch("LogOut").then((function(){-1===A.indexOf(e.name)?(f.Message.error(t),i({path:"/login"})):i()}))}))):-1===A.indexOf(e.name)?(y.h.show=!0,d.Z.dispatch("GetInfo").then((function(){y.h.show=!1,i(),b().done()}))["catch"]((function(t){d.Z.dispatch("LogOut").then((function(){f.Message.error(t),i({path:"/login"})}))}))):(i(),b().done());case 3:case"end":return t.stop()}}),t)})));return function(e,n,i){return t.apply(this,arguments)}}()),l.Z.afterEach((function(){b().done()}));var w=n(3336);n(69826),n(41539),n(74916),n(77601),n(91058),n(15306),n(24603),n(28450),n(88386),n(39714),n(83710);function C(t){this.$refs[t]&&this.$refs[t].resetFields()}function k(t,e){var n=e,i=n.find((function(e){return e.value==t}));return i?i.label:null}function S(t,e){if(0===arguments.length||!t)return null;var n,i=e||"{y}-{m}-{d} {h}:{i}:{s}";"object"===(0,w.Z)(t)?n=t:("string"===typeof t&&/^[0-9]+$/.test(t)?t=parseInt(t):"string"===typeof t&&(t=t.replace(new RegExp(/-/gm),"/").replace("T"," ").replace(new RegExp(/\.[\d]{3}/gm),"")),"number"===typeof t&&10===t.toString().length&&(t*=1e3),n=new Date(t));var o={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},r=i.replace(/{(y|m|d|h|i|s|a)+}/g,(function(t,e){var n=o[e];return"a"===e?["日","一","二","三","四","五","六"][n]:(t.length>0&&n<10&&(n="0"+n),n||0)}));return r}var N=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[e("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,total:t.total},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},P=[];n(9653),n(32564);Math.easeInOutQuad=function(t,e,n,i){return t/=i/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var T=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function Z(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function I(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function x(t,e,n){var i=I(),o=t-i,r=20,a=0;e="undefined"===typeof e?500:e;var s=function t(){a+=r;var s=Math.easeInOutQuad(a,i,o,e);Z(s),athis.total&&(this.currentPage=1),this.$emit("pagination",{page:this.currentPage,limit:t}),this.autoScroll&&x(0,800)},handleCurrentChange:function(t){this.$emit("pagination",{page:t,limit:this.pageSize}),this.autoScroll&&x(0,800)}}},_=E;var L=(0,a.Z)(_,N,P,!1,null,"368c4af0",null);const O=L.exports;i["default"].use(h(),{size:p.Z.get("size")||"medium"}),i["default"].component("Pagination",O),i["default"].prototype.resetForm=C,i["default"].prototype.parseTime=S,i["default"].prototype.arrList=k,i["default"].config.productionTip=!1,new i["default"]({router:l.Z,store:d.Z,render:function(t){return t(u)}}).$mount("#app")},92268:(t,e,n)=>{n.d(e,{Z:()=>Nt,_:()=>wt});n(41539),n(78783),n(33948);var i=n(36369),o=n(72631),r=function(){var t=this,e=t._self._c;return e("router-view")},a=[],s=n(1001),c={},u=(0,s.Z)(c,r,a,!1,null,null,null);const l=u.exports;var d=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"home"}},[e("div",{staticClass:"home-banner"},[e("div",{staticClass:"swiper"},[e("div",{staticClass:"swiper-wrapper"},[e("el-carousel",{attrs:{arrow:"never"}},t._l(t.listBanner,(function(n){return e("el-carousel-item",{key:n.index,staticClass:"swiper-slide"},[e("img",{attrs:{src:n.imgUrl,alt:""}}),e("div",{staticClass:"slogan"},[e("div",{staticClass:"wrapper"},[e("h3",{staticClass:"title"},[t._v(t._s(n.contentTitle))]),e("div",{staticClass:"text"},[t._v(t._s(n.subtitle))])])])])})),1)],1)]),e("news-swiper",{attrs:{"list-news":t.listNews}})],1),e("div",{staticClass:"home-content"},[e("h2",{staticClass:"title"},[t._v("久事大数据开放平台为您提供")]),e("div",{staticClass:"products-intr"},[e("ul",[e("li",[e("router-link",{attrs:{to:"/products/productsList"}},[e("img",{attrs:{src:n(96621),alt:""}}),e("div",{staticClass:"text"},[e("h3",[t._v("数据产品")]),e("div",{staticClass:"summary"},[t._v("已形成“久事客流宝”“久事乘车宝”等系列产品,并上海数据交易所成功挂牌,地面公交刷卡(码)客流、到站预报等数据可直接进行交易。")])])])],1),e("li",[e("router-link",{attrs:{to:"/service/guide"}},[e("img",{attrs:{src:n(99242),alt:""}}),e("div",{staticClass:"text"},[e("h3",[t._v("数据服务")]),e("div",{staticClass:"summary"},[t._v("提供数据分析、指标加工、报告撰写等服务。"),e("br"),t._v("提供API接口列表及接入指引。")])])])],1),e("li",[e("router-link",{attrs:{to:"/laboratory"}},[e("img",{attrs:{src:n(1831),alt:""}}),e("div",{staticClass:"text"},[e("h3",[t._v("数据实验室")]),e("div",{staticClass:"summary"},[t._v(" 为有交通卡细颗粒度数据(如交易数据)使用需求的用户,提供一个安全、独立、便捷的环境,用户可以在该环境中进行数据分析、数据建模,并导出分析成果数据,进而解决明细数据不能出去但可以使用的问题。")])])])],1)])])]),e("div",{staticClass:"case-content"},[e("h2",{staticClass:"title"},[t._v("应用场景")]),e("div",{staticClass:"case-list"},[e("div",{staticClass:"tab-title"},[e("ul",t._l(t.sceneTitle,(function(n,i){return e("li",{key:i,class:{active:t.isActive===i},on:{click:function(e){return t.showScene(i)}}},[t._v(t._s(n)+" ")])})),0)]),e("div",{staticClass:"content-detail"},t._l(t.sceneContent,(function(n,i){return e("dl",{key:i,class:{active:t.isActive===i}},[e("dt",[t._v(t._s(n.contentTitle))]),e("dd",{staticStyle:{"text-align":"justify"}},[t._v(t._s(n.contentText))])])})),0)])])])},p=[],f=(n(47042),n(47121)),h=function(){var t=this,e=t._self._c;return e("div",{staticClass:"home-news"},[e("div",{staticClass:"wrapper"},[e("div",{staticClass:"news-title"},[t._v("最新动态")]),e("div",{staticClass:"news-item"},[e("el-carousel",{attrs:{height:"35px",direction:"vertical",autoplay:!0}},t._l(t.listNews,(function(n){return e("el-carousel-item",{key:n.contentId},[e("router-link",{staticClass:"news-link",attrs:{to:{name:"NewsDetail",params:{contentId:n.contentId}}}},[e("span",[t._v(t._s(n.contentTitle)+" ")]),e("b",[t._v(t._s(n.updateTime.slice(0,10)))])])],1)})),1)],1),e("div",{staticClass:"btn-more"},[e("router-link",{attrs:{to:"/news/list"}},[t._v("查看全部>")])],1)])])},m=[];const v={name:"news-swiper",props:{listNews:Array}},g=v;var b=(0,s.Z)(g,h,m,!1,null,"25d0dc89",null);const y=b.exports,A={name:"HomeView",data:function(){return{isActive:0,sceneTitle:["场景一","场景二","场景三"],sceneContent:[],listBanner:null,listNews:[]}},components:{NewsSwiper:y},created:function(){this.getBanner(),this.getNewsList(),this.getscenesList()},methods:{backToTop:function(){window.scrollTo({top:0,behavior:"smooth"})},getBanner:function(){var t=this;this.listBanner=null,(0,f.Ci)().then((function(e){t.listBanner=e.data}))},getNewsList:function(){var t=this;(0,f.Yz)().then((function(e){t.listNews=e.rows.slice(0,5)}))},getscenesList:function(){var t=this;(0,f.R1)().then((function(e){t.sceneContent=e.data.slice(0,3)}))},showScene:function(t){this.isActive=t},handleScroll:function(){window.pageYOffset>50?this.$parent.$parent.$refs.topnav.topbg="":this.$parent.$parent.$refs.topnav.topbg="1"}},mounted:function(){this.$parent.$parent.$refs.topnav.topbg="1",this.backToTop(),window.addEventListener("scroll",this.handleScroll)},beforeDestroy:function(){window.removeEventListener("scroll",this.handleScroll)}},w=A;var C=(0,s.Z)(w,d,p,!1,null,"1648f46c",null);const k=C.exports;var S=function(){var t=this,e=t._self._c;return e("div",[e("TopNav",{ref:"topnav"}),e("AppContainer"),e("Footer")],1)},N=[],P=function(){var t=this,e=t._self._c;return e("section",{staticClass:"app-container"},[e("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[e("router-view",{key:t.key})],1)],1)},T=[];const Z={name:"AppContainer",computed:{key:function(){return this.$route.path}}},I=Z;var x=(0,s.Z)(I,P,T,!1,null,"77fe0ecc",null);const E=x.exports;var _=function(){var t=this,e=t._self._c;return e("div",{staticClass:"top-nav",class:"1"==t.topbg?"topbg":"",attrs:{id:"container"}},[e("div",{staticClass:"containers"},[e("div",{staticClass:"logo"},[e("router-link",{attrs:{to:"/"}},[e("img",{attrs:{src:n(55800),alt:"久事logo"}}),e("span",{staticClass:"title"},[t._v("久事大数据开放平台")])])],1),t.isShowMenu?e("div",{staticClass:"left-box"},[e("div",{staticClass:"router-list"},[e("div",{on:{click:function(e){return t.topNavbg("1")}}},[e("router-link",{attrs:{to:"/"}},[t._v("首页")])],1),e("div",{staticClass:"minNav",on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/products/productsList"}},[t._v("数据产品")]),e("ul",{staticClass:"navUl"},t._l(t.carouselItems,(function(n){return e("li",{key:n.index,on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:{name:"ProductsDetail",params:{contentId:n.contentId}}}},[t._v(t._s(n.contentTitle))])],1)})),0)],1),e("div",{staticClass:"minNav",on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/introduce"}},[t._v("数据服务")]),e("ul",{staticClass:"navUl"},[e("li",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/introduce"}},[t._v("服务介绍")])],1),e("li",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/guide"}},[t._v("服务指南")])],1),e("li",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/api"}},[t._v("API列表")])],1)])],1),e("div",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/laboratory"}},[t._v("数据实验室")])],1)]),t.nickName?[e("div",{staticClass:"userimg",on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/user/index"}},[e("span",{staticClass:"user-avatar"}),e("span",{staticClass:"user-name"},[t._v(t._s(t.nickName))])]),e("span",{staticClass:"outbtn",on:{click:t.logout}})],1)]:[e("div",{staticClass:"login-button"},[e("router-link",{attrs:{to:"/login"}},[t._v("登录")])],1)]],2):t._e()])])},L=[];n(47941);const O={props:{isShowMenu:{type:Boolean,default:!0}},data:function(){return{topbg:"",nickName:null,carouselItems:null,contentId:null}},created:function(){this.getBanner()},methods:{getBanner:function(){var t=this;this.carouselItems=null,(0,f.iA)().then((function(e){t.carouselItems=e.data.slice(0,5)}))},topNavbg:function(t){this.topbg=t},logout:function(){var t=this;this.$confirm("确定注销并退出系统吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){t.$store.dispatch("LogOut").then((function(){location.href=location.href.split("#")[0]}))}))["catch"]((function(){}))}},mounted:function(){var t=localStorage.getItem("myData");if(t){var e=JSON.parse(t);this.nickName=e.nickName}var n=document.getElementById("home");this.topbg=null!=n&&void 0!=n?"1":""}},B=O;var M=(0,s.Z)(B,_,L,!1,null,"4c954c68",null);const R=M.exports;n(68309);var Q=function(){var t=this,e=t._self._c;return e("div",{staticClass:"footer"},[e("div",{staticClass:"wrapper"},[e("div",{staticClass:"left-box"},[t._m(0),e("div",{staticClass:"links"},[e("el-select",{staticStyle:{"padding-left":"50px"},attrs:{placeholder:"友情链接"},on:{change:t.goToLink},model:{value:t.selectedLink,callback:function(e){t.selectedLink=e},expression:"selectedLink"}},t._l(t.links,(function(t){return e("el-option",{key:t.url,attrs:{label:t.name,value:t.url}})})),1)],1)]),e("div",{staticClass:"right-info"},[e("dl",[e("dt",[t._v("服务与支持")]),e("dd",[e("router-link",{attrs:{to:"/products/productsList"}},[t._v("数据产品")])],1),e("dd",[e("router-link",{attrs:{to:"/service/api"}},[t._v("数据服务")])],1),e("dd",[e("router-link",{attrs:{to:"/laboratory"}},[t._v("数据实验室")])],1)]),e("dl",[e("dt",[t._v("常见问题")]),e("dd",[e("router-link",{attrs:{to:"/AccountIssues"}},[t._v("账户问题")])],1)]),e("dl",[e("dt",[t._v("关于我们")]),e("dd",[e("router-link",{attrs:{to:"/CompanyProfile"}},[t._v("公司简介")])],1),e("dd",[t._v("电话(021-60825678)")]),e("dd",[t._v("地址: 上海市长顺路11号荣广大厦10F")])])])]),t._m(1)])},j=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"logo-link"},[e("img",{attrs:{src:n(55800),alt:"久事logo"}}),e("span",{staticClass:"title"},[t._v("久事大数据开放平台")])])},function(){var t=this,e=t._self._c;return e("div",{staticClass:"copyrights"},[t._v(" © 2023 chinadata.com All Rights Reserved 上海久事(集团)有限公司版权所有 "),e("span",[t._v(" 沪ICP备13037966号-13")])])}];const D={name:"Footer",data:function(){return{selectedLink:"",links:[{name:"久事集团",url:"https://www.jiushi.com.cn"},{name:"交通卡",url:"https://www.sptcc.com"}]}},methods:{goToLink:function(){this.selectedLink&&window.open(this.selectedLink,"_blank")}}},z=D;var F=(0,s.Z)(z,Q,j,!1,null,"0e7a067b",null);const U=F.exports,K={name:"Layout",components:{TopNav:R,Footer:U,AppContainer:E},data:function(){return{showButton:!1}},methods:{backToTop:function(){window.scrollTo({top:0,behavior:"smooth"})},handleScroll:function(){window.pageYOffset>200?this.showButton=!0:this.showButton=!1}},mounted:function(){window.addEventListener("scroll",this.handleScroll)},beforeDestroy:function(){window.removeEventListener("scroll",this.handleScroll)}},H=K;var J=(0,s.Z)(H,S,N,!1,null,"4d4e77b4",null);const V=J.exports;var G=function(){return n.e(443).then(n.bind(n,443))},W=function(){return n.e(292).then(n.bind(n,2292))},q=function(){return n.e(500).then(n.bind(n,23500))},Y=function(){return n.e(850).then(n.bind(n,94850))},X=function(){return n.e(376).then(n.bind(n,76376))},$=function(){return n.e(107).then(n.bind(n,8107))},tt=function(){return n.e(53).then(n.bind(n,77053))},et=function(){return Promise.all([n.e(51),n.e(430)]).then(n.bind(n,54430))},nt=function(){return n.e(392).then(n.bind(n,34392))},it=function(){return n.e(59).then(n.bind(n,52059))},ot=function(){return n.e(552).then(n.bind(n,51552))},rt=function(){return n.e(425).then(n.bind(n,97425))},at=function(){return n.e(607).then(n.bind(n,75607))},st=function(){return n.e(519).then(n.bind(n,95519))},ct=function(){return n.e(441).then(n.bind(n,46441))},ut=function(){return n.e(146).then(n.bind(n,53146))},lt=function(){return n.e(494).then(n.bind(n,58494))},dt=function(){return n.e(686).then(n.bind(n,15686))},pt=function(){return n.e(777).then(n.bind(n,1777))},ft=function(){return n.e(646).then(n.bind(n,82646))},ht=function(){return n.e(64).then(n.bind(n,51064))},mt=function(){return n.e(982).then(n.bind(n,62982))},vt=function(){return n.e(229).then(n.bind(n,87229))},gt=function(){return n.e(276).then(n.bind(n,48276))},bt=function(){return Promise.all([n.e(51),n.e(42)]).then(n.bind(n,59042))},yt=function(){return Promise.all([n.e(51),n.e(541)]).then(n.bind(n,51541))},At=function(){return n.e(767).then(n.bind(n,37767))};i["default"].use(o.ZP);var wt=[{path:"index",component:ut,name:"UserInfo",hidden:!1,meta:{title:"个人信息"}},{path:"myapply",component:l,name:"myapply",hidden:!1,isOpen:!1,meta:{title:"我的申请"},children:[{path:"labapply",component:lt,name:"LabApply",hidden:!1,meta:{title:"数据注入申请"}},{path:"labdetail/:applyId",component:At,hidden:!0,name:"LabDetail",meta:{title:"实验室数据详情"}},{path:"myLabDetail/:applyId",component:ft,hidden:!0,name:"MyLabDetail",meta:{title:"实验室数据详情"}},{path:"dataapply",component:dt,name:"DataApply",hidden:!1,meta:{title:"数据导出申请"}}]},{path:"mylab",component:pt,name:"MyLab",hidden:!1,meta:{title:"我的实验室"}},{path:"myapp",component:l,name:"MyApp",hidden:!1,isOpen:!1,meta:{title:"我的应用"},children:[{path:"list",component:ht,name:"myAppList",hidden:!1,meta:{title:"API列表"}},{path:"apicall",component:mt,name:"ApiCall",hidden:!1,meta:{title:"接口调用统计"}}]},{path:"mydata",component:vt,name:"MyData",hidden:!1,meta:{title:"我的资源"}},{path:"mymsg",component:gt,name:"MyMsg",hidden:!1,meta:{title:"我的消息"}}],Ct=[{path:"",component:V,redirect:"/",children:[{path:"/",component:k,name:"Index",hidden:!1,meta:{title:"首页"}},{path:"products",component:l,name:"DataProducts",hidden:!1,meta:{title:"数据产品"},children:[{path:"productsList",component:G,name:"productsList",hidden:!1,meta:{title:"数据产品"}},{path:"detail/:contentId(\\d+)",component:W,name:"ProductsDetail",hidden:!1,meta:{title:"产品详情"}}]},{path:"news",component:l,redirect:"news/list",hidden:!0,meta:{title:"NewsCenter"},children:[{path:"list",component:nt,name:"NewsCenter",hidden:!1,meta:{title:"新闻中心"}},{path:"detail/:contentId(\\d+)",component:it,name:"NewsDetail",hidden:!1,meta:{title:"新闻详情"}}]},{path:"service",component:l,name:"DataService",hidden:!1,meta:{title:"数据服务"},children:[{path:"introduce",component:Y,name:"introduce",hidden:!1,meta:{title:"服务介绍"}},{path:"guide",component:q,name:"DataServiceGuide",hidden:!1,meta:{title:"接入指引"}},{path:"api",component:tt,name:"ApiList",hidden:!1,meta:{title:"API列表"}}]},{path:"laboratory",component:X,name:"DataLaboratory",meta:{title:"数据实验室"}},{path:"case",component:$,name:"SuccessCase",hidden:!1,meta:{title:"成功案例"}},{path:"user",component:ct,redirect:"user/index",name:"UserIndex",hidden:!1,meta:{title:"用户中心"},children:wt},{path:"/resetpwd",name:"ResetPwd",component:bt,hidden:!1,meta:{title:"修改密码"}},{path:"/findpwd",name:"FindPwd",hidden:!1,component:yt,meta:{title:"忘记密码"}},{path:"AccountIssues",component:ot,name:"AccountIssues",hidden:!1,meta:{title:"账户问题"}},{path:"LegalNotice",component:rt,name:"LegalNotice",hidden:!1,meta:{title:"法律声明"}},{path:"privacyStatement",component:at,name:"privacyStatement",hidden:!1,meta:{title:"隐私声明"}},{path:"CompanyProfile",component:st,name:"CompanyProfile",hidden:!1,meta:{title:"公司简介"}}]},{path:"/login",name:"Login",hidden:!0,component:et}],kt=o.ZP.prototype.push;o.ZP.prototype.push=function(t){return kt.call(this,t)["catch"]((function(t){return t}))};var St=new o.ZP({routes:Ct});const Nt=St},9983:(t,e,n)=>{n.d(e,{Z:()=>y});var i=n(36369),o=n(63822),r=n(95082),a=(n(41539),n(38862),n(12223));n(50680);var s={state:{userName:"",avatar:"",topbg:localStorage.getItem("topBg"),topNav:!1},mutations:{UPDATE_STATE:function(t,e){var n=(0,r.Z)((0,r.Z)({},t),e);for(var i in n)t[i]=n[i]},SET_ROLES:function(t,e){t.roles=e}},actions:{GetInfo:function(t){var e=t.commit;t.state;return new Promise((function(t,n){(0,a.C5)().then((function(n){var i=n.data;localStorage.setItem("myData",JSON.stringify(i)),e("UPDATE_STATE",i),t(n)}))["catch"]((function(t){n(t)}))}))},LogOut:function(t){t.commit,t.state;return new Promise((function(t,e){(0,a.kS)().then((function(){localStorage.setItem("myData",""),t()}))["catch"]((function(t){e(t)}))}))}}};const c=s;var u={state:{},mutations:{},actions:{}};const l=u;var d={isChildShow:!1},p={CHANGE_SETTING:function(t){t.isChildShow=!t.isChildShow},HIDE_SUB_MENU:function(t){t.isChildShow=!1}},f={changeSetting:function(t){var e=t.commit;e("CHANGE_SETTING")},hideSubMenu:function(t){var e=t.commit;e("HIDE_SUB_MENU")}};const h={namespaced:!0,state:d,mutations:p,actions:f};var m=n(82482),v=(0,m.Z)({showChild:function(t){return t.settings.showChild},avatar:function(t){return t.user.avatar},userName:function(t){return t.user.userName},status:function(t){return t.user.status},phonenumber:function(t){return t.user.phonenumber},roles:function(t){return t.user.roles},nickName:function(t){return t.user.nickName},industryCategory:function(t){return t.user.industryCategory},enterpriseName:function(t){return t.user.enterpriseName},socialCreditCode:function(t){return t.user.socialCreditCode},enterpriseAddress:function(t){return t.user.enterpriseAddress}},"industryCategory",(function(t){return t.user.industryCategory}));const g=v;i["default"].use(o.ZP);var b=new o.ZP.Store({modules:{user:c,permission:l,settings:h},getters:g});const y=b},73821:(t,e,n)=>{n.d(e,{Z:()=>u,h:()=>s});n(41539),n(26699),n(32023),n(83650);var i=n(15742),o=n(8499),r=n(9983);const a={401:"认证失败,无法访问系统资源",403:"当前操作没有权限",404:"访问资源不存在",default:"系统未知错误,请反馈给管理员"};var s={show:!1};i.Z.defaults.headers["Content-Type"]="application/json;charset=utf-8";var c=i.Z.create({baseURL:"/public",timeout:2e4,withCredentials:!0});c.interceptors.request.use((function(t){return t}),(function(t){Promise.reject(t)})),c.interceptors.response.use((function(t){var e=t.headers["content-disposition"];void 0!=e&&(r.Z.filename=e);var n=t.data.code||200,i=a[n]||t.data.msg||a["default"];return 401===n?(s.show||(s.show=!0,o.MessageBox.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录","系统提示",{confirmButtonText:"重新登录",cancelButtonText:"取消",type:"warning"}).then((function(){s.show=!1,r.Z.dispatch("LogOut").then((function(){location.href=location.href.split("#")[0]}))}))["catch"]((function(){s.show=!1}))),Promise.reject("无效的会话,或者会话已过期,请重新登录。")):500===n?((0,o.Message)({message:i,type:"error"}),t.data):200!==n?(o.Notification.error({title:i}),Promise.reject("error")):t.data}),(function(t){var e=t.message;if("Network Error"==e)e="后端接口连接异常";else if(e.includes("timeout"))e="系统接口请求超时";else if(e.includes("Request failed with status code")){if(e="系统接口"+e.substr(e.length-3)+"异常",403===t.response.status)return s.show=!0,o.MessageBox.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录","系统提示",{confirmButtonText:"重新登录",cancelButtonText:"取消",type:"warning"}).then((function(){s.show=!1,r.Z.dispatch("LogOut").then((function(){location.href=location.href.split("#")[0]}))}))["catch"]((function(){s.show=!1})),Promise.reject("无效的会话,或者会话已过期,请重新登录。");301===t.response.status&&(e="没有权限,请联系管理员授权")}return(0,o.Message)({message:e,type:"error",duration:5e3}),Promise.reject(t)}));const u=c},96621:(t,e,n)=>{t.exports=n.p+"static/img/index-product-pic1.062b43d1.jpg"},99242:(t,e,n)=>{t.exports=n.p+"static/img/index-product-pic2.deb683c3.jpg"},1831:(t,e,n)=>{t.exports=n.p+"static/img/index-product-pic3.520aae04.jpg"},55800:t=>{t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABICAYAAABlYaJmAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAUqADAAQAAAABAAAASAAAAAC1TADLAAAKnElEQVR4Ae1cDYwbRxWe2fVfnCbYPl8usX30RBOSpqWNCFQKhRCkpBSElJK2FIRQQJUoUNFUjS6NmtJemqaQtEB7rVSooBI/QkCEQEhQJEoboOJXUAoU0iTAVWf7Lsnd2cnd+fyzu8M3vnNiOzO+3fXYvou6upN337z35r3Pb3bfzJs1IW8cShCgSrQoVpIJ9YWmJ89tI5StKatm9IQWDLwYm0yPKe5KmboFBeSZaHRZIWsdYIzdQQgL1HpJ87j+pt6zZE8snc7VtnX+asEAyfr6Aqnk2ecB4vUNYaH0nwGf/v7u3Fi6IV+bG7U29yfsjg0MaMlk9nvzgsilGbu6UDR/yLZs8QiVdYi4ICJy2BvaRSzyuCMMKN3ba2QOOZJpIXPHgUwvi0XNXO4EfAw58ZMSOun362sxxEecyLWKt+ND28rNHHQKIgeDEbasUDC/1CpgnOrtaEQmvd0biFX6CyPE1RcK4xnT9E29pfE/OnVcNb8rB1QZwZgx6BZEbgNkKWHmIB5SHQ0IbkvHgEz5wh9FPL2HG9HUwch1KV90Z1M6FAh35JtMx2JB69TMMdznehX4ABV0NBDW39o9NjapRp9zLR2JSOt0fq86ELnTbGUxa97n3H11Em0HciSwsg/3tH51Lsxqwl1ySLVOJ/raDqRp5B9DBNXNo52YLOCl9NX4TVu/IWhpG6mt98ikJ/o+PKlfUO2dTrUPxIyJX6jW60Rf2yKS3Xqrzoj5hBPj7PBSSn7ZaRC5nW2LyJQ3fKdlsafsgGOXB8ZbHp1uWFnM/MOuTKv42hKRZ5cnIgDxIdVOICF/diGAyP1qC5CT09MH0FdEJZBYtJjyB7xfkOlM+7qulLW1gt5yIEd94bfhKY0Vb8UHZYdXTJ8ZFWkdj0SWW6b5YtobfYeovRW0lgNpWIzPp3WVxiMak9qK4JdlOnPn2D702WO1cR7eUiCTeuQWxsgWmcOu6RrbJ6vbpAOhyzGH38V1I/HflPRHPu66HweCLQOSJRJL4AqSb7UH0p2/xouZ78i0WiXK1yj959tNcmi0p2fp+esWnbQMyPToVD/m05ertpsRz25KKUbuxceIt+s6fHm31bawmDFe3FdLU3/VkjwytSTSy4qMr+4EVZoMAH+aMDLbZTqTnvBLkgJawef1r+/Jn/qvTLZZeksiEiA+qhxEQgyi69LFjmE9crMERI6Rv2gUv9IsWI3klQOZ9oQ2A8S64dXIBHttjNCnE4Wx4yJudtVVPkxyGlcUGdue8kS2ieRV0JQCyevTFiHK59NwNEuDwf0yh1PHR+5E2xWy9grdIuzxVtXDld4jk97wHcxiX6sYrupTo1p/3JgQZgB8+nlueuok+grb6k8jd/eWssq/bGURyTc+EYs9bMsZZ0z/i/VFnpSJTOam+DTRHohciUUGeC1dps8tXRmQualz+5GTKDeQEu1eevJkQeTgaX/3aiT8fFg7OUJztXQnMvPyKhnaI77IetO0XgGQSvfjIN35PdKdd8m8SHpCPwKQO2TtMjqctojm3ZgonfmbjMcpXUlEmpb1hGoQy45Qeo/MobQn/G43IHJ9sFXjNXWZbjf0poFM6103waGtbjpvJIOFiR8kShN/EPEgX6QmYc3lhaipl2vrog5c0JoCkq1e7TeJKV2FcWFPRaSge/17Kxf1nyP+yMcQVu+spzu9ZiY5zGvsTuVE/E0BmRoa3w2lbxEpbopG6eCq/OiQSAffkGqZ5BFRm1MaJg695un8vU7lRPyuHzZjS7ri+aL1GoxRurICg8aCy+nqSCZzVmTwsCe8F+tjXxS1uaPRvO5l62L57Ovu5GelXEfkTNE6pBpEbhLV6IAMRB6NAFFJBF0AjQUsgwiT/Qs885+5AhJzVqQkTPmCKdYaj8euv/brMrPp0FAeeeWn0V6U8bih42F5C6+5u5GtyDgGks+nGbGUpg7njdHofnr0qFG5Fn0mzIkjVNMURyV6YuZnRf3ZpTkGMn1w8FP4Bjfa7cAuH9/KvOq+Xd+3wx/fd9cgKvJ/tsNrlwfJv7M97HWKHT1sJsLhN6GwdBwJ7Yo6PU1fYli/nDCyb7erKOWN3G5ZlpL9PvgSjyTMzEfs9i3icxSRuUn2QCtAnDWMzogMlNF8Xu3nsjaH9KLX65PmrHZ12QYSBfd1GNKft6vYMR9ja53IRFHTxnBqeD+1ow8j4UkVJQjbQGI+/VUY5rVjnBseRHoXCvq2hzZZswar4k3vXZpYellIydKfLSCTevhDyN9udAOQExnLMvfY5U+9fvZKgN/cxgON7A9nh7KiPmfLF6IWMW1eINnGjV7shuX1kFKr/wHMZj5/F5taR2XmjjqKo0sM6ROJa654WiTEQUy9lnquPAEQMQhojp7aAvmOkMqOHksje3BfN9eJ/uGYOf4TkQNJT2Q3Y9ZjGiUPxo3sQyKeetqiBDLlCfdbjB2ud8b2NaW/wXuM7xXxz9WA/oO2ENKiHPXRdfGZiWERbzVt3qFdzbwQzlP+6FpkD9LtfPPZiMhhOtX5qpXwmMrlHkRDiDci4oO8Ri9krCMuqoic28HxEhx8c50fti8RZd9F8v0JkcCwv3sNMUqvoq0mO9Ep3RwzMr8VyVRoiyIi+fy+vBJfZL9rBkRkS3nNR+T7gMwSv13UgMiBQj18kNtQAU30KYzItCdyA5bylZcPRAY0osFyE2WFHuyyuAEDLd6I104b5tOPoJgmBJLvEDEZ+bVMD5b3PpMoZeQrU/WC/Hcl8hkTW0PYyvq2xXyNiDntD3tWi16z4zUgbG74E26K0h2+kB9buiy0RpZ3XhSu+ax5/6UGYjkANPqACETeVt6M2gBEzoMcN8pr9/xcdNQAWb7ZMna3iHFR0yj9l+zNMJ50oyR50I5/yC0/x2v4It4aIKlp8BInn8NeWgcj/fTIEVPkFH7Z5R67DzBEpYfX8EV6MPRnDzxgbjSZ9Vzl+lL5xFTweaxzbhP5M3pZzwpjpngSQC4TtctoollROSL56214xPPVnUvqQJRYTKPS5BsgYr+SMxA5QLyWz9cgqsEqR2RKD23HvkbhvLOaeRGeP9trZm8X2T23X+nvGK6uVpCoRnYmStlvV3TPRiQlwky/wrQYPzGDmQ74PchAxIdp8e3Z7kAsa2T0tmrNs0AS6mh1ulrBQj3Hiw+Pyn4TKOXp2orc8YPN2I75/oZq+TKQSJIi1cTFf07TdEVQuNgwV05WsF+p9uX9WSApSy1+8C54oGn0fumbYQcHP4lovOYCt7szTDdrltbKQGqEvuBO3cKTgoOvxPbd9S2RZfwNMLzurKRGgwWQo9V9lIH0eHzPgMhLCZfAoe2mAwNIQi4+SuMlvKfDVl3c4oyCVMdA1NcsYJSB5OVIJK4HnKlbeNyIxp8ljPFfiSw7E4zGqKJfd2FUOxgrjv+7up/ZeyQo8VIGIU+fqm5cTOeIElPTNOmbYYWC8TCS72AzPqEP5Pd0T68xMVCv5zyQ+Dax6zKDDQD6zQST/HrGhX9Nn6mPkorNSW/oWpzvrFy7+cSIfVkj+o64kRFmAwBZfPCfMjBNth4/1hABk5RPLN2YikQYf2oPPRD4sezHjFEV3ISS8tWiHhv5xu3ULOsU1fXj+JKOieTfoClG4P8vOqxeKxyoDAAAAABJRU5ErkJggg=="}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var r=e[i]={id:i,loaded:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=t,(()=>{n.amdO={}})(),(()=>{var t=[];n.O=(e,i,o,r)=>{if(!i){var a=1/0;for(l=0;l=r)&&Object.keys(n.O).every((t=>n.O[t](i[c])))?i.splice(c--,1):(s=!1,r0&&t[l-1][2]>r;l--)t[l]=t[l-1];t[l]=[i,o,r]}})(),(()=>{n.n=t=>{var e=t&&t.__esModule?()=>t["default"]:()=>t;return n.d(e,{a:e}),e}})(),(()=>{n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})}})(),(()=>{n.f={},n.e=t=>Promise.all(Object.keys(n.f).reduce(((e,i)=>(n.f[i](t,e),e)),[]))})(),(()=>{n.u=t=>"static/js/"+t+"."+{42:"ea3940b3",51:"93916629",53:"561dd0de",59:"bfb9c9a4",64:"bc225023",107:"76ef883a",146:"36cf8861",229:"c90319c4",276:"f49954b7",292:"913b72dc",376:"ad767c79",392:"adae3178",425:"f45cd5ba",430:"c38b6b4f",441:"626eee61",443:"e3683be5",494:"644475c4",500:"be136ce0",519:"c9a7dd0d",541:"61f341ef",552:"1fd42a6e",607:"0c076ed6",646:"b458ba65",686:"6d7105e0",767:"f6686431",777:"62079ee2",850:"7d4265c6",982:"7be8267b"}[t]+".js"})(),(()=>{n.miniCssF=t=>"static/css/"+t+"."+{42:"ebac482c",53:"44b85bba",59:"1659749b",64:"53fbed00",107:"c36f949d",146:"ed8bf707",229:"6db25fd6",276:"09e19b31",292:"a6a69de4",376:"00dac405",392:"b8f9e429",425:"258c547c",430:"ec8b496e",441:"3db1a508",443:"7033f181",494:"464dd9ea",500:"34bd6c07",519:"a6e3d139",541:"5c611f99",552:"bf0c7844",607:"47400a44",646:"9a987327",686:"766559a5",767:"42f5de3c",777:"fe9e1eb2",850:"0adc7870",982:"bf01fcb8"}[t]+".css"})(),(()=>{n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()})(),(()=>{n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})(),(()=>{var t={},e="agile-portal-front:";n.l=(i,o,r,a)=>{if(t[i])t[i].push(o);else{var s,c;if(void 0!==r)for(var u=document.getElementsByTagName("script"),l=0;l{s.onerror=s.onload=null,clearTimeout(f);var o=t[i];if(delete t[i],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((t=>t(n))),e)return e(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),c&&document.head.appendChild(s)}}})(),(()=>{n.r=t=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}})(),(()=>{n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t)})(),(()=>{n.p=""})(),(()=>{if("undefined"!==typeof document){var t=(t,e,n,i,o)=>{var r=document.createElement("link");r.rel="stylesheet",r.type="text/css";var a=n=>{if(r.onerror=r.onload=null,"load"===n.type)i();else{var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.href||e,c=new Error("Loading CSS chunk "+t+" failed.\n("+s+")");c.code="CSS_CHUNK_LOAD_FAILED",c.type=a,c.request=s,r.parentNode&&r.parentNode.removeChild(r),o(c)}};return r.onerror=r.onload=a,r.href=e,n?n.parentNode.insertBefore(r,n.nextSibling):document.head.appendChild(r),r},e=(t,e)=>{for(var n=document.getElementsByTagName("link"),i=0;inew Promise(((o,r)=>{var a=n.miniCssF(i),s=n.p+a;if(e(a,s))return o();t(i,s,null,o,r)})),o={143:0};n.f.miniCss=(t,e)=>{var n={42:1,53:1,59:1,64:1,107:1,146:1,229:1,276:1,292:1,376:1,392:1,425:1,430:1,441:1,443:1,494:1,500:1,519:1,541:1,552:1,607:1,646:1,686:1,767:1,777:1,850:1,982:1};o[t]?e.push(o[t]):0!==o[t]&&n[t]&&e.push(o[t]=i(t).then((()=>{o[t]=0}),(e=>{throw delete o[t],e})))}}})(),(()=>{var t={143:0};n.f.j=(e,i)=>{var o=n.o(t,e)?t[e]:void 0;if(0!==o)if(o)i.push(o[2]);else{var r=new Promise(((n,i)=>o=t[e]=[n,i]));i.push(o[2]=r);var a=n.p+n.u(e),s=new Error,c=i=>{if(n.o(t,e)&&(o=t[e],0!==o&&(t[e]=void 0),o)){var r=i&&("load"===i.type?"missing":i.type),a=i&&i.target&&i.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+a+")",s.name="ChunkLoadError",s.type=r,s.request=a,o[1](s)}};n.l(a,c,"chunk-"+e,e)}},n.O.j=e=>0===t[e];var e=(e,i)=>{var o,r,[a,s,c]=i,u=0;if(a.some((e=>0!==t[e]))){for(o in s)n.o(s,o)&&(n.m[o]=s[o]);if(c)var l=c(n)}for(e&&e(i);un(33300)));i=n.O(i)})(); \ No newline at end of file diff --git a/agile-portal/agile-portal-gateway/src/test/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginServiceTest.java b/agile-portal/agile-portal-gateway/src/test/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginServiceTest.java index 682f9b48..88fd7b80 100644 --- a/agile-portal/agile-portal-gateway/src/test/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginServiceTest.java +++ b/agile-portal/agile-portal-gateway/src/test/java/com/jiuyv/sptccc/agile/framework/web/service/SysLoginServiceTest.java @@ -283,6 +283,10 @@ class SysLoginServiceTest { @Test void changePassword() { ResUserPasswordDTO userPasswordDTO = mock(ResUserPasswordDTO.class); + when(userPasswordDTO.getPassword()).thenReturn("a"); + when(userPasswordDTO.getOldPassword()).thenReturn("a"); + when(secretService.decodePassword("a")).thenReturn("A"); + when(secretService.decodePassword("b")).thenReturn("B"); LoginUser loginUser = mock(LoginUser.class); securityUtilsMockedStatic.when(SecurityUtils::getLoginUser).thenReturn(loginUser); TblPortalUser portalUser = mock(TblPortalUser.class); @@ -304,6 +308,14 @@ class SysLoginServiceTest { assertTrue(e instanceof ServiceException); } + when(userPasswordDTO.getOldPassword()).thenReturn("b"); + try { + sysLoginService.changePassword(userPasswordDTO); + fail(); + } catch (Exception e) { + assertTrue(e instanceof ServiceException); + } + when(userService.resetUserPwd(userPasswordDTO)).thenReturn(R.ok()); servletUtilsMockedStatic.when(ServletUtils::getSession).thenReturn(mock(HttpSession.class)); try { diff --git a/agile-portal/agile-portal-gw/pom.xml b/agile-portal/agile-portal-gw/pom.xml index 276b475e..155249cb 100644 --- a/agile-portal/agile-portal-gw/pom.xml +++ b/agile-portal/agile-portal-gw/pom.xml @@ -3,7 +3,7 @@ agile-portal com.jiuyv.sptcc.agile - 0.2.6-SNAPSHOT + 0.2.8-SNAPSHOT 4.0.0 diff --git a/agile-portal/agile-portal-service/pom.xml b/agile-portal/agile-portal-service/pom.xml index 4c416b87..3ff712e0 100644 --- a/agile-portal/agile-portal-service/pom.xml +++ b/agile-portal/agile-portal-service/pom.xml @@ -3,7 +3,7 @@ com.jiuyv.sptcc.agile agile-portal - 0.2.6-SNAPSHOT + 0.2.8-SNAPSHOT agile-portal-service diff --git a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/framework/config/ConsoleProperties.java b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/framework/config/ConsoleProperties.java index b1e43db3..a1eff5f3 100644 --- a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/framework/config/ConsoleProperties.java +++ b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/framework/config/ConsoleProperties.java @@ -25,7 +25,7 @@ public class ConsoleProperties { /** * 文档下载文件名 */ - private String wordFileName = "word.docx"; + private String wordFileName = "LaboratoryOperationsManual.pdf"; /** * sdk下载文件名 @@ -43,6 +43,16 @@ public class ConsoleProperties { */ private long downloadMaxFile = 100L; + /** + * 密码过期时间,默认1年 + */ + private int passwordExpirationDates = 365; + + /** + * 密码快过期时间提醒,默认提前15天 + */ + private int passwordExpirationWarnDates = 15; + public boolean isAddressEnabled() { return addressEnabled; @@ -91,4 +101,20 @@ public class ConsoleProperties { public void setDownloadMaxFile(long downloadMaxFile) { this.downloadMaxFile = downloadMaxFile; } + + public int getPasswordExpirationDates() { + return passwordExpirationDates; + } + + public void setPasswordExpirationDates(int passwordExpirationDates) { + this.passwordExpirationDates = passwordExpirationDates; + } + + public int getPasswordExpirationWarnDates() { + return passwordExpirationWarnDates; + } + + public void setPasswordExpirationWarnDates(int passwordExpirationWarnDates) { + this.passwordExpirationWarnDates = passwordExpirationWarnDates; + } } diff --git a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/controller/PortalUserController.java b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/controller/PortalUserController.java index 3c67417e..12d7b900 100644 --- a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/controller/PortalUserController.java +++ b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/controller/PortalUserController.java @@ -7,13 +7,15 @@ import com.jiuyv.sptccc.agile.common.core.domain.R; import com.jiuyv.sptccc.agile.common.enums.BusinessType; import com.jiuyv.sptccc.agile.dto.PortalUserDTO; import com.jiuyv.sptccc.agile.dto.ResUserPasswordDTO; +import com.jiuyv.sptccc.agile.framework.config.ConsoleProperties; +import com.jiuyv.sptccc.agile.portal.domain.TblPortalUser; +import com.jiuyv.sptccc.agile.portal.service.IPortalUserService; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.jiuyv.sptccc.agile.portal.domain.TblPortalUser; -import com.jiuyv.sptccc.agile.portal.service.IPortalUserService; +import java.util.Date; import static com.jiuyv.sptccc.agile.api.PortalUserFeignApi.API_PATH_PREFIX; @@ -28,9 +30,11 @@ import static com.jiuyv.sptccc.agile.api.PortalUserFeignApi.API_PATH_PREFIX; public class PortalUserController implements PortalUserFeignApi { private final IPortalUserService userService; + private final ConsoleProperties consoleProperties; - public PortalUserController(IPortalUserService userService) { + public PortalUserController(IPortalUserService userService, ConsoleProperties consoleProperties) { this.userService = userService; + this.consoleProperties = consoleProperties; } /** @@ -49,6 +53,13 @@ public class PortalUserController implements PortalUserFeignApi { String[] split = avatar.split("/"); userDTO.setAvatar("content/images/" + split[split.length - 1]); } + // 计算密码过期时间 + Date pwdUpdateTime = user.getPwdUpdateTime(); + long diff = consoleProperties.getPasswordExpirationDates() + - (System.currentTimeMillis() - pwdUpdateTime.getTime()) / 1000 / 60 / 60 / 24; + if (diff <= consoleProperties.getPasswordExpirationWarnDates()) { + userDTO.setPwdRemainderDate((int) diff); + } return R.ok(userDTO); } diff --git a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java index 3ff3e5ef..fd90a26f 100644 --- a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java +++ b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/domain/TblPortalUser.java @@ -173,6 +173,11 @@ public class TblPortalUser extends BaseEntity { */ private String firstFlag; + /** + * 密码更新时间 + */ + private Date pwdUpdateTime; + /** * Get用户id @@ -615,4 +620,12 @@ public class TblPortalUser extends BaseEntity { public void setFirstFlag(String firstFlag) { this.firstFlag = firstFlag; } + + public Date getPwdUpdateTime() { + return pwdUpdateTime; + } + + public void setPwdUpdateTime(Date pwdUpdateTime) { + this.pwdUpdateTime = pwdUpdateTime; + } } \ No newline at end of file diff --git a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/FileServiceImpl.java b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/FileServiceImpl.java index 883554b6..2957d3bc 100644 --- a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/FileServiceImpl.java +++ b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/FileServiceImpl.java @@ -38,7 +38,7 @@ import java.util.stream.Collectors; @Service public class FileServiceImpl extends AbstractSftpFileService implements IFileService { private static final Logger LOGGER = LoggerFactory.getLogger(FileServiceImpl.class); - private static final List ALLOW_IMAGE_EXT = Arrays.asList("bmp", "gif", "jpg", "jpeg", "png"); + private static final List ALLOW_IMAGE_EXT = Arrays.asList("bmp", "gif", "jpg", "jpeg", "png", "BMP", "GIF", "JPG", "JPEG", "PNG"); private static final List ALLOW_PYTHON_EXT = Arrays.asList("zip", "tar", "gz", "bz2"); private static final List ALLOW_DATA_EXT = Arrays.asList("zip", "tar", "gz", "csv", "txt", "xls", "xlsx"); diff --git a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImpl.java b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImpl.java index 2a739e3f..6d15763a 100644 --- a/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImpl.java +++ b/agile-portal/agile-portal-service/src/main/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImpl.java @@ -23,7 +23,7 @@ import java.util.regex.Pattern; @Service public class PortalContentServiceImpl implements IPortalContentService { private static final Logger LOGGER = LoggerFactory.getLogger(PortalContentServiceImpl.class); - private static final Pattern IMG_P = Pattern.compile("/?images/console/[a-fA-F0-9]+\\.(jpg|jpeg|png|gif|bmp|tiff|tif|webp|svg|ico)"); + private static final Pattern IMG_P = Pattern.compile("(?i)/?images/console/[a-f0-9]+\\.(jpg|jpeg|png|gif|bmp|tiff|tif|webp|svg|ico)"); private final PortalContentMapper portalContentMapper; private final IFileService fileService; diff --git a/agile-portal/agile-portal-service/src/main/resources/mapper/portal/TblPortalUserMapper.xml b/agile-portal/agile-portal-service/src/main/resources/mapper/portal/TblPortalUserMapper.xml index 857ede01..01341785 100644 --- a/agile-portal/agile-portal-service/src/main/resources/mapper/portal/TblPortalUserMapper.xml +++ b/agile-portal/agile-portal-service/src/main/resources/mapper/portal/TblPortalUserMapper.xml @@ -34,6 +34,7 @@ + @@ -63,7 +64,8 @@ u.social_credit_code, u.enterprise_industry, u.enterprise_address, - u.first_flag + u.first_flag, + u.pwd_update_time from tbl_portal_user u @@ -118,7 +120,9 @@ update tbl_portal_user set version_num = version_num + 1, password= #{password}, - first_flag='1' + first_flag='1', + update_time = now(), + pwd_update_time = now() where user_id = #{userId} \ No newline at end of file diff --git a/agile-portal/agile-portal-service/src/test/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImplTest.java b/agile-portal/agile-portal-service/src/test/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImplTest.java index 845ff6aa..272c6169 100644 --- a/agile-portal/agile-portal-service/src/test/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImplTest.java +++ b/agile-portal/agile-portal-service/src/test/java/com/jiuyv/sptccc/agile/portal/service/impl/PortalContentServiceImplTest.java @@ -2,6 +2,7 @@ package com.jiuyv.sptccc.agile.portal.service.impl; import com.github.pagehelper.Page; import com.jiuyv.sptccc.agile.common.exception.ServiceException; +import com.jiuyv.sptccc.agile.framework.config.ConsoleProperties; import com.jiuyv.sptccc.agile.portal.domain.TblPortalContent; import com.jiuyv.sptccc.agile.portal.mapper.PortalContentMapper; import com.jiuyv.sptccc.agile.portal.service.IFileService; @@ -35,6 +36,9 @@ class PortalContentServiceImplTest { @Mock private IFileService fileService; + @Mock + private ConsoleProperties consoleProperties; + @Test void getContentList() { String showType = "1"; diff --git a/agile-portal/agile-portal-ui/dist/index.html b/agile-portal/agile-portal-ui/dist/index.html index caae753c..0ececb34 100644 --- a/agile-portal/agile-portal-ui/dist/index.html +++ b/agile-portal/agile-portal-ui/dist/index.html @@ -1 +1 @@ -久事大数据开放平台We're sorry but 久事大数据开放平台 doesn't work properly without JavaScript enabled. Please enable it to continue. \ No newline at end of file +久事大数据开放平台We're sorry but 久事大数据开放平台 doesn't work properly without JavaScript enabled. Please enable it to continue. \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/css/146.ed8bf707.css b/agile-portal/agile-portal-ui/dist/static/css/146.ed8bf707.css deleted file mode 100644 index cfa2d884..00000000 --- a/agile-portal/agile-portal-ui/dist/static/css/146.ed8bf707.css +++ /dev/null @@ -1 +0,0 @@ -.personal-info .el-form-item__label{text-align:left!important;font-size:16px!important}.personal-info .el-form-item__content{font-size:16px!important}.personal-info .el-form-item{margin-bottom:0}.personal-info[data-v-5e8b44ac]{padding-top:20px;font-size:16px}.personal-info .el-icon-success[data-v-5e8b44ac]{margin-right:6px;color:#6cbd7f}.personal-info .change-pwd-link[data-v-5e8b44ac]{margin-left:15px;color:#3165db} \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/css/229.6db25fd6.css b/agile-portal/agile-portal-ui/dist/static/css/229.6db25fd6.css deleted file mode 100644 index b7d84bed..00000000 --- a/agile-portal/agile-portal-ui/dist/static/css/229.6db25fd6.css +++ /dev/null @@ -1 +0,0 @@ -.lab-apply .top-filter[data-v-de1afecc]{margin-top:24px}.lab-apply .tale-list[data-v-de1afecc] .el-table th.el-table__cell{color:#333;background:#fafafa;padding:5px 0;font-size:16px}.lab-apply .tale-list[data-v-de1afecc] .el-table .cell.el-tooltip{font-size:16px}.lab-apply .tale-list .review-status[data-v-de1afecc]{display:flex;align-items:center}.lab-apply .tale-list .review-status .icon-circle[data-v-de1afecc]{width:6px;height:6px;border-radius:3px;margin-right:8px;background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.grey[data-v-de1afecc]{background:#d9d9d9}.lab-apply .tale-list .review-status .icon-circle.orange[data-v-de1afecc]{background:#ffd859}.lab-apply .tale-list .review-status .icon-circle.green[data-v-de1afecc]{background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.red[data-v-de1afecc]{background:#ff4d4f}.lab-apply[data-v-de1afecc] .el-pagination{text-align:right} \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/css/42.ebac482c.css b/agile-portal/agile-portal-ui/dist/static/css/42.ebac482c.css deleted file mode 100644 index 6016f349..00000000 --- a/agile-portal/agile-portal-ui/dist/static/css/42.ebac482c.css +++ /dev/null @@ -1 +0,0 @@ -.find-password[data-v-2725d968]{width:100%;min-height:500px;background:#fff}.find-password[data-v-2725d968] .el-step__title{text-align:center}.find-password .title[data-v-2725d968]{padding:40px 20px;text-align:center;font-size:26px;line-height:40px;font-weight:400}.find-password .el-form[data-v-2725d968]{width:382px;margin:60px auto 20px auto}.find-password .procees-contaner[data-v-2725d968]{width:700px;padding:60px 200px;margin:0 auto 50px auto;background:#fff}.divClass[data-v-2725d968]{width:100%;height:10px;margin:5px 0}.divClass span[data-v-2725d968]{float:left;background:#ccc;height:10px;width:31%;margin:0 1%}.divClass .weak[data-v-2725d968]{background-color:#f56c6c}.divClass .medium[data-v-2725d968]{background-color:#e6a23c}.divClass .strong[data-v-2725d968]{background-color:#67c23a} \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/css/53.44b85bba.css b/agile-portal/agile-portal-ui/dist/static/css/53.44b85bba.css deleted file mode 100644 index 5082a337..00000000 --- a/agile-portal/agile-portal-ui/dist/static/css/53.44b85bba.css +++ /dev/null @@ -1 +0,0 @@ -.inner-container[data-v-351a2db2]{margin:20px auto;background:#fff}.routerList[data-v-351a2db2]{background:#ecf5ff;height:100vh;border-radius:10px 10px 0 0}.routerList h2[data-v-351a2db2]{text-align:center;font-size:24px;background:#e6171e;color:#fff;line-height:45px;border-radius:10px 10px 0 0}.routerList ul[data-v-351a2db2]{line-height:45px;padding:20px 0}.routerList ul li[data-v-351a2db2]{font-size:18px;font-weight:600;padding:0 20px}.routerList ul li.on[data-v-351a2db2]{background:#fff;border-left:5px solid #e6171e}.routerList ul li.on a[data-v-351a2db2]{color:#e6171e}.api-list-container[data-v-351a2db2]{background:#f9f9f9}.api-list-container .guide-pic[data-v-351a2db2]{background:url(../../static/img/data-service.82b45c45.jpg) no-repeat top;background-size:100%}.api-list-container .api-list ul[data-v-351a2db2]{width:100%;align-items:flex-start;flex-wrap:wrap;justify-content:space-between;padding-top:30px;overflow:hidden}.api-list-container .api-list ul li[data-v-351a2db2]{padding:15px;margin-bottom:50px;box-sizing:border-box;width:32%;height:296px;background:#fff;box-shadow:0 0 6px 0 rgba(217,225,238,.47);border-radius:2px;transition-property:box-shadow transform;transition-duration:.25s,1s;float:left;margin-left:1%;cursor:pointer;border:2px solid #409eff}.api-list-container .api-list ul li[data-v-351a2db2]:hover{transform:translateY(-10px);box-shadow:0 0 16px 0 rgba(217,225,238,.47);background:linear-gradient(180deg,#2980b9,#87ceeb);border:2px solid #adb5bd}.api-list-container .api-list ul li:hover .aip-intro[data-v-351a2db2],.api-list-container .api-list ul li:hover .api-info .others b[data-v-351a2db2],.api-list-container .api-list ul li:hover .api-info[data-v-351a2db2],.api-list-container .api-list ul li:hover .api-name[data-v-351a2db2]{color:#fff}.api-list-container .api-list ul li .api-name[data-v-351a2db2]{font-size:18px;color:#181818;font-weight:700;line-height:18px;height:18px;margin-bottom:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.api-list-container .api-list ul li .aip-intro[data-v-351a2db2]{height:120px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;color:#666;line-height:24px;margin-bottom:20px;font-size:14px}.api-list-container .api-list ul li .api-info[data-v-351a2db2]{padding:20px 0;color:#ababab;font-size:14px;border-top:1px solid #d8d8d8}.api-list-container .api-list ul li .api-info .others[data-v-351a2db2]{display:flex;justify-content:space-between}.api-list-container .api-list ul li .api-info .others b[data-v-351a2db2]{font-weight:400;font-size:12px;color:#5274ca;line-height:1;padding:4px 5px;border-radius:2px;border:1px solid #5274ca}.api-list-container .api-list ul li .api-info .data-from[data-v-351a2db2]{padding-bottom:15px}.api-list-container .api-list .pagination-container[data-v-351a2db2]{background:transparent}.api-list-container .api-list[data-v-351a2db2] .el-pagination{text-align:center} \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/css/777.fe9e1eb2.css b/agile-portal/agile-portal-ui/dist/static/css/777.fe9e1eb2.css deleted file mode 100644 index e9fb057d..00000000 --- a/agile-portal/agile-portal-ui/dist/static/css/777.fe9e1eb2.css +++ /dev/null @@ -1 +0,0 @@ -.el-table--scrollable-x .el-table__body-wrapper{height:355px}.lab-apply .top-filter[data-v-b3b3944e]{margin-top:24px}.lab-apply .tale-list[data-v-b3b3944e] .el-table th.el-table__cell{color:#333;background:#fafafa;padding:5px 0;font-size:16px}.lab-apply .tale-list[data-v-b3b3944e] .el-table .cell.el-tooltip{font-size:16px}.lab-apply .tale-list .review-status[data-v-b3b3944e]{display:flex;align-items:center}.lab-apply .tale-list .review-status .icon-circle[data-v-b3b3944e]{width:6px;height:6px;border-radius:3px;margin-right:8px;background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.grey[data-v-b3b3944e]{background:#d9d9d9}.lab-apply .tale-list .review-status .icon-circle.orange[data-v-b3b3944e]{background:#ffd859}.lab-apply .tale-list .review-status .icon-circle.green[data-v-b3b3944e]{background:#52c41a}.lab-apply .tale-list .review-status .icon-circle.red[data-v-b3b3944e]{background:#ff4d4f}.lab-apply[data-v-b3b3944e] .el-pagination,[data-v-b3b3944e] .el-pagination{text-align:right}[data-v-b3b3944e] .el-dialog__body{padding:10px}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{border-radius:7px;background-color:rgba(0,0,0,.25)}::-webkit-scrollbar-track{background-color:#f6f6f6}::-webkit-scrollbar-thumb,::-webkit-scrollbar-track{border:0} \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/js/146.36cf8861.js b/agile-portal/agile-portal-ui/dist/static/js/146.36cf8861.js deleted file mode 100644 index 1cb5e8da..00000000 --- a/agile-portal/agile-portal-ui/dist/static/js/146.36cf8861.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[146],{53146:(t,e,s)=>{s.r(e),s.d(e,{default:()=>c});var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"personal-info"},[e("el-form",{ref:"form1",attrs:{model:t.form,"label-width":"140px",align:"left"}},[e("el-row",[e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{align:"left",label:"用户名"}},[e("span",[t._v(t._s(t.form.userName))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"手机号"}},[e("span",[t._v(t._s(t.form.phonenumber))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"状态"}},["0"==t.form.status?e("span",{staticStyle:{color:"#6CBD7F"}},[t._v("正常")]):e("span",{staticStyle:{color:"red"}},[t._v("停用")])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"企业名"}},[e("span",[t._v(t._s(t.form.enterpriseName))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"社会统一信用代码"}},[e("span",[t._v(t._s(t.form.socialCreditCode))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"行业类型"}},[e("span",[t._v(t._s(t.form.industryCategory))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"地址"}},[e("span",[t._v(t._s(t.form.enterpriseAddress))])])],1),e("el-col",{attrs:{span:24}},[e("el-form-item",{attrs:{label:"登录密码"}},[e("i",{staticClass:"icon el-icon-success"}),e("span",[t._v("已设置")]),e("router-link",{staticClass:"change-pwd-link",attrs:{to:"/resetpwd"}},[t._v("更改密码")])],1)],1)],1)],1)],1)},r=[],l=s(12223);const o={name:"UserInfo",data:function(){return{form:{}}},created:function(){this.getUserInfo()},methods:{getUserInfo:function(){var t=this;(0,l.C5)().then((function(e){t.form=e.data,"0"==t.form.firstFlag&&t.$router.push("/resetpwd")["catch"]((function(){}))}))}}},n=o;var f=s(1001),i=(0,f.Z)(n,a,r,!1,null,"5e8b44ac",null);const c=i.exports}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/js/229.c90319c4.js b/agile-portal/agile-portal-ui/dist/static/js/229.c90319c4.js deleted file mode 100644 index bf7f6ed1..00000000 --- a/agile-portal/agile-portal-ui/dist/static/js/229.c90319c4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[229],{87229:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});var l=function(){var e=this,t=e._self._c;return t("div",{staticClass:"lab-apply"},[t("div",{staticClass:"btn-group",staticStyle:{"text-align":"right","margin-bottom":"10px"}},[t("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.handleImport}},[e._v("新增")])],1),t("div",{staticClass:"tale-list"},[t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{"min-height":"355px","max-height":"500px"},attrs:{stripe:"",data:e.myLablyList,"max-height":"500px"}},[t("div",{staticStyle:{"text-align":"left"},attrs:{slot:"empty"},slot:"empty"},[t("el-empty",{attrs:{description:"暂无数据"}})],1),t("el-table-column",{attrs:{align:"center",label:"文件名称",prop:"fileName","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"上传时间",prop:"createTime","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"文件大小",prop:"fileSize","show-overflow-tooltip":!0},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s(e.convertFileSize(a.row.fileSize)))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"文件说明",prop:"remarks","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"文件类型",prop:"fileType","show-overflow-tooltip":!0},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s("data"==a.row.fileType?"数据文件":"python组件"))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function(a){return["01"!=a.row.reviewStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.handleDelete(a.row)}}},[e._v("删除")]):e._e()]}}])})],1)],1),t("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryParams.pageNum,limit:e.queryParams.pageSize},on:{"update:page":function(t){return e.$set(e.queryParams,"pageNum",t)},"update:limit":function(t){return e.$set(e.queryParams,"pageSize",t)},pagination:e.getList}}),t("el-dialog",{attrs:{title:e.upload.title,visible:e.upload.open,width:"500px","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){return e.$set(e.upload,"open",t)}}},[t("el-form",{ref:"uploadform",attrs:{model:e.upload,rules:e.uploadrules,"label-width":"80px"}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"组件类型",prop:"upData.fileType"}},[t("el-select",{attrs:{placeholder:"请选择组件类型"},on:{change:e.fileTypefn},model:{value:e.upload.upData.fileType,callback:function(t){e.$set(e.upload.upData,"fileType",t)},expression:"upload.upData.fileType"}},e._l(e.fileTypeList,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1)],1),t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"内容说明",prop:"upData.remarks"}},[t("el-input",{attrs:{type:"textarea",placeholder:"请输入内容说明"},model:{value:e.upload.upData.remarks,callback:function(t){e.$set(e.upload.upData,"remarks",t)},expression:"upload.upData.remarks"}})],1)],1)],1)],1),t("el-upload",{ref:"upload",staticStyle:{"text-align":"center"},attrs:{limit:1,accept:e.upload.accept,headers:e.upload.headers,action:"",disabled:e.upload.isUploading,"on-change":e.beforeUpload,"on-success":e.handleFileSuccess,"auto-upload":!1,"http-request":e.uploadSectionFile,"on-remove":e.removeFile,drag:""}},[t("i",{staticClass:"el-icon-upload"}),t("div",{staticClass:"el-upload__text"},[e._v("将文件拖到此处,或"),t("em",[e._v("点击上传")])])]),t("div",{staticClass:"dialog-footer",staticStyle:{"text-align":"right"},attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:e.submitFileForm}},[e._v("确 定")]),t("el-button",{on:{click:function(t){e.upload.open=!1}}},[e._v("取 消")])],1)],1)],1)},o=[],r=(a(9653),a(56977),a(68309),a(94986),a(82772),a(32900));const i={name:"MyData",data:function(){return{loading:!0,total:0,myLablyList:[],fileTypeList:[{value:"python",label:"python组件"},{value:"data",label:"数据文件"}],upload:{open:!1,title:"",isUploading:!1,updateSupport:0,accept:".zip,.tar,.gz,.bz2",upData:{fileType:"python",fileSourceType:"dockerlib"}},queryParams:{pageNum:1,pageSize:10},formdata:null,uploadrules:{upData:{fileType:[{required:!0,message:"不能为空",trigger:"blur"}],remarks:[{required:!0,message:"不能为空",trigger:"blur"}]}}}},created:function(){this.getList()},methods:{getList:function(){var e=this;(0,r.Hc)(this.queryParams).then((function(t){e.myLablyList=t.rows,e.total=t.total,e.loading=!1}))},handleImport:function(){this.upload.title="用户导入",this.upload.open=!0},fileTypefn:function(e){"python"==e?this.upload.accept=".zip,.tar,.gz,.bz2":"data"==e&&(this.upload.accept=".zip,.tar,.gz,.csv,.txt,.xls,.xlsx")},convertFileSize:function(e){if(void 0!=e){var t=Number(e)/1024,a=t/1024,l=a/1024;return l>=1?l.toFixed(2)+" GB":a>=1?a.toFixed(2)+" MB":t>=1?t.toFixed(2)+" KB":Number(e).toFixed(2)+" B"}},removeFile:function(e,t){this.$refs.upload.clearFiles()},beforeUpload:function(e){var t=104857600;if(e&&e.size>t)return alert("文件大小超过限制,请选择小于100MB的文件。"),void this.$refs.upload.clearFiles();var a,l=e.name.substring(e.name.lastIndexOf(".")+1);return"python"==this.upload.upData.fileType?a=["zip","tar","gz","bz2"]:"data"==this.upload.upData.fileType&&(a=["zip","tar","gz","csv","txt","xls","xlsx"]),-1===a.indexOf(l)?(this.$modal.msgWarning("上传文件只能是"+this.upload.accept+"格式"),!1):void 0},uploadSectionFile:function(e){var t=e.file,a=new FormData;a.append("file",t),a.append("fileType",this.upload.upData.fileType),a.append("fileSourceType",this.upload.upData.fileSourceType),a.append("remarks",this.upload.upData.remarks),this.formdata=a,(0,r.cT)(this.formdata).then((function(t){e.onSuccess(t)}))["catch"]((function(e){e.err}))},handleFileSuccess:function(e,t,a){200==e.code&&(this.upload.open=!1,this.$refs.upload.clearFiles(),this.getList())},submitFileForm:function(){var e=this;this.$refs["uploadform"].validate((function(t){t&&e.$refs.upload.submit()}))},handleDelete:function(e){var t=this,a=e.fileId;this.$confirm("确认要删除这条信息吗?").then((function(){return(0,r._I)(a)})).then((function(){t.$message({type:"success",message:"删除成功!"}),t.getList()}))["catch"]((function(){}))}}},n=i;var s=a(1001),u=(0,s.Z)(n,l,o,!1,null,"de1afecc",null);const p=u.exports},32900:(e,t,a)=>{a.d(t,{Cp:()=>Z,F7:()=>k,Hc:()=>v,Ht:()=>s,JE:()=>g,W1:()=>m,WG:()=>i,_I:()=>w,aX:()=>o,bL:()=>_,c0:()=>L,cT:()=>x,d5:()=>r,e_:()=>h,en:()=>u,fR:()=>n,in:()=>S,jr:()=>b,oK:()=>f,qS:()=>d,rK:()=>y,uN:()=>c,ur:()=>p});var l=a(73821);function o(e){return(0,l.Z)({url:"/myApply/laboratoryList",method:"get",params:e})}function r(e){return(0,l.Z)({url:"/myApply/laboratoryDetail?reviewId="+e,method:"get"})}function i(e){return(0,l.Z)({url:"/myApply/exportList",method:"get",params:e})}function n(e){return(0,l.Z)({url:"/myApply/download",method:"get",params:e})}function s(e){return(0,l.Z)({url:"/myLab/list",method:"get",params:e})}function u(e){return(0,l.Z)({url:"/myLab/info?applyId="+e,method:"get"})}function p(e){return(0,l.Z)({url:"/myLab/restart",method:"post",data:e})}function d(e){return(0,l.Z)({url:"/myLab/dataInjection",method:"post",data:e})}function c(e){return(0,l.Z)({url:"/myLab/fileList?applyId="+e,method:"get"})}function m(e){return(0,l.Z)({url:"/myLab/applyDown",method:"post",data:e})}function f(e){return(0,l.Z)({url:"/api/userApiList",method:"get",params:e})}function h(e){return(0,l.Z)({url:"/api/userApiStatisticsList",method:"get",params:e})}function y(e){return(0,l.Z)({url:"/myMessage/page",method:"get",params:e})}function g(e){return(0,l.Z)({url:"/myMessage/detail?msgId="+e,method:"post"})}function b(e){return(0,l.Z)({url:"myMessage/markRead",method:"post",data:e})}function v(e){return(0,l.Z)({url:"/myResources/list",method:"get",params:e})}function x(e){return(0,l.Z)({url:"/myResources/uploadFile",method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})}function w(e){return(0,l.Z)({url:"/myResources/delete?fileId="+e,method:"delete"})}function S(e){return(0,l.Z)({url:"/rePwd/getPhoneByUser?username="+e,method:"get"})}function _(){return(0,l.Z)({url:"/rePwd/sendPhoneCode",method:"get"})}function k(e){return(0,l.Z)({url:"/rePwd/verifyPhoneCode?phoneCode="+e,method:"get"})}function L(e){return(0,l.Z)({url:"/rePwd/reset",method:"post",data:e})}function Z(e){return(0,l.Z)({url:"/changePassword",method:"post",data:e})}}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/js/42.ea3940b3.js b/agile-portal/agile-portal-ui/dist/static/js/42.ea3940b3.js deleted file mode 100644 index 07a3253b..00000000 --- a/agile-portal/agile-portal-ui/dist/static/js/42.ea3940b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[42],{59042:(t,e,s)=>{s.r(e),s.d(e,{default:()=>c});var r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"find-password container"},[e("h3",{staticClass:"title"},[t._v("修改密码"),"0"==t.firstFlag?e("span",{staticStyle:{"text-align":"center",padding:"10px",color:"red"}},[t._v("(初次登陆需修改初始密码)")]):t._e()]),e("el-card",{staticClass:"procees-contaner"},[e("el-steps",{attrs:{active:t.processActive,"align-center":""}},[e("el-step",{attrs:{title:"设置新密码",description:""}}),e("el-step",{attrs:{title:"完成",description:""}})],1),1==t.processActive?e("el-form",{ref:"form",attrs:{rules:t.rules,model:t.form,"label-width":"100px"}},[e("el-form-item",{attrs:{label:"原密码",prop:"oldPassword"}},[e("el-input",{attrs:{type:"password"},model:{value:t.form.oldPassword,callback:function(e){t.$set(t.form,"oldPassword",e)},expression:"form.oldPassword"}})],1),e("el-form-item",{attrs:{label:"新密码",prop:"password"}},[e("el-input",{attrs:{type:t.flagType,"auto-complete":"off",placeholder:""},on:{input:t.strengthColor},model:{value:t.form.password,callback:function(e){t.$set(t.form,"password",e)},expression:"form.password"}},[e("i",{staticClass:"el-input__icon el-icon-view",staticStyle:{cursor:"pointer"},attrs:{slot:"suffix"},on:{click:function(e){return t.getFlageye()}},slot:"suffix"})]),e("div",{staticClass:"divClass"},[e("span",{class:"1"==t.passwords?"weak":"2"==t.passwords?"medium":"3"==t.passwords?"strong":""}),e("span",{class:"2"==t.passwords?"medium":"3"==t.passwords?"strong":""}),e("span",{class:"3"==t.passwords?"strong":""})])],1),e("el-form-item",{attrs:{label:"确认密码",prop:"passwords"}},[e("el-input",{attrs:{type:"password"},model:{value:t.form.passwords,callback:function(e){t.$set(t.form,"passwords",e)},expression:"form.passwords"}})],1),e("el-form-item",{attrs:{label:""}},[e("el-button",{attrs:{type:"primary"},on:{click:t.handleAuthon}},[t._v(" 提交")])],1)],1):t._e(),2==t.processActive?e("el-form",{ref:"form",attrs:{model:t.form,"label-width":"0px"}},[e("el-form-item",{attrs:{label:""}},[e("div",{staticClass:"success-tips",staticStyle:{color:"#1ae51ad1","font-size":"24px","font-weight":"600","text-align":"center"}},[e("i",{staticClass:"icon el-icon-success"}),t._v(" 修改成功")]),e("div",{staticClass:"go-back",staticStyle:{"text-align":"center"}},[e("span",{staticStyle:{color:"red","font-size":"18px","font-weight":"bold"}},[t._v(t._s(t.remainingTime))]),t._v("秒后 "),e("span",[t._v("自动返回登录页")])]),e("div",{staticClass:"btn-back",staticStyle:{"text-align":"center"}},[e("el-button",{attrs:{type:"primary"},on:{click:t.logout}},[t._v("重新登录")])],1)])],1):t._e()],1)],1)},o=[],a=(s(47941),s(83710),s(32564),s(32900)),n=s(12223),i=s(41051);const l={name:"ResetPwd",data:function(){return{isShowMenu:!1,passwords:"1",flagType:"password",processActive:1,form:{oldPassword:"",password:"",passwords:""},firstFlag:"",remainingTime:5,keyiv:"",countDown:10,rules:{oldPassword:[{required:!0,message:"原密码不能为空",trigger:"blur"}],password:[{required:!0,message:"密码不能为空",trigger:"blur"},{pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/,message:"密码须包含数字、大小写字母且长度在8-16之间",trigger:"blur"}],passwords:[{required:!0,message:"密码不能为空",trigger:"blur"},{pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/,message:"密码须包含数字、大小写字母且长度在8-16之间",trigger:"blur"}]}}},created:function(){var t=localStorage.getItem("myData");if(t){var e=JSON.parse(t);this.firstFlag=e.firstFlag}this.getKeyiv()},methods:{getFlageye:function(){this.flagType="password"==this.flagType?"text":"password"},strengthColor:function(){this.form.password.length<=6?this.passwords="1":this.form.password.length<=10?this.passwords="2":this.passwords="3"},getKeyiv:function(){var t=this;(0,n.Z6)().then((function(e){t.keyiv=e.data}))},logout:function(){var t=this;this.$store.dispatch("LogOut").then((function(){t.$router.push("/login")}))},handleAuthon:function(){var t=this;this.form.password==this.form.passwords?this.$refs["form"].validate((function(e){e&&(t.form.passwords="",t.form.oldPassword=(0,i.H)(t.keyiv,t.form.oldPassword+","+(new Date).getTime()),t.form.password=(0,i.H)(t.keyiv,t.form.password+","+(new Date).getTime()),(0,a.Cp)(t.form).then((function(e){t.processActive++,t.countdownInterval=setInterval((function(){console.log("倒计时结束"),t.remainingTime>0?t.remainingTime--:clearInterval(t.countdownInterval),t.$store.dispatch("LogOut").then((function(){t.$router.push("/login")}))}),1e3)})))})):this.$message({type:"warning",message:"新密码与确认密码不一致!"})}},beforeDestroy:function(){clearTimeout(this.countdownInterval)}},d=l;var u=s(1001),p=(0,u.Z)(d,r,o,!1,null,"2725d968",null);const c=p.exports},32900:(t,e,s)=>{s.d(e,{Cp:()=>P,F7:()=>k,Hc:()=>v,Ht:()=>l,JE:()=>w,W1:()=>m,WG:()=>n,_I:()=>Z,aX:()=>o,bL:()=>C,c0:()=>x,cT:()=>b,d5:()=>a,e_:()=>g,en:()=>d,fR:()=>i,in:()=>_,jr:()=>y,oK:()=>f,qS:()=>p,rK:()=>h,uN:()=>c,ur:()=>u});var r=s(73821);function o(t){return(0,r.Z)({url:"/myApply/laboratoryList",method:"get",params:t})}function a(t){return(0,r.Z)({url:"/myApply/laboratoryDetail?reviewId="+t,method:"get"})}function n(t){return(0,r.Z)({url:"/myApply/exportList",method:"get",params:t})}function i(t){return(0,r.Z)({url:"/myApply/download",method:"get",params:t})}function l(t){return(0,r.Z)({url:"/myLab/list",method:"get",params:t})}function d(t){return(0,r.Z)({url:"/myLab/info?applyId="+t,method:"get"})}function u(t){return(0,r.Z)({url:"/myLab/restart",method:"post",data:t})}function p(t){return(0,r.Z)({url:"/myLab/dataInjection",method:"post",data:t})}function c(t){return(0,r.Z)({url:"/myLab/fileList?applyId="+t,method:"get"})}function m(t){return(0,r.Z)({url:"/myLab/applyDown",method:"post",data:t})}function f(t){return(0,r.Z)({url:"/api/userApiList",method:"get",params:t})}function g(t){return(0,r.Z)({url:"/api/userApiStatisticsList",method:"get",params:t})}function h(t){return(0,r.Z)({url:"/myMessage/page",method:"get",params:t})}function w(t){return(0,r.Z)({url:"/myMessage/detail?msgId="+t,method:"post"})}function y(t){return(0,r.Z)({url:"myMessage/markRead",method:"post",data:t})}function v(t){return(0,r.Z)({url:"/myResources/list",method:"get",params:t})}function b(t){return(0,r.Z)({url:"/myResources/uploadFile",method:"post",data:t,headers:{"Content-Type":"multipart/form-data"}})}function Z(t){return(0,r.Z)({url:"/myResources/delete?fileId="+t,method:"delete"})}function _(t){return(0,r.Z)({url:"/rePwd/getPhoneByUser?username="+t,method:"get"})}function C(){return(0,r.Z)({url:"/rePwd/sendPhoneCode",method:"get"})}function k(t){return(0,r.Z)({url:"/rePwd/verifyPhoneCode?phoneCode="+t,method:"get"})}function x(t){return(0,r.Z)({url:"/rePwd/reset",method:"post",data:t})}function P(t){return(0,r.Z)({url:"/changePassword",method:"post",data:t})}}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/js/53.561dd0de.js b/agile-portal/agile-portal-ui/dist/static/js/53.561dd0de.js deleted file mode 100644 index 666e3780..00000000 --- a/agile-portal/agile-portal-ui/dist/static/js/53.561dd0de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[53],{77053:(t,a,s)=>{s.r(a),s.d(a,{default:()=>u});var i=function(){var t=this,a=t._self._c;return a("div",{staticClass:"api-list-container container"},[t._m(0),a("div",{staticClass:"inner-container"},[a("el-row",{attrs:{gutter:20}},[a("el-col",{attrs:{span:4,xs:24}},[a("div",{staticClass:"routerList"},[a("h2",[t._v("数据服务")]),a("ul",[a("li",[a("router-link",{attrs:{to:"/service/introduce"}},[t._v("服务介绍")])],1),a("li",[a("router-link",{attrs:{to:"/service/guide"}},[t._v("服务指南")])],1),a("li",{staticClass:"on"},[a("router-link",{attrs:{to:"/service/api"}},[t._v("API列表")])],1)])])]),a("el-col",{attrs:{span:20,xs:24}},[a("div",{staticClass:"api-list",staticStyle:{overflow:"auto"}},[a("ul",{staticClass:"list"},t._l(t.apiList,(function(s){return a("li",{key:s.id},[a("div",{staticClass:"api-name"},[t._v(t._s(s.apiName))]),a("div",{staticClass:"aip-intro"},[t._v(" "+t._s(s.apiName)+" ")]),a("div",{staticClass:"api-info"},[a("div",{staticClass:"data-from"},[t._v("数据提供方:上海公共交通卡有限公司")]),a("div",{staticClass:"others"},[a("span",[t._v("更新时间:"+t._s(s.createTime))]),a("b",[t._v("有条件开放")])])])])})),0),a("pagination",{directives:[{name:"show",rawName:"v-show",value:t.total>0,expression:"total > 0"}],attrs:{total:t.total,page:t.queryParams.pageNum,limit:t.queryParams.pageSize},on:{"update:page":function(a){return t.$set(t.queryParams,"pageNum",a)},"update:limit":function(a){return t.$set(t.queryParams,"pageSize",a)},pagination:t.getList}})],1)])],1)],1)])},e=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"top-banner guide-pic"},[a("div",{staticClass:"slogan"},[a("h3",{staticClass:"title"},[t._v("API列表 ")]),a("div",{staticClass:"summary"},[t._v("旨在优化数据对外服务方式,提高开发效率,为用户提供规范化数据服务")])])])}],r=s(47121);const n={name:"ApiList",data:function(){return{total:0,apiList:[],queryParams:{pageNum:1,pageSize:9}}},computed:{},mounted:function(){this.backToTop(),this.$parent.$parent.$parent.$refs.topnav.topbg=""},created:function(){this.getList()},methods:{backToTop:function(){window.scrollTo({top:0,behavior:"smooth"})},getList:function(){var t=this;(0,r.ZF)(this.queryParams).then((function(a){t.apiList=a.rows,t.total=a.total}))}}},o=n;var l=s(1001),c=(0,l.Z)(o,i,e,!1,null,"351a2db2",null);const u=c.exports}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/js/777.62079ee2.js b/agile-portal/agile-portal-ui/dist/static/js/777.62079ee2.js deleted file mode 100644 index bbec8f6e..00000000 --- a/agile-portal/agile-portal-ui/dist/static/js/777.62079ee2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkagile_portal_front"]=self["webpackChunkagile_portal_front"]||[]).push([[777],{1777:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});a(82772),a(73210);var l=function(){var e=this,t=e._self._c;return t("div",{staticClass:"lab-apply"},[t("div",{staticClass:"top-filter"},[t("el-form",{ref:"queryForm",attrs:{model:e.queryParams,size:"small","label-width":"82px",inline:!0}},[t("el-form-item",{attrs:{label:"实验室名称",prop:"labTitle"}},[t("el-input",{attrs:{clearable:""},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleQuery.apply(null,arguments)}},model:{value:e.queryParams.labTitle,callback:function(t){e.$set(e.queryParams,"labTitle",t)},expression:"queryParams.labTitle"}})],1),t("el-form-item",{attrs:{label:"实验室编号",prop:"applyId"}},[t("el-input",{attrs:{clearable:""},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleQuery.apply(null,arguments)}},model:{value:e.queryParams.applyId,callback:function(t){e.$set(e.queryParams,"applyId",t)},expression:"queryParams.applyId"}})],1),t("el-form-item",{attrs:{label:"实验室状态",prop:"busStatus"}},[t("el-select",{attrs:{placeholder:"请选择",clearable:""},model:{value:e.queryParams.busStatus,callback:function(t){e.$set(e.queryParams,"busStatus","string"===typeof t?t.trim():t)},expression:"queryParams.busStatus"}},e._l(e.busStatusList,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),t("el-form-item",[t("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.handleQuery}},[e._v("搜索")]),t("el-button",{attrs:{size:"mini"},on:{click:e.resetQuery}},[e._v("重置")])],1)],1)],1),t("div",{staticClass:"tale-list"},[t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{"min-height":"355px","max-height":"500px"},attrs:{stripe:"",data:e.myLablyList,"max-height":"500px"}},[t("div",{staticStyle:{"text-align":"left"},attrs:{slot:"empty"},slot:"empty"},[t("el-empty",{attrs:{description:"暂无数据"}})],1),t("el-table-column",{attrs:{align:"center",label:"实验室编号",prop:"applyId","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"实验室名称",prop:"labTitle","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"生效时间",prop:"startDate","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s(e.parseTime(a.row.startDate,"{y}-{m}-{d}")))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"到期时间",prop:"endDate","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s(e.parseTime(a.row.endDate,"{y}-{m}-{d}")))])]}}])}),t("el-table-column",{attrs:{align:"center",label:"硬件资源",prop:"dockerImageName","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(" "+e._s("CPU:"+a.row.cpuLimits+";内存:"+a.row.memoryLimits+"G;硬盘:"+a.row.discLimits+"G")+" ")])]}}])}),t("el-table-column",{attrs:{align:"center",label:"状态","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return["01"===a.row.busStatus?t("span",{staticClass:"review-status"},[t("i",{staticClass:"icon-circle green"}),e._v(e._s(e.busStatusspan(a.row.busStatus))+" ")]):t("span",{staticClass:"review-status"},[t("i",{staticClass:"icon-circle red"}),e._v(e._s(e.busStatusspan(a.row.busStatus))+" ")])]}}])}),t("el-table-column",{attrs:{align:"center",label:"操作",fixed:"right","class-name":"small-padding fixed-width",width:"230"},scopedSlots:e._u([{key:"default",fn:function(a){return["01"===a.row.busStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.myResourcesList(a.row)}}},[e._v("数据注入")]):e._e(),"01"===a.row.busStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.myfileList(a.row)}}},[e._v("申请下载")]):e._e(),t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.goLabDetail(a.row.applyId)}}},[e._v("详情")]),"01"===a.row.busStatus?t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.restart(a.row)}}},[e._v("重启")]):e._e()]}}])})],1)],1),t("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryParams.pageNum,limit:e.queryParams.pageSize},on:{"update:page":function(t){return e.$set(e.queryParams,"pageNum",t)},"update:limit":function(t){return e.$set(e.queryParams,"pageSize",t)},pagination:e.getList}}),t("el-dialog",{attrs:{title:"选中资源",visible:e.visible,width:"800px",top:"5vh","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){e.visible=t}}},[t("el-form",{ref:"queryForm",attrs:{model:e.queryParamss,size:"small",inline:!0}},[t("el-form-item",{attrs:{label:"文件类型",prop:"fileType"}},[t("el-select",{attrs:{placeholder:"请选择组件类型"},on:{change:e.myResourcesLists},model:{value:e.queryParamss.fileType,callback:function(t){e.$set(e.queryParamss,"fileType",t)},expression:"queryParamss.fileType"}},e._l(e.fileTypeList,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),t("el-form-item",[t("el-button",{attrs:{type:"primary",icon:"el-icon-search",size:"mini"},on:{click:e.handleQuerys}},[e._v("查询")])],1)],1),t("el-row",[t("el-table",{ref:"table",attrs:{data:e.resourcesList,height:"260px"},on:{"row-click":e.clickRow,"selection-change":e.handleSelectionChange}},[t("div",{staticStyle:{"text-align":"center"},attrs:{slot:"empty"},slot:"empty"},[e._v("暂无数据 ")]),t("el-table-column",{attrs:{align:"center",type:"selection",width:"55"}}),t("el-table-column",{attrs:{align:"center",label:"文件名称",prop:"fileName","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"上传时间",prop:"createTime","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"文件说明",prop:"remarks","show-overflow-tooltip":!0,width:"180"}}),t("el-table-column",{attrs:{align:"center",label:"文件类型",prop:"fileType","show-overflow-tooltip":!0,width:"180"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("span",[e._v(e._s("data"==a.row.fileType?"数据文件":"python组件"))])]}}])})],1),t("pagination",{directives:[{name:"show",rawName:"v-show",value:e.totals>0,expression:"totals > 0"}],attrs:{total:e.totals,page:e.queryParamss.pageNum,limit:e.queryParamss.pageSize},on:{"update:page":function(t){return e.$set(e.queryParamss,"pageNum",t)},"update:limit":function(t){return e.$set(e.queryParamss,"pageSize",t)},pagination:e.myResourcesLists}})],1),t("el-form",{ref:"applyform",attrs:{"label-width":"80px",model:e.resourcesForm,rules:e.rules}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"申请说明",prop:"applyDesc"}},[t("el-input",{attrs:{maxlength:200,type:"textarea",placeholder:"请输入内容"},model:{value:e.resourcesForm.applyDesc,callback:function(t){e.$set(e.resourcesForm,"applyDesc",t)},expression:"resourcesForm.applyDesc"}})],1)],1)],1)],1),t("div",{staticClass:"dialog-footer",staticStyle:{"text-align":"right"},attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:e.handleSelectUser}},[e._v("确 定")]),t("el-button",{on:{click:function(t){e.visible=!1}}},[e._v("取 消")])],1)],1),t("el-dialog",{attrs:{title:"申请下载",visible:e.open,width:"800px",top:"5vh","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){e.open=t}}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-table",{ref:"filetable",attrs:{data:e.filetableList,height:"260px"}},[t("div",{staticStyle:{"text-align":"center"},attrs:{slot:"empty"},slot:"empty"},[e._v("暂无数据 ")]),t("el-table-column",{attrs:{align:"center",label:"文件名称",prop:"fileName","show-overflow-tooltip":!0}}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function(a){return[t("el-button",{attrs:{size:"small",type:"text"},on:{click:function(t){return e.fileCk(a.row)}}},[e._v("申请")])]}}])})],1)],1)],1),t("el-dialog",{attrs:{width:"30%",title:"申请说明",visible:e.opens,"append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1},on:{"update:visible":function(t){e.opens=t}}},[t("el-form",{ref:"fileForm",attrs:{"label-width":"80px",model:e.fileForm}},[t("el-row",[t("el-col",{attrs:{span:24}},[t("el-form-item",{attrs:{label:"申请说明",prop:"applyDesc"}},[t("el-input",{attrs:{maxlength:200,type:"textarea",placeholder:"请输入内容"},model:{value:e.fileForm.applyDesc,callback:function(t){e.$set(e.fileForm,"applyDesc",t)},expression:"fileForm.applyDesc"}})],1)],1)],1)],1),t("div",{staticClass:"dialog-footer",staticStyle:{"text-align":"right"},attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:e.handlefile}},[e._v("确 定")]),t("el-button",{on:{click:function(t){e.opens=!1}}},[e._v("取 消")])],1)],1)],1)],1)},s=[],r=(a(69826),a(41539),a(21249),a(32900));const o={name:"myLab",data:function(){return{loading:!0,total:0,myLablyList:[],queryParams:{pageNum:1,pageSize:10},busStatusList:[{label:"运行中",value:"01"},{label:"到期结束",value:"02"},{label:"强制结束",value:"03"},{label:"已禁用",value:"04"},{label:"已销毁",value:"05"},{label:"销毁处理中",value:"06"},{label:"重新初始化中",value:"07"},{label:"错误",value:"08"}],visible:!1,open:!1,opens:!1,filetotal:0,filetableList:[],fileForm:{applyDesc:""},fileTypeList:[{value:"python",label:"python组件"},{value:"data",label:"数据文件"}],totals:0,resourcesList:[],resourcesForm:{applyDesc:""},fileQueryParams:{pageNum:1,pageSize:10},queryParamss:{pageNum:1,pageSize:10},rules:{applyDesc:[{required:!0,message:"不能为空",trigger:"blur"}]}}},created:function(){this.getList()},methods:{busStatusspan:function(e){var t=this.busStatusList,a=t.find((function(t){return t.value==e}));return a?a.label:null},getList:function(){var e=this;this.loading=!0,(0,r.Ht)(this.queryParams).then((function(t){e.myLablyList=t.rows,e.total=t.total,e.loading=!1}))},handleQuery:function(){this.queryParams.pageNum=1,this.getList()},resetQuery:function(){this.resetForm("queryForm"),this.handleQuery()},loginUrl:function(e){window.open(e,"_blank")},goLabDetail:function(e){this.$router.push("/user/myapply/myLabDetail/"+e)},clickRow:function(e){this.$refs.table.toggleRowSelection(e)},handleQuerys:function(){this.queryParamss.pageNum=1,this.myResourcesLists()},myResourcesLists:function(){var e=this;(0,r.Hc)(this.queryParamss).then((function(t){e.resourcesList=t.rows,e.totals=t.total,e.loading=!1}))},myResourcesList:function(e){this.visible=!0,this.resourcesForm.applyDesc="",this.resourcesForm.applyId=e.applyId,this.resourcesForm.recToken=e.recToken,this.myResourcesLists()},handleSelectionChange:function(e){this.resourcesForm.fileIds=e.map((function(e){return e.fileId}))},handleSelectUser:function(){var e=this;console.log(this.resourcesForm),this.$refs["applyform"].validate((function(t){t&&(0,r.qS)(e.resourcesForm).then((function(t){e.visible=!1,e.$message({type:"success",message:"数据注入成功!"}),e.getList()}))}))},myfileList:function(e){var t=this;this.open=!0,this.fileForm.applyId=e.applyId,this.fileForm.recToken=e.recToken,(0,r.uN)(e.applyId).then((function(e){t.filetableList=e.data,t.loading=!1}))},fileCk:function(e){this.fileForm.fileName=e.fileName,this.fileForm.applyDesc="",this.opens=!0},handlefile:function(){var e=this;(0,r.W1)(this.fileForm).then((function(t){e.$message({type:"success",message:"申请成功,等待审核!"}),e.open=!1,e.opens=!1,e.getList()}))},restart:function(e){var t=this,a={applyId:e.applyId,recToken:e.recToken};this.loading=!0,(0,r.ur)(a).then((function(e){t.loading=!1,t.$message({type:"success",message:"重启成功!"}),t.getList()}))["catch"]((function(e){e.err;t.loading=!1}))}}},i=o;var n=a(1001),u=(0,n.Z)(i,l,s,!1,null,"b3b3944e",null);const p=u.exports},32900:(e,t,a)=>{a.d(t,{Cp:()=>P,F7:()=>S,Hc:()=>v,Ht:()=>n,JE:()=>b,W1:()=>d,WG:()=>o,_I:()=>k,aX:()=>s,bL:()=>_,c0:()=>x,cT:()=>w,d5:()=>r,e_:()=>y,en:()=>u,fR:()=>i,in:()=>L,jr:()=>g,oK:()=>f,qS:()=>c,rK:()=>h,uN:()=>m,ur:()=>p});var l=a(73821);function s(e){return(0,l.Z)({url:"/myApply/laboratoryList",method:"get",params:e})}function r(e){return(0,l.Z)({url:"/myApply/laboratoryDetail?reviewId="+e,method:"get"})}function o(e){return(0,l.Z)({url:"/myApply/exportList",method:"get",params:e})}function i(e){return(0,l.Z)({url:"/myApply/download",method:"get",params:e})}function n(e){return(0,l.Z)({url:"/myLab/list",method:"get",params:e})}function u(e){return(0,l.Z)({url:"/myLab/info?applyId="+e,method:"get"})}function p(e){return(0,l.Z)({url:"/myLab/restart",method:"post",data:e})}function c(e){return(0,l.Z)({url:"/myLab/dataInjection",method:"post",data:e})}function m(e){return(0,l.Z)({url:"/myLab/fileList?applyId="+e,method:"get"})}function d(e){return(0,l.Z)({url:"/myLab/applyDown",method:"post",data:e})}function f(e){return(0,l.Z)({url:"/api/userApiList",method:"get",params:e})}function y(e){return(0,l.Z)({url:"/api/userApiStatisticsList",method:"get",params:e})}function h(e){return(0,l.Z)({url:"/myMessage/page",method:"get",params:e})}function b(e){return(0,l.Z)({url:"/myMessage/detail?msgId="+e,method:"post"})}function g(e){return(0,l.Z)({url:"myMessage/markRead",method:"post",data:e})}function v(e){return(0,l.Z)({url:"/myResources/list",method:"get",params:e})}function w(e){return(0,l.Z)({url:"/myResources/uploadFile",method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})}function k(e){return(0,l.Z)({url:"/myResources/delete?fileId="+e,method:"delete"})}function L(e){return(0,l.Z)({url:"/rePwd/getPhoneByUser?username="+e,method:"get"})}function _(){return(0,l.Z)({url:"/rePwd/sendPhoneCode",method:"get"})}function S(e){return(0,l.Z)({url:"/rePwd/verifyPhoneCode?phoneCode="+e,method:"get"})}function x(e){return(0,l.Z)({url:"/rePwd/reset",method:"post",data:e})}function P(e){return(0,l.Z)({url:"/changePassword",method:"post",data:e})}}}]); \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/dist/static/js/app.11080c4c.js b/agile-portal/agile-portal-ui/dist/static/js/app.11080c4c.js deleted file mode 100644 index f1f715f0..00000000 --- a/agile-portal/agile-portal-ui/dist/static/js/app.11080c4c.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var t={47121:(t,e,n)=>{n.d(e,{Ci:()=>o,Cm:()=>s,R1:()=>r,Yz:()=>a,ZF:()=>c,fu:()=>l,iA:()=>u});var i=n(73821);function o(t){return(0,i.Z)({url:"/content/banner",method:"get"})}function r(t){return(0,i.Z)({url:"/content/scenesList",method:"get"})}function a(t){return(0,i.Z)({url:"/content/list",method:"get"})}function s(t){return(0,i.Z)({url:"/content/contentInfo?contentId="+t,method:"get"})}function c(t){return(0,i.Z)({url:"/api/list",method:"get",params:t})}function u(){return(0,i.Z)({url:"/content/dataProduct",method:"get"})}function l(){return(0,i.Z)({url:"/content/sdkDownload",method:"get",responseType:"blob"})}},12223:(t,e,n)=>{n.d(e,{A9:()=>o,C5:()=>s,Z6:()=>u,bL:()=>a,kS:()=>c,x4:()=>r});var i=n(73821);function o(t){return(0,i.Z)({url:"/verifyUser",method:"post",data:t})}function r(t){return(0,i.Z)({url:"/login",method:"post",data:t})}function a(t){return(0,i.Z)({url:"/sendPhoneCode",method:"get"})}function s(){return(0,i.Z)({url:"/getInfo",method:"get"})}function c(){return(0,i.Z)({url:"/logout",method:"post"})}function u(){return(0,i.Z)({url:"/getPublicKey",method:"get"})}},33300:(t,e,n)=>{n(66992),n(88674),n(19601),n(17727);var i=n(36369),o=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"app"}},[e("router-view")],1)},r=[],a=n(1001),s={},c=(0,a.Z)(s,o,r,!1,null,null,null);const u=c.exports;var l=n(92268),d=n(9983),p=n(50680),f=n(8499),h=n.n(f),m=n(50124),v=n(48534),g=(n(82772),n(68309),n(40530)),b=n.n(g),y=n(73821);b().configure({showSpinner:!1});var A=["Index","productsList","ProductsDetail","DataServiceGuide","ApiList","DataLaboratory","SuccessCase","Login","ResetPwd","FindPwd","NewsCenter","NewsDetail","introduce","AccountIssues","LegalNotice","privacyStatement","CompanyProfile"];l.Z.beforeEach(function(){var t=(0,v.Z)((0,m.Z)().mark((function t(e,n,i){var o;return(0,m.Z)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:b().start(),o=localStorage.getItem("myData"),o?(y.h.show=!0,d.Z.dispatch("GetInfo").then((function(){y.h.show=!1,i(),b().done()}))["catch"]((function(t){d.Z.dispatch("LogOut").then((function(){-1===A.indexOf(e.name)?(f.Message.error(t),i({path:"/login"})):i()}))}))):-1===A.indexOf(e.name)?(y.h.show=!0,d.Z.dispatch("GetInfo").then((function(){y.h.show=!1,i(),b().done()}))["catch"]((function(t){d.Z.dispatch("LogOut").then((function(){f.Message.error(t),i({path:"/login"})}))}))):(i(),b().done());case 3:case"end":return t.stop()}}),t)})));return function(e,n,i){return t.apply(this,arguments)}}()),l.Z.afterEach((function(){b().done()}));var w=n(3336);n(69826),n(41539),n(74916),n(77601),n(91058),n(15306),n(24603),n(28450),n(88386),n(39714),n(83710);function C(t){this.$refs[t]&&this.$refs[t].resetFields()}function k(t,e){var n=e,i=n.find((function(e){return e.value==t}));return i?i.label:null}function S(t,e){if(0===arguments.length||!t)return null;var n,i=e||"{y}-{m}-{d} {h}:{i}:{s}";"object"===(0,w.Z)(t)?n=t:("string"===typeof t&&/^[0-9]+$/.test(t)?t=parseInt(t):"string"===typeof t&&(t=t.replace(new RegExp(/-/gm),"/").replace("T"," ").replace(new RegExp(/\.[\d]{3}/gm),"")),"number"===typeof t&&10===t.toString().length&&(t*=1e3),n=new Date(t));var o={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},r=i.replace(/{(y|m|d|h|i|s|a)+}/g,(function(t,e){var n=o[e];return"a"===e?["日","一","二","三","四","五","六"][n]:(t.length>0&&n<10&&(n="0"+n),n||0)}));return r}var N=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[e("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,total:t.total},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},P=[];n(9653),n(32564);Math.easeInOutQuad=function(t,e,n,i){return t/=i/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var T=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function Z(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function I(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function x(t,e,n){var i=I(),o=t-i,r=20,a=0;e="undefined"===typeof e?500:e;var s=function t(){a+=r;var s=Math.easeInOutQuad(a,i,o,e);Z(s),athis.total&&(this.currentPage=1),this.$emit("pagination",{page:this.currentPage,limit:t}),this.autoScroll&&x(0,800)},handleCurrentChange:function(t){this.$emit("pagination",{page:t,limit:this.pageSize}),this.autoScroll&&x(0,800)}}},_=E;var L=(0,a.Z)(_,N,P,!1,null,"368c4af0",null);const O=L.exports;i["default"].use(h(),{size:p.Z.get("size")||"medium"}),i["default"].component("Pagination",O),i["default"].prototype.resetForm=C,i["default"].prototype.parseTime=S,i["default"].prototype.arrList=k,i["default"].config.productionTip=!1,new i["default"]({router:l.Z,store:d.Z,render:function(t){return t(u)}}).$mount("#app")},92268:(t,e,n)=>{n.d(e,{Z:()=>Nt,_:()=>wt});n(41539),n(78783),n(33948);var i=n(36369),o=n(72631),r=function(){var t=this,e=t._self._c;return e("router-view")},a=[],s=n(1001),c={},u=(0,s.Z)(c,r,a,!1,null,null,null);const l=u.exports;var d=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"home"}},[e("div",{staticClass:"home-banner"},[e("div",{staticClass:"swiper"},[e("div",{staticClass:"swiper-wrapper"},[e("el-carousel",{attrs:{arrow:"never"}},t._l(t.listBanner,(function(n){return e("el-carousel-item",{key:n.index,staticClass:"swiper-slide"},[e("img",{attrs:{src:n.imgUrl,alt:""}}),e("div",{staticClass:"slogan"},[e("div",{staticClass:"wrapper"},[e("h3",{staticClass:"title"},[t._v(t._s(n.contentTitle))]),e("div",{staticClass:"text"},[t._v(t._s(n.subtitle))])])])])})),1)],1)]),e("news-swiper",{attrs:{"list-news":t.listNews}})],1),e("div",{staticClass:"home-content"},[e("h2",{staticClass:"title"},[t._v("久事大数据开放平台为您提供")]),e("div",{staticClass:"products-intr"},[e("ul",[e("li",[e("router-link",{attrs:{to:"/products/productsList"}},[e("img",{attrs:{src:n(96621),alt:""}}),e("div",{staticClass:"text"},[e("h3",[t._v("数据产品")]),e("div",{staticClass:"summary"},[t._v("已形成“久事客流宝”“久事乘车宝”等系列产品,并上海数据交易所成功挂牌,地面公交刷卡(码)客流、到站预报等数据可直接进行交易。")])])])],1),e("li",[e("router-link",{attrs:{to:"/service/guide"}},[e("img",{attrs:{src:n(99242),alt:""}}),e("div",{staticClass:"text"},[e("h3",[t._v("数据服务")]),e("div",{staticClass:"summary"},[t._v("提供数据分析、指标加工、报告撰写等服务。"),e("br"),t._v("提供API接口列表及接入指引。")])])])],1),e("li",[e("router-link",{attrs:{to:"/laboratory"}},[e("img",{attrs:{src:n(1831),alt:""}}),e("div",{staticClass:"text"},[e("h3",[t._v("数据实验室")]),e("div",{staticClass:"summary"},[t._v(" 为有交通卡细颗粒度数据(如交易数据)使用需求的用户,提供一个安全、独立、便捷的环境,用户可以在该环境中进行数据分析、数据建模,并导出分析成果数据,进而解决明细数据不能出去但可以使用的问题。")])])])],1)])])]),e("div",{staticClass:"case-content"},[e("h2",{staticClass:"title"},[t._v("应用场景")]),e("div",{staticClass:"case-list"},[e("div",{staticClass:"tab-title"},[e("ul",t._l(t.sceneTitle,(function(n,i){return e("li",{key:i,class:{active:t.isActive===i},on:{click:function(e){return t.showScene(i)}}},[t._v(t._s(n)+" ")])})),0)]),e("div",{staticClass:"content-detail"},t._l(t.sceneContent,(function(n,i){return e("dl",{key:i,class:{active:t.isActive===i}},[e("dt",[t._v(t._s(n.contentTitle))]),e("dd",{staticStyle:{"text-align":"justify"}},[t._v(t._s(n.contentText))])])})),0)])])])},p=[],f=(n(47042),n(47121)),h=function(){var t=this,e=t._self._c;return e("div",{staticClass:"home-news"},[e("div",{staticClass:"wrapper"},[e("div",{staticClass:"news-title"},[t._v("最新动态")]),e("div",{staticClass:"news-item"},[e("el-carousel",{attrs:{height:"35px",direction:"vertical",autoplay:!0}},t._l(t.listNews,(function(n){return e("el-carousel-item",{key:n.contentId},[e("router-link",{staticClass:"news-link",attrs:{to:{name:"NewsDetail",params:{contentId:n.contentId}}}},[e("span",[t._v(t._s(n.contentTitle)+" ")]),e("b",[t._v(t._s(n.updateTime.slice(0,10)))])])],1)})),1)],1),e("div",{staticClass:"btn-more"},[e("router-link",{attrs:{to:"/news/list"}},[t._v("查看全部>")])],1)])])},m=[];const v={name:"news-swiper",props:{listNews:Array}},g=v;var b=(0,s.Z)(g,h,m,!1,null,"25d0dc89",null);const y=b.exports,A={name:"HomeView",data:function(){return{isActive:0,sceneTitle:["场景一","场景二","场景三"],sceneContent:[],listBanner:null,listNews:[]}},components:{NewsSwiper:y},created:function(){this.getBanner(),this.getNewsList(),this.getscenesList()},methods:{backToTop:function(){window.scrollTo({top:0,behavior:"smooth"})},getBanner:function(){var t=this;this.listBanner=null,(0,f.Ci)().then((function(e){t.listBanner=e.data}))},getNewsList:function(){var t=this;(0,f.Yz)().then((function(e){t.listNews=e.rows.slice(0,5)}))},getscenesList:function(){var t=this;(0,f.R1)().then((function(e){t.sceneContent=e.data.slice(0,3)}))},showScene:function(t){this.isActive=t},handleScroll:function(){window.pageYOffset>50?this.$parent.$parent.$refs.topnav.topbg="":this.$parent.$parent.$refs.topnav.topbg="1"}},mounted:function(){this.$parent.$parent.$refs.topnav.topbg="1",this.backToTop(),window.addEventListener("scroll",this.handleScroll)},beforeDestroy:function(){window.removeEventListener("scroll",this.handleScroll)}},w=A;var C=(0,s.Z)(w,d,p,!1,null,"1648f46c",null);const k=C.exports;var S=function(){var t=this,e=t._self._c;return e("div",[e("TopNav",{ref:"topnav"}),e("AppContainer"),e("Footer")],1)},N=[],P=function(){var t=this,e=t._self._c;return e("section",{staticClass:"app-container"},[e("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[e("router-view",{key:t.key})],1)],1)},T=[];const Z={name:"AppContainer",computed:{key:function(){return this.$route.path}}},I=Z;var x=(0,s.Z)(I,P,T,!1,null,"77fe0ecc",null);const E=x.exports;var _=function(){var t=this,e=t._self._c;return e("div",{staticClass:"top-nav",class:"1"==t.topbg?"topbg":"",attrs:{id:"container"}},[e("div",{staticClass:"containers"},[e("div",{staticClass:"logo"},[e("router-link",{attrs:{to:"/"}},[e("img",{attrs:{src:n(55800),alt:"久事logo"}}),e("span",{staticClass:"title"},[t._v("久事大数据开放平台")])])],1),t.isShowMenu?e("div",{staticClass:"left-box"},[e("div",{staticClass:"router-list"},[e("div",{on:{click:function(e){return t.topNavbg("1")}}},[e("router-link",{attrs:{to:"/"}},[t._v("首页")])],1),e("div",{staticClass:"minNav",on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/products/productsList"}},[t._v("数据产品")]),e("ul",{staticClass:"navUl"},t._l(t.carouselItems,(function(n){return e("li",{key:n.index,on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:{name:"ProductsDetail",params:{contentId:n.contentId}}}},[t._v(t._s(n.contentTitle))])],1)})),0)],1),e("div",{staticClass:"minNav",on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/introduce"}},[t._v("数据服务")]),e("ul",{staticClass:"navUl"},[e("li",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/introduce"}},[t._v("服务介绍")])],1),e("li",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/guide"}},[t._v("服务指南")])],1),e("li",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/service/api"}},[t._v("API列表")])],1)])],1),e("div",{on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/laboratory"}},[t._v("数据实验室")])],1)]),t.nickName?[e("div",{staticClass:"userimg",on:{click:function(e){return t.topNavbg("")}}},[e("router-link",{attrs:{to:"/user/index"}},[e("span",{staticClass:"user-avatar"}),e("span",{staticClass:"user-name"},[t._v(t._s(t.nickName))])]),e("span",{staticClass:"outbtn",on:{click:t.logout}})],1)]:[e("div",{staticClass:"login-button"},[e("router-link",{attrs:{to:"/login"}},[t._v("登录")])],1)]],2):t._e()])])},L=[];n(47941);const O={props:{isShowMenu:{type:Boolean,default:!0}},data:function(){return{topbg:"",nickName:null,carouselItems:null,contentId:null}},created:function(){this.getBanner()},methods:{getBanner:function(){var t=this;this.carouselItems=null,(0,f.iA)().then((function(e){t.carouselItems=e.data.slice(0,5)}))},topNavbg:function(t){this.topbg=t},logout:function(){var t=this;this.$confirm("确定注销并退出系统吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){t.$store.dispatch("LogOut").then((function(){location.href=location.href.split("#")[0]}))}))["catch"]((function(){}))}},mounted:function(){var t=localStorage.getItem("myData");if(t){var e=JSON.parse(t);this.nickName=e.nickName}var n=document.getElementById("home");this.topbg=null!=n&&void 0!=n?"1":""}},B=O;var M=(0,s.Z)(B,_,L,!1,null,"4c954c68",null);const R=M.exports;n(68309);var Q=function(){var t=this,e=t._self._c;return e("div",{staticClass:"footer"},[e("div",{staticClass:"wrapper"},[e("div",{staticClass:"left-box"},[t._m(0),e("div",{staticClass:"links"},[e("el-select",{staticStyle:{"padding-left":"50px"},attrs:{placeholder:"友情链接"},on:{change:t.goToLink},model:{value:t.selectedLink,callback:function(e){t.selectedLink=e},expression:"selectedLink"}},t._l(t.links,(function(t){return e("el-option",{key:t.url,attrs:{label:t.name,value:t.url}})})),1)],1)]),e("div",{staticClass:"right-info"},[e("dl",[e("dt",[t._v("服务与支持")]),e("dd",[e("router-link",{attrs:{to:"/products/productsList"}},[t._v("数据产品")])],1),e("dd",[e("router-link",{attrs:{to:"/service/api"}},[t._v("数据服务")])],1),e("dd",[e("router-link",{attrs:{to:"/laboratory"}},[t._v("数据实验室")])],1)]),e("dl",[e("dt",[t._v("常见问题")]),e("dd",[e("router-link",{attrs:{to:"/AccountIssues"}},[t._v("账户问题")])],1)]),e("dl",[e("dt",[t._v("关于我们")]),e("dd",[e("router-link",{attrs:{to:"/CompanyProfile"}},[t._v("公司简介")])],1),e("dd",[t._v("电话(021-60825678)")]),e("dd",[t._v("地址: 上海市长顺路11号荣广大厦10F")])])])]),t._m(1)])},j=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"logo-link"},[e("img",{attrs:{src:n(55800),alt:"久事logo"}}),e("span",{staticClass:"title"},[t._v("久事大数据开放平台")])])},function(){var t=this,e=t._self._c;return e("div",{staticClass:"copyrights"},[t._v(" © 2023 chinadata.com All Rights Reserved 上海久事(集团)有限公司版权所有 "),e("span",[t._v(" 沪ICP备13037966号-13")])])}];const D={name:"Footer",data:function(){return{selectedLink:"",links:[{name:"久事集团",url:"https://www.jiushi.com.cn"},{name:"交通卡",url:"https://www.sptcc.com"}]}},methods:{goToLink:function(){this.selectedLink&&window.open(this.selectedLink,"_blank")}}},z=D;var F=(0,s.Z)(z,Q,j,!1,null,"0e7a067b",null);const U=F.exports,K={name:"Layout",components:{TopNav:R,Footer:U,AppContainer:E},data:function(){return{showButton:!1}},methods:{backToTop:function(){window.scrollTo({top:0,behavior:"smooth"})},handleScroll:function(){window.pageYOffset>200?this.showButton=!0:this.showButton=!1}},mounted:function(){window.addEventListener("scroll",this.handleScroll)},beforeDestroy:function(){window.removeEventListener("scroll",this.handleScroll)}},H=K;var J=(0,s.Z)(H,S,N,!1,null,"4d4e77b4",null);const V=J.exports;var G=function(){return n.e(443).then(n.bind(n,443))},W=function(){return n.e(292).then(n.bind(n,2292))},q=function(){return n.e(500).then(n.bind(n,23500))},Y=function(){return n.e(850).then(n.bind(n,94850))},X=function(){return n.e(376).then(n.bind(n,76376))},$=function(){return n.e(107).then(n.bind(n,8107))},tt=function(){return n.e(53).then(n.bind(n,77053))},et=function(){return Promise.all([n.e(51),n.e(430)]).then(n.bind(n,54430))},nt=function(){return n.e(392).then(n.bind(n,34392))},it=function(){return n.e(59).then(n.bind(n,52059))},ot=function(){return n.e(552).then(n.bind(n,51552))},rt=function(){return n.e(425).then(n.bind(n,97425))},at=function(){return n.e(607).then(n.bind(n,75607))},st=function(){return n.e(519).then(n.bind(n,95519))},ct=function(){return n.e(441).then(n.bind(n,46441))},ut=function(){return n.e(146).then(n.bind(n,53146))},lt=function(){return n.e(494).then(n.bind(n,58494))},dt=function(){return n.e(686).then(n.bind(n,15686))},pt=function(){return n.e(777).then(n.bind(n,1777))},ft=function(){return n.e(646).then(n.bind(n,82646))},ht=function(){return n.e(64).then(n.bind(n,51064))},mt=function(){return n.e(982).then(n.bind(n,62982))},vt=function(){return n.e(229).then(n.bind(n,87229))},gt=function(){return n.e(276).then(n.bind(n,48276))},bt=function(){return Promise.all([n.e(51),n.e(42)]).then(n.bind(n,59042))},yt=function(){return Promise.all([n.e(51),n.e(541)]).then(n.bind(n,51541))},At=function(){return n.e(767).then(n.bind(n,37767))};i["default"].use(o.ZP);var wt=[{path:"index",component:ut,name:"UserInfo",hidden:!1,meta:{title:"个人信息"}},{path:"myapply",component:l,name:"myapply",hidden:!1,isOpen:!1,meta:{title:"我的申请"},children:[{path:"labapply",component:lt,name:"LabApply",hidden:!1,meta:{title:"数据注入申请"}},{path:"labdetail/:applyId",component:At,hidden:!0,name:"LabDetail",meta:{title:"实验室数据详情"}},{path:"myLabDetail/:applyId",component:ft,hidden:!0,name:"MyLabDetail",meta:{title:"实验室数据详情"}},{path:"dataapply",component:dt,name:"DataApply",hidden:!1,meta:{title:"数据导出申请"}}]},{path:"mylab",component:pt,name:"MyLab",hidden:!1,meta:{title:"我的实验室"}},{path:"myapp",component:l,name:"MyApp",hidden:!1,isOpen:!1,meta:{title:"我的应用"},children:[{path:"list",component:ht,name:"myAppList",hidden:!1,meta:{title:"API列表"}},{path:"apicall",component:mt,name:"ApiCall",hidden:!1,meta:{title:"接口调用统计"}}]},{path:"mydata",component:vt,name:"MyData",hidden:!1,meta:{title:"我的资源"}},{path:"mymsg",component:gt,name:"MyMsg",hidden:!1,meta:{title:"我的消息"}}],Ct=[{path:"",component:V,redirect:"/",children:[{path:"/",component:k,name:"Index",hidden:!1,meta:{title:"首页"}},{path:"products",component:l,name:"DataProducts",hidden:!1,meta:{title:"数据产品"},children:[{path:"productsList",component:G,name:"productsList",hidden:!1,meta:{title:"数据产品"}},{path:"detail/:contentId(\\d+)",component:W,name:"ProductsDetail",hidden:!1,meta:{title:"产品详情"}}]},{path:"news",component:l,redirect:"news/list",hidden:!0,meta:{title:"NewsCenter"},children:[{path:"list",component:nt,name:"NewsCenter",hidden:!1,meta:{title:"新闻中心"}},{path:"detail/:contentId(\\d+)",component:it,name:"NewsDetail",hidden:!1,meta:{title:"新闻详情"}}]},{path:"service",component:l,name:"DataService",hidden:!1,meta:{title:"数据服务"},children:[{path:"introduce",component:Y,name:"introduce",hidden:!1,meta:{title:"服务介绍"}},{path:"guide",component:q,name:"DataServiceGuide",hidden:!1,meta:{title:"接入指引"}},{path:"api",component:tt,name:"ApiList",hidden:!1,meta:{title:"API列表"}}]},{path:"laboratory",component:X,name:"DataLaboratory",meta:{title:"数据实验室"}},{path:"case",component:$,name:"SuccessCase",hidden:!1,meta:{title:"成功案例"}},{path:"user",component:ct,redirect:"user/index",name:"UserIndex",hidden:!1,meta:{title:"用户中心"},children:wt},{path:"/resetpwd",name:"ResetPwd",component:bt,hidden:!1,meta:{title:"修改密码"}},{path:"/findpwd",name:"FindPwd",hidden:!1,component:yt,meta:{title:"忘记密码"}},{path:"AccountIssues",component:ot,name:"AccountIssues",hidden:!1,meta:{title:"账户问题"}},{path:"LegalNotice",component:rt,name:"LegalNotice",hidden:!1,meta:{title:"法律声明"}},{path:"privacyStatement",component:at,name:"privacyStatement",hidden:!1,meta:{title:"隐私声明"}},{path:"CompanyProfile",component:st,name:"CompanyProfile",hidden:!1,meta:{title:"公司简介"}}]},{path:"/login",name:"Login",hidden:!0,component:et}],kt=o.ZP.prototype.push;o.ZP.prototype.push=function(t){return kt.call(this,t)["catch"]((function(t){return t}))};var St=new o.ZP({routes:Ct});const Nt=St},9983:(t,e,n)=>{n.d(e,{Z:()=>y});var i=n(36369),o=n(63822),r=n(95082),a=(n(41539),n(38862),n(12223));n(50680);var s={state:{userName:"",avatar:"",topbg:localStorage.getItem("topBg"),topNav:!1},mutations:{UPDATE_STATE:function(t,e){var n=(0,r.Z)((0,r.Z)({},t),e);for(var i in n)t[i]=n[i]},SET_ROLES:function(t,e){t.roles=e}},actions:{GetInfo:function(t){var e=t.commit;t.state;return new Promise((function(t,n){(0,a.C5)().then((function(n){var i=n.data;localStorage.setItem("myData",JSON.stringify(i)),e("UPDATE_STATE",i),t(n)}))["catch"]((function(t){n(t)}))}))},LogOut:function(t){t.commit,t.state;return new Promise((function(t,e){(0,a.kS)().then((function(){localStorage.setItem("myData",""),t()}))["catch"]((function(t){e(t)}))}))}}};const c=s;var u={state:{},mutations:{},actions:{}};const l=u;var d={isChildShow:!1},p={CHANGE_SETTING:function(t){t.isChildShow=!t.isChildShow},HIDE_SUB_MENU:function(t){t.isChildShow=!1}},f={changeSetting:function(t){var e=t.commit;e("CHANGE_SETTING")},hideSubMenu:function(t){var e=t.commit;e("HIDE_SUB_MENU")}};const h={namespaced:!0,state:d,mutations:p,actions:f};var m=n(82482),v=(0,m.Z)({showChild:function(t){return t.settings.showChild},avatar:function(t){return t.user.avatar},userName:function(t){return t.user.userName},status:function(t){return t.user.status},phonenumber:function(t){return t.user.phonenumber},roles:function(t){return t.user.roles},nickName:function(t){return t.user.nickName},industryCategory:function(t){return t.user.industryCategory},enterpriseName:function(t){return t.user.enterpriseName},socialCreditCode:function(t){return t.user.socialCreditCode},enterpriseAddress:function(t){return t.user.enterpriseAddress}},"industryCategory",(function(t){return t.user.industryCategory}));const g=v;i["default"].use(o.ZP);var b=new o.ZP.Store({modules:{user:c,permission:l,settings:h},getters:g});const y=b},73821:(t,e,n)=>{n.d(e,{Z:()=>u,h:()=>s});n(41539),n(26699),n(32023),n(83650);var i=n(15742),o=n(8499),r=n(9983);const a={401:"认证失败,无法访问系统资源",403:"当前操作没有权限",404:"访问资源不存在",default:"系统未知错误,请反馈给管理员"};var s={show:!1};i.Z.defaults.headers["Content-Type"]="application/json;charset=utf-8";var c=i.Z.create({baseURL:"/public",timeout:2e4,withCredentials:!0});c.interceptors.request.use((function(t){return t}),(function(t){Promise.reject(t)})),c.interceptors.response.use((function(t){var e=t.headers["content-disposition"];void 0!=e&&(r.Z.filename=e);var n=t.data.code||200,i=a[n]||t.data.msg||a["default"];return 401===n?(s.show||(s.show=!0,o.MessageBox.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录","系统提示",{confirmButtonText:"重新登录",cancelButtonText:"取消",type:"warning"}).then((function(){s.show=!1,r.Z.dispatch("LogOut").then((function(){location.href=location.href.split("#")[0]}))}))["catch"]((function(){s.show=!1}))),Promise.reject("无效的会话,或者会话已过期,请重新登录。")):500===n?((0,o.Message)({message:i,type:"error"}),t.data):200!==n?(o.Notification.error({title:i}),Promise.reject("error")):t.data}),(function(t){var e=t.message;if("Network Error"==e)e="后端接口连接异常";else if(e.includes("timeout"))e="系统接口请求超时";else if(e.includes("Request failed with status code")){if(e="系统接口"+e.substr(e.length-3)+"异常",403===t.response.status)return s.show=!0,o.MessageBox.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录","系统提示",{confirmButtonText:"重新登录",cancelButtonText:"取消",type:"warning"}).then((function(){s.show=!1,r.Z.dispatch("LogOut").then((function(){location.href=location.href.split("#")[0]}))}))["catch"]((function(){s.show=!1})),Promise.reject("无效的会话,或者会话已过期,请重新登录。");301===t.response.status&&(e="没有权限,请联系管理员授权")}return(0,o.Message)({message:e,type:"error",duration:5e3}),Promise.reject(t)}));const u=c},96621:(t,e,n)=>{t.exports=n.p+"static/img/index-product-pic1.062b43d1.jpg"},99242:(t,e,n)=>{t.exports=n.p+"static/img/index-product-pic2.deb683c3.jpg"},1831:(t,e,n)=>{t.exports=n.p+"static/img/index-product-pic3.520aae04.jpg"},55800:t=>{t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABICAYAAABlYaJmAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAUqADAAQAAAABAAAASAAAAAC1TADLAAAKnElEQVR4Ae1cDYwbRxWe2fVfnCbYPl8usX30RBOSpqWNCFQKhRCkpBSElJK2FIRQQJUoUNFUjS6NmtJemqaQtEB7rVSooBI/QkCEQEhQJEoboOJXUAoU0iTAVWf7Lsnd2cnd+fyzu8M3vnNiOzO+3fXYvou6upN337z35r3Pb3bfzJs1IW8cShCgSrQoVpIJ9YWmJ89tI5StKatm9IQWDLwYm0yPKe5KmboFBeSZaHRZIWsdYIzdQQgL1HpJ87j+pt6zZE8snc7VtnX+asEAyfr6Aqnk2ecB4vUNYaH0nwGf/v7u3Fi6IV+bG7U29yfsjg0MaMlk9nvzgsilGbu6UDR/yLZs8QiVdYi4ICJy2BvaRSzyuCMMKN3ba2QOOZJpIXPHgUwvi0XNXO4EfAw58ZMSOun362sxxEecyLWKt+ND28rNHHQKIgeDEbasUDC/1CpgnOrtaEQmvd0biFX6CyPE1RcK4xnT9E29pfE/OnVcNb8rB1QZwZgx6BZEbgNkKWHmIB5SHQ0IbkvHgEz5wh9FPL2HG9HUwch1KV90Z1M6FAh35JtMx2JB69TMMdznehX4ABV0NBDW39o9NjapRp9zLR2JSOt0fq86ELnTbGUxa97n3H11Em0HciSwsg/3tH51Lsxqwl1ySLVOJ/raDqRp5B9DBNXNo52YLOCl9NX4TVu/IWhpG6mt98ikJ/o+PKlfUO2dTrUPxIyJX6jW60Rf2yKS3Xqrzoj5hBPj7PBSSn7ZaRC5nW2LyJQ3fKdlsafsgGOXB8ZbHp1uWFnM/MOuTKv42hKRZ5cnIgDxIdVOICF/diGAyP1qC5CT09MH0FdEJZBYtJjyB7xfkOlM+7qulLW1gt5yIEd94bfhKY0Vb8UHZYdXTJ8ZFWkdj0SWW6b5YtobfYeovRW0lgNpWIzPp3WVxiMak9qK4JdlOnPn2D702WO1cR7eUiCTeuQWxsgWmcOu6RrbJ6vbpAOhyzGH38V1I/HflPRHPu66HweCLQOSJRJL4AqSb7UH0p2/xouZ78i0WiXK1yj959tNcmi0p2fp+esWnbQMyPToVD/m05ertpsRz25KKUbuxceIt+s6fHm31bawmDFe3FdLU3/VkjwytSTSy4qMr+4EVZoMAH+aMDLbZTqTnvBLkgJawef1r+/Jn/qvTLZZeksiEiA+qhxEQgyi69LFjmE9crMERI6Rv2gUv9IsWI3klQOZ9oQ2A8S64dXIBHttjNCnE4Wx4yJudtVVPkxyGlcUGdue8kS2ieRV0JQCyevTFiHK59NwNEuDwf0yh1PHR+5E2xWy9grdIuzxVtXDld4jk97wHcxiX6sYrupTo1p/3JgQZgB8+nlueuok+grb6k8jd/eWssq/bGURyTc+EYs9bMsZZ0z/i/VFnpSJTOam+DTRHohciUUGeC1dps8tXRmQualz+5GTKDeQEu1eevJkQeTgaX/3aiT8fFg7OUJztXQnMvPyKhnaI77IetO0XgGQSvfjIN35PdKdd8m8SHpCPwKQO2TtMjqctojm3ZgonfmbjMcpXUlEmpb1hGoQy45Qeo/MobQn/G43IHJ9sFXjNXWZbjf0poFM6103waGtbjpvJIOFiR8kShN/EPEgX6QmYc3lhaipl2vrog5c0JoCkq1e7TeJKV2FcWFPRaSge/17Kxf1nyP+yMcQVu+spzu9ZiY5zGvsTuVE/E0BmRoa3w2lbxEpbopG6eCq/OiQSAffkGqZ5BFRm1MaJg695un8vU7lRPyuHzZjS7ri+aL1GoxRurICg8aCy+nqSCZzVmTwsCe8F+tjXxS1uaPRvO5l62L57Ovu5GelXEfkTNE6pBpEbhLV6IAMRB6NAFFJBF0AjQUsgwiT/Qs885+5AhJzVqQkTPmCKdYaj8euv/brMrPp0FAeeeWn0V6U8bih42F5C6+5u5GtyDgGks+nGbGUpg7njdHofnr0qFG5Fn0mzIkjVNMURyV6YuZnRf3ZpTkGMn1w8FP4Bjfa7cAuH9/KvOq+Xd+3wx/fd9cgKvJ/tsNrlwfJv7M97HWKHT1sJsLhN6GwdBwJ7Yo6PU1fYli/nDCyb7erKOWN3G5ZlpL9PvgSjyTMzEfs9i3icxSRuUn2QCtAnDWMzogMlNF8Xu3nsjaH9KLX65PmrHZ12QYSBfd1GNKft6vYMR9ja53IRFHTxnBqeD+1ow8j4UkVJQjbQGI+/VUY5rVjnBseRHoXCvq2hzZZswar4k3vXZpYellIydKfLSCTevhDyN9udAOQExnLMvfY5U+9fvZKgN/cxgON7A9nh7KiPmfLF6IWMW1eINnGjV7shuX1kFKr/wHMZj5/F5taR2XmjjqKo0sM6ROJa654WiTEQUy9lnquPAEQMQhojp7aAvmOkMqOHksje3BfN9eJ/uGYOf4TkQNJT2Q3Y9ZjGiUPxo3sQyKeetqiBDLlCfdbjB2ud8b2NaW/wXuM7xXxz9WA/oO2ENKiHPXRdfGZiWERbzVt3qFdzbwQzlP+6FpkD9LtfPPZiMhhOtX5qpXwmMrlHkRDiDci4oO8Ri9krCMuqoic28HxEhx8c50fti8RZd9F8v0JkcCwv3sNMUqvoq0mO9Ep3RwzMr8VyVRoiyIi+fy+vBJfZL9rBkRkS3nNR+T7gMwSv13UgMiBQj18kNtQAU30KYzItCdyA5bylZcPRAY0osFyE2WFHuyyuAEDLd6I104b5tOPoJgmBJLvEDEZ+bVMD5b3PpMoZeQrU/WC/Hcl8hkTW0PYyvq2xXyNiDntD3tWi16z4zUgbG74E26K0h2+kB9buiy0RpZ3XhSu+ax5/6UGYjkANPqACETeVt6M2gBEzoMcN8pr9/xcdNQAWb7ZMna3iHFR0yj9l+zNMJ50oyR50I5/yC0/x2v4It4aIKlp8BInn8NeWgcj/fTIEVPkFH7Z5R67DzBEpYfX8EV6MPRnDzxgbjSZ9Vzl+lL5xFTweaxzbhP5M3pZzwpjpngSQC4TtctoollROSL56214xPPVnUvqQJRYTKPS5BsgYr+SMxA5QLyWz9cgqsEqR2RKD23HvkbhvLOaeRGeP9trZm8X2T23X+nvGK6uVpCoRnYmStlvV3TPRiQlwky/wrQYPzGDmQ74PchAxIdp8e3Z7kAsa2T0tmrNs0AS6mh1ulrBQj3Hiw+Pyn4TKOXp2orc8YPN2I75/oZq+TKQSJIi1cTFf07TdEVQuNgwV05WsF+p9uX9WSApSy1+8C54oGn0fumbYQcHP4lovOYCt7szTDdrltbKQGqEvuBO3cKTgoOvxPbd9S2RZfwNMLzurKRGgwWQo9V9lIH0eHzPgMhLCZfAoe2mAwNIQi4+SuMlvKfDVl3c4oyCVMdA1NcsYJSB5OVIJK4HnKlbeNyIxp8ljPFfiSw7E4zGqKJfd2FUOxgrjv+7up/ZeyQo8VIGIU+fqm5cTOeIElPTNOmbYYWC8TCS72AzPqEP5Pd0T68xMVCv5zyQ+Dax6zKDDQD6zQST/HrGhX9Nn6mPkorNSW/oWpzvrFy7+cSIfVkj+o64kRFmAwBZfPCfMjBNth4/1hABk5RPLN2YikQYf2oPPRD4sezHjFEV3ISS8tWiHhv5xu3ULOsU1fXj+JKOieTfoClG4P8vOqxeKxyoDAAAAABJRU5ErkJggg=="}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var r=e[i]={id:i,loaded:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=t,(()=>{n.amdO={}})(),(()=>{var t=[];n.O=(e,i,o,r)=>{if(!i){var a=1/0;for(l=0;l=r)&&Object.keys(n.O).every((t=>n.O[t](i[c])))?i.splice(c--,1):(s=!1,r0&&t[l-1][2]>r;l--)t[l]=t[l-1];t[l]=[i,o,r]}})(),(()=>{n.n=t=>{var e=t&&t.__esModule?()=>t["default"]:()=>t;return n.d(e,{a:e}),e}})(),(()=>{n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})}})(),(()=>{n.f={},n.e=t=>Promise.all(Object.keys(n.f).reduce(((e,i)=>(n.f[i](t,e),e)),[]))})(),(()=>{n.u=t=>"static/js/"+t+"."+{42:"ea3940b3",51:"93916629",53:"561dd0de",59:"bfb9c9a4",64:"bc225023",107:"76ef883a",146:"36cf8861",229:"c90319c4",276:"f49954b7",292:"913b72dc",376:"ad767c79",392:"adae3178",425:"f45cd5ba",430:"c38b6b4f",441:"626eee61",443:"e3683be5",494:"644475c4",500:"be136ce0",519:"c9a7dd0d",541:"61f341ef",552:"1fd42a6e",607:"0c076ed6",646:"b458ba65",686:"6d7105e0",767:"f6686431",777:"62079ee2",850:"7d4265c6",982:"7be8267b"}[t]+".js"})(),(()=>{n.miniCssF=t=>"static/css/"+t+"."+{42:"ebac482c",53:"44b85bba",59:"1659749b",64:"53fbed00",107:"c36f949d",146:"ed8bf707",229:"6db25fd6",276:"09e19b31",292:"a6a69de4",376:"00dac405",392:"b8f9e429",425:"258c547c",430:"ec8b496e",441:"3db1a508",443:"7033f181",494:"464dd9ea",500:"34bd6c07",519:"a6e3d139",541:"5c611f99",552:"bf0c7844",607:"47400a44",646:"9a987327",686:"766559a5",767:"42f5de3c",777:"fe9e1eb2",850:"0adc7870",982:"bf01fcb8"}[t]+".css"})(),(()=>{n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()})(),(()=>{n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})(),(()=>{var t={},e="agile-portal-front:";n.l=(i,o,r,a)=>{if(t[i])t[i].push(o);else{var s,c;if(void 0!==r)for(var u=document.getElementsByTagName("script"),l=0;l{s.onerror=s.onload=null,clearTimeout(f);var o=t[i];if(delete t[i],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((t=>t(n))),e)return e(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),c&&document.head.appendChild(s)}}})(),(()=>{n.r=t=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}})(),(()=>{n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t)})(),(()=>{n.p=""})(),(()=>{if("undefined"!==typeof document){var t=(t,e,n,i,o)=>{var r=document.createElement("link");r.rel="stylesheet",r.type="text/css";var a=n=>{if(r.onerror=r.onload=null,"load"===n.type)i();else{var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.href||e,c=new Error("Loading CSS chunk "+t+" failed.\n("+s+")");c.code="CSS_CHUNK_LOAD_FAILED",c.type=a,c.request=s,r.parentNode&&r.parentNode.removeChild(r),o(c)}};return r.onerror=r.onload=a,r.href=e,n?n.parentNode.insertBefore(r,n.nextSibling):document.head.appendChild(r),r},e=(t,e)=>{for(var n=document.getElementsByTagName("link"),i=0;inew Promise(((o,r)=>{var a=n.miniCssF(i),s=n.p+a;if(e(a,s))return o();t(i,s,null,o,r)})),o={143:0};n.f.miniCss=(t,e)=>{var n={42:1,53:1,59:1,64:1,107:1,146:1,229:1,276:1,292:1,376:1,392:1,425:1,430:1,441:1,443:1,494:1,500:1,519:1,541:1,552:1,607:1,646:1,686:1,767:1,777:1,850:1,982:1};o[t]?e.push(o[t]):0!==o[t]&&n[t]&&e.push(o[t]=i(t).then((()=>{o[t]=0}),(e=>{throw delete o[t],e})))}}})(),(()=>{var t={143:0};n.f.j=(e,i)=>{var o=n.o(t,e)?t[e]:void 0;if(0!==o)if(o)i.push(o[2]);else{var r=new Promise(((n,i)=>o=t[e]=[n,i]));i.push(o[2]=r);var a=n.p+n.u(e),s=new Error,c=i=>{if(n.o(t,e)&&(o=t[e],0!==o&&(t[e]=void 0),o)){var r=i&&("load"===i.type?"missing":i.type),a=i&&i.target&&i.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+a+")",s.name="ChunkLoadError",s.type=r,s.request=a,o[1](s)}};n.l(a,c,"chunk-"+e,e)}},n.O.j=e=>0===t[e];var e=(e,i)=>{var o,r,[a,s,c]=i,u=0;if(a.some((e=>0!==t[e]))){for(o in s)n.o(s,o)&&(n.m[o]=s[o]);if(c)var l=c(n)}for(e&&e(i);un(33300)));i=n.O(i)})(); \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/pom.xml b/agile-portal/agile-portal-ui/pom.xml index 2e538ed9..0200b568 100644 --- a/agile-portal/agile-portal-ui/pom.xml +++ b/agile-portal/agile-portal-ui/pom.xml @@ -4,7 +4,7 @@ com.jiuyv.sptcc.agile agile-portal - 0.2.6-SNAPSHOT + 0.2.8-SNAPSHOT agile-portal-ui diff --git a/agile-portal/agile-portal-ui/src/views/ApiList.vue b/agile-portal/agile-portal-ui/src/views/ApiList.vue index 2924515e..7f2fe7ce 100644 --- a/agile-portal/agile-portal-ui/src/views/ApiList.vue +++ b/agile-portal/agile-portal-ui/src/views/ApiList.vue @@ -37,11 +37,11 @@ {{ item.apiName }} - {{ item.apiName }} + {{ item.remark }} 数据提供方:上海公共交通卡有限公司 - 更新时间:{{ item.createTime }}有条件开放 + 更新时间:{{ item.createTime }} diff --git a/agile-portal/agile-portal-ui/src/views/user/ResetPwd.vue b/agile-portal/agile-portal-ui/src/views/user/ResetPwd.vue index 154190dc..b48d6ac4 100644 --- a/agile-portal/agile-portal-ui/src/views/user/ResetPwd.vue +++ b/agile-portal/agile-portal-ui/src/views/user/ResetPwd.vue @@ -1,7 +1,16 @@ - 修改密码(初次登陆需修改初始密码) + + 修改密码(初次登陆需修改初始密码) + (密码失效修改密码) @@ -10,163 +19,228 @@ - + - - + + - + :class=" + passwords == '1' + ? 'weak' + : '' || passwords == '2' + ? 'medium' + : '' || passwords == '3' + ? 'strong' + : '' + " + > + - - 提交 + + + 提交 - + - 修改成功 - {{ - remainingTime }}秒后 自动返回登录页 - 重新登录 + + 修改成功 + + + {{ + remainingTime + }}秒后 自动返回登录页 + + + 重新登录 - - \ No newline at end of file diff --git a/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue b/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue index b489c023..edefed96 100644 --- a/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue +++ b/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue @@ -14,8 +14,8 @@ - 正常 - 停用 + 正常 + 停用 - + - - + + - + :class=" + passwords == '1' + ? 'weak' + : '' || passwords == '2' + ? 'medium' + : '' || passwords == '3' + ? 'strong' + : '' + " + > + - - 提交 + + + 提交 - + - 修改成功 - {{ - remainingTime }}秒后 自动返回登录页 - 重新登录 + + 修改成功 + + + {{ + remainingTime + }}秒后 自动返回登录页 + + + 重新登录 - - \ No newline at end of file diff --git a/sptcc_agile_etl/src/portal/src/trunk/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue b/sptcc_agile_etl/src/portal/src/trunk/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue index b489c023..edefed96 100644 --- a/sptcc_agile_etl/src/portal/src/trunk/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue +++ b/sptcc_agile_etl/src/portal/src/trunk/agile-portal/agile-portal-ui/src/views/user/UserInfo.vue @@ -14,8 +14,8 @@ - 正常 - 停用 + 正常 + 停用 + + 修改密码 @@ -82,7 +84,7 @@ export default { // 验证码开关 captchaOnOff: true, // 注册开关 - register: false, + register: true, redirect: undefined }; }, @@ -148,8 +150,11 @@ export default { }); // this.$router.push({ path: this.redirect || "/" }).catch(() => { // }); - }).catch(() => { + }).catch((err) => { this.loading = false; + if(err === 'password_expired'){ + return; + } if (this.captchaOnOff) { this.getCode(); } @@ -204,7 +209,7 @@ export default { .divform { width: 400px; - padding: 70px 40px 50px; + padding: 70px 40px 10px; border-radius: 6px; background: #ffffff; margin: auto; diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/portal/user/index.vue b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/portal/user/index.vue index 06e0e58d..112ec58e 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/portal/user/index.vue +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/portal/user/index.vue @@ -328,20 +328,20 @@ export default { // 表单校验 rules: { userName: [ - {required: true, message: "账户名不能为空", trigger: "blur"}, - {min: 2, max: 20, message: '账户名长度必须介于 2 和 20 之间', trigger: 'blur'} + {required: true, message: "用户名不能为空", trigger: "blur"}, + {min: 2, max: 20, message: '用户名长度必须介于 2 和 20 之间', trigger: 'blur'} ], nickName: [ - {required: true, message: "用户姓名不能为空", trigger: "blur"} + {required: true, message: "姓名不能为空", trigger: "blur"} ], enterpriseIndustry: [ {required: true, message: "企业行业不能为空", trigger: "blur"} ], password: [ - {required: true, message: "账户密码不能为空", trigger: "blur"}, + {required: true, message: "密码不能为空", trigger: "blur"}, { pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/, - message: '密码须包含数字、大小写字母且长度在8-16之间', + message: '须含大小写字母、数字,长度8-16', trigger: 'blur' }, ], diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/register.vue b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/register.vue index c7b54304..0e8af67b 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/register.vue +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/register.vue @@ -1,7 +1,7 @@ - 若依后台管理系统 + 用户注册 diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/index.vue b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/index.vue index e2ef0ec9..b99f1587 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/index.vue +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/index.vue @@ -344,17 +344,17 @@ export default { rules: { deptId: [{required: true, message: "归属部门不能为空", trigger: "blur"}], userName: [ - {required: true, message: "用户账号不能为空", trigger: "blur"}, - {min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur'} + {required: true, message: "用户名不能为空", trigger: "blur"}, + {min: 2, max: 20, message: '用户名长度必须介于 2 和 20 之间', trigger: 'blur'} ], nickName: [ - {required: true, message: "用户姓名不能为空", trigger: "blur"} + {required: true, message: "姓名不能为空", trigger: "blur"} ], password: [ - {required: true, message: "账户密码不能为空", trigger: "blur"}, + {required: true, message: "密码不能为空", trigger: "blur"}, { pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/, - message: '密码须包含数字、大小写字母且长度在8-16之间', + message: '须含大小写字母、数字,长度8-16', trigger: 'blur' }, ], diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/profile/resetPwd.vue b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/profile/resetPwd.vue index 69df2e86..de01c3d1 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/profile/resetPwd.vue +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console-ui/src/views/system/user/profile/resetPwd.vue @@ -30,12 +30,9 @@ import { encrypt, decrypt } from '@/utils/jsencrypt' export default { data() { const equalToPassword = (rule, value, callback) => { - const reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/ if (this.user.newPassword !== value) { callback(new Error("两次输入的密码不一致")); - } else if (reg.test(value) === false) { - callback(new Error('密码须包含数字、大小写字母且长度在8-16之间')) - } else { + }else { callback(); } }; @@ -55,7 +52,9 @@ export default { ], confirmPassword: [ { required: true, message: "确认密码不能为空", trigger: "blur" }, - { required: true, validator: equalToPassword, trigger: "blur" } + { required: true, validator: equalToPassword, trigger: "blur" }, + { pattern: /[^\u4e00-\u9fa5\s]+/, message: '不允许有中文或空格', trigger: 'blur' }, + { pattern: /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+]{8,20}$/, message: '需包含大、小写字母+数字+特殊字符,长度8-20', trigger: 'blur' }, ] } }; diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/pom.xml b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/pom.xml index 3bb65dc5..a59cc0e6 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/pom.xml +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/pom.xml @@ -3,7 +3,7 @@ com.jiuyv.sptcc.agile agile-system - 1.0.14-SNAPSHOT + 1.2.2-SNAPSHOT agile-system-console diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/config/ConsoleConfig.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/config/ConsoleConfig.java index dfd8a921..30cc95ba 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/config/ConsoleConfig.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/config/ConsoleConfig.java @@ -41,6 +41,17 @@ public class ConsoleConfig { /** 测试类标志,为了屏蔽一些远程结果 */ private static boolean testFlag=false; + //密码过期时间,登陆前修改密码 + private static int passwordExpireDays=90; + //密码快期天数提醒 + private static int passwordExpireReminderDays=7; + //密码过期后,修改错误次数 + private static int passwordErrorNum=3; + //登陆错误/密码修改错误锁定时间(分) + private static int loginErrorLockTime=30; + + + public String getName() { return name; } @@ -183,5 +194,72 @@ public class ConsoleConfig { public static void setTestFlag2(boolean testFlag) { ConsoleConfig.testFlag = testFlag; } + + /** + * @return the passwordExpireDays + */ + public static int getPasswordExpireDays() { + return passwordExpireDays; + } + + /** + * @param passwordExpireDays the passwordExpireDays to set + */ + public static void setPasswordExpireDays(int passwordExpireDays) { + setPasswordExpireDays2(passwordExpireDays); + } + public static void setPasswordExpireDays2(int passwordExpireDays) { + ConsoleConfig.passwordExpireDays = passwordExpireDays; + } + + /** + * @return the passwordErrorNum + */ + public static int getPasswordErrorNum() { + return passwordErrorNum; + } + /** + * @param passwordErrorNum the passwordErrorNum to set + */ + public static void setPasswordErrorNum(int passwordErrorNum) { + setPasswordErrorNum2(passwordErrorNum); + } + public static void setPasswordErrorNum2(int passwordErrorNum) { + ConsoleConfig.passwordErrorNum = passwordErrorNum; + } + + /** + * @return the loginErrorLockTime + */ + public static int getLoginErrorLockTime() { + return loginErrorLockTime; + } + + /** + * @param loginErrorLockTime the loginErrorLockTime to set + */ + public static void setLoginErrorLockTime(int loginErrorLockTime) { + setLoginErrorLockTime2(loginErrorLockTime); + } + public static void setLoginErrorLockTime2(int loginErrorLockTime) { + ConsoleConfig.loginErrorLockTime = loginErrorLockTime; + } + + /** + * @return the passwordExpireReminderDays + */ + public static int getPasswordExpireReminderDays() { + return passwordExpireReminderDays; + } + + /** + * @param passwordExpireReminderDays the passwordExpireReminderDays to set + */ + public static void setPasswordExpireReminderDays(int passwordExpireReminderDays) { + setPasswordExpireReminderDays2(passwordExpireReminderDays); + } + public static void setPasswordExpireReminderDays2(int passwordExpireReminderDays) { + ConsoleConfig.passwordExpireReminderDays = passwordExpireReminderDays; + } } diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SFTPChannel.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SFTPChannel.java index 38b733aa..a8493761 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SFTPChannel.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SFTPChannel.java @@ -92,6 +92,15 @@ public class SFTPChannel { } LOG.debug("Channel connection close!"); } + /** + * 关闭连接 + */ + public void closeInnerChannel() { + if (channel != null) { + channel.disconnect(); + } + } + /** * 提交单条命令,执行并解析结果 * 每次使用独立exec,(不用shell,处理结束麻烦) diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SftpFileUtils.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SftpFileUtils.java index 9d333b7d..b44f0110 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SftpFileUtils.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/SftpFileUtils.java @@ -1,19 +1,22 @@ package com.jiuyv.sptccc.agile.common.utils.sftp; import java.io.File; +import java.io.IOException; import java.io.InputStream; -import java.net.URLDecoder; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpHeaders; import org.springframework.util.StreamUtils; import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpATTRS; import com.jiuyv.sptccc.agile.common.exception.UtilException; @@ -23,8 +26,6 @@ import com.jiuyv.sptccc.agile.common.utils.sftp.model.SftpProgress; import com.jiuyv.sptccc.agile.common.utils.sftp.monitor.SftpComplexProgressMonitor; import com.jiuyv.sptccc.agile.common.utils.sftp.monitor.SftpSimpleProgressMonitor; -import org.apache.commons.lang3.StringUtils; - /** * sftp工具类 * 都是单例连接操作后就会关闭,要多个操作的自己构建SFTPChannel @@ -39,7 +40,7 @@ public class SftpFileUtils private static final Logger LOG = LoggerFactory.getLogger(SftpFileUtils.class); //sftp等待时间,单位毫秒 - private static final int TIMEOUT = 30000; + private static final int TIMEOUT = 120000; //是文件路径 private static final Pattern FILE_SUFFIX = Pattern.compile("\\.[A-Z0-9]+$",Pattern.CASE_INSENSITIVE); @@ -206,6 +207,7 @@ public class SftpFileUtils throw new UtilException("uploadComplexMonitor sftp error"); }finally { // channel.closeChannel(); + channel.closeInnerChannel(); hostPool.returnSession(session);//不再关闭,直接返还连接 } } @@ -241,12 +243,16 @@ public class SftpFileUtils return; } long start=progress.getTransferedSize(); - //response.setHeader(HttpHeaders.LAST_MODIFIED, "");//基于文件修改时间的字符串 + response.setHeader(HttpHeaders.LAST_MODIFIED, attrs.getSize()+"");//基于文件修改时间的字符串 response.setHeader(HttpHeaders.CONTENT_TYPE, "application/octet-stream"); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ServletUtils.urlEncode(progress.getFileName())); response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes"); response.setHeader(HttpHeaders.CONTENT_LENGTH, (attrs.getSize() - start)+""); - response.setHeader(HttpHeaders.CONTENT_RANGE, "bytes " + (start>0?start+1:start) + "-" + (attrs.getSize() - 1) + "/" +attrs.getSize()); + if(start==0) { + response.setHeader(HttpHeaders.CONTENT_RANGE, "bytes 0-" + (attrs.getSize() - 1) + "/" +attrs.getSize()); + }else { + response.setHeader(HttpHeaders.CONTENT_RANGE, "bytes " + start + "-" + (attrs.getSize()-1) + "/" +attrs.getSize()); + } }catch(Exception e){ //返回 LOG.info("downloadComplexMonitor sftp error :file not exist"); @@ -265,6 +271,93 @@ public class SftpFileUtils } } + public static void downloadComplexMonitorEach(SFTPConfig sftpDetails,String src, HttpServletResponse response + ,SftpProgress progress,ISftpProressService progressService) throws Exception { + if(!isFile(src)) { + throw new UtilException("Not a file path"); + } + + SFTPChannel channel = new SFTPChannel(); + try { + ChannelSftp chSftp = channel.getChannel(sftpDetails, TIMEOUT); + String oldMtime=progress.getFactLastTime(); + try { + //自动判断是否存在文件 + SftpATTRS attrs = chSftp.stat(src); + progress.setFactLastTime(attrs.getMTime()+"");//最后修改时间 + progress.setFileSize(attrs.getSize());//文件总大小 + //如果传入了oldMtime,有变更则不会进行下载 + if(progress.getFileChangeFlag(oldMtime)) { + chSftp.quit(); + return; + } + long start=progress.getTransferedSize(); + response.setHeader(HttpHeaders.LAST_MODIFIED, attrs.getSize()+"");//基于文件修改时间的字符串 + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/octet-stream"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ServletUtils.urlEncode(progress.getFileName())); + response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes"); + response.setHeader(HttpHeaders.CONTENT_LENGTH, (attrs.getSize() - start)+""); + if(start==0) { + response.setHeader(HttpHeaders.CONTENT_RANGE, "bytes 0-" + (attrs.getSize() - 1) + "/" +attrs.getSize()); + }else { + response.setHeader(HttpHeaders.CONTENT_RANGE, "bytes " + start + "-" + (attrs.getSize()-1) + "/" +attrs.getSize()); + } + }catch(Exception e){ + //返回 + LOG.info("downloadComplexMonitor sftp error :file not exist"); + progress.setFactLastTime("-1");//文件不存在,方便判断 + chSftp.quit(); + return; + } + ServletOutputStream outputStream = response.getOutputStream(); + handleSftpInputStream(sftpDetails, channel, chSftp, src, outputStream, progress, progressService, 1, progress.getTransferedSize()); + outputStream.flush(); + chSftp.quit(); + }catch(Exception e) { + LOG.error("downloadComplexMonitor sftp error :{}",e.getMessage(),e); + throw new UtilException("downloadComplexMonitor sftp error"); + }finally { + channel.closeChannel(); + } + } + private static void handleSftpInputStream(SFTPConfig sftpDetails,SFTPChannel channel ,ChannelSftp chSftp,String src, + ServletOutputStream outputStream,SftpProgress progress,ISftpProressService progressService,int num,long totalSize) throws IOException { + if(num>4) { + channel.closeInnerChannel(); + return; + } + num++;//加一次 + long nowTotalSize=0L; + InputStream in = null; + try { + in = chSftp.get(src,new SftpComplexProgressMonitor(progress,progressService) ,totalSize); + byte[] buffer = new byte[1024 * 1024]; + int bytesRead; + while ((bytesRead = in.read(buffer)) != -1) { + nowTotalSize = nowTotalSize + bytesRead; + outputStream.write(buffer,0,bytesRead); + outputStream.flush(); + } + chSftp.quit(); + } catch (Exception e) { + LOG.info("downloadComplexMonitor sftp again connect"); + totalSize = totalSize + nowTotalSize; + channel.closeChannel(); + try { + channel = new SFTPChannel(); + chSftp = channel.getChannel(sftpDetails, TIMEOUT); + } catch (JSchException e1) { + LOG.info("downloadComplexMonitor sftp reconnect error>> num = {}",num); + } + handleSftpInputStream(sftpDetails,channel, chSftp, src, outputStream, progress, progressService, num, totalSize); + }finally { + if(in!=null) { + in.close(); + } + } + } + + /** * 删除文件 diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/model/SftpProgress.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/model/SftpProgress.java index bed87033..7ff429a8 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/model/SftpProgress.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/common/utils/sftp/model/SftpProgress.java @@ -25,8 +25,8 @@ public class SftpProgress { /** * 已传输文件大小 */ - private long transferedSize; - + private long transferedSize=0L; + /** * 下载的文件名(原始的,不是uuid) @@ -41,6 +41,10 @@ public class SftpProgress { */ private String factLastTime; + + /** 续传标志*/ + private boolean resumeFlag=false; + /** * @return the fileId */ @@ -128,4 +132,19 @@ public class SftpProgress { } return !fileLastTime.equalsIgnoreCase(factLastTime); } + + + /** + * @return the resumeFlag + */ + public boolean isResumeFlag() { + return resumeFlag; + } + + /** + * @param resumeFlag the resumeFlag to set + */ + public void setResumeFlag(boolean resumeFlag) { + this.resumeFlag = resumeFlag; + } } \ No newline at end of file diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/controller/DockerDownloadApplyController.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/controller/DockerDownloadApplyController.java index f208aeb8..52d9a08f 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/controller/DockerDownloadApplyController.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/controller/DockerDownloadApplyController.java @@ -131,10 +131,14 @@ public class DockerDownloadApplyController extends BaseController { String range = request.getHeader(HttpHeaders.RANGE); String ifrange = request.getHeader(HttpHeaders.IF_RANGE); long start = 0; + long end = 0; + boolean resmueFlag=false; try { if (StringUtilT.isNotEmpty(range)) { String[] parts = range.replace("bytes=", "").split("-"); - start = Integer.parseInt(parts[0]); + start = StringUtils.isNotBlank(parts[0])?Long.parseLong(parts[0]):0; + end = StringUtils.isNotBlank(parts[1])?Long.parseLong(parts[1]):1; + resmueFlag=true; } } catch (Exception e) { //不报错 @@ -153,9 +157,12 @@ public class DockerDownloadApplyController extends BaseController { progress.setTransferedSize(start); progress.setFileName(downloadApply.getFileName()); progress.setFactLastTime(downloadApply.getFileLastTime()); + response.setStatus(resmueFlag ? HttpStatus.PARTIAL_CONTENT.value() : HttpStatus.OK.value()); + +// SftpFileUtils.downloadComplexMonitor(createSftpCfg(clientInfo), src, response, progress, null); + + SftpFileUtils.downloadComplexMonitorEach(createSftpCfg(clientInfo), src, response, progress, null); - response.setStatus(start > 0 ? HttpStatus.PARTIAL_CONTENT.value() : HttpStatus.OK.value()); - SftpFileUtils.downloadComplexMonitor(createSftpCfg(clientInfo), src, response, progress, null); if("-1".equals(progress.getFactLastTime())) {//文件删除了 ServletUtils.renderString(response, JsonUtil.toJSONString(R.fail("FILL_HAS_DELETED","文件已删除"))); } diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerApplyInfoServiceImpl.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerApplyInfoServiceImpl.java index 6806db08..8ac797a5 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerApplyInfoServiceImpl.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerApplyInfoServiceImpl.java @@ -912,7 +912,7 @@ public class DockerApplyInfoServiceImpl implements IDockerApplyInfoService { BaseTime timeVO = BaseManagerUtils.getSystemTime(); SimpleDateFormat sdf = new SimpleDateFormat(DateUtilT.YYYY_MM_DD_HH_MM_SS); Date currdate=sdf.parse(timeVO.getDateDay()+" 00:00:00"); - dockerApplyInfoParamMap.setEndDate(DateUtils.addDays(currdate, 1)); + dockerApplyInfoParamMap.setEndDate(currdate); dockerApplyInfoParamMap.setBusStatus(TblDockerApplyInfoEnum.BUS_STATUS.IN_USE.getCode()); List list = tblDockerApplyInfoMapper.selectDockerApplyExpiredList(dockerApplyInfoParamMap); if(list!=null&&!list.isEmpty()) { diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerDownloadApplyServiceImpl.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerDownloadApplyServiceImpl.java index e3c3503a..eccf162d 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerDownloadApplyServiceImpl.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/docker/service/impl/DockerDownloadApplyServiceImpl.java @@ -166,11 +166,11 @@ public class DockerDownloadApplyServiceImpl implements IDockerDownloadApplyServi TblDockerApplyInfoVO dockerApplyInfoParamMap = new TblDockerApplyInfoVO(); dockerApplyInfoParamMap.setApplyId(dockerDownloadApplyData.getApplyId()); TblDockerApplyInfo dockerApplyInfoData = tblDockerApplyInfoMapper.selectOneByMap(dockerApplyInfoParamMap); - if((TblDockerApplyInfoEnum.BUS_STATUS.WITHDRAW.getCode().equals(dockerApplyInfoData.getBusStatus()) - || TblDockerApplyInfoEnum.BUS_STATUS.END.getCode().equals(dockerApplyInfoData.getBusStatus())) - && TblDockerDownloadApplyEnum.REVIEW_STATUS.PASS.getCode().equals(reqData.getReviewStatus())){ - throw new ServiceException(MessageUtils.message("docker.prohibit.operation","已到期,请进行驳回")); - } +// if((TblDockerApplyInfoEnum.BUS_STATUS.WITHDRAW.getCode().equals(dockerApplyInfoData.getBusStatus()) +// || TblDockerApplyInfoEnum.BUS_STATUS.END.getCode().equals(dockerApplyInfoData.getBusStatus())) +// && TblDockerDownloadApplyEnum.REVIEW_STATUS.PASS.getCode().equals(reqData.getReviewStatus())){ +// throw new ServiceException(MessageUtils.message("docker.prohibit.operation","已到期,请进行驳回")); +// } TblDockerDownloadApply dockerDownloadApplyRecord = new TblDockerDownloadApply(); dockerDownloadApplyRecord.setReviewStatus(reqData.getReviewStatus()); diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/config/SecurityConfig.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/config/SecurityConfig.java index 2d4a63ca..3a4cb635 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/config/SecurityConfig.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/config/SecurityConfig.java @@ -175,7 +175,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 .antMatchers(servletPath+"/**login.**",servletPath+"/login",servletPath+"/register", servletPath+"/captchaImage" - ).anonymous() + , servletPath+"/loginResetPwd").anonymous() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", servletPath+"/*.html", servletPath+"/**/*.html", servletPath+"/**/*.css" , servletPath+"/**/*.js", servletPath+"/profile/**", servletPath+"/static/**", servletPath+"/favicon.**" diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/listener/AuthenticationFailureListener.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/listener/AuthenticationFailureListener.java index c749955f..32fa6660 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/listener/AuthenticationFailureListener.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/listener/AuthenticationFailureListener.java @@ -12,6 +12,7 @@ import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent; import org.springframework.stereotype.Component; +import com.jiuyv.sptccc.agile.common.config.ConsoleConfig; import com.jiuyv.sptccc.agile.common.exception.ServiceException; import com.jiuyv.sptccc.agile.system.domain.TblSysUser; import com.jiuyv.sptccc.agile.system.service.ISysUserService; @@ -67,28 +68,28 @@ public class AuthenticationFailureListener implements ApplicationListener 服务器:{} => 当前域名:{}", serverName, referer); // 做特殊处理,放行特定的referer - List refererUrls = Arrays.asList(refererUrl.split(",")); -// logger.info("放行的域名是>>{}" , JsonUtil.toJSONString(refererUrls)); - if(refererUrls.contains(referer)) { + +// logger.info("放行的域名是>>{}" , refererUrl); + if(isRefererUrl(referer)) { filterChain.doFilter(servletRequest, servletResponse); return; } + + // 判断是否存在外链请求本站 + Matcher m = Pattern.compile("^"+referer,Pattern.CASE_INSENSITIVE).matcher(serverName); + if(m.find()) { + System.out.println(">>>>>>"+m.group()); + } if (null != referer && referer.indexOf(serverName) < 0) { - logger.error("Referer过滤器 => 服务器:{} => 当前域名:{}.放行的域名是>>{}", serverName, referer,JsonUtil.toJSONString(refererUrls)); + logger.error("Referer过滤器 => 服务器:{} => 当前域名:{}.放行的域名是>>{}", serverName, referer, refererUrl); servletResponse.setContentType("text/html; charset=utf-8"); servletResponse.getWriter().write("系统不支持当前域名的访问!"); } else { @@ -101,5 +107,19 @@ public class RefererFilter implements Filter { return urls.stream().map(pattern -> Pattern.compile("^" + pattern)).map(p -> p.matcher(url)) .anyMatch(Matcher::find); } - + + private boolean isRefererUrl(String referer) { + if(referer == null || referer.isEmpty()) { + return false; + } + if (refererUrl == null || refererUrl.isEmpty()) { + return false; + } + List refererUrls = Arrays.asList(refererUrl.split(",")); + if(refererUrls.contains(referer)) { + return true; + } + return refererUrls.stream().map(pattern -> Pattern.compile("^" + pattern)).map(p -> p.matcher(referer)) + .anyMatch(Matcher::find); + } } \ No newline at end of file diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java index c8f590c6..ac934ee6 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/framework/web/service/UserDetailsServiceImpl.java @@ -3,6 +3,7 @@ package com.jiuyv.sptccc.agile.framework.web.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; @@ -10,9 +11,11 @@ import org.springframework.stereotype.Service; import com.jiuyv.sptccc.agile.common.core.domain.model.LoginUser; import com.jiuyv.sptccc.agile.common.enums.UserStatus; -import com.jiuyv.sptccc.agile.common.exception.ServiceException; import com.jiuyv.sptccc.agile.common.utils.StringUtilT; +import com.jiuyv.sptccc.agile.framework.security.exception.PasswordExpiredException; +import com.jiuyv.sptccc.agile.system.common.SystemRespEnum; import com.jiuyv.sptccc.agile.system.domain.TblSysUser; +import com.jiuyv.sptccc.agile.system.service.ISysUserLoginDeniedService; import com.jiuyv.sptccc.agile.system.service.ISysUserService; /** @@ -29,19 +32,27 @@ public class UserDetailsServiceImpl implements UserDetailsService { @Autowired private SysPermissionService permissionService; - + + @Autowired + private ISysUserLoginDeniedService userLoginDeniedService; + + @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + public UserDetails loadUserByUsername(String username) throws AuthenticationException { TblSysUser user = userService.selectUserByUserName(username); if(StringUtilT.isNull(user)) { log.info("登录用户:{} 不存在.", username); - throw new ServiceException("账户或密码错误"); + throw new UsernameNotFoundException("账户或密码错误"); } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { log.info("登录用户:{} 已被删除.", username); - throw new ServiceException("账户或密码错误"); - } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + throw new UsernameNotFoundException("账户或密码错误"); + } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { log.info("登录用户:{} 已被停用.", username); - throw new ServiceException("账户或密码错误"); + throw new UsernameNotFoundException("账户或密码错误"); + } + if (userLoginDeniedService.isUserPasswordExpired(user.getUserId())) { + log.info("登录用户:{} 密码已过期.", username); + throw new PasswordExpiredException(SystemRespEnum.PASSWORD_EXPIRED.getMessage()); } return createLoginUser(user); diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/common/CommonController.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/common/CommonController.java index ccffc7e2..26d043e3 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/common/CommonController.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/common/CommonController.java @@ -124,7 +124,7 @@ public class CommonController { try { if (StringUtilT.isNotEmpty(range)) { String[] parts = range.replace("bytes=", "").split("-"); - start = Integer.parseInt(parts[0]); + start = StringUtils.isNotBlank(parts[0])?Integer.parseInt(parts[0]):0; } } catch (Exception e) { //不报错 @@ -137,9 +137,9 @@ public class CommonController { p.setFileId(fileData.getFileId().toString()); p.setTransferedSize(start); p.setFileName(fileData.getFileName()); + response.setStatus(start > 0? HttpStatus.PARTIAL_CONTENT.value() : HttpStatus.OK.value()); SftpFileUtils.downloadComplexMonitor(createSftpCfg(), fileData.getFactPath(sftpConfigProperties.getUploadPath()) , response, p, null); - response.setStatus(start > 0 ? HttpStatus.PARTIAL_CONTENT.value() : HttpStatus.OK.value()); } else { ServletUtils.renderString(response, JsonUtil.toJSONString(R.fail("FILL_DOES_NOT_EXIST","文件不存在"))); } diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysLoginController.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysLoginController.java index f25b6569..8e07854f 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysLoginController.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysLoginController.java @@ -1,5 +1,6 @@ package com.jiuyv.sptccc.agile.system.controller.system; +import java.util.Date; import java.util.List; import java.util.Set; @@ -11,24 +12,44 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import com.jiuyv.sptccc.agile.common.annotation.Log; +import com.jiuyv.sptccc.agile.common.config.ConsoleConfig; import com.jiuyv.sptccc.agile.common.config.ConsoleOprTokenProperties; +import com.jiuyv.sptccc.agile.common.constant.CacheConstants; import com.jiuyv.sptccc.agile.common.constant.CacheNameConstants; +import com.jiuyv.sptccc.agile.common.constant.Constants; import com.jiuyv.sptccc.agile.common.constant.HttpStatus; +import com.jiuyv.sptccc.agile.common.core.BaseManagerUtils; import com.jiuyv.sptccc.agile.common.core.domain.R; import com.jiuyv.sptccc.agile.common.core.redis.RedisCache; +import com.jiuyv.sptccc.agile.common.enums.BusinessType; +import com.jiuyv.sptccc.agile.common.enums.UserStatus; import com.jiuyv.sptccc.agile.common.utils.MessageUtils; import com.jiuyv.sptccc.agile.common.utils.SecurityUtils; +import com.jiuyv.sptccc.agile.common.utils.StringUtilT; import com.jiuyv.sptccc.agile.common.utils.sm4.Sm4Util; +import com.jiuyv.sptccc.agile.framework.manager.AsyncManager; +import com.jiuyv.sptccc.agile.framework.manager.factory.AsyncFactory; import com.jiuyv.sptccc.agile.framework.security.model.TokenNode; import com.jiuyv.sptccc.agile.framework.web.service.SysLoginService; import com.jiuyv.sptccc.agile.framework.web.service.SysPermissionService; +import com.jiuyv.sptccc.agile.system.common.TblSysUserLoginDeniedEnum; import com.jiuyv.sptccc.agile.system.domain.TblSysMenu; import com.jiuyv.sptccc.agile.system.domain.TblSysUser; +import com.jiuyv.sptccc.agile.system.domain.TblSysUserLoginDenied; import com.jiuyv.sptccc.agile.system.domain.vo.RouterVo; +import com.jiuyv.sptccc.agile.system.dto.sysLogin.ReqLoginResetPwdDTO; import com.jiuyv.sptccc.agile.system.dto.sysLogin.ResSysLoginGetInfoDTO; +import com.jiuyv.sptccc.agile.system.dto.sysUser.ResSysUserResetPwdDTO; import com.jiuyv.sptccc.agile.system.service.ISysMenuService; +import com.jiuyv.sptccc.agile.system.service.ISysUserLoginDeniedService; +import com.jiuyv.sptccc.agile.system.service.ISysUserService; + +import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; /** * 登录验证 @@ -41,7 +62,9 @@ public class SysLoginController private static final Logger logger = LoggerFactory.getLogger(SysLoginController.class); @Autowired private SysLoginService loginService; - + @Autowired + private ISysUserService userService; + @Autowired private ISysMenuService menuService; @@ -51,6 +74,9 @@ public class SysLoginController private RedisCache redisCache; @Autowired private ConsoleOprTokenProperties oprTokenProperties; + @Autowired + private ISysUserLoginDeniedService userLoginDeniedService; + /** * 获取用户信息 * @@ -101,8 +127,11 @@ public class SysLoginController } catch (Exception e1) { logger.error("{}",e1); } - - + + String passwordExpiredDate = userLoginDeniedService.isUserPasswordExpiringReminder(user.getUserId()); + ajax.setPasswordExpiringReminder(StringUtils.isNotBlank(passwordExpiredDate)); + ajax.setPasswordExpiredDate(passwordExpiredDate); + return ajax; } @@ -119,4 +148,128 @@ public class SysLoginController ,SecurityUtils.getLoginUser().getUser().isAdmin()); return R.ok(menuService.buildMenus(menus)); } + + /** + * 重置密码 + */ + @PostMapping("/loginResetPwd") + public R resetPwd(@RequestBody ReqLoginResetPwdDTO req) + { + String uuid=req.getUuid(); + String code=req.getCode(); + String username=req.getUsername(); + String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtilT.nvl(req.getUuid(), ""); + String captcha = redisCache.getValueOfCacheName(CacheNameConstants.CACHE_CAPTCHA_CODE,verifyKey); + if (captcha != null) { + redisCache.removeValueOfCacheName(CacheNameConstants.CACHE_CAPTCHA_CODE,verifyKey); + } + + TblSysUser user = userService.selectUserByUserName(username); + if(StringUtilT.isNull(user)) { + logger.info("登录用户:{} 不存在.", username); + return R.fail("账户或密码错误"); + } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + logger.info("登录用户:{} 已被删除.", username); + return R.fail("账户或密码错误"); + } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + logger.info("登录用户:{} 已被停用.", username); + return R.fail("账户或密码错误"); + } + + if (captcha == null) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); + return R.fail(MessageUtils.message("user.jcaptcha.expire")); + } + if (!code.equalsIgnoreCase(captcha)) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); + return R.fail(MessageUtils.message("user.jcaptcha.error")); + } + + Date time = BaseManagerUtils.getSystemTime().getDate(); + String oldpwd = req.getOldPassword(); + String pwd = req.getPassword(); + try { + String dataSmEncryptKey = redisCache.getValueOfCacheName(CacheNameConstants.CACHE_CAPTCHA_CODE, CacheConstants.CAPTCHA_CODE_SIGN_KEY+uuid); + oldpwd =Sm4Util.decryptEcb(dataSmEncryptKey, oldpwd); + pwd =Sm4Util.decryptEcb(dataSmEncryptKey, pwd); + } catch (Exception e) { + return R.fail("解密失败"); + } + boolean errorflag=false; + if(!SecurityUtils.matchesPassword(oldpwd, user.getPassword())) { + errorflag = true; + } + boolean lockflag=false; + TblSysUserLoginDenied data = userLoginDeniedService.selectLoginDenied(user.getUserId()); + if(data != null && TblSysUserLoginDeniedEnum.STATUS.LOCKED.getCode().equals(data.getStatus())) { + Long timeSlot = time.getTime() - data.getLastModifyErrTime().getTime(); + if (timeSlot < ConsoleConfig.getLoginErrorLockTime()*60000) { + // 判断最后锁定时间,30分钟之内继续锁定 + lockflag = true; + } + } + + if(!errorflag || !lockflag) {//正确才更新密码 + TblSysUser userRecord=new TblSysUser(); + userRecord.setUserId(user.getUserId()); + userRecord.setPassword(SecurityUtils.encryptPassword(pwd)); + userRecord.setUpdateBy(user.getUserId().toString()); + userRecord.setUpdateTime(time); + userService.resetPwd(userRecord); + } + + TblSysUserLoginDenied loginDenied=new TblSysUserLoginDenied(); + loginDenied.setUserId(user.getUserId()); + loginDenied.setUpdateBy(user.getUserId().toString()); + loginDenied.setUpdateByName(user.getNickName()); + loginDenied.setUpdateTime(time); + if(data != null) { + if(errorflag) { + loginDenied.setLastModifyErrTime(time); + loginDenied.setLastModifyErrNum(data.getLastModifyErrNum()+1); + if(loginDenied.getLastModifyErrNum() >= ConsoleConfig.getPasswordErrorNum()) { + loginDenied.setStatus(TblSysUserLoginDeniedEnum.STATUS.LOCKED.getCode()); + } + }else if(lockflag){ + loginDenied.setLastModifyErrTime(time); + }else { + loginDenied.setLastModifyTime(time); + loginDenied.setLastModifyErrNum(0L); + loginDenied.setStatus(TblSysUserLoginDeniedEnum.STATUS.UNLOCK.getCode()); + } + userLoginDeniedService.updateLoginDenied(loginDenied); + }else { + loginDenied.setLastModifyTime(time); + if(errorflag) { + loginDenied.setStatus(TblSysUserLoginDeniedEnum.STATUS.LOCKED.getCode()); + loginDenied.setLastModifyErrNum(Long.valueOf(ConsoleConfig.getPasswordErrorNum())); + } + loginDenied.setLastModifyErrTime(time); + loginDenied.setCreateBy(user.getUserId().toString()); + loginDenied.setCreateByName(user.getNickName()); + loginDenied.setCreateTime(time); + userLoginDeniedService.insertLoginDenied(loginDenied); + } + + if(lockflag) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "修改密码错误次数超限")); + return R.fail("密码错误达到"+ConsoleConfig.getPasswordErrorNum()+"次,请"+ConsoleConfig.getLoginErrorLockTime()+"分钟后尝试"); + } + if(errorflag) { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "修改密码失败,旧密码错误")); + return R.fail("账户或密码错误"); + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, "修改密码成功")); + + ResSysUserResetPwdDTO resDTO=new ResSysUserResetPwdDTO(); + resDTO.setUserId(user.getUserId()); + resDTO.setUpdateBy(user.getUpdateBy()); + return R.ok(resDTO); + } + + public static void main(String[] args) { + System.out.println(SecurityUtils.matchesPassword("admin123", + "$2a$10$.BuAuu2t0e8ENQrp4JChM.FvzPV4rkNN4PrPtvi886zl/hbK6fmRC")); + System.out.println(SecurityUtils.encryptPassword("admin123"));//$2a$10$.BuAuu2t0e8ENQrp4JChM.FvzPV4rkNN4PrPtvi886zl/hbK6fmRC + } } diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysProfileController.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysProfileController.java index b739bfe5..03248663 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysProfileController.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysProfileController.java @@ -1,5 +1,7 @@ package com.jiuyv.sptccc.agile.system.controller.system; +import java.util.Date; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -13,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile; import com.jiuyv.sptccc.agile.common.annotation.Log; import com.jiuyv.sptccc.agile.common.constant.Constants; import com.jiuyv.sptccc.agile.common.constant.UserConstants; +import com.jiuyv.sptccc.agile.common.core.BaseManagerUtils; import com.jiuyv.sptccc.agile.common.core.controller.BaseController; import com.jiuyv.sptccc.agile.common.core.domain.R; import com.jiuyv.sptccc.agile.common.core.domain.model.LoginUser; @@ -31,10 +34,12 @@ import com.jiuyv.sptccc.agile.publicx.dto.publicFiles.ReqPublicFilesAddDTO; import com.jiuyv.sptccc.agile.publicx.entity.TblPublicFiles; import com.jiuyv.sptccc.agile.publicx.service.IPublicFilesService; import com.jiuyv.sptccc.agile.system.domain.TblSysUser; +import com.jiuyv.sptccc.agile.system.domain.TblSysUserLoginDenied; import com.jiuyv.sptccc.agile.system.dto.sysProfile.ReqSysUserUpdateDTO; import com.jiuyv.sptccc.agile.system.dto.sysProfile.ResSysProfileGetProfileDTO; import com.jiuyv.sptccc.agile.system.dto.sysProfile.ResSysUserUpdateDTO; import com.jiuyv.sptccc.agile.system.dto.sysUser.ResUserUpdateAvatarDTO; +import com.jiuyv.sptccc.agile.system.service.ISysUserLoginDeniedService; import com.jiuyv.sptccc.agile.system.service.ISysUserService; /** @@ -57,6 +62,8 @@ public class SysProfileController extends BaseController private SftpConfigProperties sftpConfigProperties; @Autowired private IPublicFilesService publicFilesService; + @Autowired + private ISysUserLoginDeniedService userLoginDeniedService; /** * 个人信息 @@ -148,6 +155,15 @@ public class SysProfileController extends BaseController } if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { + Date time = BaseManagerUtils.getSystemTime().getDate(); + TblSysUserLoginDenied loginDenied=new TblSysUserLoginDenied(); + loginDenied.setUserId(loginUser.getUserId()); + loginDenied.setLastModifyTime(time); + loginDenied.setUpdateBy(loginUser.getUserId().toString()); + loginDenied.setUpdateByName(loginUser.getUser().getNickName()); + loginDenied.setUpdateTime(time); + userLoginDeniedService.updateLoginDenied(loginDenied); + // 更新缓存用户密码 loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); tokenService.setLoginUser(loginUser); diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysUserController.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysUserController.java index b080b8db..a4bd593f 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysUserController.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/controller/system/SysUserController.java @@ -2,6 +2,7 @@ package com.jiuyv.sptccc.agile.system.controller.system; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -25,7 +26,9 @@ import org.springframework.web.multipart.MultipartFile; import com.github.pagehelper.PageInfo; import com.jiuyv.sptccc.agile.common.annotation.Log; +import com.jiuyv.sptccc.agile.common.config.ConsoleConfig; import com.jiuyv.sptccc.agile.common.constant.UserConstants; +import com.jiuyv.sptccc.agile.common.core.BaseManagerUtils; import com.jiuyv.sptccc.agile.common.core.controller.BaseController; import com.jiuyv.sptccc.agile.common.core.domain.R; import com.jiuyv.sptccc.agile.common.core.page.TableDataInfo; @@ -35,8 +38,10 @@ import com.jiuyv.sptccc.agile.common.utils.SecurityUtils; import com.jiuyv.sptccc.agile.common.utils.StringUtilT; import com.jiuyv.sptccc.agile.common.utils.poi.ExcelUtil; import com.jiuyv.sptccc.agile.common.utils.sm4.Sm4Util; +import com.jiuyv.sptccc.agile.system.common.TblSysUserLoginDeniedEnum; import com.jiuyv.sptccc.agile.system.domain.TblSysRole; import com.jiuyv.sptccc.agile.system.domain.TblSysUser; +import com.jiuyv.sptccc.agile.system.domain.TblSysUserLoginDenied; import com.jiuyv.sptccc.agile.system.dto.sysUser.ReqSysUserAddDTO; import com.jiuyv.sptccc.agile.system.dto.sysUser.ReqSysUserChangeStatusDTO; import com.jiuyv.sptccc.agile.system.dto.sysUser.ReqSysUserEditDTO; @@ -50,6 +55,7 @@ import com.jiuyv.sptccc.agile.system.dto.sysUser.ResSysUserGetInfoDTO; import com.jiuyv.sptccc.agile.system.dto.sysUser.ResSysUserPageDTO; import com.jiuyv.sptccc.agile.system.dto.sysUser.ResSysUserResetPwdDTO; import com.jiuyv.sptccc.agile.system.service.ISysRoleService; +import com.jiuyv.sptccc.agile.system.service.ISysUserLoginDeniedService; import com.jiuyv.sptccc.agile.system.service.ISysUserService; /** @@ -67,6 +73,9 @@ public class SysUserController extends BaseController @Autowired private ISysRoleService roleService; + @Autowired + private ISysUserLoginDeniedService userLoginDeniedService; + /** * 获取用户列表 */ @@ -240,6 +249,20 @@ public class SysUserController extends BaseController user.setPassword(SecurityUtils.encryptPassword(pwd)); userService.insertUser(user); + Date time = BaseManagerUtils.getSystemTime().getDate(); + TblSysUserLoginDenied loginDenied=new TblSysUserLoginDenied(); + loginDenied.setUserId(user.getUserId()); + loginDenied.setLastModifyTime(time); + loginDenied.setStatus(TblSysUserLoginDeniedEnum.STATUS.UNLOCK.getCode()); + loginDenied.setUpdateBy(user.getUserId().toString()); + loginDenied.setUpdateByName(user.getNickName()); + loginDenied.setUpdateTime(time); + loginDenied.setCreateBy(user.getUserId().toString()); + loginDenied.setCreateByName(user.getNickName()); + loginDenied.setCreateTime(time); + userLoginDeniedService.insertLoginDenied(loginDenied); + + ResSysUserAddDTO resDTO=new ResSysUserAddDTO(); resDTO.setUserId(user.getUserId()); resDTO.setCreateBy(getUserId().toString()); @@ -339,6 +362,15 @@ public class SysUserController extends BaseController user.setUpdateBy(getUserId().toString()); userService.resetPwd(user); + Date time = BaseManagerUtils.getSystemTime().getDate(); + TblSysUserLoginDenied loginDenied=new TblSysUserLoginDenied(); + loginDenied.setUserId(user.getUserId()); + loginDenied.setLastModifyTime(time); + loginDenied.setUpdateBy(user.getUserId().toString()); + loginDenied.setUpdateByName(user.getNickName()); + loginDenied.setUpdateTime(time); + userLoginDeniedService.updateLoginDenied(loginDenied); + ResSysUserResetPwdDTO resDTO=new ResSysUserResetPwdDTO(); resDTO.setUserId(user.getUserId()); resDTO.setUpdateBy(getUserId().toString()); diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/dto/sysLogin/ResSysLoginGetInfoDTO.java b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/dto/sysLogin/ResSysLoginGetInfoDTO.java index b1e070a5..22508814 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/dto/sysLogin/ResSysLoginGetInfoDTO.java +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/java/com/jiuyv/sptccc/agile/system/dto/sysLogin/ResSysLoginGetInfoDTO.java @@ -51,6 +51,10 @@ public class ResSysLoginGetInfoDTO extends R implements java.io.Serializab * 所有部门 */ private Set permissions; + + private boolean passwordExpiringReminder; + + private String passwordExpiredDate; /** * @return the user @@ -88,4 +92,28 @@ public class ResSysLoginGetInfoDTO extends R implements java.io.Serializab public void setPermissions(Set permissions) { this.permissions = permissions; } + /** + * @return the passwordExpiringReminder + */ + public boolean getPasswordExpiringReminder() { + return passwordExpiringReminder; + } + /** + * @param passwordExpiringReminder the passwordExpiringReminder to set + */ + public void setPasswordExpiringReminder(boolean passwordExpiringReminder) { + this.passwordExpiringReminder = passwordExpiringReminder; + } + /** + * @return the passwordExpiredDate + */ + public String getPasswordExpiredDate() { + return passwordExpiredDate; + } + /** + * @param passwordExpiredDate the passwordExpiredDate to set + */ + public void setPasswordExpiredDate(String passwordExpiredDate) { + this.passwordExpiredDate = passwordExpiredDate; + } } \ No newline at end of file diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/resources/i18n/messages.properties b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/resources/i18n/messages.properties index 73c82537..776dab9b 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/resources/i18n/messages.properties +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/main/resources/i18n/messages.properties @@ -8,6 +8,7 @@ user.secret.key.error=用户密钥无效 user.login.error=用户登陆信息非法 user.again.login.error=当前用户已在另一台机器登录,您被迫下线 user.login.invalid=登陆信息过期,请重新登陆 +user.password.expired=您的密码已过期,请进行修改 user.password.retry.limit.count=密码输入错误,您还有{0}次登录机会 user.password.retry.limit.exceed=密码输入错误{0}次,用户已被锁定,请10分钟之后再尝试登录 diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/test/resources/application-test.yml b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/test/resources/application-test.yml index c5d6e800..ec444e41 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/test/resources/application-test.yml +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/agile-system-console/src/test/resources/application-test.yml @@ -26,6 +26,15 @@ console: remoteApiService: http://172.16.12.101:18090 #测试模式,默认关闭false;开启测试为true,会跳过一些逻辑 testFlag: true + #密码过期天数 + passwordExpireDays: 9999 + #密码过期提醒天数 + passwordExpireReminderDays: 7 + #登陆错误/密码修改错误次数 + passwordErrorNum: 3 + #登陆错误/密码修改错误锁定时间(分) + loginErrorLockTime: 30 + filesftp: host: 172.16.12.108 port: 22 diff --git a/sptcc_agile_etl/src/system/src/trunk/agile-system/pom.xml b/sptcc_agile_etl/src/system/src/trunk/agile-system/pom.xml index 1b4eee59..160c406e 100644 --- a/sptcc_agile_etl/src/system/src/trunk/agile-system/pom.xml +++ b/sptcc_agile_etl/src/system/src/trunk/agile-system/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.jiuyv.sptcc.agile agile-system - 1.0.14-SNAPSHOT + 1.2.2-SNAPSHOT pom