48 changed files with 415 additions and 73 deletions
			
			
		@ -1,7 +1,11 @@ | 
				
			|||||
window.APP = {};                                    // 在浏览器 window 对象中新建名为 APP 的变量, 用于存放应用对象的容器
 | 
					// 在浏览器 window 对象中新建名为 APP 的容器变量, 用于存放平台的全局变量
 | 
				
			||||
window.APP.configure ={                             // 全局配置存储容器
 | 
					window.APP = {}; | 
				
			||||
    webContextPath: '[(@{/})]'.startsWith('[')? '/' : '[(@{/})]', // 应用上下文路径
 | 
					// 全局配置
 | 
				
			||||
 | 
					window.APP.configure ={ | 
				
			||||
 | 
					    // 应用上下文路径
 | 
				
			||||
 | 
					    webContextPath: '[(@{/})]'.startsWith('[')? '/' : '[(@{/})]', | 
				
			||||
 | 
					    // 默认后端 API 请求的服务地址前缀
 | 
				
			||||
    apiContextPaths: { | 
					    apiContextPaths: { | 
				
			||||
      DEFAULT: '[(@{/})]'.startsWith('[')     ? 'http://localhost:8080/' : '[(@{/})]', // 后端 API 请求的服务地址前缀
 | 
					      DEFAULT: '[(@{/})]'.startsWith('[')     ? 'http://localhost:8080/' : '[(@{/})]' | 
				
			||||
    } | 
					 | 
				
			||||
    } | 
					    } | 
				
			||||
 | 
					}; | 
				
			||||
