Compare commits

..

13 Commits

Author SHA1 Message Date
thinkgem
d555d508c3 5.5.2 2023-11-21 21:47:55 +08:00
thinkgem
11511c14bd 更新h2的库名 2023-11-20 16:01:08 +08:00
thinkgem
2238ca062f 添加自动切换到脚本所在目录 2023-11-20 15:43:41 +08:00
thinkgem
3563f18335 更新docker运行脚本帮助 2023-11-20 15:16:26 +08:00
thinkgem
983ad2faff add db docs xlsx png 2023-11-17 11:17:35 +08:00
thinkgem
f569da908d 增加quartz表ER图和注释 2023-11-16 11:57:02 +08:00
thinkgem
2e0718ba41 增加vue的ListSelect选择框代码生成模板 2023-11-09 11:31:31 +08:00
thinkgem
846bf82375 Byte格式化默认显示两位小数 2023-11-08 11:46:51 +08:00
thinkgem
8cc6f25dd1 添加jdbc.connectTimeou和jdbc.socketTimeout连接池参数 2023-10-30 08:44:44 +08:00
thinkgem
5ff9ca9815 update version 2023-10-26 11:38:15 +08:00
thinkgem
31e6b01b4e 新增一个日志清理接口,可根据需要创建job调用 2023-10-26 11:27:50 +08:00
thinkgem
bc8a6d2db7 新增富文本和头像的对象存储调用 2023-10-23 10:57:27 +08:00
thinkgem
9a13b33dd8 查询和重置增加图标、搜索框布局优化 2023-10-23 10:55:34 +08:00
75 changed files with 5197 additions and 374 deletions

View File

