瀏覽代碼

first commit

15810770710@163.com 4 年之前
父節點
當前提交
aa8066198f
共有 59 個文件被更改,包括 1096 次插入0 次删除
  1. 166 0
      pom.xml
  2. 34 0
      src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/Application.java
  3. 18 0
      src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/controller/PageController.java
  4. 44 0
      src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/filter/RequestForwardFiler.java
  5. 65 0
      src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/filter/VueIndexFilter.java
  6. 78 0
      src/main/resources/config/application.yml
  7. 7 0
      src/main/resources/docker/Dockerfile
  8. 195 0
      src/main/resources/static/index.html
  9. 2 0
      src/main/resources/static/static/assets/jquery-3.3.1.min.js
  10. 1 0
      src/main/resources/static/static/assets/json/map.json
  11. 256 0
      src/main/resources/static/static/assets/md5.js
  12. 7 0
      src/main/resources/static/static/assets/vue-resource.min.js
  13. 6 0
      src/main/resources/static/static/assets/vue-router.min.js
  14. 6 0
      src/main/resources/static/static/assets/vue.min.js
  15. 6 0
      src/main/resources/static/static/assets/vuex.min.js
  16. 1 0
      src/main/resources/static/static/css/app.4eeee8edafd24e950e6b0927d6d7b78f.css
  17. 1 0
      src/main/resources/static/static/css/app.85d312eee6fe666f38fb2c9ba931de42.css
  18. 二進制
      src/main/resources/static/static/favicon.ico
  19. 二進制
      src/main/resources/static/static/fonts/element-icons.535877f.woff
  20. 二進制
      src/main/resources/static/static/fonts/element-icons.732389d.ttf
  21. 二進制
      src/main/resources/static/static/img/404.a57b6f3.a57b6f3.png
  22. 二進制
      src/main/resources/static/static/img/loginBg.a796f12.png
  23. 1 0
      src/main/resources/static/static/js/0.26b4d83144e84f71bbf3.js
  24. 1 0
      src/main/resources/static/static/js/0.ce9c4af519bd3ec52fa6.js
  25. 1 0
      src/main/resources/static/static/js/1.6e8605278d3045eb3ac1.js
  26. 1 0
      src/main/resources/static/static/js/10.4865094053a494eee4cf.js
  27. 1 0
      src/main/resources/static/static/js/10.65d746341c773ec25e24.js
  28. 1 0
      src/main/resources/static/static/js/11.ce47b6a3528e29649757.js
  29. 1 0
      src/main/resources/static/static/js/12.8c66eebcaabc53e5647b.js
  30. 1 0
      src/main/resources/static/static/js/12.e75ca1dd0dc12c74350e.js
  31. 1 0
      src/main/resources/static/static/js/13.bd4fe2e4dc67e48a5422.js
  32. 1 0
      src/main/resources/static/static/js/13.dda5c16eab9790478609.js
  33. 1 0
      src/main/resources/static/static/js/14.91d3cbb98e04085f1a1e.js
  34. 1 0
      src/main/resources/static/static/js/15.5c67ea54cec54c97b06f.js
  35. 1 0
      src/main/resources/static/static/js/15.67192b1d806e85bf01c8.js
  36. 1 0
      src/main/resources/static/static/js/16.0f8394114757a4e8d404.js
  37. 1 0
      src/main/resources/static/static/js/16.fa973974c93f544ce788.js
  38. 1 0
      src/main/resources/static/static/js/17.276e522db5d5bae5c944.js
  39. 1 0
      src/main/resources/static/static/js/17.5212bd8140913079803f.js
  40. 1 0
      src/main/resources/static/static/js/18.896becd3e23918b38432.js
  41. 1 0
      src/main/resources/static/static/js/19.21c61ea10f9d8d8b9a86.js
  42. 7 0
      src/main/resources/static/static/js/2.953e493c5af6d81d0c12.js
  43. 1 0
      src/main/resources/static/static/js/20.2e2e117f0d756ca354c0.js
  44. 1 0
      src/main/resources/static/static/js/20.6dde4a7693f2717bf993.js
  45. 1 0
      src/main/resources/static/static/js/21.ea27f7279250791f4bc5.js
  46. 1 0
      src/main/resources/static/static/js/22.b71d81ee2e1142fd998c.js
  47. 1 0
      src/main/resources/static/static/js/3.d23de97e278590b6a331.js
  48. 1 0
      src/main/resources/static/static/js/4.88214b718451f794c4b9.js
  49. 1 0
      src/main/resources/static/static/js/5.bc3f7f36407db41da71c.js
  50. 1 0
      src/main/resources/static/static/js/6.1f8ea584cf27bdacf7f2.js
  51. 1 0
      src/main/resources/static/static/js/6.f65641a710b26e40041b.js
  52. 1 0
      src/main/resources/static/static/js/7.2ed84856796cfe01c37c.js
  53. 1 0
      src/main/resources/static/static/js/8.75b457d234ae4c026748.js
  54. 7 0
      src/main/resources/static/static/js/9.4b487ce6c757115d6b27.js
  55. 1 0
      src/main/resources/static/static/js/app.d38820dccdcdcc64607a.js
  56. 1 0
      src/main/resources/static/static/js/manifest.3e6d20367c398304aced.js
  57. 1 0
      src/main/resources/static/static/js/manifest.7397fdfeeb841d800bda.js
  58. 21 0
      src/main/resources/static/static/js/vendor.2dac679037bbe50f34ed.js
  59. 135 0
      src/main/resources/static/static/main.js

+ 166 - 0
pom.xml

@@ -0,0 +1,166 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  
+  <groupId>info.aspirecn.iov.sjjh</groupId>
+  <artifactId>iov-sjjh-servicenode-fed</artifactId>
+  <version>1.2.9</version>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.2.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+  <dependencies>
+      <dependency>
+         <groupId>org.springframework.boot</groupId>
+         <artifactId>spring-boot-starter-web</artifactId>
+      </dependency>
+      <dependency>
+          <groupId>org.springframework.cloud</groupId>
+          <artifactId>spring-cloud-starter-zuul</artifactId>
+          <version>1.4.5.RELEASE</version>
+      </dependency>
+      <dependency>
+          <groupId>org.projectlombok</groupId>
+          <artifactId>lombok</artifactId>
+          <version>1.16.22</version>
+      </dependency>
+      <dependency>
+          <groupId>org.springframework.cloud</groupId>
+          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+      </dependency>
+  </dependencies>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>Hoxton.RELEASE</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                            <excludeGroupIds>
+                                info.aspirecn.iov.sjjh
+                            </excludeGroupIds>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>copy</id>
+                        <phase>install</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>
+                                ${project.build.directory}/lib
+                            </outputDirectory>
+                            <excludeGroupIds>
+                                info.aspirecn.iov.sjjh
+                            </excludeGroupIds>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <nonFilteredFileExtensions>
+                        <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
+                        <nonFilteredFileExtension>woff</nonFilteredFileExtension>
+                        <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
+                    </nonFilteredFileExtensions>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-resources</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>target/classes</outputDirectory>
+                            <useDefaultDelimiters>false</useDefaultDelimiters>
+                            <delimiters>
+                                <delimiter>@</delimiter>
+                            </delimiters>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/resources/config</directory>
+                                    <targetPath>config</targetPath>
+                                    <filtering>true</filtering>
+                                    <includes>
+                                        <include>**</include>
+                                    </includes>
+                                </resource>
+                                <resource>
+                                    <directory>src/main/resources/docker</directory>
+                                    <targetPath>docker</targetPath>
+                                    <filtering>true</filtering>
+                                    <includes>
+                                        <include>**</include>
+                                    </includes>
+                                </resource>
+                                <resource>
+                                    <directory>src/main/resources/static</directory>
+                                    <targetPath>static</targetPath>
+                                    <filtering>true</filtering>
+                                    <includes>
+                                        <include>**</include>
+                                    </includes>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <!-- 设置Docker 镜像名称 -->
+                    <imageName>hub.i139.cn/iov-sjjh/${project.artifactId}:${project.version}</imageName>
+                    <!-- 设置Dockerfile存放目录地址 -->
+                    <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                    <!-- 设置和setting.xml中的servers对应的server,里面存放了docker hub仓库的用户名、密码 -->
+                    <serverId>docker-hub</serverId>
+                    <!-- 设置docker hub仓库地址 -->
+                    <registryUrl>https://hub.i139.cn</registryUrl>
+                    <!-- 设置docker remote API地址 -->
+                    <!--<dockerHost>http://docker-in-docker.rdc-plugin:2375</dockerHost>-->
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+  
+</project>

+ 34 - 0
src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/Application.java