@ -0,0 +1,19 @@ | 
				
			|||||
 | 
					/** | 
				
			||||
 | 
					 * 设置打包文件的运行时目标环境(target) | 
				
			||||
 | 
					 * 设置方式: 通过命令行 -D 传入目标环境参数 | 
				
			||||
 | 
					 * 打包命令如下: | 
				
			||||
 | 
					 * 1. gradle bootwar                  		# 默认, 			target=tomcat | 
				
			||||
 | 
					 * 2. gradle bootwar -Dtarget=undertow		# undertow,		target=undertow | 
				
			||||
 | 
					 * 3. gradle bootwar -Dtarget=jetty			# jetty,		target=jetty | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					def target =System.getProperty("target") ?: "undertow"; | 
				
			||||
 | 
					System.setProperty('target',target); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 根据 targetRuntime 变量的值执行实际的 build.gradle | 
				
			||||
 | 
					apply from: "build-${target}.gradle" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 应用启动项目无需发布到仓库中 | 
				
			||||
 | 
					publishPublicationPublicationToMavenRepository.enabled=false | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 开启 docker 镜像生成任务 | 
				
			||||
 | 
					jibBuildTar.enabled =true | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			|||||
 | 
					println "[Jetty] 环境 ......" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					configurations { | 
				
			||||
 | 
					    all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-core" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-websocket" | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					dependencies { | 
				
			||||
 | 
					    implementation("org.springframework.boot:spring-boot-starter-jetty") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    providedRuntime( | 
				
			||||
 | 
					        "org.springframework.boot:spring-boot-starter-jetty", | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			|||||
 | 
					println "[Tomcat] 环境 ......" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					dependencies { | 
				
			||||
 | 
					    providedRuntime( | 
				
			||||
 | 
					        "org.springframework.boot:spring-boot-starter-tomcat", | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			|||||
 | 
					println "[Undertow] 环境 ......" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					configurations { | 
				
			||||
 | 
					    all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-core" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-websocket" | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					dependencies { | 
				
			||||
 | 
					    implementation("org.springframework.boot:spring-boot-starter-undertow") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    providedRuntime( | 
				
			||||
 | 
					        "org.springframework.boot:spring-boot-starter-undertow", | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,19 @@ | 
				
			|||||
 | 
					/** | 
				
			||||
 | 
					 * 设置打包文件的运行时目标环境(target) | 
				
			||||
 | 
					 * 设置方式: 通过命令行 -D 传入目标环境参数 | 
				
			||||
 | 
					 * 打包命令如下: | 
				
			||||
 | 
					 * 1. gradle bootwar                  		# 默认, 			target=tomcat | 
				
			||||
 | 
					 * 2. gradle bootwar -Dtarget=undertow		# undertow,		target=undertow | 
				
			||||
 | 
					 * 3. gradle bootwar -Dtarget=jetty			# jetty,		target=jetty | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					def target =System.getProperty("target") ?: "undertow"; | 
				
			||||
 | 
					System.setProperty('target',target); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 根据 targetRuntime 变量的值执行实际的 build.gradle | 
				
			||||
 | 
					apply from: "build-${target}.gradle" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 应用启动项目无需发布到仓库中 | 
				
			||||
 | 
					publishPublicationPublicationToMavenRepository.enabled=false | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					// 开启 docker 镜像生成任务 | 
				
			||||
 | 
					jibBuildTar.enabled =true | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			|||||
 | 
					println "[Jetty] 环境 ......" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					configurations { | 
				
			||||
 | 
					    all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-core" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-websocket" | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					dependencies { | 
				
			||||
 | 
					    implementation("org.springframework.boot:spring-boot-starter-jetty") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    providedRuntime( | 
				
			||||
 | 
					        "org.springframework.boot:spring-boot-starter-jetty", | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			|||||
 | 
					println "[Tomcat] 环境 ......" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					dependencies { | 
				
			||||
 | 
					    providedRuntime( | 
				
			||||
 | 
					        "org.springframework.boot:spring-boot-starter-tomcat", | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			|||||
 | 
					println "[Undertow] 环境 ......" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					configurations { | 
				
			||||
 | 
					    all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-core" | 
				
			||||
 | 
					    all*.exclude group: "org.apache.tomcat.embed",  module: "tomcat-embed-websocket" | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					dependencies { | 
				
			||||
 | 
					    implementation("org.springframework.boot:spring-boot-starter-undertow") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    providedRuntime( | 
				
			||||
 | 
					        "org.springframework.boot:spring-boot-starter-undertow", | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					} | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
import com.fasterxml.jackson.annotation.JsonProperty; | 
					import com.fasterxml.jackson.annotation.JsonProperty; | 
				
			||||
 | 
					
 | 
				
			||||
@ -1,7 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					 | 
				
			||||
import java.util.HashMap; | 
					 | 
				
			||||
import java.util.Map; | 
					 | 
				
			||||
 | 
					
 | 
				
			||||
public class Configure { | 
					public class Configure { | 
				
			||||
    private Setting setting =new Setting(); | 
					    private Setting setting =new Setting(); | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Footer { | 
					public class Footer { | 
				
			||||
    private boolean show =false;        // 是否显示
 | 
					    private boolean show =false;        // 是否显示
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Grid { | 
					public class Grid { | 
				
			||||
    private String headBgColor ="#f5f7fa";                   // 表头背景颜色
 | 
					    private String headBgColor ="#f5f7fa";                   // 表头背景颜色
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class I18n { | 
					public class I18n { | 
				
			||||
    private String[] availableLocales =new String[]{ "en", "zh_CN", "tw_CN" };// 支持的国际化多语言数组
 | 
					    private String[] availableLocales =new String[]{ "en", "zh_CN", "tw_CN" };// 支持的国际化多语言数组
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class LoadingBar { | 
					public class LoadingBar { | 
				
			||||
    private String color ="positive";   // 颜色
 | 
					    private String color ="positive";   // 颜色
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Login { | 
					public class Login { | 
				
			||||
    private String bgImage= "login-bg.jpg"; // 背景图片
 | 
					    private String bgImage= "login-bg.jpg"; // 背景图片
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Main { | 
					public class Main { | 
				
			||||
    private String bgColor = "#FFFFFF";             // 背景颜色
 | 
					    private String bgColor = "#FFFFFF";             // 背景颜色
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Notifier { | 
					public class Notifier { | 
				
			||||
    private String position ="top"; // 位置(可选值:top-left,top-right,bottom-left,bottom-right,top,bottom,left,right,center
 | 
					    private String position ="top"; // 位置(可选值:top-left,top-right,bottom-left,bottom-right,top,bottom,left,right,center
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Scroller { | 
					public class Scroller { | 
				
			||||
    private boolean enable =true;               // 是否可用
 | 
					    private boolean enable =true;               // 是否可用
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Setting { | 
					public class Setting { | 
				
			||||
    private String routerHistoryMode="hash";        // vue-router 历史模式(hash,web)
 | 
					    private String routerHistoryMode="hash";        // vue-router 历史模式(hash,web)
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Sider { | 
					public class Sider { | 
				
			||||
    private String position ="left";            // 位置(可选值:left;right)
 | 
					    private String position ="left";            // 位置(可选值:left;right)
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class TagViewBar { | 
					public class TagViewBar { | 
				
			||||
    private int height =50;                         // 高度(单位:像素)
 | 
					    private int height =50;                         // 高度(单位:像素)
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class Theme { | 
					public class Theme { | 
				
			||||
    private boolean dark =false;                    // 是否黑暗模式
 | 
					    private boolean dark =false;                    // 是否黑暗模式
 | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
import java.util.HashMap; | 
					import java.util.HashMap; | 
				
			||||
import java.util.Map; | 
					import java.util.Map; | 
				
			||||
@ -1,4 +1,4 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.vo; | 
					package io.sc.platform.lcdp.configure.api; | 
				
			||||
 | 
					
 | 
				
			||||
public class TopperAction { | 
					public class TopperAction { | 
				
			||||
    private boolean enable =true;     // 是否可用
 | 
					    private boolean enable =true;     // 是否可用
 | 
				
			||||
@ -0,0 +1,16 @@ | 
				
			|||||
 | 
					package io.sc.platform.lcdp.configure.controller; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import org.springframework.core.io.DefaultResourceLoader; | 
				
			||||
 | 
					import org.springframework.stereotype.Controller; | 
				
			||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					@Controller | 
				
			||||
 | 
					public class ConfigureJsController { | 
				
			||||
 | 
					    private boolean isExists =new DefaultResourceLoader().getResource("classpath:/public/configure.js").exists(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @RequestMapping("/configure.js") | 
				
			||||
 | 
					    public String configureJs(){ | 
				
			||||
 | 
					        System.out.println(">>>>>"); | 
				
			||||
 | 
					        return "configure.js"; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,42 @@ | 
				
			|||||
 | 
					package io.sc.platform.lcdp.configure.initializer; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import io.sc.platform.core.initializer.ApplicationInitializer; | 
				
			||||
 | 
					import io.sc.platform.core.initializer.ApplicationInitializerExecuteException; | 
				
			||||
 | 
					import io.sc.platform.lcdp.configure.api.Setting; | 
				
			||||
 | 
					import io.sc.platform.lcdp.configure.api.Theme; | 
				
			||||
 | 
					import io.sc.platform.lcdp.configure.jpa.entity.ConfigureEntity; | 
				
			||||
 | 
					import io.sc.platform.lcdp.configure.service.ConfigureService; | 
				
			||||
 | 
					import org.springframework.context.ApplicationContext; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					public class ConfigureInitializer implements ApplicationInitializer { | 
				
			||||
 | 
					    private Boolean isInitialized =null; | 
				
			||||
 | 
					    private ConfigureService configureService; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Override | 
				
			||||
 | 
					    public void init(ApplicationContext applicationContext) { | 
				
			||||
 | 
					        this.configureService =applicationContext.getBean(ConfigureService.class); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Override | 
				
			||||
 | 
					    public synchronized boolean isInitialized() { | 
				
			||||
 | 
					        if(isInitialized!=null) { | 
				
			||||
 | 
					            return isInitialized; | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        if(configureService.getRepository().count()<=0){ | 
				
			||||
 | 
					            isInitialized =false; | 
				
			||||
 | 
					        }else { | 
				
			||||
 | 
					            isInitialized = true; | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        return isInitialized; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Override | 
				
			||||
 | 
					    public void execute() throws ApplicationInitializerExecuteException { | 
				
			||||
 | 
					        ConfigureEntity entity =new ConfigureEntity(); | 
				
			||||
 | 
					        entity.setName("Default"); | 
				
			||||
 | 
					        entity.setActive(true); | 
				
			||||
 | 
					        entity.setSetting(new Setting()); | 
				
			||||
 | 
					        entity.setTheme(new Theme()); | 
				
			||||
 | 
					        configureService.getRepository().save(entity); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -1,12 +1,11 @@ | 
				
			|||||
package io.sc.platform.lcdp.configure.service; | 
					package io.sc.platform.lcdp.configure.service; | 
				
			||||
 | 
					
 | 
				
			||||
import io.sc.platform.lcdp.configure.vo.Configure; | 
					import io.sc.platform.lcdp.configure.api.Configure; | 
				
			||||
import io.sc.platform.lcdp.configure.jpa.entity.ConfigureEntity; | 
					import io.sc.platform.lcdp.configure.jpa.entity.ConfigureEntity; | 
				
			||||
import io.sc.platform.lcdp.configure.jpa.repository.ConfigureRepository; | 
					import io.sc.platform.lcdp.configure.jpa.repository.ConfigureRepository; | 
				
			||||
import io.sc.platform.orm.service.DaoService; | 
					import io.sc.platform.orm.service.DaoService; | 
				
			||||
 | 
					
 | 
				
			||||
public interface ConfigureService extends DaoService<ConfigureEntity, String, ConfigureRepository> { | 
					public interface ConfigureService extends DaoService<ConfigureEntity, String, ConfigureRepository> { | 
				
			||||
    public Configure getActiveConfigure(); | 
					    public Configure getActiveConfigure(); | 
				
			||||
    public Configure getConfigure(String name); | 
					    public void activeConfigure(String id); | 
				
			||||
    public void setActiveConfigure(String name); | 
					 | 
				
			||||
} | 
					} | 
				
			||||
 | 
				
			|||||
@ -1 +1 @@ | 
				
			|||||
io.sc.platform.system.initializer.MenuInitializer | 
					io.sc.platform.lcdp.configure.initializer.ConfigureInitializer | 
				
			||||
@ -0,0 +1,11 @@ | 
				
			|||||
 | 
					// 在浏览器 window 对象中新建名为 APP 的容器变量, 用于存放平台的全局变量
 | 
				
			||||
 | 
					window.APP = {}; | 
				
			||||
 | 
					// 全局配置
 | 
				
			||||
 | 
					window.APP.configure ={ | 
				
			||||
 | 
					    // 应用上下文路径
 | 
				
			||||
 | 
					    webContextPath: '[(@{/})]'.startsWith('[')? '/' : '[(@{/})]', | 
				
			||||
 | 
					    // 默认后端 API 请求的服务地址前缀
 | 
				
			||||
 | 
					    apiContextPaths: { | 
				
			||||
 | 
					      DEFAULT: '[(@{/})]'.startsWith('[')     ? 'http://localhost:8080/' : '[(@{/})]' | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					}; | 
				
			||||
					Loading…
					
					
				
		Reference in new issue