@@ -131,8 +131,7 @@ docker pull thinkgem/jeesite-web:latest(arm64)
```
- 启动脚本:
```sh
docker run --name jeesite-web \
-p 8980:8980 --privileged -d --restart unless-stopped \
docker run --name jeesite-web -p 8980:8980 -d --restart unless-stopped \
-v ~:/data thinkgem/jeesite-web:latest(arm64) && docker logs -f jeesite-web
```
- 浏览器访问:<http://127.0.0.1:8980/js/> 账号 system 密码 admin

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -779,7 +779,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils {
String p = StringUtils.replace(path, WIN_SEPARATOR, SEPARATOR);
p = StringUtils.join(StringUtils.split(p, SEPARATOR), SEPARATOR);
if (!StringUtils.startsWithAny(p, SEPARATOR) && StringUtils.startsWithAny(path, WIN_SEPARATOR, SEPARATOR)){
p += SEPARATOR;
p = SEPARATOR + p;
}
if (!StringUtils.endsWithAny(p, SEPARATOR) && StringUtils.endsWithAny(path, WIN_SEPARATOR, SEPARATOR)){
p = p + SEPARATOR;

View File

@@ -66,9 +66,9 @@ public class ByteUtils {
private static String format(double size, String type) {
int precision = 0;
if(size * 1000 % 10 > 0) {
/*if(size * 1000 % 10 > 0) {
precision = 3;
} else if(size * 100 % 10 > 0) {
} else */if(size * 100 % 10 > 0) {
precision = 2;
} else if(size * 10 % 10 > 0) {
precision = 1;

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -12,4 +12,5 @@
5.4.0
5.4.1
5.5.0
5.5.1
5.5.1
5.5.2

View File

@@ -18,20 +18,20 @@
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">${text('问题分类')}</label>
<div class="control-inline width-120">
<div class="control-inline width-90">
<#form:select path="category" dictType="app_comment_category" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('问题和意见')}</label>
<div class="control-inline">
<#form:input path="content" maxlength="500" class="form-control width-120"/>
<#form:input path="content" maxlength="500" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('联系方式')}</label>
<div class="control-inline">
<#form:input path="contact" maxlength="200" class="form-control width-120"/>
<#form:input path="contact" maxlength="200" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
@@ -49,8 +49,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
@@ -62,7 +62,7 @@
<script>
//# // 初始化DataGrid对象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
searchForm: $('#searchForm'),
columnModel: [
{header:'${text("问题和意见")}', name:'content', index:'a.content', width:250, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/app/appComment/form?id='+row.id+'" class="btnList" data-title="${text("编辑意见")}">'+(val||row.id)+'</a>';

View File

@@ -18,19 +18,19 @@
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">${text('应用代号')}</label>
<div class="control-inline width-120">
<div class="control-inline width-90">
<#form:select path="appCode" dictType="app_code" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('升级标题')}</label>
<div class="control-inline">
<#form:input path="upTitle" maxlength="200" class="form-control width-120"/>
<#form:input path="upTitle" maxlength="200" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('升级类型')}</label>
<div class="control-inline width-120">
<div class="control-inline width-90">
<#form:select path="upType" dictType="app_upgrade_type" blankOption="true" class="form-control"/>
</div>
</div>
@@ -48,8 +48,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
@@ -61,7 +61,7 @@
<script>
//# // 初始化DataGrid对象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
searchForm: $('#searchForm'),
columnModel: [
{header:'${text("升级标题")}', name:'upTitle', index:'a.up_title', width:350, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/app/appUpgrade/form?id='+row.id+'" class="btnList" data-title="${text("编辑版本")}">'+(val||row.id)+'</a>';

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -20,4 +20,5 @@
5.4.0
5.4.1
5.5.0
5.5.1
5.5.1
5.5.2

View File

@@ -28,12 +28,12 @@
<#form:input path="title" maxlength="255" class="form-control width-120"/>
</div>
</div>
<div class="form-group">
<!--<div class="form-group">
<label class="control-label">${text('关键字')}</label>
<div class="control-inline">
<#form:input path="keywords" maxlength="500" class="form-control width-120"/>
</div>
</div>
</div>-->
<div class="form-group">
<label class="control-label">${text('状态')}</label>
<div class="control-inline width-90">
@@ -41,8 +41,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -57,8 +57,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -94,8 +94,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -46,8 +46,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -40,8 +40,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -53,8 +53,8 @@
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -12,7 +12,7 @@
<category_index>0</category_index>
<zoom>0.5</zoom>
<x>0</x>
<y>1074</y>
<y>907</y>
<default_color>
<r>255</r>
<g>255</g>

BIN
modules/core/db/core.xlsx Normal file

Binary file not shown.

4534
modules/core/db/job.erm Normal file

File diff suppressed because it is too large Load Diff

BIN
modules/core/db/job.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

BIN
modules/core/db/job.xlsx Normal file

Binary file not shown.

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -1,5 +1,14 @@
package com.jeesite.common.ueditor.upload;
import com.jeesite.common.image.ImageUtils;
import com.jeesite.common.io.FileUtils;
import com.jeesite.common.media.VideoUtils;
import com.jeesite.common.ueditor.PathFormat;
import com.jeesite.common.ueditor.define.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -8,21 +17,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.jeesite.common.image.ImageUtils;
import com.jeesite.common.io.FileUtils;
import com.jeesite.common.media.VideoUtils;
import com.jeesite.common.ueditor.PathFormat;
import com.jeesite.common.ueditor.define.ActionMap;
import com.jeesite.common.ueditor.define.AppInfo;
import com.jeesite.common.ueditor.define.BaseState;
import com.jeesite.common.ueditor.define.FileType;
import com.jeesite.common.ueditor.define.State;
public class BinaryUploader {
public static final State save(HttpServletRequest request, Map<String, Object> conf) {
@@ -64,7 +58,7 @@ public class BinaryUploader {
savePath = PathFormat.parse(savePath, originFileName);
String physicalPath = FileUtils.path((String) conf.get("rootPath") + savePath);
String physicalPath = FileUtils.path(conf.get("rootPath") + savePath);
InputStream is = null;
State storageState = null;

View File

@@ -1,12 +1,6 @@
package com.jeesite.common.ueditor.upload;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import com.jeesite.common.config.Global;
import com.jeesite.common.idgen.IdGen;
import com.jeesite.common.io.FileUtils;
import com.jeesite.common.io.PropertiesUtils;
@@ -14,6 +8,11 @@ import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.ueditor.define.AppInfo;
import com.jeesite.common.ueditor.define.BaseState;
import com.jeesite.common.ueditor.define.State;
import com.jeesite.common.web.http.ServletUtils;
import com.jeesite.modules.file.utils.FileUploadUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
public class StorageManager {
@@ -194,12 +193,21 @@ public class StorageManager {
/**
* UEditor上传文件成功后调用事件
*
* @param physicalPath 上传文件实际路径
* @param storageState url 返回到客户端的文件访问地址
*/
public static void uploadFileSuccess(String physicalPath, State storageState) {
if (!Global.getPropertyToBoolean("file.enabled", "true")) {
return;
}
File file = new File(physicalPath);
String url = FileUploadUtils.ossFileUpload(file, StringUtils.substringAfter(
FileUtils.path(file.getAbsolutePath()), Global.USERFILES_BASE_URL));
if (!StringUtils.contains(url, "://")) {
HttpServletRequest request = ServletUtils.getRequest();
url = FileUtils.path((request != null ? request.getContextPath() : StringUtils.EMPTY) + url);
}
storageState.putInfo("url", url);
}
}

View File

@@ -18,4 +18,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@ConditionalOnProperty(name="user.enabled", havingValue="true", matchIfMissing=true)
public interface LogDao extends CrudDao<Log> {
/**
* 删除某个日期之前创建的日志
* @param log .createDate
*/
int deleteLogBefore(Log log);
}

View File

@@ -25,5 +25,13 @@ public interface LogService extends CrudServiceApi<Log> {
* 不使用数据库事务,执行插入日志
*/
void insertLog(Log entity);
/**
* 清理指定日期之前的日志可新建job定时调用
* 1、清理1年前的所有日志logService.deleteLogBefore(1, 0, 0);
* 2、清理6个月前的所有日志logService.deleteLogBefore(0, 6, 0);
* 3、清理7天前的所有日志logService.deleteLogBefore(0, 0, 7);
* 4、清理1年6个月前的所有日志logService.deleteLogBefore(1, 6, 0);
*/
void deleteLogBefore(Integer year, Integer months, Integer days);
}

View File

@@ -4,10 +4,13 @@
*/
package com.jeesite.modules.sys.service.support;
import java.util.Date;
import org.springframework.transaction.annotation.Transactional;
import com.jeesite.common.datasource.DataSourceHolder;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.DateUtils;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.sys.dao.LogDao;
import com.jeesite.modules.sys.entity.Log;
@@ -50,4 +53,30 @@ public class LogServiceSupport extends CrudService<LogDao, Log>
dao.insert(entity);
}
/**
* 清理指定日期之前的日志可新建job定时调用
* 1、清理1年前的所有日志logService.deleteLogBefore(1, 0, 0);
* 2、清理6个月前的所有日志logService.deleteLogBefore(0, 6, 0);
* 3、清理7天前的所有日志logService.deleteLogBefore(0, 0, 7);
* 4、清理1年6个月前的所有日志logService.deleteLogBefore(1, 6, 0);
*/
@Override
@Transactional
public void deleteLogBefore(Integer year, Integer months, Integer days) {
Date date = DateUtils.getOfDayLast(new Date());
if (year != null && year != 0) {
date = DateUtils.addYears(date, -year);
}
if (months != null && months != 0) {
date = DateUtils.addMonths(date, -months);
}
if (days != null && days != 0) {
date = DateUtils.addDays(date, -days);
}
Log log = new Log();
log.setCreateDate(date);
dao.deleteLogBefore(log);
}
}

View File

@@ -27,6 +27,10 @@ jdbc:
# 获取连接等待超时时间单位毫秒1分钟4.0.6+
maxWait: 60000
# 连接超时参数,单位毫秒 v5.5.2+
connectTimeout: ~
socketTimeout: ~
# 从池中取出连接前进行检验如果检验失败则从池中去除连接并尝试取出另一个4.0.6+
testOnBorrow: false

View File

@@ -1,63 +1,62 @@
-- tables_db2_v95.sql
create table ${_prefix}job_job_details(
sched_name varchar(120) not null,
job_name varchar(80) not null,
job_group varchar(80) not null,
description varchar(120),
job_class_name varchar(128) not null,
is_durable integer not null,
is_nonconcurrent integer not null,
is_update_data integer not null,
requests_recovery integer not null,
job_data blob(2000),
primary key (sched_name,job_name,job_group)
sched_name varchar(120) not null,
job_name varchar(80) not null,
job_group varchar(80) not null,
description varchar(120),
job_class_name varchar(128) not null,
is_durable integer not null,
is_nonconcurrent integer not null,
is_update_data integer not null,
requests_recovery integer not null,
job_data blob(2000),
primary key (sched_name,job_name,job_group)
);
create table ${_prefix}job_triggers(
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
job_name varchar(80) not null,
job_group varchar(80) not null,
description varchar(120),
next_fire_time bigint,
prev_fire_time bigint,
priority integer,
trigger_state varchar(16) not null,
trigger_type varchar(8) not null,
start_time bigint not null,
end_time bigint,
calendar_name varchar(80),
misfire_instr smallint,
job_data blob(2000),
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,job_name,job_group) references ${_prefix}job_job_details(sched_name,job_name,job_group)
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
job_name varchar(80) not null,
job_group varchar(80) not null,
description varchar(120),
next_fire_time bigint,
prev_fire_time bigint,
priority integer,
trigger_state varchar(16) not null,
trigger_type varchar(8) not null,
start_time bigint not null,
end_time bigint,
calendar_name varchar(80),
misfire_instr smallint,
job_data blob(2000),
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,job_name,job_group) references ${_prefix}job_job_details(sched_name,job_name,job_group)
);
create table ${_prefix}job_simple_triggers(
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
repeat_count bigint not null,
repeat_interval bigint not null,
times_triggered bigint not null,
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,trigger_name,trigger_group) references ${_prefix}job_triggers(sched_name,trigger_name,trigger_group)
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
repeat_count bigint not null,
repeat_interval bigint not null,
times_triggered bigint not null,
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,trigger_name,trigger_group) references ${_prefix}job_triggers(sched_name,trigger_name,trigger_group)
);
create table ${_prefix}job_cron_triggers(
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
cron_expression varchar(120) not null,
time_zone_id varchar(80),
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,trigger_name,trigger_group) references ${_prefix}job_triggers(sched_name,trigger_name,trigger_group)
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
cron_expression varchar(120) not null,
time_zone_id varchar(80),
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,trigger_name,trigger_group) references ${_prefix}job_triggers(sched_name,trigger_name,trigger_group)
);
CREATE TABLE ${_prefix}job_simprop_triggers
(
CREATE TABLE ${_prefix}job_simprop_triggers(
sched_name varchar(120) not null,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
@@ -78,54 +77,54 @@ CREATE TABLE ${_prefix}job_simprop_triggers
);
create table ${_prefix}job_blob_triggers(
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
blob_data blob(2000),
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,trigger_name,trigger_group) references ${_prefix}job_triggers(sched_name,trigger_name,trigger_group)
sched_name varchar(120) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
blob_data blob(2000),
primary key (sched_name,trigger_name,trigger_group),
foreign key (sched_name,trigger_name,trigger_group) references ${_prefix}job_triggers(sched_name,trigger_name,trigger_group)
);
create table ${_prefix}job_calendars(
sched_name varchar(120) not null,
calendar_name varchar(80) not null,
calendar blob(2000) not null,
primary key (calendar_name)
sched_name varchar(120) not null,
calendar_name varchar(80) not null,
calendar blob(2000) not null,
primary key (calendar_name)
);
create table ${_prefix}job_fired_triggers(
sched_name varchar(120) not null,
entry_id varchar(95) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
instance_name varchar(80) not null,
fired_time bigint not null,
sched_time bigint not null,
priority integer not null,
state varchar(16) not null,
job_name varchar(80),
job_group varchar(80),
is_nonconcurrent integer,
requests_recovery integer,
primary key (sched_name,entry_id)
sched_name varchar(120) not null,
entry_id varchar(95) not null,
trigger_name varchar(80) not null,
trigger_group varchar(80) not null,
instance_name varchar(80) not null,
fired_time bigint not null,
sched_time bigint not null,
priority integer not null,
state varchar(16) not null,
job_name varchar(80),
job_group varchar(80),
is_nonconcurrent integer,
requests_recovery integer,
primary key (sched_name,entry_id)
);
create table ${_prefix}job_paused_trigger_grps(
sched_name varchar(120) not null,
trigger_group varchar(80) not null,
primary key (sched_name,trigger_group)
sched_name varchar(120) not null,
trigger_group varchar(80) not null,
primary key (sched_name,trigger_group)
);
create table ${_prefix}job_scheduler_state(
sched_name varchar(120) not null,
instance_name varchar(80) not null,
last_checkin_time bigint not null,
checkin_interval bigint not null,
primary key (sched_name,instance_name)
sched_name varchar(120) not null,
instance_name varchar(80) not null,
last_checkin_time bigint not null,
checkin_interval bigint not null,
primary key (sched_name,instance_name)
);
create table ${_prefix}job_locks(
sched_name varchar(120) not null,
lock_name varchar(40) not null,
primary key (sched_name,lock_name)
sched_name varchar(120) not null,
lock_name varchar(40) not null,
primary key (sched_name,lock_name)
);

View File

@@ -77,22 +77,21 @@ CREATE TABLE ${_prefix}job_SIMPLE_TRIGGERS (
TIMES_TRIGGERED BIGINT NOT NULL
);
CREATE TABLE ${_prefix}job_simprop_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
STR_PROP_1 VARCHAR(512) NULL,
STR_PROP_2 VARCHAR(512) NULL,
STR_PROP_3 VARCHAR(512) NULL,
INT_PROP_1 INTEGER NULL,
INT_PROP_2 INTEGER NULL,
LONG_PROP_1 BIGINT NULL,
LONG_PROP_2 BIGINT NULL,
DEC_PROP_1 NUMERIC(13,4) NULL,
DEC_PROP_2 NUMERIC(13,4) NULL,
BOOL_PROP_1 BOOLEAN NULL,
BOOL_PROP_2 BOOLEAN NULL,
CREATE TABLE ${_prefix}job_simprop_triggers (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
STR_PROP_1 VARCHAR(512) NULL,
STR_PROP_2 VARCHAR(512) NULL,
STR_PROP_3 VARCHAR(512) NULL,
INT_PROP_1 INTEGER NULL,
INT_PROP_2 INTEGER NULL,
LONG_PROP_1 BIGINT NULL,
LONG_PROP_2 BIGINT NULL,
DEC_PROP_1 NUMERIC(13,4) NULL,
DEC_PROP_2 NUMERIC(13,4) NULL,
BOOL_PROP_1 BOOLEAN NULL,
BOOL_PROP_2 BOOLEAN NULL,
);
CREATE TABLE ${_prefix}job_BLOB_TRIGGERS (

View File

@@ -7,139 +7,138 @@
-- I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM.
CREATE TABLE ${_prefix}job_JOB_DETAILS(
SCHED_NAME VARCHAR(120) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
JOB_GROUP VARCHAR(200) NOT NULL,
DESCRIPTION VARCHAR(250) NULL,
JOB_CLASS_NAME VARCHAR(250) NOT NULL,
IS_DURABLE VARCHAR(1) NOT NULL,
IS_NONCONCURRENT VARCHAR(1) NOT NULL,
IS_UPDATE_DATA VARCHAR(1) NOT NULL,
REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
JOB_NAME VARCHAR(200) NOT NULL COMMENT '任务名称',
JOB_GROUP VARCHAR(200) NOT NULL COMMENT '任务群组',
DESCRIPTION VARCHAR(250) NULL COMMENT '说明',
JOB_CLASS_NAME VARCHAR(250) NOT NULL COMMENT '任务Class名称',
IS_DURABLE VARCHAR(1) NOT NULL COMMENT '是否持久化',
IS_NONCONCURRENT VARCHAR(1) NOT NULL COMMENT '是否并发执行',
IS_UPDATE_DATA VARCHAR(1) NOT NULL COMMENT '是否更新数据',
REQUESTS_RECOVERY VARCHAR(1) NOT NULL COMMENT '是否恢复',
JOB_DATA BLOB NULL COMMENT '调用数据对象',
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
ENGINE=InnoDB COMMENT='任务详情表';
CREATE TABLE ${_prefix}job_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
JOB_GROUP VARCHAR(200) NOT NULL,
DESCRIPTION VARCHAR(250) NULL,
NEXT_FIRE_TIME BIGINT(13) NULL,
PREV_FIRE_TIME BIGINT(13) NULL,
PRIORITY INTEGER NULL,
TRIGGER_STATE VARCHAR(16) NOT NULL,
TRIGGER_TYPE VARCHAR(8) NOT NULL,
START_TIME BIGINT(13) NOT NULL,
END_TIME BIGINT(13) NULL,
CALENDAR_NAME VARCHAR(200) NULL,
MISFIRE_INSTR SMALLINT(2) NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES ${_prefix}job_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
TRIGGER_NAME VARCHAR(200) NOT NULL COMMENT '触发器名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发器组名称',
JOB_NAME VARCHAR(200) NOT NULL COMMENT '作业名称',
JOB_GROUP VARCHAR(200) NOT NULL COMMENT '作业组名称',
DESCRIPTION VARCHAR(250) NULL COMMENT '作业描述',
NEXT_FIRE_TIME BIGINT(13) NULL COMMENT '下次触发时间',
PREV_FIRE_TIME BIGINT(13) NULL COMMENT '上次触发时间',
PRIORITY INTEGER NULL COMMENT '触发器优先级',
TRIGGER_STATE VARCHAR(16) NOT NULL COMMENT '触发器状态',
TRIGGER_TYPE VARCHAR(8) NOT NULL COMMENT '触发器类型',
START_TIME BIGINT(13) NOT NULL COMMENT '开始时间',
END_TIME BIGINT(13) NULL COMMENT '结束时间',
CALENDAR_NAME VARCHAR(200) NULL COMMENT '日历名称',
MISFIRE_INSTR SMALLINT(2) NULL COMMENT '错过策略',
JOB_DATA BLOB NULL COMMENT '调度数据对象',
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES ${_prefix}job_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
ENGINE=InnoDB COMMENT='触发器表';
CREATE TABLE ${_prefix}job_SIMPLE_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
REPEAT_COUNT BIGINT(7) NOT NULL,
REPEAT_INTERVAL BIGINT(12) NOT NULL,
TIMES_TRIGGERED BIGINT(10) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
TRIGGER_NAME VARCHAR(200) NOT NULL COMMENT '触发器名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发器组名称',
REPEAT_COUNT BIGINT(7) NOT NULL COMMENT '重复次数',
REPEAT_INTERVAL BIGINT(12) NOT NULL COMMENT '重复间隔',
TIMES_TRIGGERED BIGINT(10) NOT NULL COMMENT '触发时间',
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB COMMENT='简单触发器表';
CREATE TABLE ${_prefix}job_CRON_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
CRON_EXPRESSION VARCHAR(120) NOT NULL,
TIME_ZONE_ID VARCHAR(80),
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
TRIGGER_NAME VARCHAR(200) NOT NULL COMMENT '触发器名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发器组名称',
CRON_EXPRESSION VARCHAR(120) NOT NULL COMMENT 'Cron表达式',
TIME_ZONE_ID VARCHAR(80) COMMENT '时间地域编号',
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB COMMENT='Cron触发器表';
CREATE TABLE ${_prefix}job_SIMPROP_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
STR_PROP_1 VARCHAR(512) NULL,
STR_PROP_2 VARCHAR(512) NULL,
STR_PROP_3 VARCHAR(512) NULL,
INT_PROP_1 INT NULL,
INT_PROP_2 INT NULL,
LONG_PROP_1 BIGINT NULL,
LONG_PROP_2 BIGINT NULL,
DEC_PROP_1 NUMERIC(13,4) NULL,
DEC_PROP_2 NUMERIC(13,4) NULL,
BOOL_PROP_1 VARCHAR(1) NULL,
BOOL_PROP_2 VARCHAR(1) NULL,
CREATE TABLE ${_prefix}job_SIMPROP_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
TRIGGER_NAME VARCHAR(200) NOT NULL COMMENT '触发器名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发器组名称',
STR_PROP_1 VARCHAR(512) NULL COMMENT '字符串属性1',
STR_PROP_2 VARCHAR(512) NULL COMMENT '字符串属性2',
STR_PROP_3 VARCHAR(512) NULL COMMENT '字符串属性3',
INT_PROP_1 INT NULL COMMENT '整型属性1',
INT_PROP_2 INT NULL COMMENT '整型属性2',
LONG_PROP_1 BIGINT NULL COMMENT '长整型属性1',
LONG_PROP_2 BIGINT NULL COMMENT '长整型属性2',
DEC_PROP_1 NUMERIC(13,4) NULL COMMENT '数值属性1',
DEC_PROP_2 NUMERIC(13,4) NULL COMMENT '数值属性2',
BOOL_PROP_1 VARCHAR(1) NULL COMMENT '布尔属性1',
BOOL_PROP_2 VARCHAR(1) NULL COMMENT '布尔属性2',
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB;
ENGINE=InnoDB COMMENT='日历触发器表';
CREATE TABLE ${_prefix}job_BLOB_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
BLOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
TRIGGER_NAME VARCHAR(200) NOT NULL COMMENT '触发器名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发器组名称',
BLOB_DATA BLOB NULL COMMENT '触发器数据',
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES ${_prefix}job_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB COMMENT='Blob类型触发器表';
CREATE TABLE ${_prefix}job_CALENDARS (
SCHED_NAME VARCHAR(120) NOT NULL,
CALENDAR_NAME VARCHAR(200) NOT NULL,
CALENDAR BLOB NOT NULL,
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
CALENDAR_NAME VARCHAR(200) NOT NULL COMMENT '日历名称',
CALENDAR BLOB NOT NULL COMMENT '日历数据',
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
ENGINE=InnoDB COMMENT='日历表';
CREATE TABLE ${_prefix}job_PAUSED_TRIGGER_GRPS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发组名称',
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
ENGINE=InnoDB COMMENT='暂停触发器表';
CREATE TABLE ${_prefix}job_FIRED_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
ENTRY_ID VARCHAR(95) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
FIRED_TIME BIGINT(13) NOT NULL,
SCHED_TIME BIGINT(13) NOT NULL,
PRIORITY INTEGER NOT NULL,
STATE VARCHAR(16) NOT NULL,
JOB_NAME VARCHAR(200) NULL,
JOB_GROUP VARCHAR(200) NULL,
IS_NONCONCURRENT VARCHAR(1) NULL,
REQUESTS_RECOVERY VARCHAR(1) NULL,
PRIMARY KEY (SCHED_NAME,ENTRY_ID))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
ENTRY_ID VARCHAR(95) NOT NULL COMMENT '登记编号',
TRIGGER_NAME VARCHAR(200) NOT NULL COMMENT '触发器名称',
TRIGGER_GROUP VARCHAR(200) NOT NULL COMMENT '触发器组名称',
INSTANCE_NAME VARCHAR(200) NOT NULL COMMENT '实例名称',
FIRED_TIME BIGINT(13) NOT NULL COMMENT '记录开始时间',
SCHED_TIME BIGINT(13) NOT NULL COMMENT '记录结束时间',
PRIORITY INTEGER NOT NULL COMMENT '记录优先级',
STATE VARCHAR(16) NOT NULL COMMENT '记录状态',
JOB_NAME VARCHAR(200) NULL COMMENT '作业名称',
JOB_GROUP VARCHAR(200) NULL COMMENT '作业组名称',
IS_NONCONCURRENT VARCHAR(1) NULL COMMENT '是否并发',
REQUESTS_RECOVERY VARCHAR(1) NULL COMMENT '是否接受恢复',
PRIMARY KEY (SCHED_NAME,ENTRY_ID))
ENGINE=InnoDB COMMENT='正在执行的触发器表';
CREATE TABLE ${_prefix}job_SCHEDULER_STATE (
SCHED_NAME VARCHAR(120) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
CHECKIN_INTERVAL BIGINT(13) NOT NULL,
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
INSTANCE_NAME VARCHAR(200) NOT NULL COMMENT '实例名称',
LAST_CHECKIN_TIME BIGINT(13) NOT NULL COMMENT '检查时间',
CHECKIN_INTERVAL BIGINT(13) NOT NULL COMMENT '检查间隔',
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
ENGINE=InnoDB COMMENT='状态检查表';
CREATE TABLE ${_prefix}job_LOCKS (
SCHED_NAME VARCHAR(120) NOT NULL,
LOCK_NAME VARCHAR(40) NOT NULL,
PRIMARY KEY (SCHED_NAME,LOCK_NAME))
ENGINE=InnoDB;
SCHED_NAME VARCHAR(120) NOT NULL COMMENT '计划名称',
LOCK_NAME VARCHAR(40) NOT NULL COMMENT '锁定名称',
PRIMARY KEY (SCHED_NAME,LOCK_NAME))
ENGINE=InnoDB COMMENT='状态锁表';
CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON ${_prefix}job_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
CREATE INDEX IDX_QRTZ_J_GRP ON ${_prefix}job_JOB_DETAILS(SCHED_NAME,JOB_GROUP);

View File

@@ -20,4 +20,10 @@
<if test="global.dbName == 'postgresql'"></if>
</select> -->
<!-- 删除某个日期之前创建的日志 -->
<delete id="deleteLogBefore">
DELETE FROM ${_prefix}sys_log
WHERE create_date &lt; #{createDate}
</delete>
</mapper>

View File

@@ -43,6 +43,13 @@
<template>category-ref:dao</template>
</childTable>
</category>
<category value="crud_select_vue" label="单表/主子表 (增删改查,含 listselect 选择页面Vue">
<template>category-ref:crud_vue</template>
<template>crud/vueSelect.xml</template>
<childTable>
<template>category-ref:dao</template>
</childTable>
</category>
<category value="crud_cloud" label="单表/主子表 (增删改查 Cloud生成 Api/Client">
<template>crud_cloud/entity.xml</template>
<template>crud_cloud/mapper.xml</template>

View File

@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2013-Now http://jeesite.com All rights reserved.
No deletion without permission, or be held responsible to law. -->
<template>
<name>vueSelect</name>
<filePath>${frontDir}/src/components/ListSelect/src/selectType</filePath>
<fileName>${urlPrefix}Select.ts</fileName>
<content><![CDATA[
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicColumn, BasicTableProps, FormProps } from '/@/components/Table';
import { ${className}ListData } from '/@/api/${moduleName}${isNotEmpty(subModuleName)?'/'+subModuleName:''}/${className}';
<%
var userselectExists = false;
var officeselectExists = false;
var areaselectExists = false;
for(c in table.columnList){
if(c.isQuery == "1" && !c.isTreeEntityColumn){
if(c.showType == 'userselect'){
userselectExists = true;
}else if(c.showType == 'officeselect'){
officeselectExists = true;
}else if(c.showType == 'areaselect'){
areaselectExists = true;
}
}
}
%>
<% if(userselectExists || officeselectExists) { %>
import { officeTreeData } from '/@/api/sys/office';
<% } %>
<% if(areaselectExists) { %>
import { areaTreeData } from '/@/api/sys/area';
<% } %>
const { t } = useI18n('sys.${className}');
const modalProps = {
title: t('${functionNameSimple}选择'),
};
const searchForm: FormProps = {
baseColProps: { lg: 6, md: 8 },
labelWidth: 90,
schemas: [
<% for(c in table.columnList){ %>
<% if(c.isQuery == "1" && !c.isTreeEntityColumn){ %>
{
label: t('${c.columnLabel}${c.queryType == 'BETWEEN'?'起':''}'),
field: '${c.attrName}${c.queryType == 'BETWEEN'?'_gte':''}',
<% if(c.showType == 'input' || c.showType == 'textarea'){ %>
component: 'Input',
<% if (c.queryType == 'BETWEEN'){ %>
},
{
field: '${c.attrName}${c.queryType == 'BETWEEN'?'_lte':''}',
label: t('${c.columnLabel}${c.queryType == 'BETWEEN'?'止':''}'),
component: 'Input',
<% } %>
<% }else if(c.showType == 'select' || c.showType == 'select_multiple'){
var isMultiple = (c.showType == 'select_multiple'); %>
component: 'Select',
componentProps: {
dictType: '${c.optionMap['dictType']}',
allowClear: true,
<% if(isMultiple){ %>
mode: 'multiple',
<% } %>
},
<% }else if(c.showType == 'radio' || c.showType == 'checkbox'){ %>
component: '${@StringUtils.cap(c.showType)}Group',
componentProps: {
dictType: '${c.optionMap['dictType']}',
},
<% }else if(c.showType == 'date' || c.showType == 'datetime'){
var isTime = (c.showType == 'datetime'); %>
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD${isTime?' HH:mm':''}',
showTime: ${isTime?'{ format: \'HH:mm\' \}':'false'},
},
<% if (c.queryType == 'BETWEEN'){ %>
},
{
label: t('${c.columnLabel}${c.queryType == 'BETWEEN'?'止':''}'),
field: '${c.attrName}${c.queryType == 'BETWEEN'?'_lte':''}',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD${isTime?' HH:mm':''}',
showTime: ${isTime?'{ format: \'HH:mm\' \}':'false'},
},
<% } %>
<% }else if(c.showType == 'userselect'){ %>
component: 'TreeSelect',
componentProps: {
api: officeTreeData,
params: { isLoadUser: true, userIdPrefix: '' },
canSelectParent: false,
allowClear: true,
},
<% }else if(c.showType == 'officeselect'){ %>
component: 'TreeSelect',
componentProps: {
api: officeTreeData,
allowClear: true,
},
<% }else if(c.showType == 'areaselect'){ %>
component: 'TreeSelect',
componentProps: {
api: areaTreeData,
allowClear: true,
},
<% }else{ %>
component: 'Input',
<% } %>
},
<% } %>
<% } %>
],
};
const tableColumns: BasicColumn[] = [
<%
var firstColumn = true;
// 生成树表的节点列
if(table.isTreeEntity){
for(c in table.columnList){
if(c.attrName == table.treeViewNameAttrName){
%>
{
title: t('${c.columnLabel}'),
dataIndex: '${c.attrName}',
width: 230,
align: 'left',
slot: 'firstColumn',
},
<%
firstColumn = false;
break;
}
}
}
for(c in table.columnList){
if(c.isList == "1"){
// 如果是树结构的字段,则自动忽略
if(table.isTreeEntity && (@StringUtils.inString(c.columnName, 'parent_code',
'parent_codes', 'tree_sorts', 'tree_leaf', 'tree_level', 'tree_names')
|| c.attrName == table.treeViewCodeAttrName
|| c.attrName == table.treeViewNameAttrName)){
continue;
}
%>
{
title: t('${c.columnLabel}'),
<% if(c.showType == "userselect" || c.showType == "officeselect" || c.showType == "areaselect"){ %>
dataIndex: '${c.attrName2}',
<% }else{ %>
dataIndex: '${c.attrName}',
<% } %>
<% if(!table.isTreeEntity){ %>
key: 'a.${c.columnName}',
sorter: true,
<% } %>
<% if(firstColumn){ %>
width: 230,
<% }else{ %>
width: 130,
<% } %>
<% if ((isNotBlank(c.optionMap['dictType']) || @StringUtils.inString(c.attrType, 'java.util.Date', 'Integer', 'Long')) && !firstColumn){ %>
align: 'center',
<% }else if (@StringUtils.inString(c.attrType, 'Float', 'Double') && !firstColumn){ %>
align: 'right',
<% }else{ %>
align: 'left',
<% } %>
<% if(c.showType == 'select' || c.showType == 'select_multiple' || c.showType == 'checkbox' || c.showType == 'radio'){ %>
dictType: '${c.optionMap['dictType']}',
<% } %>
<% if(firstColumn){ %>
slot: 'firstColumn',
<% } %>
},
<%
if(firstColumn){
firstColumn = false;
}
}
}
%>
];
const tableProps: BasicTableProps = {
api: ${className}ListData,
beforeFetch: (params) => {
params['isAll'] = true;
return params;
},
columns: tableColumns,
formConfig: searchForm,
rowKey: '<% for(pk in table.pkList){ %>${pk.attrName}<% } %>',
};
export default {
modalProps,
tableProps,
itemCode: '<% for(pk in table.pkList){ %>${pk.attrName}<% } %>',
itemName: '<% for(pk in table.pkList){ %>${pk.attrName}<% } %>',
};
<% %>
]]>
</content>
</template>

View File

@@ -67,8 +67,8 @@
<% } %>
<% } %>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">\${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">\${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> \${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> \${text('重置')}</button>
</div>
</${'#'}form:form>
<% /* 查询表单 end // 此行是为了去除空行 */ %>

View File

@@ -16,6 +16,8 @@ echo ""
echo "[信息] 运行Web工程。"
echo ""
cd "$(cd "$(dirname "$0")"; pwd)"
# 设置JDK目录
# JAVA_HOME="$PWD/jdk1.8.0_x64"
@@ -37,7 +39,7 @@ else
RUN_JAVA="$JAVA_HOME"/bin/java
fi
exec $RUN_JAVA -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher
exec "$RUN_JAVA" -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher
]]>
</content>
</template>

View File

@@ -51,8 +51,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -38,8 +38,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -24,19 +24,19 @@
<div class="form-group">
<label class="control-label">${text('公司代码')}</label>
<div class="control-inline">
<#form:input path="viewCode" maxlength="100" class="form-control width-120"/>
<#form:input path="viewCode" maxlength="100" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('公司名称')}</label>
<div class="control-inline">
<#form:input path="companyName" maxlength="200" class="form-control width-120"/>
<#form:input path="companyName" maxlength="200" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('公司全称')}</label>
<div class="control-inline">
<#form:input path="fullName" maxlength="200" class="form-control width-120"/>
<#form:input path="fullName" maxlength="200" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
@@ -46,10 +46,10 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
</#form:form>
<table id="dataGrid"></table>
</div>
</div>
@@ -58,7 +58,7 @@
<script>
//# // 初始化DataGrid对象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
searchForm: $('#searchForm'),
columnModel: [
{header:'${text("公司名称")}', name:'companyName', index:'a.company_name', width:250, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '( '+row.viewCode+' ) '+'<a href="${ctx}/sys/company/form?companyCode='+row.companyCode+'" class="btnList" data-title="${text("编辑公司")}">'+(val||row.id)+'</a>';

View File

@@ -89,8 +89,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -54,8 +54,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -34,8 +34,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -41,8 +41,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -51,8 +51,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -47,12 +47,6 @@
<#form:input path="refName" maxlength="100" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('手机')}</label>
<div class="control-inline">
<#form:input path="mobile" maxlength="100" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('状态')}</label>
<div class="control-inline width-90">
@@ -61,11 +55,17 @@
</div>
<!-- <div class="form-row"></div> -->
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="button" class="btn btn-default btn-sm btnFormMore">${text('更多')}<i class="fa fa-angle-double-down"></i></button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
<button type="button" class="btn btn-default btn-sm btnFormMore"><i class="fa fa-angle-double-down"></i> ${text('更多')}</button>
</div>
<div class="form-more">
<div class="form-group">
<label class="control-label">${text('手机')}</label>
<div class="control-inline">
<#form:input path="mobile" maxlength="100" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('机构')}</label>
<div class="control-inline width-90">
@@ -96,18 +96,20 @@
<#form:input path="phone" maxlength="100" class="form-control width-90"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('岗位')}</label>
<div class="control-inline width-90">
<#form:select name="employee.postCode" items="${postList}"
itemLabel="postName" itemValue="postCode" blankOption="true" class="form-control isQuick"/>
<div class="inline-block">
<div class="form-group">
<label class="control-label">${text('岗位')}</label>
<div class="control-inline width-90">
<#form:select name="employee.postCode" items="${postList}"
itemLabel="postName" itemValue="postCode" blankOption="true" class="form-control isQuick"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('角色')}</label>
<div class="control-inline width-120">
<#form:select name="roleCode" items="${roleList}"
itemLabel="roleName" itemValue="roleCode" blankOption="true" class="form-control isQuick"/>
<div class="form-group">
<label class="control-label">${text('角色')}</label>
<div class="control-inline width-90">
<#form:select name="roleCode" items="${roleList}"
itemLabel="roleName" itemValue="roleCode" blankOption="true" class="form-control isQuick"/>
</div>
</div>
</div>
</div>

View File

@@ -60,8 +60,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -40,8 +40,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<div class="row">

View File

@@ -5,7 +5,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite-modules</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite Modules</name>

View File

@@ -12,7 +12,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite Parent</name>

View File

@@ -5,7 +5,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite</name>

View File

@@ -5,7 +5,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite-root</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite Root</name>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -117,6 +117,10 @@ jdbc:
# 最大激活连接数
maxActive: 20
# # 连接超时参数,单位毫秒 v5.5.2+
# connectTimeout: ~
# socketTimeout: ~
#
# # 获取连接等待超时时间单位毫秒1分钟4.0.6+
# maxWait: 60000
#

View File

@@ -9,6 +9,8 @@ echo ""
echo "[信息] 运行Web工程。"
echo ""
cd "$(cd "$(dirname "$0")"; pwd)"
# 设置JDK目录
# JAVA_HOME="$PWD/jdk1.8.0_x64"
@@ -30,4 +32,4 @@ else
RUN_JAVA="$JAVA_HOME"/bin/java
fi
exec $RUN_JAVA -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher
exec "$RUN_JAVA" -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher

View File

@@ -19,7 +19,7 @@ echo.
echo.
echo <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľű<C4BD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
echo.
echo "docker run --name jeesite-web -p 8980:8980 --privileged -d --restart unless-stopped -v ~:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo "docker run --name jeesite-web -p 8980:8980 -d --restart unless-stopped -v ~:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo.
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ󣬷<C9BA><F3A3ACB7><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>http://127.0.0.1:8980/js/a/login <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>system <20><><EFBFBD>룺admin
echo.

View File

@@ -17,7 +17,7 @@ echo ""
echo ""
echo "参考下面的脚本,拷贝到 Docker 服务器上运行:"
echo ""
echo "docker run --name jeesite-web -p 8980:8980 --privileged -d --restart unless-stopped -v ~:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo "docker run --name jeesite-web -p 8980:8980 -d --restart unless-stopped -v ~:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo ""
echo "启动完成后访问项目http://127.0.0.1:8980/js/a/login 用户名system 密码admin"
echo ""

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -7,7 +7,7 @@ jdbc:
# Mysql 数据库配置
type: h2
driver: org.h2.Driver
url: jdbc:h2:/data/jeesite-db/jeesite551
url: jdbc:h2:/data/jeesite-db/jeesite552
username: jeesite
password: jeesite
testSql: SELECT 1

View File

@@ -53,7 +53,7 @@ jdbc:
# H2 数据库配置(请修改 /modules/core/pom.xml 文件,打开 H2 DB 依赖)
type: h2
driver: org.h2.Driver
url: jdbc:h2:~/jeesite-db/jeesite551
url: jdbc:h2:~/jeesite-db/jeesite552
username: jeesite
password: jeesite
testSql: SELECT 1

View File

@@ -9,7 +9,7 @@
"imageCompressBorder": 800, /* */
"imageInsertAlign": "none", /* */
"imageUrlPrefix": "", /* 访 */
"imagePathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* , */
"imagePathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* , */
/* {filename} , */
/* {rand:6} , */
/* {time} */
@@ -26,14 +26,14 @@
/* 涂鸦图片上传配置项 */
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
"scrawlPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlPathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlMaxSize": 2048000, /* 上传大小限制单位B */
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
"scrawlInsertAlign": "none",
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenPathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
@@ -41,7 +41,7 @@
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
"catcherPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherPathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
"catcherMaxSize": 2048000, /* 上传大小限制单位B */
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
@@ -49,7 +49,7 @@
/* 上传视频配置 */
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
"videoFieldName": "upfile", /* 提交的视频表单名称 */
"videoPathFormat": "/userfiles/{userid}/videos/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoPathFormat": "/userfiles/editor/{userid}/videos/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoUrlPrefix": "", /* 视频访问路径前缀 */
"videoMaxSize": 102400000, /* 上传大小限制单位B默认100MB */
"videoAllowFiles": [
@@ -59,7 +59,7 @@
/* 上传文件配置 */
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
"fileFieldName": "upfile", /* 提交的文件表单名称 */
"filePathFormat": "/userfiles/{userid}/files/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"filePathFormat": "/userfiles/editor/{userid}/files/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"fileUrlPrefix": "", /* 文件访问路径前缀 */
"fileMaxSize": 51200000, /* 上传大小限制单位B默认50MB */
"fileAllowFiles": [
@@ -72,7 +72,7 @@
/* 列出指定目录下的图片 */
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
"imageManagerListPath": "/userfiles/{userid}/images/", /* 指定要列出图片的目录 */
"imageManagerListPath": "/userfiles/editor/{userid}/images/", /* 指定要列出图片的目录 */
"imageManagerListSize": 100, /* 每次列出文件数量 */
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
@@ -80,7 +80,7 @@
/* 列出指定目录下的文件 */
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
"fileManagerListPath": "/userfiles/{userid}/files/", /* 指定要列出文件的目录 */
"fileManagerListPath": "/userfiles/editor/{userid}/files/", /* 指定要列出文件的目录 */
"fileManagerListSize": 100, /* 每次列出文件数量 */
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
"fileManagerAllowFiles": [

View File

@@ -107,8 +107,8 @@
</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"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<#form:form id="inputForm" model="${testData}" action="${ctx}/test/testData/save" method="post" class="form-horizontal table-form">

View File

@@ -109,8 +109,8 @@
</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"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -12,8 +12,8 @@
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize!3}"
data-order-by="${parameter.orderBy!'post_code desc'}">
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -23,7 +23,7 @@
<#form:input path="testInput" maxlength="200" class="form-control width-120"/>
</div>
</div>
<div class="form-group">
<div class="form-group hide">
<label class="control-label">${text('多行文本')}</label>
<div class="control-inline">
<#form:input path="testTextarea" maxlength="200" class="form-control width-120"/>
@@ -46,9 +46,9 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="button" class="btn btn-default btn-sm btnFormMore">${text('更多')}<i class="fa fa-angle-double-down"></i></button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
<button type="button" class="btn btn-default btn-sm btnFormMore"><i class="fa fa-angle-double-down"></i> ${text('更多')}</button>
</div>
<div class="form-more">
<div class="form-group">

View File

@@ -38,8 +38,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -9,6 +9,8 @@ echo ""
echo "[信息] 运行Web工程。"
echo ""
cd "$(cd "$(dirname "$0")"; pwd)"
# 设置JDK目录
# JAVA_HOME="$PWD/jdk1.8.0_x64"
@@ -30,4 +32,4 @@ else
RUN_JAVA="$JAVA_HOME"/bin/java
fi
exec $RUN_JAVA -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher
exec "$RUN_JAVA" -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.1-SNAPSHOT</version>
<version>5.5.2-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -117,6 +117,10 @@ jdbc:
# 最大激活连接数
maxActive: 20
# # 连接超时参数,单位毫秒 v5.5.2+
# connectTimeout: ~
# socketTimeout: ~
#
# # 获取连接等待超时时间单位毫秒1分钟4.0.6+
# maxWait: 60000
#

View File

@@ -9,7 +9,7 @@
"imageCompressBorder": 800, /* */
"imageInsertAlign": "none", /* */
"imageUrlPrefix": "", /* 访 */
"imagePathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* , */
"imagePathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* , */
/* {filename} , */
/* {rand:6} , */
/* {time} */
@@ -26,14 +26,14 @@
/* 涂鸦图片上传配置项 */
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
"scrawlPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlPathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlMaxSize": 2048000, /* 上传大小限制单位B */
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
"scrawlInsertAlign": "none",
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenPathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
@@ -41,7 +41,7 @@
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
"catcherPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherPathFormat": "/userfiles/editor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
"catcherMaxSize": 2048000, /* 上传大小限制单位B */
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
@@ -49,7 +49,7 @@
/* 上传视频配置 */
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
"videoFieldName": "upfile", /* 提交的视频表单名称 */
"videoPathFormat": "/userfiles/{userid}/videos/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoPathFormat": "/userfiles/editor/{userid}/videos/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoUrlPrefix": "", /* 视频访问路径前缀 */
"videoMaxSize": 102400000, /* 上传大小限制单位B默认100MB */
"videoAllowFiles": [
@@ -59,7 +59,7 @@
/* 上传文件配置 */
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
"fileFieldName": "upfile", /* 提交的文件表单名称 */
"filePathFormat": "/userfiles/{userid}/files/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"filePathFormat": "/userfiles/editor/{userid}/files/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"fileUrlPrefix": "", /* 文件访问路径前缀 */
"fileMaxSize": 51200000, /* 上传大小限制单位B默认50MB */
"fileAllowFiles": [
@@ -72,7 +72,7 @@
/* 列出指定目录下的图片 */
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
"imageManagerListPath": "/userfiles/{userid}/images/", /* 指定要列出图片的目录 */
"imageManagerListPath": "/userfiles/editor/{userid}/images/", /* 指定要列出图片的目录 */
"imageManagerListSize": 100, /* 每次列出文件数量 */
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
@@ -80,7 +80,7 @@
/* 列出指定目录下的文件 */
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
"fileManagerListPath": "/userfiles/{userid}/files/", /* 指定要列出文件的目录 */
"fileManagerListPath": "/userfiles/editor/{userid}/files/", /* 指定要列出文件的目录 */
"fileManagerListSize": 100, /* 每次列出文件数量 */
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
"fileManagerAllowFiles": [

View File

@@ -107,8 +107,8 @@
</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"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<#form:form id="inputForm" model="${testData}" action="${ctx}/test/testData/save" method="post" class="form-horizontal table-form">

View File

@@ -109,8 +109,8 @@
</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"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -12,8 +12,8 @@
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize!3}"
data-order-by="${parameter.orderBy!'post_code desc'}">
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -23,7 +23,7 @@
<#form:input path="testInput" maxlength="200" class="form-control width-120"/>
</div>
</div>
<div class="form-group">
<div class="form-group hide">
<label class="control-label">${text('多行文本')}</label>
<div class="control-inline">
<#form:input path="testTextarea" maxlength="200" class="form-control width-120"/>
@@ -46,9 +46,9 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="button" class="btn btn-default btn-sm btnFormMore">${text('更多')}<i class="fa fa-angle-double-down"></i></button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
<button type="button" class="btn btn-default btn-sm btnFormMore"><i class="fa fa-angle-double-down"></i> ${text('更多')}</button>
</div>
<div class="form-more">
<div class="form-group">

View File

@@ -38,8 +38,8 @@
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
<button type="submit" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-search"></i> ${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick"><i class="glyphicon glyphicon-repeat"></i> ${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>

View File

@@ -9,6 +9,8 @@ echo ""
echo "[信息] 运行Web工程。"
echo ""
cd "$(cd "$(dirname "$0")"; pwd)"
# 设置JDK目录
# JAVA_HOME="$PWD/jdk1.8.0_x64"
@@ -30,4 +32,4 @@ else
RUN_JAVA="$JAVA_HOME"/bin/java
fi
exec $RUN_JAVA -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher
exec "$RUN_JAVA" -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher