Compare commits
15 Commits
v5.11.1.sp
...
v5.4.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5f5c4cd11 | ||
|
|
1098757b6a | ||
|
|
084bfaac92 | ||
|
|
e7ec4c52e8 | ||
|
|
02f0e1b300 | ||
|
|
e7e15fd15e | ||
|
|
a2d873fee5 | ||
|
|
48a93201e6 | ||
|
|
e3e222d7bb | ||
|
|
050aa6e4bf | ||
|
|
a0bfba3abb | ||
|
|
96838f50ad | ||
|
|
0a3c0e4bc8 | ||
|
|
0d24b71fe3 | ||
|
|
e658f9e6f6 |
2
LICENSE
2
LICENSE
@@ -214,7 +214,7 @@
|
||||
5. 任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
|
||||
6. 如果你对本软件有改进,希望可以贡献给我们,共同进步。
|
||||
7. 本项目已申请软件著作权,请尊重开源,感谢阅读。
|
||||
8. 本版本无用户数限制,无在线人数限制。
|
||||
8. 无用户数限制,无在线人数限制,放心使用。
|
||||
|
||||
版权所有:济南卓源软件有限公司
|
||||
|
||||
|
||||
11
README.md
11
README.md
@@ -4,7 +4,7 @@
|
||||
</p>
|
||||
<h3 align="center" style="margin:30px 0 30px;font-weight:bold;font-size:30px;">快速开发平台 - Spring Boot</h3>
|
||||
<p align="center">
|
||||
<a href="https://jeesite.com/docs/upgrade/" target="__blank"><img alt="JeeSite-V5.3" src="https://img.shields.io/badge/JeeSite-V5.3-success.svg"></a>
|
||||
<a href="https://jeesite.com/docs/upgrade/" target="__blank"><img alt="JeeSite-V5.4" src="https://img.shields.io/badge/JeeSite-V5.4-success.svg"></a>
|
||||
<a href="https://spring.io/projects/spring-boot#learn" target="__blank"><img alt="SpringBoot-2.7" src="https://img.shields.io/badge/SpringBoot-2.7-blue.svg"></a>
|
||||
<a href="https://gitee.com/thinkgem/jeesite4/stargazers" target="__blank"><img alt="star" src="https://gitee.com/thinkgem/jeesite4/badge/star.svg?theme=dark"></a>
|
||||
<a href="https://gitee.com/thinkgem/jeesite4/members" target="__blank"><img alt="fork" src="https://gitee.com/thinkgem/jeesite4/badge/fork.svg?theme=dark"></a>
|
||||
@@ -60,12 +60,13 @@ JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,
|
||||
* 持久层:Apache MyBatis 3.5、Hibernate Validator 6.2、Alibaba Druid 1.2
|
||||
* 视图层:Spring MVC 5.3、Beetl 3.10(替换JSP)、Bootstrap 3.3、AdminLTE 2.4
|
||||
* 前端组件:jQuery 3.5、jqGrid 4.7、layer 3.5、zTree 3.5、jQuery Validation
|
||||
* 分离前端版:Node.js、TypeScript、Vue3、Vite、Ant Design Vue3、Vue Vben Admin
|
||||
* 分离前端版:Node.js、TypeScript、Vue3、Vite、Ant Design Vue、Vue Vben Admin
|
||||
* 工作流引擎:Flowable 6.6、符合 BPMN 规范、在线流程设计器、中国式流程、退回、撤回、自由流
|
||||
* Bootstrap 版 支持 IE9 及以上版本及其他所有现代浏览器,如:谷歌、火狐、国产浏览器 等
|
||||
* Vue3 版 支持现代浏览器,如:谷歌 Chrome 86+、火狐、国产浏览器 等
|
||||
* 技术选型(详细):<http://jeesite.com/docs/technology/>
|
||||
* JeeSite Vue:<https://gitee.com/thinkgem/jeesite-vue>
|
||||
* JeeSite Vue 版本:<https://gitee.com/thinkgem/jeesite-vue>
|
||||
* Spring Boot 3.x 版本:https://gitee.com/thinkgem/jeesite4/tree/v5.springboot3/
|
||||
|
||||
## 更多介绍
|
||||
|
||||
@@ -113,7 +114,7 @@ JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,
|
||||
|
||||
### 容器运行
|
||||
|
||||
- 拉取 Docker 镜像:
|
||||
- 拉取 Docker 镜像(演示使用,JeeSite版本较久):
|
||||
```
|
||||
docker pull thinkgem/jeesite-web
|
||||
```
|
||||
@@ -195,7 +196,7 @@ thinkgem/jeesite-web && docker logs -f jeesite-web
|
||||
5. 任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
|
||||
6. 如果你对本软件有改进,希望可以贡献给我们,共同进步。
|
||||
7. 本项目已申请软件著作权,请尊重开源,感谢阅读。
|
||||
8. 本版本无用户数限制,无在线人数限制。
|
||||
8. 无用户数限制,无在线人数限制,放心使用。
|
||||
|
||||
## 技术服务与支持
|
||||
|
||||
|
||||
@@ -6,12 +6,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̰汾<EFBFBD><EFBFBD>Nexus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̵<EFBFBD>Maven<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ import java.util.regex.Pattern;
|
||||
* @version 2022-2-17
|
||||
*/
|
||||
public class EncodeUtils {
|
||||
|
||||
|
||||
public static final String UTF_8 = "UTF-8";
|
||||
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(EncodeUtils.class);
|
||||
private static final char[] BASE62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
|
||||
|
||||
@@ -65,7 +65,7 @@ public class EncodeUtils {
|
||||
public static String encodeBase64(byte[] input) {
|
||||
return new String(Base64.encodeBase64(input));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Base64编码.
|
||||
*/
|
||||
@@ -97,7 +97,7 @@ public class EncodeUtils {
|
||||
throw ExceptionUtils.unchecked(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Base64解码.
|
||||
*/
|
||||
@@ -152,14 +152,14 @@ public class EncodeUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* URL 编码, Encode默认为UTF-8.
|
||||
* URL 编码, Encode默认为UTF-8.
|
||||
*/
|
||||
public static String encodeUrl(String part) {
|
||||
return encodeUrl(part, EncodeUtils.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
* URL 编码, Encode默认为UTF-8.
|
||||
* URL 编码, Encode默认为UTF-8.
|
||||
*/
|
||||
public static String encodeUrl(String part, String encoding) {
|
||||
if (part == null){
|
||||
@@ -173,14 +173,14 @@ public class EncodeUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* URL 解码, Encode默认为UTF-8.
|
||||
* URL 解码, Encode默认为UTF-8.
|
||||
*/
|
||||
public static String decodeUrl(String part) {
|
||||
return decodeUrl(part, EncodeUtils.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
* URL 解码, Encode默认为UTF-8.
|
||||
* URL 解码, Encode默认为UTF-8.
|
||||
*/
|
||||
public static String decodeUrl(String part, String encoding) {
|
||||
if (part == null){
|
||||
@@ -192,9 +192,9 @@ public class EncodeUtils {
|
||||
throw ExceptionUtils.unchecked(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* URL 解码(两次), Encode默认为UTF-8.
|
||||
* URL 解码(两次), Encode默认为UTF-8.
|
||||
*/
|
||||
public static String decodeUrl2(String part) {
|
||||
return decodeUrl(decodeUrl(part));
|
||||
@@ -207,7 +207,7 @@ public class EncodeUtils {
|
||||
Pattern.compile("\\s*on[a-z]+\\s*=\\s*(\"[^\"]+\"|'[^']+'|[^\\s]+)\\s*(?=>)", Pattern.CASE_INSENSITIVE),
|
||||
Pattern.compile("(eval\\((.*?)\\)|xpression\\((.*?)\\))", Pattern.CASE_INSENSITIVE),
|
||||
Pattern.compile("^(javascript:|vbscript:)", Pattern.CASE_INSENSITIVE)
|
||||
);
|
||||
);
|
||||
|
||||
/**
|
||||
* XSS 非法字符过滤,内容以<!--HTML-->开头的用以下规则(保留标签)
|
||||
@@ -216,12 +216,16 @@ public class EncodeUtils {
|
||||
public static String xssFilter(String text) {
|
||||
return xssFilter(text, null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* XSS 非法字符过滤,内容以<!--HTML-->开头的用以下规则(保留标签)
|
||||
* @author ThinkGem
|
||||
*/
|
||||
public static String xssFilter(String text, HttpServletRequest request) {
|
||||
request = (request != null ? request : ServletUtils.getRequest());
|
||||
if (request != null && StringUtils.containsAny(request.getRequestURI(), ServletUtils.XSS_FILE_EXCLUDE_URI)) {
|
||||
return text;
|
||||
}
|
||||
String oriValue = StringUtils.trim(text);
|
||||
if (text != null){
|
||||
String value = oriValue;
|
||||
@@ -232,39 +236,37 @@ public class EncodeUtils {
|
||||
}
|
||||
}
|
||||
// 如果开始不是HTML,XML,JOSN格式,则再进行HTML的 "、<、> 转码。
|
||||
if (!StringUtils.startsWithIgnoreCase(value, "<!--HTML-->") // HTML
|
||||
&& !StringUtils.startsWithIgnoreCase(value, "<?xml ") // XML
|
||||
&& !StringUtils.contains(value, "id=\"FormHtml\"") // JFlow
|
||||
if (!StringUtils.startsWithIgnoreCase(value, "<!--HTML-->") // HTML
|
||||
&& !StringUtils.startsWithIgnoreCase(value, "<?xml ") // XML
|
||||
&& !StringUtils.contains(value, "id=\"FormHtml\"") // JFlow
|
||||
&& !(StringUtils.startsWith(value, "{") && StringUtils.endsWith(value, "}")) // JSON Object
|
||||
&& !(StringUtils.startsWith(value, "[") && StringUtils.endsWith(value, "]")) // JSON Array
|
||||
&& !(StringUtils.containsAny((request != null ? request : ServletUtils.getRequest())
|
||||
.getRequestURI(), "/ureport/", "/visual/")) // UReport、Visual
|
||||
){
|
||||
){
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < value.length(); i++) {
|
||||
char c = value.charAt(i);
|
||||
switch (c) {
|
||||
case '>':
|
||||
sb.append(">");
|
||||
break;
|
||||
case '<':
|
||||
sb.append("<");
|
||||
break;
|
||||
case '\'':
|
||||
sb.append("'");
|
||||
break;
|
||||
case '\"':
|
||||
sb.append(""");
|
||||
break;
|
||||
// case '&':
|
||||
// sb.append("&");
|
||||
// break;
|
||||
// case '#':
|
||||
// sb.append("#");
|
||||
// break;
|
||||
default:
|
||||
sb.append(c);
|
||||
break;
|
||||
case '>':
|
||||
sb.append(">");
|
||||
break;
|
||||
case '<':
|
||||
sb.append("<");
|
||||
break;
|
||||
case '\'':
|
||||
sb.append("'");
|
||||
break;
|
||||
case '\"':
|
||||
sb.append(""");
|
||||
break;
|
||||
// case '&':
|
||||
// sb.append("&");
|
||||
// break;
|
||||
// case '#':
|
||||
// sb.append("#");
|
||||
// break;
|
||||
default:
|
||||
sb.append(c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
value = sb.toString();
|
||||
@@ -277,12 +279,12 @@ public class EncodeUtils {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// 预编译SQL过滤正则表达式
|
||||
private static Pattern sqlPattern = Pattern.compile(
|
||||
"(?:')|(?:--)|(/\\*(?:.|[\\n\\r])*?\\*/)|((extractvalue|updatexml|if|mid|database|rand|user)([\\s]*?)\\()|"
|
||||
+ "(\\b(select|update|and|or|delete|insert|trancate|char|into|substr|ascii|declare|exec|count|master|into|"
|
||||
+ "drop|execute|case when|sleep|union|load_file)\\b)",
|
||||
+ "(\\b(select|update|and|or|delete|insert|trancate|char|into|substr|ascii|declare|exec|count|master|into|"
|
||||
+ "drop|execute|case when|sleep|union|load_file)\\b)",
|
||||
Pattern.CASE_INSENSITIVE);
|
||||
private static Pattern orderByPattern = Pattern.compile("[a-z0-9_\\.\\, ]*", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
@@ -293,6 +295,7 @@ public class EncodeUtils {
|
||||
public static String sqlFilter(String text){
|
||||
return sqlFilter(text, "common");
|
||||
}
|
||||
|
||||
/**
|
||||
* SQL过滤,防止注入,传入参数输入有select相关代码,替换空。
|
||||
* @author ThinkGem
|
||||
@@ -319,7 +322,7 @@ public class EncodeUtils {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// public static void main(String[] args) {
|
||||
// xssFilter("1 你好 <script>alert(document.cookie)</script>我还在。");
|
||||
// xssFilter("2 你好 <strong>加粗文字</strong>我还在。");
|
||||
@@ -353,5 +356,5 @@ public class EncodeUtils {
|
||||
// sqlFilter("5 if(1=2,1,SLEEP(10)), if(mid(database(),{},1)=\\\"{}\\\",a.id,a.login_name)", "orderBy");
|
||||
// sqlFilter("6 a.audit_result asc, b.audit_result2 desc, b.AuditResult3 desc", "orderBy");
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -40,9 +40,10 @@ public class PropertyLoader implements org.springframework.boot.env.PropertySour
|
||||
if (!isLoadJeeSitePropertySource) {
|
||||
isLoadJeeSitePropertySource = true;
|
||||
try {
|
||||
ParserConfig.getGlobalInstance().setSafeMode(true); // 开启 FastJSON 安全模式
|
||||
// 默认开启 FastJSON 1.x 的,安全模式
|
||||
ParserConfig.getGlobalInstance().setSafeMode(true);
|
||||
} catch (Exception ignored) {
|
||||
// 兼容 fastjson2 的调用,不返回异常
|
||||
// 兼容 FastJSON 2.x 的调用,忽略异常
|
||||
}
|
||||
Properties properties = PropertiesUtils.getInstance().getProperties();
|
||||
propertySources.add(new OriginTrackedMapPropertySource("jeesite", properties));
|
||||
|
||||
@@ -38,6 +38,9 @@ public class ServletUtils {
|
||||
private static final String[] STATIC_FILE = StringUtils.splitComma(PROPS.getProperty("web.staticFile"));
|
||||
private static final String[] STATIC_FILE_EXCLUDE_URI = StringUtils.splitComma(PROPS.getProperty("web.staticFileExcludeUri"));
|
||||
|
||||
// XSS 过滤器要排除的URI地址
|
||||
public static final String[] XSS_FILE_EXCLUDE_URI = StringUtils.splitComma(PROPS.getProperty("web.xssFilterExcludeUri"));
|
||||
|
||||
// AJAX 请求参数和请求头名
|
||||
public static final String AJAX_PARAM_NAME = PROPS.getProperty("web.ajaxParamName", "__ajax");
|
||||
public static final String AJAX_HEADER_NAME = PROPS.getProperty("web.ajaxHeaderName", "x-ajax");
|
||||
@@ -125,12 +128,8 @@ public class ServletUtils {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (STATIC_FILE_EXCLUDE_URI != null){
|
||||
for (String s : STATIC_FILE_EXCLUDE_URI){
|
||||
if (StringUtils.contains(uri, s)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (StringUtils.containsAny(uri, STATIC_FILE_EXCLUDE_URI)) {
|
||||
return false;
|
||||
}
|
||||
if (StringUtils.endsWithAny(uri, STATIC_FILE)){
|
||||
return true;
|
||||
|
||||
@@ -72,7 +72,7 @@ html #layuicss-laydate{display: none; position: absolute; width: 1989px;}
|
||||
.layui-laydate-content{position: relative; padding: 5px; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
|
||||
.layui-laydate-content table{border-collapse: collapse; border-spacing: 0;}
|
||||
.layui-laydate-content th,
|
||||
.layui-laydate-content td{width: 36px; height: 30px; padding: 5px; text-align: center;}
|
||||
.layui-laydate-content td{width: 36px; height: 30px; padding: 5px; text-align: center; border-radius: 4px;}
|
||||
.layui-laydate-content th{font-weight: 400;}
|
||||
.layui-laydate-content td{position: relative; cursor: pointer;}
|
||||
.laydate-day-mark{position: absolute; left: 0; top: 0; width: 100%; line-height: 30px; font-size: 12px; overflow: hidden;}
|
||||
@@ -111,7 +111,7 @@ html #layuicss-laydate{display: none; position: absolute; width: 1989px;}
|
||||
|
||||
|
||||
/* 默认简约主题 */
|
||||
.layui-laydate, .layui-laydate-hint{border: 1px solid #d2d2d2; box-shadow: 0 2px 4px rgba(0,0,0,.12); background-color: #fff; color: #666;}
|
||||
.layui-laydate, .layui-laydate-hint{border: 1px solid #d2d2d2; box-shadow: 0 2px 4px rgba(0,0,0,.12); background-color: #fff; color: #666; border-radius: 4px;}
|
||||
.layui-laydate-header{border-bottom: 1px solid #e2e2e2;}
|
||||
.layui-laydate-header i:hover,
|
||||
.layui-laydate-header span:hover{color: #08c;}
|
||||
|
||||
@@ -3,7 +3,7 @@ html #layuicss-layer{display:none;position:absolute;width:1989px;}
|
||||
.layui-layer-shade, .layui-layer{position:fixed;_position:absolute;pointer-events:auto;}
|
||||
.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px");}
|
||||
.layui-layer{-webkit-overflow-scrolling:touch;}
|
||||
.layui-layer{top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:3px;box-shadow:1px 1px 50px rgba(0,0,0,.3);}
|
||||
.layui-layer{top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:8px;box-shadow:1px 1px 50px rgba(0,0,0,.3);}
|
||||
.layui-layer-close{position:absolute;}
|
||||
.layui-layer-content{position:relative;overflow:hidden;}
|
||||
.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2);}
|
||||
@@ -35,7 +35,7 @@ html #layuicss-layer{display:none;position:absolute;width:1989px;}
|
||||
@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}
|
||||
@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
|
||||
|
||||
.layui-layer-title{padding:0 80px 0 20px;height:50px;line-height:50px;border-bottom:1px solid #F0F0F0;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:2px 2px 0 0;}
|
||||
.layui-layer-title{padding:0 80px 0 20px;height:50px;line-height:50px;border-bottom:1px solid #F0F0F0;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:8px 8px 0 0;}
|
||||
.layui-layer-setwin{position:absolute;right:20px;*right:0;top:20px;font-size:0;line-height:initial;}
|
||||
.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:19px;font-size:12px;_overflow:hidden;}
|
||||
.layui-layer-setwin .layui-layer-min{display:none!important}
|
||||
@@ -51,7 +51,7 @@ html #layuicss-layer{display:none;position:absolute;width:1989px;}
|
||||
.layui-layer-setwin .layui-layer-close2:hover{ background-position:-180px -31px;}
|
||||
|
||||
.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none;}
|
||||
.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:3px;font-weight:400;cursor:pointer;text-decoration:none;}
|
||||
.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:8px;font-weight:400;cursor:pointer;text-decoration:none;}
|
||||
.layui-layer-btn a:hover{opacity:0.9;text-decoration:none;}
|
||||
.layui-layer-btn a:active{opacity:0.8;}
|
||||
.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff;}
|
||||
@@ -75,14 +75,14 @@ html #layuicss-layer{display:none;position:absolute;width:1989px;}
|
||||
.layui-layer-page .layui-layer-content{position:relative;overflow:auto;}
|
||||
.layui-layer-page .layui-layer-btn,.layui-layer-iframe .layui-layer-btn{padding-top:10px;}
|
||||
.layui-layer-nobg{background:none;}
|
||||
.layui-layer-iframe iframe{display:block;width:100%;border-radius:3px;}
|
||||
.layui-layer-iframe iframe{display:block;width:100%;border-radius:8px;}
|
||||
|
||||
.layui-layer-loading{border-radius:100%;background:none; box-shadow:none; border:none;}
|
||||
.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat;}
|
||||
.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat;}
|
||||
.layui-layer-loading .layui-layer-loading2, .layui-layer-ico16{width:32px;height:32px;background:url(loading-2.gif) no-repeat;}
|
||||
.layui-layer-tips{background:none;box-shadow:none;border:none;}
|
||||
.layui-layer-tips .layui-layer-content{position:relative;overflow:visible;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff;}
|
||||
.layui-layer-tips .layui-layer-content{position:relative;overflow:visible;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:8px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff;}
|
||||
.layui-layer-tips .layui-layer-close{right:-2px;top:-1px;}
|
||||
.layui-layer-tips i.layui-layer-TipsG{ position:absolute; width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden;}
|
||||
.layui-layer-tips i.layui-layer-TipsT, .layui-layer-tips i.layui-layer-TipsB{left:5px;border-right-style:solid;border-right-color:#000;}
|
||||
@@ -148,7 +148,7 @@ html #layuicss-layer{display:none;position:absolute;width:1989px;}
|
||||
.layui-layer-page .layui-layer-content .form-file{padding-top:4px;}
|
||||
.layui-layer-page .layui-layer-btn, .layui-layer-iframe .layui-layer-btn {padding-top:3px;padding-bottom:10px;}
|
||||
.layui-layer-btn .layui-layer-btn0{border-color:#1e5edb;background-color:#1e5edb;}
|
||||
.layui-layer-btn a {height:auto;padding:1px 14px;font-size:14px;background-color:#f4f4f4;}
|
||||
.layui-layer-btn a {height:auto;padding:1px 12px;margin-right:4px;font-size:14px;background-color:#f4f4f4;}
|
||||
.layui-layer.toast-top-full-width {min-width:60%;}
|
||||
|
||||
.skin-dark .layui-layer {background:#1a1a1a;color:#ddd;}
|
||||
|
||||
@@ -6,12 +6,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̰汾<EFBFBD><EFBFBD>Nexus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̵<EFBFBD>Maven<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -9,4 +9,5 @@
|
||||
5.3.0
|
||||
5.3.1
|
||||
5.3.2
|
||||
5.4.0
|
||||
5.4.0
|
||||
5.4.1
|
||||
@@ -6,12 +6,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̰汾<EFBFBD><EFBFBD>Nexus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̵<EFBFBD>Maven<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -4,18 +4,16 @@
|
||||
*/
|
||||
package com.jeesite.modules.cms.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.beust.jcommander.internal.Lists;
|
||||
import com.jeesite.common.collect.ListUtils;
|
||||
import com.jeesite.modules.cms.entity.FileTemplete;
|
||||
import com.jeesite.modules.cms.entity.Site;
|
||||
import com.jeesite.modules.cms.utils.CmsUtils;
|
||||
import com.jeesite.modules.cms.utils.FileTempleteUtils;
|
||||
import com.jeesite.modules.sys.entity.DictData;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 模版文件Service
|
||||
@@ -36,7 +34,7 @@ public class FileTempleteService {
|
||||
* @param prefix
|
||||
*/
|
||||
public List<DictData> getTempleteContentDict(String prefix) throws IOException {
|
||||
List<DictData> listSite = Lists.newArrayList();
|
||||
List<DictData> listSite = ListUtils.newArrayList();
|
||||
String solutionPath = CmsUtils.getSite(Site.getCurrentSiteCode()).getSolutionPath();
|
||||
List<FileTemplete> tplList = FileTempleteUtils.getFileTempleteListByPath(solutionPath);
|
||||
for (FileTemplete tpl : tplList) {
|
||||
|
||||
@@ -17,4 +17,5 @@
|
||||
5.3.0
|
||||
5.3.1
|
||||
5.3.2
|
||||
5.4.0
|
||||
5.4.0
|
||||
5.4.1
|
||||
@@ -6,12 +6,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̰汾<EFBFBD><EFBFBD>Nexus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̵<EFBFBD>Maven<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -448,6 +448,7 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
|
||||
data.put("sysCode", session.getAttribute("sysCode"));
|
||||
data.put("roleCode", session.getAttribute("roleCode"));
|
||||
data.put("title", Global.getProperty("productName"));
|
||||
data.put("lang", Global.getLang());
|
||||
List<Map<String, Object>> roleList = ListUtils.newArrayList();
|
||||
String desktopUrl = null;
|
||||
for (Role role : user.getRoleList()){
|
||||
|
||||
@@ -4,27 +4,6 @@
|
||||
*/
|
||||
package com.jeesite.modules.sys.web;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.apache.shiro.session.Session;
|
||||
import org.apache.shiro.subject.PrincipalCollection;
|
||||
import org.apache.shiro.subject.support.DefaultSubjectContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.jeesite.common.collect.ListUtils;
|
||||
import com.jeesite.common.collect.MapUtils;
|
||||
import com.jeesite.common.config.Global;
|
||||
@@ -36,6 +15,21 @@ import com.jeesite.common.shiro.session.SessionDAO;
|
||||
import com.jeesite.common.web.BaseController;
|
||||
import com.jeesite.modules.sys.utils.SysCacheUtils;
|
||||
import com.jeesite.modules.sys.utils.UserUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.apache.shiro.session.Session;
|
||||
import org.apache.shiro.subject.PrincipalCollection;
|
||||
import org.apache.shiro.subject.support.DefaultSubjectContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 在线用户Controller
|
||||
@@ -66,8 +60,6 @@ public class OnlineController extends BaseController{
|
||||
|
||||
/**
|
||||
* 在线用户列表
|
||||
* @param request
|
||||
* @param response
|
||||
* @param model
|
||||
*/
|
||||
@RequiresPermissions("sys:online:view")
|
||||
@@ -78,8 +70,6 @@ public class OnlineController extends BaseController{
|
||||
|
||||
/**
|
||||
* 在线用户列表数据
|
||||
* @param request
|
||||
* @param response
|
||||
* @author ThinkGem
|
||||
*/
|
||||
@RequiresPermissions("sys:online:view")
|
||||
|
||||
@@ -645,7 +645,10 @@ web:
|
||||
|
||||
# 严格模式(更严格的数据安全验证)
|
||||
strictMode: false
|
||||
|
||||
|
||||
# 所有请求信息将进行xss过滤,这里列出不被xss过滤的地址
|
||||
xssFilterExcludeUri: /ureport/,/visual/
|
||||
|
||||
# 自定义正则表达式验证(主键、登录名)
|
||||
validator:
|
||||
id: '[a-zA-Z0-9_\-/#\u4e00-\u9fa5]{0,64}'
|
||||
@@ -660,7 +663,7 @@ web:
|
||||
enabled: false
|
||||
callback: __callback
|
||||
|
||||
# 核心模块的Web功能(仅作为微服务时设为false)
|
||||
# 核心模块的Web功能开启(其它微服务时设为false)
|
||||
core:
|
||||
enabled: true
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
消息类型=Message type
|
||||
消息标题=Message title
|
||||
消息内容=Message content
|
||||
业务主键=Key
|
||||
业务类型=Type
|
||||
业务主键=Business Key
|
||||
业务类型=Business Type
|
||||
接受者信息=Receiver information
|
||||
接受者账号=Receiver account
|
||||
接受者姓名=Receiver name
|
||||
|
||||
@@ -54,6 +54,7 @@ Java版本=Java version
|
||||
日志存放路径=Log storage path
|
||||
上传文件路径=Upload file path
|
||||
磁盘状态=Disk status
|
||||
盘符名称=Disk name
|
||||
盘符路径=Disk path
|
||||
文件系统=File system
|
||||
盘符类型=Disk type
|
||||
|
||||
@@ -51,6 +51,7 @@ Java版本=Java版
|
||||
日志存放路径=日誌熟成経路
|
||||
上传文件路径=文書を掲載し経路
|
||||
磁盘状态=ディスク状態
|
||||
盘符名称=盤符名称
|
||||
盘符路径=盤符経路
|
||||
文件系统=ファイルシステム
|
||||
盘符类型=盤符タイプ
|
||||
|
||||
@@ -138,6 +138,12 @@
|
||||
注销=Logout
|
||||
|
||||
# =========== 访问日志 ===========
|
||||
|
||||
接入日志=Access log
|
||||
修改日志=Modify log
|
||||
查询日志=Query log
|
||||
登录登出=Login logout
|
||||
|
||||
日志标题=Log title
|
||||
请求地址=Request address
|
||||
日志类型=Type
|
||||
@@ -157,13 +163,14 @@
|
||||
近1个周=Nearly 1 week
|
||||
近1个月=Nearly 1 months
|
||||
近3个月=Nearly 3 months
|
||||
|
||||
按组织查询=By Organization
|
||||
按岗位查询=By Position
|
||||
按角色查询=By Role
|
||||
按用户类型=By User Type
|
||||
|
||||
系统登录=System Login
|
||||
未知操作=Unknown
|
||||
保存=Save
|
||||
日志详情=Log Detail
|
||||
请求数据=Submitted data
|
||||
操作账号=Operation account
|
||||
@@ -277,7 +284,7 @@
|
||||
是否更新已经存在的用户数据=Whether to update existing user data
|
||||
下载模板=Download template
|
||||
如果用户编码已经存在,更新这条数据。=Update this data if the user code already exists.
|
||||
提示:仅允许导入“xls”或“xlsx”格式文件!=Tip: only 'XLS' or 'XLSX' files are allowed to be imported!
|
||||
提示:仅允许导入“xls”或“xlsx”格式文件!=Tip: only 'xls' or 'xlsx' files are allowed to be imported!
|
||||
文件不正确,请选择后缀为“xls”或“xlsx”的文件。=Incorrect file. Please select a file with suffix 'xls' or 'xlsx'.
|
||||
|
||||
# =========== 机构管理 ===========
|
||||
@@ -293,12 +300,6 @@
|
||||
确认要删除该机构及所有子机构吗?=Are you sure want to delete this organization and sub organization?
|
||||
新增下级机构=New sub organization
|
||||
|
||||
保存机构''{0}''成功=Save the organization ''{0}'' success
|
||||
该机构包含未停用的子机构!=The organization contains enable sub organization!
|
||||
停用机构''{0}''成功=Disable organization ''{0}'' success
|
||||
启用机构''{0}''成功=Enable organization ''{0}'' success
|
||||
删除机构''{0}''成功=Delete organization ''{0}'' success
|
||||
|
||||
上级机构=Parent organization
|
||||
机构名称=Organization name
|
||||
机构代码=Organization code
|
||||
@@ -308,6 +309,12 @@
|
||||
联系地址=Address
|
||||
邮政编码=Zip code
|
||||
|
||||
保存机构''{0}''成功=Save the organization ''{0}'' success
|
||||
该机构包含未停用的子机构!=The organization contains enable sub organization!
|
||||
停用机构''{0}''成功=Disable organization ''{0}'' success
|
||||
启用机构''{0}''成功=Enable organization ''{0}'' success
|
||||
删除机构''{0}''成功=Delete organization ''{0}'' success
|
||||
|
||||
# =========== 公司管理 ===========
|
||||
|
||||
新增公司=New company
|
||||
@@ -321,19 +328,19 @@
|
||||
确认要删除该公司及所有子公司吗?=Are you sure want to delete this company and sub company?
|
||||
新增下级公司=New sub company
|
||||
|
||||
上级公司=Parent company
|
||||
公司名称=Company name
|
||||
公司代码=Company code
|
||||
公司全称=Company full name
|
||||
归属区域=Area
|
||||
包含机构=Organization
|
||||
|
||||
保存公司''{0}''成功=Save the company ''{0}'' success
|
||||
该公司包含未停用的子公司!=The company contains enable sub company!
|
||||
停用公司''{0}''成功=Disable company ''{0}'' success
|
||||
启用公司''{0}''成功=Enable company ''{0}'' success
|
||||
删除公司''{0}''成功=Delete company ''{0}'' success
|
||||
|
||||
上级公司=Parent company
|
||||
公司名称=Company name
|
||||
公司编码=Company code
|
||||
公司全称=Company full name
|
||||
归属区域=Area
|
||||
包含机构=Organization
|
||||
|
||||
# =========== 岗位管理 ===========
|
||||
|
||||
新增岗位=New position
|
||||
@@ -346,17 +353,18 @@
|
||||
删除岗位=Delete position
|
||||
确认要删除该岗位吗?=Are you sure want to delete this position?
|
||||
|
||||
岗位名称=Position name
|
||||
岗位名称已存在=Position already exists
|
||||
岗位代码=Position code
|
||||
岗位分类=Position type
|
||||
关联角色=Role
|
||||
|
||||
保存岗位失败,岗位名称''{0}''已存在=Save position failed, position name ''{0}'' already exists
|
||||
保存岗位''{0}''成功=Save position ''{0}'' success
|
||||
停用岗位''{0}''成功=Disable position ''{0}'' success
|
||||
启用岗位''{0}''成功=Enable position ''{0}'' success
|
||||
删除岗位''{0}''成功=Delete position ''{0}'' success
|
||||
|
||||
岗位名称=Position name
|
||||
岗位名称已存在=Position already exists
|
||||
岗位编码=Position code
|
||||
岗位分类=Position type
|
||||
|
||||
# =========== 角色管理 ===========
|
||||
|
||||
用户类型=User type
|
||||
@@ -364,11 +372,12 @@
|
||||
角色分类=Role category
|
||||
数据范围=Data scope
|
||||
业务范围=Business scope
|
||||
桌面地址=Desktop URL
|
||||
是否可见=Visible
|
||||
|
||||
角色编码=Role code
|
||||
角色名称=Role name
|
||||
角色名称已存在=Role name already exists
|
||||
角色分类=Role category
|
||||
授权功能菜单=Authorization menu
|
||||
|
||||
未设置=None
|
||||
@@ -418,7 +427,7 @@
|
||||
|
||||
二级管理员管理数据权限=Secondary administrator manage data permissions
|
||||
管理数据权限=Manage data permissions
|
||||
可管理的数据权限=Managed data permissions
|
||||
可管理的数据权限=Manage data permissions
|
||||
取消二级管理员身份=Cancel secondary administrator status
|
||||
确认要取消该用户的二级管理员身份吗?=Are you sure you want to cancel secondary administrator status?
|
||||
|
||||
@@ -459,6 +468,7 @@
|
||||
账号密码审计=Account password audit
|
||||
菜单权限审计=Menu permission audit
|
||||
用户权限审计=User privileges audit
|
||||
菜单权限=Menu permission
|
||||
|
||||
全部问题=All Problems
|
||||
未修改初始密码=The initial password was not changed
|
||||
@@ -480,6 +490,15 @@
|
||||
|
||||
新增菜单=New menu
|
||||
编辑菜单=Edit menu
|
||||
|
||||
停用菜单=Disable menu
|
||||
确认要停用该菜单吗?=Are you sure want to disable this menu?
|
||||
启用菜单=Enable menu
|
||||
确认要启用该菜单吗?=Are you sure want to enable this menu?
|
||||
删除菜单=Delete menu
|
||||
确认要删除该菜单及所有子菜单吗?=Are you sure want to delete this menu and sub menu?
|
||||
新增下级菜单=New sub menu
|
||||
|
||||
上级菜单=Parent menu
|
||||
菜单类型=Menu type
|
||||
菜单名称=Menu name
|
||||
@@ -546,6 +565,9 @@
|
||||
|
||||
新增参数=New config
|
||||
编辑参数=Edit config
|
||||
删除参数=Delete config
|
||||
确认要删除该参数吗?=Are you sure you want to delete this config?
|
||||
|
||||
参数名称=Config name
|
||||
参数键名=Config key
|
||||
参数键名已存在=Config key already exists
|
||||
@@ -553,8 +575,6 @@
|
||||
参数描述=Config description
|
||||
清理全部缓存,包括属性文件的配置=Clear all caches, including configuration of properties files
|
||||
系统参数=System
|
||||
删除参数=Delete config
|
||||
确认要删除该参数吗?=Are you sure you want to delete this config?
|
||||
|
||||
保存参数成功=Save config successfully
|
||||
删除参数成功=Delete config successfully
|
||||
@@ -587,6 +607,7 @@
|
||||
字典键值=Dictionary key
|
||||
系统内置=System
|
||||
字典描述=Description
|
||||
选项图标=Icon
|
||||
CSS样式=CSS style
|
||||
CSS类名=CSS class
|
||||
新增字典数据=New dictionary data
|
||||
@@ -608,6 +629,35 @@ CSS类名=CSS class
|
||||
启用字典成功=Enable dictionary successfully
|
||||
删除字典成功=Delete dictionary successfully
|
||||
|
||||
# =========== 区域管理 ===========
|
||||
|
||||
新增区域=New area
|
||||
编辑区域=Edit area
|
||||
|
||||
停用区域=Disable area
|
||||
确认要停用该区域吗?=Are you sure want to disable this area?
|
||||
启用区域=Enable area
|
||||
确认要启用该区域吗?=Are you sure want to enable this area?
|
||||
删除区域=Delete area
|
||||
确认要删除该区域及所有子区域吗?=Are you sure want to delete this area and sub area?
|
||||
新增下级区域=New sub area
|
||||
|
||||
上级区域=Parent Area
|
||||
区域名称=Area name
|
||||
区域代码=Area code
|
||||
区域类型=Area type
|
||||
|
||||
国家=Country
|
||||
省份直辖市=Provinces
|
||||
地市=City
|
||||
区县=County
|
||||
|
||||
保存区域''{0}''成功=Save the area ''{0}'' success
|
||||
该区域包含未停用的子区域!=The area contains enable sub area!
|
||||
停用区域''{0}''成功=Disable area ''{0}'' success
|
||||
启用区域''{0}''成功=Enable area ''{0}'' success
|
||||
删除区域''{0}''成功=Delete area ''{0}'' success
|
||||
|
||||
# =========== 国际化管理 ===========
|
||||
|
||||
新增语言=New language
|
||||
@@ -628,10 +678,10 @@ CSS类名=CSS class
|
||||
# =========== 在线用户 ===========
|
||||
|
||||
操作用户=Operation user
|
||||
包含3分钟以上未操作的用户=Contains users who have been inactive for more than 3 minutes
|
||||
查询所有在线=Query all online
|
||||
包含未登录的用户=Contains unlogged users
|
||||
包含3分钟以上未操作的用户=Contains users who have been inactive for more than 3 minutes
|
||||
包含游客用户=Contains visitor users
|
||||
包含未登录的用户=Contains unlogged users
|
||||
用户名称=User name
|
||||
游客=tourists
|
||||
最后访问=Last visit
|
||||
|
||||
@@ -58,7 +58,6 @@
|
||||
|
||||
研发工具=開発ツール
|
||||
|
||||
|
||||
用户选择=ユーザー選択
|
||||
机构选择=事務所選択
|
||||
公司选择=会社選択
|
||||
@@ -96,9 +95,6 @@
|
||||
正在验证登录,请稍候...=登録を行っています...
|
||||
立即登录=ログイン
|
||||
|
||||
注册账号=アカウント作成
|
||||
忘记密码=パスワードを忘れた
|
||||
|
||||
注册账号=アカウントを登録する
|
||||
忘记密码=パスワードを忘れる
|
||||
|
||||
@@ -106,6 +102,7 @@
|
||||
|
||||
仪表盘=計器盤
|
||||
全屏=最大化
|
||||
|
||||
切换主题=テーマ切替
|
||||
|
||||
个人中心=マイページ
|
||||
@@ -230,12 +227,6 @@
|
||||
确认要删除该机构及所有子机构吗?=機構及び子機構を削除します、よろしいですか?
|
||||
新增下级机构=子機構追加
|
||||
|
||||
保存机构''{0}''成功=機構 ''{0}'' 保存成功
|
||||
该机构包含未停用的子机构!=有効な子機構が含まれています!
|
||||
停用机构''{0}''成功=機構 ''{0}'' 無効にする処理成功
|
||||
启用机构''{0}''成功=機構 ''{0}'' 有効にする処理成功
|
||||
删除机构''{0}''成功=機構 ''{0}'' 削除成功
|
||||
|
||||
上级机构=親機構
|
||||
机构名称=機構名称
|
||||
机构代码=機構コード
|
||||
@@ -245,6 +236,12 @@
|
||||
联系地址=住所
|
||||
邮政编码=郵便番号
|
||||
|
||||
保存机构''{0}''成功=機構 ''{0}'' 保存成功
|
||||
该机构包含未停用的子机构!=有効な子機構が含まれています!
|
||||
停用机构''{0}''成功=機構 ''{0}'' 無効にする処理成功
|
||||
启用机构''{0}''成功=機構 ''{0}'' 有効にする処理成功
|
||||
删除机构''{0}''成功=機構 ''{0}'' 削除成功
|
||||
|
||||
# =========== 公司管理 ===========
|
||||
|
||||
新增公司=会社追加
|
||||
@@ -258,19 +255,19 @@
|
||||
确认要删除该公司及所有子公司吗?=会社及び子会社を削除します、よろしいですか?
|
||||
新增下级公司=子会社追加
|
||||
|
||||
上级公司=親会社
|
||||
公司名称=会社名称
|
||||
公司代码=会社コード
|
||||
公司全称=会社フルネーム
|
||||
归属区域=エリア
|
||||
包含机构=機構
|
||||
|
||||
保存公司''{0}''成功=会社 ''{0}'' 保存成功
|
||||
该公司包含未停用的子公司!=有効な会社が含まれています!
|
||||
停用公司''{0}''成功=会社 ''{0}'' 無効設定成功
|
||||
启用公司''{0}''成功=会社 ''{0}'' 有効設定成功
|
||||
删除公司''{0}''成功=会社 ''{0}'' 削除成功
|
||||
|
||||
上级公司=親会社
|
||||
公司名称=会社名称
|
||||
公司编码=会社コード
|
||||
公司全称=会社フルネーム
|
||||
归属区域=エリア
|
||||
包含机构=機構
|
||||
|
||||
# =========== 岗位管理 ===========
|
||||
|
||||
新增岗位=職位追加
|
||||
@@ -283,17 +280,18 @@
|
||||
删除岗位=職位削除
|
||||
确认要删除该岗位吗?=職位を削除します、よろしいですか?
|
||||
|
||||
岗位名称=職位名称
|
||||
岗位名称已存在=職位名称が既に存在します
|
||||
岗位代码=職位コード
|
||||
岗位分类=職位分類
|
||||
关联角色=キャラク
|
||||
|
||||
保存岗位失败,岗位名称''{0}''已存在=職位保存失敗。職位名称 ''{0}'' 既に存在します
|
||||
保存岗位''{0}''成功=職位 ''{0}'' 保存成功
|
||||
停用岗位''{0}''成功=職位 ''{0}'' 無効設定成功
|
||||
启用岗位''{0}''成功=職位 ''{0}'' 有効設定成功
|
||||
删除岗位''{0}''成功=職位 ''{0}'' 削除成功
|
||||
|
||||
岗位名称=職位名称
|
||||
岗位名称已存在=職位名称が既に存在します
|
||||
岗位编码=職位コード
|
||||
岗位分类=職位分類
|
||||
|
||||
# =========== 角色管理 ===========
|
||||
|
||||
用户类型=ユーザータイプ
|
||||
@@ -305,7 +303,6 @@
|
||||
角色编码=キャラクターコード
|
||||
角色名称=キャラクター名
|
||||
角色名称已存在=キャラクター名が存在する
|
||||
角色分类=キャラクター分類
|
||||
授权功能菜单=ライセンス機能メニュー
|
||||
|
||||
未设置=未設置
|
||||
@@ -417,6 +414,7 @@
|
||||
|
||||
新增菜单=メニューの追加
|
||||
编辑菜单=編集メニュー
|
||||
|
||||
上级菜单=上級メニュー
|
||||
菜单类型=メニュータイプ
|
||||
菜单名称=メニュー名
|
||||
@@ -483,6 +481,9 @@
|
||||
|
||||
新增参数=追加パラメータ
|
||||
编辑参数=編集パラメータ
|
||||
删除参数=削除パラメータ
|
||||
确认要删除该参数吗?=このパラメータを削除することを確認しますか?
|
||||
|
||||
参数名称=パラメータ名
|
||||
参数键名=パラメータキー名
|
||||
参数键名已存在=パラメータキー名はすでに存在する
|
||||
@@ -490,8 +491,6 @@
|
||||
参数描述=パラメータ記述
|
||||
清理全部缓存,包括属性文件的配置=プロパティファイルの配置を含めてキャッシュ全体をクリアする
|
||||
系统参数=システムパラメータ
|
||||
删除参数=削除パラメータ
|
||||
确认要删除该参数吗?=このパラメータを削除することを確認しますか?
|
||||
|
||||
保存参数成功=セーブパラメータ成功
|
||||
删除参数成功=削除パラメータ成功
|
||||
@@ -565,10 +564,10 @@ CSS类名=クラス名
|
||||
# =========== 在线用户 ===========
|
||||
|
||||
操作用户=ユーザーを操作する
|
||||
包含3分钟以上未操作的用户=未操作のユーザを3分以上含む
|
||||
查询所有在线=全てのオンライン検索
|
||||
包含未登录的用户=未登録のユーザを含む
|
||||
包含3分钟以上未操作的用户=未操作のユーザを3分以上含む
|
||||
包含游客用户=は観光客ユーザー
|
||||
包含未登录的用户=未登録のユーザを含む
|
||||
用户名称=ユーザー名
|
||||
游客=観光客
|
||||
最后访问=最後の訪問
|
||||
|
||||
@@ -167,7 +167,7 @@ div.edui-box {
|
||||
overflow: visible;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.edui-editor div{
|
||||
width:auto;
|
||||
@@ -285,7 +285,7 @@ div.edui-box {
|
||||
color: #666;
|
||||
background-color: #FFF;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
/*border-radius: 5px;*/
|
||||
}
|
||||
|
||||
.edui-simple .edui-bubble .edui-shadow {
|
||||
@@ -2126,3 +2126,15 @@ div.edui-box {
|
||||
.edui-outline .sectionItem{cursor:pointer;padding:4px;}
|
||||
.edui-outline .sectionItem:hover{color:#f00;}
|
||||
.edui-outline .fixTop{position:fixed!important;top:-3px;}
|
||||
|
||||
.skin-dark .edui-simple .edui-editor,
|
||||
.skin-dark .edui-simple .edui-editor-toolbarboxouter,
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-combox .edui-combox-body,
|
||||
.skin-dark .edui-simple .edui-popup-content {background: #1a1a1a;border-color:#414141;color:#ddd;}
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap,
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body,
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body,
|
||||
.skin-dark .edui-simple .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap,
|
||||
.skin-dark .edui-simple .edui-list .edui-state-hover {background:#4b4a4a;border-color:#414141;color:#ddd;}
|
||||
|
||||
@@ -60,13 +60,8 @@
|
||||
<% } %>
|
||||
</BasicDrawer>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
export default defineComponent({
|
||||
name: '${compNamePrefix}Form',
|
||||
});
|
||||
</script>
|
||||
<script lang="ts" setup>
|
||||
import { defineComponent, ref, computed } from 'vue';
|
||||
<script lang="ts" setup name="${compNamePrefix}Form">
|
||||
import { ref, unref, computed } from 'vue';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { router } from '/@/router';
|
||||
@@ -107,9 +102,10 @@ for(c in table.columnList){
|
||||
|
||||
const { t } = useI18n('${moduleName}${isNotEmpty(subModuleName)?'.'+subModuleName:''}.${className}');
|
||||
const { showMessage } = useMessage();
|
||||
const { meta } = unref(router.currentRoute);
|
||||
const record = ref<${ClassName}>({} as ${ClassName});
|
||||
const getTitle = computed(() => ({
|
||||
icon: router.currentRoute.value.meta.icon || 'ant-design:book-outlined',
|
||||
icon: meta.icon || 'ant-design:book-outlined',
|
||||
value: record.value.isNewRecord ? t('新增${functionNameSimple}') : t('编辑${functionNameSimple}'),
|
||||
}));
|
||||
<% if(toBoolean(table.optionMap['isBpmForm'])){ %>
|
||||
@@ -607,7 +603,7 @@ for (c in table.columnList){
|
||||
emit('success', data);
|
||||
} catch (error: any) {
|
||||
if (error && error.errorFields) {
|
||||
showMessage(t('您填写的信息有误,请根据提示修正。'));
|
||||
showMessage(t('common.validateError'));
|
||||
}
|
||||
console.log('error', error);
|
||||
} finally {
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
emit('success');
|
||||
} catch (error: any) {
|
||||
if (error && error.errorFields) {
|
||||
showMessage(t('您填写的信息有误,请根据提示修正。'));
|
||||
showMessage(t('common.validateError'));
|
||||
}
|
||||
console.log('error', error);
|
||||
} finally {
|
||||
|
||||
@@ -27,13 +27,8 @@
|
||||
<ListView :treeCode="treeCode" />
|
||||
</PageWrapper>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
export default defineComponent({
|
||||
name: '${compNamePrefix}Index',
|
||||
});
|
||||
</script>
|
||||
<script lang="ts" setup>
|
||||
import { defineComponent, ref } from 'vue';
|
||||
<script lang="ts" setup name="${compNamePrefix}Index">
|
||||
import { ref } from 'vue';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { PageWrapper } from '/@/components/Page';
|
||||
import { BasicTree } from '/@/components/Tree';
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<a-button @click="expandAll" :title="t('展开一级')">
|
||||
<Icon icon="bi:chevron-double-down" /> {{ t('展开') }}
|
||||
</a-button>
|
||||
<a-button @click="collapseAll" :title="t('展开全部')">
|
||||
<a-button @click="collapseAll" :title="t('折叠全部')">
|
||||
<Icon icon="bi:chevron-double-up" /> {{ t('折叠') }}
|
||||
</a-button>
|
||||
<% } %>
|
||||
@@ -90,13 +90,8 @@ if(table.isTreeEntity){
|
||||
<% } %>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
export default defineComponent({
|
||||
name: '${compNamePrefix}List',
|
||||
});
|
||||
</script>
|
||||
<script lang="ts" setup>
|
||||
import { defineComponent<% if(table.isTreeEntity || isNotBlank(table.optionMap['leftTreeRightTableFk'])){ %>, watch<% }
|
||||
<script lang="ts" setup name="${compNamePrefix}List">
|
||||
import { unref<% if(table.isTreeEntity || isNotBlank(table.optionMap['leftTreeRightTableFk'])){ %>, watch<% }
|
||||
%><% if(table.isTreeEntity){ %>, nextTick<% } %> } from 'vue';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
@@ -154,9 +149,10 @@ for(c in table.columnList){
|
||||
<% } %>
|
||||
const { t } = useI18n('${moduleName}${isNotEmpty(subModuleName)?'.'+subModuleName:''}.${className}');
|
||||
const { showMessage } = useMessage();
|
||||
const { meta } = unref(router.currentRoute);
|
||||
const getTitle = {
|
||||
icon: router.currentRoute.value.meta.icon || 'ant-design:book-outlined',
|
||||
value: router.currentRoute.value.meta.title || t('${functionNameSimple}管理'),
|
||||
icon: meta.icon || 'ant-design:book-outlined',
|
||||
value: meta.title || t('${functionNameSimple}管理'),
|
||||
};
|
||||
|
||||
const searchForm: FormProps = {
|
||||
@@ -363,7 +359,7 @@ for(c in table.columnList){
|
||||
<% if(table.isTreeEntity){ %>
|
||||
{
|
||||
icon: 'fluent:add-circle-24-regular',
|
||||
title: t('新建下级${functionNameSimple}'),
|
||||
title: t('新增下级${functionNameSimple}'),
|
||||
onClick: handleForm.bind(this, {
|
||||
parentCode: record.id,
|
||||
parentName: record.${table.treeViewNameAttrName},
|
||||
|
||||
@@ -14,12 +14,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [信息] 部署工程版本到Nexus服务器。
|
||||
echo [信息] 部署工程到Maven服务器。
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -11,10 +11,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -20,6 +20,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -11,10 +11,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -14,12 +14,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [信息] 部署工程版本到Nexus服务器。
|
||||
echo [信息] 部署工程到Maven服务器。
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -11,10 +11,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -20,6 +20,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -11,10 +11,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -20,6 +20,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -11,12 +11,14 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -30,10 +30,6 @@
|
||||
<finalName>web</finalName><!-- war包的名称 -->
|
||||
<start-class>com.jeesite.modules.${@StringUtils.cap(module.moduleCode)}Application</start-class>
|
||||
|
||||
<!-- environment setting -->
|
||||
<eclipse-plugin-download-sources>false</eclipse-plugin-download-sources>
|
||||
<eclipse-plugin-download-javadocs>false</eclipse-plugin-download-javadocs>
|
||||
|
||||
<!-- docker setting -->
|
||||
<docker.run.port>8989:8989</docker.run.port>
|
||||
|
||||
@@ -103,11 +99,7 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<configuration>
|
||||
<downloadSources>\${eclipse-plugin-download-sources}</downloadSources>
|
||||
<downloadJavadocs>\${eclipse-plugin-download-javadocs}</downloadJavadocs>
|
||||
<wtpContextName>\${finalName}</wtpContextName>
|
||||
<wtpversion>2.0</wtpversion>
|
||||
<jeeversion>6.0</jeeversion>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="box box-main">
|
||||
<div class="box-header">
|
||||
<div class="box-title">
|
||||
<i class="fa icon-map"></i> ${area.isNewRecord ? '新增区域' : '编辑区域'}
|
||||
<i class="fa icon-map"></i> ${text(area.isNewRecord ? '新增区域' : '编辑区域')}
|
||||
</div>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
||||
@@ -11,13 +11,13 @@
|
||||
</div>
|
||||
<#form:form id="inputForm" model="${area}" action="${ctx}/sys/area/save" method="post" class="form-horizontal">
|
||||
<div class="box-body">
|
||||
<div class="form-unit">基本信息</div>
|
||||
<div class="form-unit">${text('基本信息')}</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-xs-9">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">上级区域:</label>
|
||||
<label class="control-label col-sm-4">${text('上级区域')}:</label>
|
||||
<div class="col-sm-8">
|
||||
<#form:treeselect id="parent" title="上级区域"
|
||||
<#form:treeselect id="parent" title="${text('上级区域')}"
|
||||
path="parent.id" labelPath="parent.areaName"
|
||||
url="${ctx}/sys/area/treeData?excludeCode=${area.id}"
|
||||
class="" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
|
||||
@@ -29,7 +29,7 @@
|
||||
<div class="col-md-6 col-xs-9">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" title="">
|
||||
<span class="required ">*</span> 区域代码:<i class="fa icon-question hide"></i></label>
|
||||
<span class="required ">*</span> ${text('区域代码')}:<i class="fa icon-question hide"></i></label>
|
||||
<div class="col-sm-8">
|
||||
<#form:hidden path="isNewRecord"/>
|
||||
<#form:input path="areaCode" maxlength="100" readonly="${!area.isNewRecord}" class="form-control required abc"/>
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="col-md-6 col-xs-9">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" title="">
|
||||
<span class="required ">*</span> 区域名称:<i class="fa icon-question hide"></i></label>
|
||||
<span class="required ">*</span> ${text('区域名称')}:<i class="fa icon-question hide"></i></label>
|
||||
<div class="col-sm-8">
|
||||
<#form:input path="areaName" maxlength="100" class="form-control required "/>
|
||||
</div>
|
||||
@@ -52,7 +52,7 @@
|
||||
<div class="col-md-6 col-xs-9">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" title="">
|
||||
<span class="required ">*</span> 区域类型:<i class="fa icon-question hide"></i></label>
|
||||
<span class="required ">*</span> ${text('区域类型')}:<i class="fa icon-question hide"></i></label>
|
||||
<div class="col-sm-8">
|
||||
<#form:radio path="areaType" dictType="sys_area_type" class="form-control required" />
|
||||
</div>
|
||||
@@ -63,7 +63,7 @@
|
||||
<div class="col-md-6 col-xs-9">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" title="">
|
||||
<span class="required ">*</span> 排序号:<i class="fa icon-question hide"></i></label>
|
||||
<span class="required ">*</span> ${text('排序号')}:<i class="fa icon-question hide"></i></label>
|
||||
<div class="col-sm-8">
|
||||
<#form:input path="treeSort" maxlength="9" class="form-control required digits"/>
|
||||
</div>
|
||||
@@ -74,7 +74,7 @@
|
||||
<div class="col-xs-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2 col-sm-3" title="">
|
||||
<span class="required hide">*</span> 备注信息:<i class="fa icon-question hide"></i></label>
|
||||
<span class="required hide">*</span> ${text('备注信息')}:<i class="fa icon-question hide"></i></label>
|
||||
<div class="col-sm-8">
|
||||
<#form:textarea path="remarks" rows="4" maxlength="500" class="form-control "/>
|
||||
</div>
|
||||
@@ -86,9 +86,9 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<% if (hasPermi('sys:area:edit')){ %>
|
||||
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> 保 存</button>
|
||||
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>
|
||||
<% } %>
|
||||
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> 关 闭</button>
|
||||
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
<div class="box box-main">
|
||||
<div class="box-header">
|
||||
<div class="box-title">
|
||||
<i class="fa icon-map"></i> 行政区划
|
||||
<i class="fa icon-map"></i> ${text('行政区划')}
|
||||
</div>
|
||||
<div class="box-tools pull-right">
|
||||
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
|
||||
<a href="#" class="btn btn-default" id="btnRefreshTree" title="刷新"><i class="fa fa-refresh"></i> 刷新</a>
|
||||
<a href="#" class="btn btn-default" id="btnExpandTreeNode" title="展开一级"><i class="fa fa-angle-double-down"></i> 展开</a>
|
||||
<a href="#" class="btn btn-default" id="btnCollapseTreeNode" title="折叠全部"><i class="fa fa-angle-double-up"></i> 折叠</a>
|
||||
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> ${text('查询')}</a>
|
||||
<a href="#" class="btn btn-default" id="btnRefreshTree" title="刷新"><i class="fa fa-refresh"></i> ${text('刷新')}</a>
|
||||
<a href="#" class="btn btn-default" id="btnExpandTreeNode" title="展开一级"><i class="fa fa-angle-double-down"></i> ${text('展开')}</a>
|
||||
<a href="#" class="btn btn-default" id="btnCollapseTreeNode" title="折叠全部"><i class="fa fa-angle-double-up"></i> ${text('折叠')}</a>
|
||||
<% if(hasPermi('sys:area:edit')){ %>
|
||||
<a href="${ctx}/sys/area/form" class="btn btn-default btnTool" title="新增区域"><i class="fa fa-plus"></i> 新增</a>
|
||||
<a href="${ctx}/sys/area/form" class="btn btn-default btnTool" title="${text('新增区域')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
|
||||
<% } %>
|
||||
<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
|
||||
</div>
|
||||
@@ -20,26 +20,26 @@
|
||||
<#form:form id="searchForm" model="${area}" action="${ctx}/sys/area/listPageData" method="post" class="form-inline hide"
|
||||
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
|
||||
<div class="form-group">
|
||||
<label class="control-label">区域代码:</label>
|
||||
<label class="control-label">${text('区域代码')}:</label>
|
||||
<div class="control-inline">
|
||||
<#form:input path="areaCode" maxlength="100" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">区域名称:</label>
|
||||
<label class="control-label">${text('区域名称')}:</label>
|
||||
<div class="control-inline">
|
||||
<#form:input path="areaName" maxlength="100" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">状态:</label>
|
||||
<label class="control-label">${text('状态')}:</label>
|
||||
<div class="control-inline width-60">
|
||||
<#form:select path="status" dictType="sys_search_status" blankOption="true" class="form-control isQuick"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-sm">查询</button>
|
||||
<button type="reset" class="btn btn-default btn-sm isQuick">重置</button>
|
||||
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
|
||||
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
|
||||
</div>
|
||||
</#form:form>
|
||||
<table id="dataGrid"></table>
|
||||
@@ -53,29 +53,29 @@
|
||||
$('#dataGrid').dataGrid({
|
||||
searchForm: $("#searchForm"),
|
||||
columnModel: [
|
||||
{header:'区域名称', name:'areaName', index:'a.area_name', width:230, align:"left", frozen:true, formatter: function(val, obj, row, act){
|
||||
return '( '+row.areaCode+' ) '+'<a href="${ctx}/sys/area/form?areaCode='+row.areaCode+'" class="btnList" data-title="编辑区域">'+(val||row.id)+'</a>';
|
||||
{header:'${text("区域名称")}', name:'areaName', index:'a.area_name', width:230, align:"left", frozen:true, formatter: function(val, obj, row, act){
|
||||
return '( '+row.areaCode+' ) '+'<a href="${ctx}/sys/area/form?areaCode='+row.areaCode+'" class="btnList" data-title="${text("编辑区域")}">'+(val||row.id)+'</a>';
|
||||
}},
|
||||
{header:'区域类型', name:'areaType', index:'a.area_type', width:150, align:"center", formatter: function(val, obj, row, act){
|
||||
{header:'${text("区域类型")}', name:'areaType', index:'a.area_type', width:150, align:"center", formatter: function(val, obj, row, act){
|
||||
return js.getDictLabel(${@DictUtils.getDictListJson('sys_area_type')}, val, '未知', true);
|
||||
}},
|
||||
{header:'备注信息', name:'remarks', index:'a.remarks', width:200, align:"left"},
|
||||
{header:'排序号', name:'treeSort', index:'a.tree_sort', width:100, align:"center"},
|
||||
{header:'状态', name:'status', index:'a.status', width:80, align:"center", formatter: function(val, obj, row, act){
|
||||
{header:'${text("备注信息")}', name:'remarks', index:'a.remarks', width:200, align:"left"},
|
||||
{header:'${text("排序号")}', name:'treeSort', index:'a.tree_sort', width:100, align:"center"},
|
||||
{header:'${text("状态")}', name:'status', index:'a.status', width:80, align:"center", formatter: function(val, obj, row, act){
|
||||
return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
|
||||
}},
|
||||
{header:'更新时间', name:'updateDate', index:'a.update_date', width:150, align:"center"},
|
||||
{header:'操作', name:'actions', width:130, formatter: function(val, obj, row, act){
|
||||
{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
|
||||
{header:'${text("操作")}', name:'actions', width:130, formatter: function(val, obj, row, act){
|
||||
var actions = [];
|
||||
//<% if(hasPermi('sys:area:edit')){ %>
|
||||
actions.push('<a href="${ctx}/sys/area/form?areaCode='+row.areaCode+'" class="btnList" title="编辑区域"><i class="fa fa-pencil"></i></a> ');
|
||||
actions.push('<a href="${ctx}/sys/area/form?areaCode='+row.areaCode+'" class="btnList" title="${text("编辑区域")}"><i class="fa fa-pencil"></i></a> ');
|
||||
if (row.status == Global.STATUS_NORMAL){
|
||||
actions.push('<a href="${ctx}/sys/area/disable?areaCode='+row.areaCode+'" class="btnList" title="停用区域" data-confirm="确认要停用该区域吗?"><i class="glyphicon glyphicon-ban-circle"></i></a> ');
|
||||
actions.push('<a href="${ctx}/sys/area/disable?areaCode='+row.areaCode+'" class="btnList" title="${text("停用区域")}" data-confirm="${text("确认要停用该区域吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a> ');
|
||||
} else if (row.status == Global.STATUS_DISABLE){
|
||||
actions.push('<a href="${ctx}/sys/area/enable?areaCode='+row.areaCode+'" class="btnList" title="启用区域" data-confirm="确认要启用该区域吗?"><i class="glyphicon glyphicon-ok-circle"></i></a> ');
|
||||
actions.push('<a href="${ctx}/sys/area/enable?areaCode='+row.areaCode+'" class="btnList" title="${text("启用区域")}" data-confirm="${text("确认要启用该区域吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a> ');
|
||||
}
|
||||
actions.push('<a href="${ctx}/sys/area/delete?areaCode='+row.areaCode+'" class="btnList" title="删除区域" data-confirm="确认要删除该区域及所有子区域吗?" data-deltreenode="'+row.id+'"><i class="fa fa-trash-o"></i></a> ');
|
||||
actions.push('<a href="${ctx}/sys/area/form?parentCode='+row.id+'" class="btnList" title="新增下级区域"><i class="fa fa-plus-square"></i></a> ');
|
||||
actions.push('<a href="${ctx}/sys/area/delete?areaCode='+row.areaCode+'" class="btnList" title="${text("删除区域")}" data-confirm="${text("确认要删除该区域及所有子区域吗?")}" data-deltreenode="'+row.id+'"><i class="fa fa-trash-o"></i></a> ');
|
||||
actions.push('<a href="${ctx}/sys/area/form?parentCode='+row.id+'" class="btnList" title="${text("新增下级区域")}"><i class="fa fa-plus-square"></i></a> ');
|
||||
//<% } %>
|
||||
return actions.join('');
|
||||
}}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" title="">
|
||||
<span class="required ">*</span> ${text('公司编码')}:<i class="fa icon-question hide"></i></label>
|
||||
<span class="required ">*</span> ${text('公司代码')}:<i class="fa icon-question hide"></i></label>
|
||||
<div class="col-sm-8">
|
||||
<#form:hidden path="isNewRecord"/>
|
||||
<#form:hidden path="companyCode"/>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
// 初始化布局
|
||||
$('body').layout({
|
||||
west__initClosed: $(window).width() <= 767, // 是否默认关闭
|
||||
west__size: 200
|
||||
west__size: 220
|
||||
});
|
||||
// 主页框架
|
||||
var win = $("#mainFrame")[0].contentWindow;
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<div class="form-unit">${text('数据权限')}</div>
|
||||
<div id="dataScopeTrees"></div>
|
||||
<script id="dataScopeTpl" type="text/template">
|
||||
<div class="pull-left" style="padding:0 15px;min-width:300px;">
|
||||
<div id="dataScope_{{d.key}}" class="pull-left" style="padding:0 15px;min-width:300px;">
|
||||
<div class="box box-solid box-trees">
|
||||
<div class="box-header">
|
||||
<div class="box-title icheck">
|
||||
@@ -163,6 +163,10 @@ for (var i=0; i<dataScopes.length; i++){
|
||||
}).attr("ctrlType", dataScope.ctrlType);
|
||||
// 将树对象存储到全局数组里
|
||||
dataScopeTrees[dataScope.ctrlType] = tree;
|
||||
// 如果没有数据,则隐藏选择框
|
||||
if (data.length == 0) {
|
||||
$("#dataScope_"+dataScope.ctrlType).hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-modules</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>JeeSite Modules</name>
|
||||
|
||||
@@ -6,12 +6,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̰汾<EFBFBD><EFBFBD>Nexus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̵<EFBFBD>Maven<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>JeeSite Parent</name>
|
||||
@@ -25,21 +25,25 @@
|
||||
<commons-io.version>2.13.0</commons-io.version>
|
||||
<commons-text.version>1.10.0</commons-text.version>
|
||||
<commons-email.version>1.5</commons-email.version>
|
||||
<fst.version>2.57</fst.version>
|
||||
|
||||
<jackson-bom2.version>2.13.5</jackson-bom2.version>
|
||||
<fastjson.version>2.0.33</fastjson.version>
|
||||
<fst.version>2.57</fst.version>
|
||||
<snakeyaml.version>2.0</snakeyaml.version>
|
||||
<!--<jackson.version>2.12.6</jackson.version>-->
|
||||
<!--<activation.version>1.1.1</activation.version>-->
|
||||
<activation.version>1.1.1</activation.version>
|
||||
<UserAgentUtils.version>1.21</UserAgentUtils.version>
|
||||
<!--<metadata-extractor.version>2.11.0</metadata-extractor.version>-->
|
||||
|
||||
<metadata-extractor.version>2.11.0</metadata-extractor.version>
|
||||
<thumbnailator.version>0.4.19</thumbnailator.version>
|
||||
<twelvemonkeys.version>3.9.3</twelvemonkeys.version>
|
||||
<blade-patchca.version>1.1.2</blade-patchca.version>
|
||||
<jmimemagic.version>0.1.5</jmimemagic.version>
|
||||
<zxing.version>3.5.1</zxing.version>
|
||||
|
||||
<poi.version>5.2.3</poi.version>
|
||||
<pinyin4j.version>2.5.1</pinyin4j.version>
|
||||
<groovy.version>3.0.17</groovy.version>
|
||||
|
||||
<joda-time.version>2.10.4</joda-time.version>
|
||||
<logstash-logback.version>7.3</logstash-logback.version>
|
||||
<elasticsearch.version>7.17.8</elasticsearch.version>
|
||||
@@ -60,7 +64,7 @@
|
||||
|
||||
<!-- environment setting -->
|
||||
<java.version>1.8</java.version>
|
||||
<!--<tomcat.version>9.0.58</tomcat.version>-->
|
||||
<tomcat2.version>9.0.75</tomcat2.version>
|
||||
<maven.test.skip>true</maven.test.skip>
|
||||
<resource.delimiter>@</resource.delimiter>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>JeeSite</name>
|
||||
|
||||
@@ -6,12 +6,15 @@ rem *
|
||||
rem * Author: ThinkGem@163.com
|
||||
rem */
|
||||
echo.
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̰汾<EFBFBD><EFBFBD>Nexus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo [<5B><>Ϣ] <20><><EFBFBD>̵<EFBFBD>Maven<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean deploy -Dmaven.test.skip=true -Pdeploy
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 部署工程版本到Nexus服务器。"
|
||||
echo "[信息] 部署工程到Maven服务器。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean install -Dmaven.test.skip=true -Ppackage
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo "[信息] 打包安装工程,生成jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-root</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>JeeSite Root</name>
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -24,10 +24,6 @@
|
||||
<finalName>web</finalName><!-- war or jar 包的名称 -->
|
||||
<start-class>com.jeesite.modules.ApiApplication</start-class>
|
||||
|
||||
<!-- environment setting -->
|
||||
<eclipse-plugin-download-sources>false</eclipse-plugin-download-sources>
|
||||
<eclipse-plugin-download-javadocs>false</eclipse-plugin-download-javadocs>
|
||||
|
||||
<!-- docker setting -->
|
||||
<docker.run.port>8980:8980</docker.run.port>
|
||||
|
||||
@@ -114,11 +110,7 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<configuration>
|
||||
<downloadSources>${eclipse-plugin-download-sources}</downloadSources>
|
||||
<downloadJavadocs>${eclipse-plugin-download-javadocs}</downloadJavadocs>
|
||||
<wtpContextName>${finalName}</wtpContextName>
|
||||
<wtpversion>2.0</wtpversion>
|
||||
<jeeversion>6.0</jeeversion>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
@@ -786,6 +786,9 @@ web:
|
||||
#
|
||||
# # 严格模式(更严格的数据安全验证)
|
||||
# strictMode: false
|
||||
#
|
||||
# # 所有请求信息将进行xss过滤,这里列出不被xss过滤的地址
|
||||
# xssFilterExcludeUri: /ureport/,/visual/
|
||||
#
|
||||
# # 自定义正则表达式验证(主键、登录名)
|
||||
# validator:
|
||||
@@ -801,7 +804,7 @@ web:
|
||||
# enabled: false
|
||||
# callback: __callback
|
||||
|
||||
# 核心模块的Web功能(仅作为微服务时设为false)
|
||||
# 核心模块的Web功能开启(其它微服务时设为false)
|
||||
core:
|
||||
enabled: true
|
||||
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -24,10 +24,6 @@
|
||||
<finalName>web</finalName><!-- war or jar 包的名称 -->
|
||||
<start-class>com.jeesite.modules.FastApplication</start-class>
|
||||
|
||||
<!-- environment setting -->
|
||||
<eclipse-plugin-download-sources>false</eclipse-plugin-download-sources>
|
||||
<eclipse-plugin-download-javadocs>false</eclipse-plugin-download-javadocs>
|
||||
|
||||
<!-- docker setting -->
|
||||
<docker.dockerHost>http://192.168.56.102:2375</docker.dockerHost>
|
||||
<docker.imageName>thinkgem/jeesite-web:latest</docker.imageName>
|
||||
@@ -123,11 +119,7 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<configuration>
|
||||
<downloadSources>${eclipse-plugin-download-sources}</downloadSources>
|
||||
<downloadJavadocs>${eclipse-plugin-download-javadocs}</downloadJavadocs>
|
||||
<wtpContextName>${finalName}</wtpContextName>
|
||||
<wtpversion>2.0</wtpversion>
|
||||
<jeeversion>6.0</jeeversion>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
@@ -191,7 +191,7 @@ mybatis:
|
||||
# Web 相关
|
||||
web:
|
||||
|
||||
# 核心模块的Web功能(仅作为微服务时设为false)
|
||||
# 核心模块的Web功能开启(其它微服务时设为false)
|
||||
core:
|
||||
enabled: true
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ $('#dataGrid').dataGrid({
|
||||
},
|
||||
columnModel: [
|
||||
{header:'${text("岗位名称")}', name:'postName', index:'a.post_name', width:200, align:"center"},
|
||||
{header:'${text("岗位编码")}', name:'postCode', index:'a.post_code', width:200, align:"center"},
|
||||
{header:'${text("岗位代码")}', name:'postCode', index:'a.post_code', width:200, align:"center"},
|
||||
{header:'${text("排序号")}', name:'postSort', index:'a.post_sort', width:80, align:"center"},
|
||||
{header:'${text("岗位分类")}', name:'postType', index:'a.post_type', width:100, align:"center", formatter: function(val, obj, row, act){
|
||||
return js.getDictLabel(${@DictUtils.getDictListJson('sys_post_type')}, val, '未知', true);
|
||||
|
||||
@@ -12,6 +12,9 @@ echo.
|
||||
%~d0
|
||||
cd %~dp0
|
||||
|
||||
call mvn -v
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
# * No deletion without permission, or be held responsible to law.
|
||||
# *
|
||||
# * Author: ThinkGem@163.com
|
||||
# *
|
||||
# */
|
||||
echo ""
|
||||
echo "[信息] 打包Web工程,生成war/jar包文件。"
|
||||
echo ""
|
||||
|
||||
mvn -v
|
||||
echo ""
|
||||
|
||||
cd ..
|
||||
mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
|
||||
|
||||
|
||||
10
web/pom.xml
10
web/pom.xml
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.jeesite</groupId>
|
||||
<artifactId>jeesite-parent</artifactId>
|
||||
<version>5.4.0-SNAPSHOT</version>
|
||||
<version>5.4.1-SNAPSHOT</version>
|
||||
<relativePath>../parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -24,10 +24,6 @@
|
||||
<finalName>web</finalName><!-- war or jar 包的名称 -->
|
||||
<start-class>com.jeesite.modules.Application</start-class>
|
||||
|
||||
<!-- environment setting -->
|
||||
<eclipse-plugin-download-sources>false</eclipse-plugin-download-sources>
|
||||
<eclipse-plugin-download-javadocs>false</eclipse-plugin-download-javadocs>
|
||||
|
||||
<!-- docker setting -->
|
||||
<docker.run.port>8980:8980</docker.run.port>
|
||||
|
||||
@@ -128,11 +124,7 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<configuration>
|
||||
<downloadSources>${eclipse-plugin-download-sources}</downloadSources>
|
||||
<downloadJavadocs>${eclipse-plugin-download-javadocs}</downloadJavadocs>
|
||||
<wtpContextName>${finalName}</wtpContextName>
|
||||
<wtpversion>2.0</wtpversion>
|
||||
<jeeversion>6.0</jeeversion>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
@@ -787,6 +787,9 @@ web:
|
||||
# # 严格模式(更严格的数据安全验证)
|
||||
# strictMode: false
|
||||
#
|
||||
# # 所有请求信息将进行xss过滤,这里列出不被xss过滤的地址
|
||||
# xssFilterExcludeUri: /ureport/,/visual/
|
||||
#
|
||||
# # 自定义正则表达式验证(主键、登录名)
|
||||
# validator:
|
||||
# id: '[a-zA-Z0-9_\-/#\u4e00-\u9fa5]{0,64}'
|
||||
@@ -801,7 +804,7 @@ web:
|
||||
# enabled: false
|
||||
# callback: __callback
|
||||
|
||||
# 核心模块的Web功能(仅作为微服务时设为false)
|
||||
# 核心模块的Web功能开启(其它微服务时设为false)
|
||||
core:
|
||||
enabled: true
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ $('#dataGrid').dataGrid({
|
||||
},
|
||||
columnModel: [
|
||||
{header:'${text("岗位名称")}', name:'postName', index:'a.post_name', width:200, align:"center"},
|
||||
{header:'${text("岗位编码")}', name:'postCode', index:'a.post_code', width:200, align:"center"},
|
||||
{header:'${text("岗位代码")}', name:'postCode', index:'a.post_code', width:200, align:"center"},
|
||||
{header:'${text("排序号")}', name:'postSort', index:'a.post_sort', width:80, align:"center"},
|
||||
{header:'${text("岗位分类")}', name:'postType', index:'a.post_type', width:100, align:"center", formatter: function(val, obj, row, act){
|
||||
return js.getDictLabel(${@DictUtils.getDictListJson('sys_post_type')}, val, '未知', true);
|
||||
|
||||
Reference in New Issue
Block a user