@@ -0,0 +1,34 @@
+package info.aspirecn.iov.sjjh.servicenode.fed;
+
+import info.aspirecn.iov.sjjh.servicenode.fed.filter.RequestForwardFiler;
+import info.aspirecn.iov.sjjh.servicenode.fed.filter.VueIndexFilter;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
+import org.springframework.context.annotation.Bean;
+
+@EnableEurekaClient
+@EnableZuulProxy
+@SpringBootApplication
+public class Application {
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+    @Bean
+    public RequestForwardFiler requestForwardFiler(){
+        return new RequestForwardFiler();
+    }
+
+    @Bean
+    public FilterRegistrationBean vueIndexFilter(){
+        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
+        registrationBean.addUrlPatterns("/*");
+        registrationBean.setName("vueIndexFilter");
+        registrationBean.setOrder(1);
+        registrationBean.setFilter(new VueIndexFilter());
+        return registrationBean;
+    }
+}

+ 18 - 0
src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/controller/PageController.java

@@ -0,0 +1,18 @@
+package info.aspirecn.iov.sjjh.servicenode.fed.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@Slf4j
+@Controller
+public class PageController {
+
+    @RequestMapping(value="/")
+    public String pageVisit() {
+
+        log.info("------");
+        return "/index";
+    }
+
+}

+ 44 - 0
src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/filter/RequestForwardFiler.java

@@ -0,0 +1,44 @@
+package info.aspirecn.iov.sjjh.servicenode.fed.filter;
+
+import com.netflix.zuul.ZuulFilter;
+import com.netflix.zuul.context.RequestContext;
+import com.netflix.zuul.exception.ZuulException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
+
+/**
+ * @author jianggang
+ * @Date 2018/11/21 14:07:12
+ * @Description
+ */
+
+@Slf4j
+public class RequestForwardFiler extends ZuulFilter {
+
+    @Override
+    public String filterType() {
+        return FilterConstants.PRE_TYPE;
+    }
+
+    @Override
+    public int filterOrder() {
+        return FilterConstants.PRE_DECORATION_FILTER_ORDER + 1;
+    }
+
+    @Override
+    public boolean shouldFilter() {
+        return true;
+    }
+
+    @Override
+    public Object run(){
+        RequestContext context = RequestContext.getCurrentContext();
+        Object originalRequestPath = context.get(FilterConstants.REQUEST_URI_KEY);
+        log.info("originalRequestPath:{}",originalRequestPath);
+        String modifiedRequestPath = "/api/portal/v1" + originalRequestPath;
+        log.info("modifiedRequestPath:{}",modifiedRequestPath);
+        context.put(FilterConstants.REQUEST_URI_KEY,modifiedRequestPath);
+        log.info("------------>{}",modifiedRequestPath);
+        return null;
+    }
+}

+ 65 - 0
src/main/java/info/aspirecn/iov/sjjh/servicenode/fed/filter/VueIndexFilter.java

@@ -0,0 +1,65 @@
+package info.aspirecn.iov.sjjh.servicenode.fed.filter;
+
+
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+/**
+ * @author jianggang
+ * @Date 2018/11/21 15:33:10
+ * @Description
+ */
+
+@Slf4j
+public class VueIndexFilter implements Filter {
+
+    private String noforward = "assets;css;fonts;img;js;api";
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+
+    }
+
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+        HttpServletRequest request = (HttpServletRequest)servletRequest;
+        String uri = request.getRequestURI();
+        if(isForward(uri)){
+            log.info("------->转发的uri{}",uri);
+            servletRequest.getRequestDispatcher("/").forward(servletRequest,servletResponse);
+        }else{
+            filterChain.doFilter(servletRequest,servletResponse);
+        }
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+
+
+    private boolean isForward(String uri){
+        String targetUri = uri.substring(0,uri.lastIndexOf('/'));
+        int temp = 0;
+        String finalStr = "";
+        if(targetUri.lastIndexOf('/')>0){
+            temp = targetUri.lastIndexOf('/')+1;
+            finalStr = uri.substring(temp,uri.lastIndexOf('/'));
+        }else{
+            finalStr = uri.substring(temp,uri.lastIndexOf('/'));
+           if(finalStr.length()>0){
+               finalStr = uri.substring(1,uri.lastIndexOf('/'));
+           }
+        }
+        String[] strs = noforward.split(";");
+        for(String str : strs){
+            if(finalStr.equals(str)){
+                return false;
+            }
+        }
+        return true;
+    }
+}

+ 78 - 0
src/main/resources/config/application.yml

@@ -0,0 +1,78 @@
+server:
+  port: 20907
+  tomcat:
+    accesslog:
+      buffered: false
+      enabled: true
+      pattern: '{"DateTime":"%{yyyy-MM-dd''T''HH:mm:ss.SSSZZ}t","ClientIP":"%a","Method":"%m","URI":"%U","RequestProtocol":"%H","ResponseCode":%s
+                               ,"ResponseTime":%D,"UserAgent":"%{user-agent}i","X-Forwarded-For":"%{x-forwarded-for}r","X-User-IP":"","traceId":"%{x-b3-traceid}i","id":"%{x-b3-spanid}r",
+                               "parentId":"%{x-b3-parentspanid}i","ApplicationName":"${spring.application.name}"}'
+      prefix: x_access_${HOSTNAME}_${spring.application.name}_${server.port}
+      directory: ${logging.path}
+  servlet:
+    context-path: /
+
+spring:
+  application:
+    name: iov-sjjh-servicenode-fed
+  mvc:
+    favicon:
+      enabled: false
+    view:
+      suffix: .html
+      prefix: /
+    static-path-pattern: /**
+  resources:
+    static-locations: classpath:/static
+  cloud:
+    config:
+      overrideSystemProperties: true
+      allowOverride: true
+      overrideNone: true
+management:
+  server:
+    port: 21097
+  endpoints:
+    enabled-by-default: true
+    web:
+      exposure:
+        include: '*'
+  endpoint:
+    health:
+      show-details: always
+    shutdown:
+      enabled: true
+
+eureka:
+  instance:
+    prefer-ip-address: true
+    instance-id: ${spring.cloud.client.ip-address}:${server.port}:${spring.application.name}
+    metadata-map:
+      management:
+        server:
+          port: ${management.server.port}
+    health-check-url: http://${spring.cloud.client.ip-address}:${management.server.port}${eureka.instance.health-check-url-path}
+    health-check-url-path: /actuator/health
+  client:
+    serviceUrl:
+      defaultZone:  http://10.8.18.156:31102/eureka,http://10.8.18.172:31102/eureka
+
+zuul:
+  ignoredServices : '*'
+  ignored-patterns : '/**/inner/**'
+  addHostHeader : true
+  routes:
+    routegateway:
+      path : /api/**
+      serviceId : iov-sjjh-gateway-portal
+      sensitiveHeaders : '*'
+
+iov-sjjh-gateway-portal:
+  ribbon:
+    ConnectTimeout : 250
+    OkToRetryOnAllOperations : false
+    ReadTimeout : 30000
+
+info:
+  name: '@project.description@'
+  version: '@project.version@'

+ 7 - 0
src/main/resources/docker/Dockerfile

@@ -0,0 +1,7 @@
+FROM hub.i139.cn/rdc-commons/official-openjdk:8u191-jre-alpine3.9
+VOLUME /tmp
+ADD *.jar app.jar
+RUN sh -c 'touch /app.jar'
+ENV JAVA_OPTS="-Xmx256M -Xms256M -Xss256k -Duser.timezone=Asia/Shanghai"
+ENV APP_OPTS=""
+ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar $APP_OPTS" ]

文件差異過大導致無法顯示
+ 195 - 0
src/main/resources/static/index.html


文件差異過大導致無法顯示
+ 2 - 0
src/main/resources/static/static/assets/jquery-3.3.1.min.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/assets/json/map.json


+ 256 - 0
src/main/resources/static/static/assets/md5.js

@@ -0,0 +1,256 @@
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
+var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */
+var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function md5_vm_test()
+{
+  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+}
+
+/*
+ * Calculate the MD5 of an array of little-endian words, and a bit length
+ */
+function core_md5(x, len)
+{
+  /* append padding */
+  x[len >> 5] |= 0x80 << ((len) % 32);
+  x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+  var a =  1732584193;
+  var b = -271733879;
+  var c = -1732584194;
+  var d =  271733878;
+
+  for(var i = 0; i < x.length; i += 16)
+  {
+    var olda = a;
+    var oldb = b;
+    var oldc = c;
+    var oldd = d;
+
+    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
+    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
+    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
+    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
+    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
+
+    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
+    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
+    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
+    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
+    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
+    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+
+    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
+    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
+    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
+    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
+    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
+    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+
+    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
+    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
+    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
+    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
+    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
+    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+
+    a = safe_add(a, olda);
+    b = safe_add(b, oldb);
+    c = safe_add(c, oldc);
+    d = safe_add(d, oldd);
+  }
+  return Array(a, b, c, d);
+
+}
+
+/*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+function md5_cmn(q, a, b, x, s, t)
+{
+  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+}
+function md5_ff(a, b, c, d, x, s, t)
+{
+  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5_gg(a, b, c, d, x, s, t)
+{
+  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5_hh(a, b, c, d, x, s, t)
+{
+  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5_ii(a, b, c, d, x, s, t)
+{
+  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+/*
+ * Calculate the HMAC-MD5, of a key and some data
+ */
+function core_hmac_md5(key, data)
+{
+  var bkey = str2binl(key);
+  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+
+  var ipad = Array(16), opad = Array(16);
+  for(var i = 0; i < 16; i++)
+  {
+    ipad[i] = bkey[i] ^ 0x36363636;
+    opad[i] = bkey[i] ^ 0x5C5C5C5C;
+  }
+
+  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+  return core_md5(opad.concat(hash), 512 + 128);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+  return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+  return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert a string to an array of little-endian words
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+ */
+function str2binl(str)
+{
+  var bin = Array();
+  var mask = (1 << chrsz) - 1;
+  for(var i = 0; i < str.length * chrsz; i += chrsz)
+    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+  return bin;
+}
+
+/*
+ * Convert an array of little-endian words to a string
+ */
+function binl2str(bin)
+{
+  var str = "";
+  var mask = (1 << chrsz) - 1;
+  for(var i = 0; i < bin.length * 32; i += chrsz)
+    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+  return str;
+}
+
+/*
+ * Convert an array of little-endian words to a hex string.
+ */
+function binl2hex(binarray)
+{
+  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+  var str = "";
+  for(var i = 0; i < binarray.length * 4; i++)
+  {
+    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
+  }
+  return str;
+}
+
+/*
+ * Convert an array of little-endian words to a base-64 string
+ */
+function binl2b64(binarray)
+{
+  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+  var str = "";
+  for(var i = 0; i < binarray.length * 4; i += 3)
+  {
+    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
+                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+    for(var j = 0; j < 4; j++)
+    {
+      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+    }
+  }
+  return str;
+}

文件差異過大導致無法顯示
+ 7 - 0
src/main/resources/static/static/assets/vue-resource.min.js


文件差異過大導致無法顯示
+ 6 - 0
src/main/resources/static/static/assets/vue-router.min.js


文件差異過大導致無法顯示
+ 6 - 0
src/main/resources/static/static/assets/vue.min.js


文件差異過大導致無法顯示
+ 6 - 0
src/main/resources/static/static/assets/vuex.min.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/css/app.4eeee8edafd24e950e6b0927d6d7b78f.css


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/css/app.85d312eee6fe666f38fb2c9ba931de42.css


二進制
src/main/resources/static/static/favicon.ico


二進制
src/main/resources/static/static/fonts/element-icons.535877f.woff


二進制
src/main/resources/static/static/fonts/element-icons.732389d.ttf


二進制
src/main/resources/static/static/img/404.a57b6f3.a57b6f3.png


二進制
src/main/resources/static/static/img/loginBg.a796f12.png


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/0.26b4d83144e84f71bbf3.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/0.ce9c4af519bd3ec52fa6.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/1.6e8605278d3045eb3ac1.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/10.4865094053a494eee4cf.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/10.65d746341c773ec25e24.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/11.ce47b6a3528e29649757.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/12.8c66eebcaabc53e5647b.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/12.e75ca1dd0dc12c74350e.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/13.bd4fe2e4dc67e48a5422.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/13.dda5c16eab9790478609.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/14.91d3cbb98e04085f1a1e.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/15.5c67ea54cec54c97b06f.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/15.67192b1d806e85bf01c8.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/16.0f8394114757a4e8d404.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/16.fa973974c93f544ce788.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/17.276e522db5d5bae5c944.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/17.5212bd8140913079803f.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/18.896becd3e23918b38432.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/19.21c61ea10f9d8d8b9a86.js


文件差異過大導致無法顯示
+ 7 - 0
src/main/resources/static/static/js/2.953e493c5af6d81d0c12.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/20.2e2e117f0d756ca354c0.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/20.6dde4a7693f2717bf993.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/21.ea27f7279250791f4bc5.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/22.b71d81ee2e1142fd998c.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/3.d23de97e278590b6a331.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/4.88214b718451f794c4b9.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/5.bc3f7f36407db41da71c.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/6.1f8ea584cf27bdacf7f2.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/6.f65641a710b26e40041b.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/7.2ed84856796cfe01c37c.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/8.75b457d234ae4c026748.js


文件差異過大導致無法顯示
+ 7 - 0
src/main/resources/static/static/js/9.4b487ce6c757115d6b27.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/app.d38820dccdcdcc64607a.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/manifest.3e6d20367c398304aced.js


文件差異過大導致無法顯示
+ 1 - 0
src/main/resources/static/static/js/manifest.7397fdfeeb841d800bda.js


文件差異過大導致無法顯示
+ 21 - 0
src/main/resources/static/static/js/vendor.2dac679037bbe50f34ed.js


+ 135 - 0
src/main/resources/static/static/main.js

@@ -0,0 +1,135 @@
+/* jshint esversion: 6 */
+import {initRemove} from "./js/utils.js";
+initRemove();
+import 'element-ui/lib/theme-chalk/display.css';
+import {
+  Button,
+  Upload,
+  Container,
+  Header,
+  Aside,
+  Main,
+  Footer,
+  Loading,
+  MessageBox,
+  Message,
+  Notification,
+  Form,
+  FormItem,
+  Row,
+  Col,
+  Menu,
+  Submenu,
+  MenuItem,
+  MenuItemGroup,
+  Breadcrumb,
+  BreadcrumbItem,
+  Dropdown,
+  DropdownMenu,
+  DropdownItem,
+  Select,
+  Option,
+  Input,
+  table,
+  tableColumn,
+  pagination,
+  Dialog,
+  Autocomplete,
+  DatePicker,
+  TimeSelect,
+  TimePicker,
+  Checkbox,
+  CheckboxGroup,
+  Radio,
+  RadioGroup,
+  Scrollbar,
+  Tag,
+  Popover,
+  Tooltip,
+  Collapse,
+  CollapseItem
+} from 'element-ui';
+Vue.use(Collapse);
+Vue.use(CollapseItem);
+Vue.use(Button);
+Vue.use(Upload);
+Vue.use(Input);
+Vue.use(Container);
+Vue.use(Header);
+Vue.use(Main);
+Vue.use(Aside);
+Vue.use(Footer);
+Vue.use(Loading.directive);
+Vue.use(Form);
+Vue.use(FormItem);
+Vue.use(Row);
+Vue.use(Col);
+Vue.use(Menu);
+Vue.use(Submenu);
+Vue.use(MenuItem);
+Vue.use(MenuItemGroup);
+Vue.use(Select);
+Vue.use(Option);
+Vue.use(table);
+Vue.use(tableColumn);
+Vue.use(pagination);
+Vue.use(Dialog);
+Vue.use(Breadcrumb);
+Vue.use(BreadcrumbItem);
+Vue.use(Dropdown);
+Vue.use(DropdownMenu);
+Vue.use(DropdownItem);
+Vue.use(Autocomplete);
+Vue.use(DatePicker);
+Vue.use(TimeSelect);
+Vue.use(TimePicker);
+Vue.use(Popover);
+Vue.use(Checkbox);
+Vue.use(CheckboxGroup);
+Vue.use(Radio);
+Vue.use(RadioGroup);
+Vue.use(Scrollbar);
+Vue.use(Tag);
+Vue.use(Tooltip);
+Vue.prototype.$loading = Loading.service;
+Vue.prototype.$msgbox = MessageBox;
+Vue.prototype.$confirm = MessageBox.confirm;
+Vue.prototype.$prompt = MessageBox.prompt;
+Vue.prototype.$notify = Notification;
+Vue.prototype.$message = Message;
+
+import echarts from './js/echarts';
+Vue.prototype.$echarts = echarts;
+
+// 入口文件为 src/App.vue 文件 所以要引用
+import App from './App.vue';
+// 引用路由配置文件
+import routes from './config/routes';
+
+// 引用API文件
+import api from './config/api';
+
+// 将API方法绑定到全局
+Vue.prototype.$api = api;
+window.myAxios = api;
+
+import store from './store';
+
+// 使用配置文件规则
+const router = new VueRouter({
+  mode: 'history',
+	base: '/',
+  scrollBehavior:()=>({ // 滚动条滚动的行为,不加这个默认就会记忆原来滚动条的位置
+    y:0
+  }),
+  routes
+});
+// 跑起来吧
+//document.getElementById('LOADING').style.display='none';
+
+new Vue({
+  router,
+  store,
+  el: '#app',
+  render: (h) => h(App)
+});