package com.seeyoui.kensite.common.taglib.util;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.seeyoui.kensite.common.constants.StringConstant;
import com.seeyoui.kensite.common.taglib.constants.TableColumnConstants;
import com.seeyoui.kensite.common.taglib.expression.ExpressionUtils;
import com.seeyoui.kensite.common.util.CacheUtils;
import com.seeyoui.kensite.common.util.DBUtils;
import com.seeyoui.kensite.common.util.Global;
import com.seeyoui.kensite.common.util.StringUtils;
import com.seeyoui.kensite.framework.mod.tableColumn.domain.TableColumn;
import com.seeyoui.kensite.framework.plugin.dict.domain.Dict;
import com.seeyoui.kensite.framework.system.util.DictUtils;
/**
* 表单控件工具类
* @author Ken
* @version 2015-11-10
*/
public class FormUtils {
public static StringBuffer getTableColumnStr(TableColumn tableColumn, String theme, String param) throws Exception {
TableColumn tc = TagCacheUtils.getTableColumn(tableColumn);
if(tc == null) {
return null;
}
if(StringUtils.isNotBlank(tc.getDefaultValue())) {
tc.setDefaultValue(ExpressionUtils.parse(tc.getDefaultValue()));
}
if(StringUtils.isNoneBlank(tc.getSettings())) {
tc.setSettings(ExpressionUtils.parse(tc.getSettings()));
}
if(StringUtils.isNoneBlank(param)) {
String[] paramArr = param.split("\\|");
for(String pItem : paramArr) {
if(StringUtils.isNoneBlank(pItem)) {
String[] pArr = pItem.split(":");
tc.setSettings(tc.getSettings().replaceAll("\\$"+pArr[0], pArr[1]));
if(StringUtils.isNotBlank(tc.getDefaultValue())) {
tc.setDefaultValue(tc.getDefaultValue().replaceAll("\\$"+pArr[0], pArr[1]));
}
}
}
}
StringBuffer result = null;
if(StringUtils.isBlank(theme)) {
result = getEasyUIStr(tc);
} else if("layer".equals(theme)) {
result = getLayerUIStr(tc);
} else {
result = getEasyUIStr(tc);
}
return result;
}
private static StringBuffer getEasyUIStr(TableColumn tableColumn) throws Exception {
StringBuffer result = (StringBuffer)CacheUtils.get(TableColumnConstants.CACHE_FORM+TableColumnConstants.CACHE_SPLIT+TableColumnConstants.CACHE_EASYUI+TableColumnConstants.CACHE_SPLIT+tableColumn.getTableName()+TableColumnConstants.CACHE_SPLIT+tableColumn.getName());
if (result != null){
return result;
}
if(StringUtils.isNoneBlank(tableColumn.getIsEdit()) && StringConstant.HIDDEN.equals(tableColumn.getIsEdit())) {
return new StringBuffer();
}
boolean needCache = true;
result = new StringBuffer();
String column = tableColumn.getName();
column = StringUtils.toCamelCase(column);
result.append("<label>"+tableColumn.getComments()+"</label>");
if(TableColumnConstants.TEXTBOX.equals(tableColumn.getCategory()) || TableColumnConstants.TEXTAREA.equals(tableColumn.getCategory())) {
result.append("<input class=\"easyui-textbox\" id=\"");
result.append(column);
result.append("\" name=\"");
result.append(column);
result.append("\" data-options=\"tipPosition:'bottom',");
if(TableColumnConstants.TEXTAREA.equals(tableColumn.getCategory())) {
result.append("multiline:true,");
}
if(StringConstant.NO.equals(tableColumn.getIsEdit())) {
result.append("readonly:true,");
}
if(StringConstant.DISABLE.equals(tableColumn.getIsEdit())) {
result.append("disabled:true,");
}
if(StringConstant.NO.equals(tableColumn.getIsNull())) {
result.append("required:true,");
}
if(StringUtils.isNoneBlank(tableColumn.getValidType())) {
result.append("validType:'"+tableColumn.getValidType()+"',");
}
if(StringUtils.isNoneBlank(tableColumn.getDefaultValue())) {
result.append("value:'"+tableColumn.getDefaultValue()+"',");
}
if(StringUtils.isNoneBlank(tableColumn.getSettings())) {
result.append(tableColumn.getSettings());
}
result.append("\" ");
if(StringUtils.isNoneBlank(tableColumn.getHtmlInner())) {
result.append(tableColumn.getHtmlInner()+" ");
}
result.append("/>");
}
if(TableColumnConstants.NUMBERBOX.equals(tableColumn.getCategory())) {
result.append("<input class=\"easyui-numberbox\" id=\"");
result.append(column);
result.append("\" name=\"");
result.append(column);
result.append("\" data-options=\"tipPosition:'bottom',");
if(StringConstant.NO.equals(tableColumn.getIsEdit())) {
result.append("readonly:true,");
}
if(StringConstant.DISABLE.equals(tableColumn.getIsEdit())) {
result.append("disabled:true,");
}
if(StringConstant.NO.equals(tableColumn.getIsNull())) {
result.append("required:true,");
}
if(StringUtils.isNoneBlank(tableColumn.getValidType())) {
result.append("validType:'"+tableColumn.getValidType()+"',");
}
if(StringUtils.isNoneBlank(tableColumn.getDefaultValue())) {
result.append("value:'"+tableColumn.getDefaultValue()+"',");
}
if(StringUtils.isNoneBlank(tableColumn.getSettings())) {
result.append(tableColumn.getSettings());
}
result.append("\" ");
if(StringUtils.isNoneBlank(tableColumn.getHtmlInner())) {
result.append(tableColumn.getHtmlInner()+" ");
}
result.append("/>");
}
if(TableColumnConstants.COMBOBOX.equals(tableColumn.getCategory()) || TableColumnConstants.RADIOBOX.equals(tableColumn.getCategory()) || TableColumnConstants.CHECKBOX.equals(tableColumn.getCategory())) {
needCache = false;
result.append("<input class=\"easyui-combobox\" id=\"");
result.append(column);
result.append("\" name=\"");
result.append(column);
result.append("\" data-options=\"tipPosition:'top',");
result.append("editable:false,");
if(StringConstant.NO.equals(tableColumn.getIsEdit())) {
result.append("readonly:true,");
} else if(StringConstant.DISABLE.equals(tableColumn.getIsEdit())) {
result.append("disabled:true,");
} else {
result.append("icons: [{iconCls:'icon-clear',handler: function(e){$(e.data.target).combobox('clear');}}],");
}
if(StringConstant.NO.equals(tableColumn.getIsNull())) {
result.append("required:true,");
}
if(StringUtils.isNoneBlank(tableColumn.getValidType())) {
result.append("validType:'"+tableColumn.getValidType()+"',");
}
if(StringUtils.isNoneBlank(tableColumn.getDefaultValue())) {
result.append("value:'"+tableColumn.getDefaultValue()+"',");
}
int dataCount = 0;
if(StringUtils.isNoneBlank(tableColumn.getSettings())) {
if(TableColumnConstants.CHECKBOX.equals(tableColumn.getCategory())) {
result.append("multiple:true,");
}
String settings = tableColumn.getSettings();
if(settings.indexOf("SQL>") != -1) {
String[] settingsArr = settings.split("\\|");
String sql = settingsArr[0].replace("SQL>", "");
String value = settingsArr[1];
String label = settingsArr[2];
result.append("valueField: '"+StringUtils.toCamelCase(value)+"',textField: '"+StringUtils.toCamelCase(label)+"',");
result.append("data: [");
List<Map<Object, Object>> list = DBUtils.executeQuery(sql, false);
for(Map<Object, Object> map : list) {
dataCount++;
Iterator entries = map.entrySet().iterator();
result.append("{"+StringUtils.toCamelCase(value)+": '"+map.get(value.toUpperCase())+"',"+StringUtils.toCamelCase(label)+": '"+map.get(label.toUpperCase())+"'");
while (entries.hasNext()) {
Entry entry = (Entry) entries.next();
String k = (String)entry.getKey();
String v = (String)entry.getValue();
if(value.toUpperCase().equals(k) || label.toUpperCase().equals(k)) {
continue;
}
result.append("," + StringUtils.toCamelCase(k)+": '"+v+"'");
}
result.append("},");
}
if(result.toString().endsWith(",")) {
result.deleteCharAt(result.lastIndexOf(","));
}
result.append("]");
} else if(settings.indexOf("DICT>") != -1) {
result.append("valueField: 'value',textField: 'label',");
result.append("data: [
没有合适的资源?快使用搜索试试~ 我知道了~
快速开发框架完整版J2EE代码
共2000个文件
png:2400个
js:791个
css:350个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 50 浏览量
2022-04-26
10:37:04
上传
评论
收藏 31.88MB ZIP 举报
温馨提示
内置功能 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:配置系统组织机构,无限层级,树结构展现,可随意调整上下级。 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护,如:是否、男女、类别、级别等。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 数据库建模:在线创建数据库表及字段,并可进行可视化配置各字段前端显示组件,表单即可显示对应组件。 定时任务计划:后台可视化配置任务计划执行,基于Quartz支持可视化配置。 通用上传下载:单个多个附件上传,支持断点上传和断点下载。 内容管理:多站点管理,文章发布等,自带一套完整的JSP自定义标签。 消息推送:平台集成极光推送api、邮件发送、短信发送。 web通信:集成websocket,前端自带一个聊天室。 导出功能:excel导出与word导出。 统计图表设计器:可视化配置echarts统计图表,支持
资源推荐
资源详情
资源评论
收起资源包目录
快速开发框架完整版J2EE代码 (2000个子文件)
style.css 185KB
icon-extends.css 169KB
bootstrap.css 144KB
docs.css 142KB
docs.css 141KB
bootstrap.css 138KB
bootstrap.css 130KB
candy-box.css 125KB
bootstrap.css 124KB
bootstrap.min.css 120KB
bootstrap.min.css 120KB
style.min.css 119KB
bootstrap.css 118KB
bootstrap.css 117KB
bootstrap.min.css 115KB
bootstrap-ie6.css 113KB
bootstrap.min.css 104KB
bootstrap.min.css 98KB
bootstrap-ie6.min.css 94KB
editormd.css 81KB
gcspread.sheets.9.40.20161.0.css 75KB
waveApp.css 75KB
waveApp.css 75KB
waveApp.css 75KB
waveApp.css 75KB
waveApp.css 74KB
animate.css 73KB
easyui.css 62KB
editormd.min.css 60KB
editormd.preview.css 59KB
style.css 56KB
jquery.wijmo.wijspread.3.20142.13.css 56KB
animate.min.css 54KB
easyui.css 54KB
easyui.css 54KB
layui.css 51KB
animate.min.css 46KB
ueditor.css 45KB
editormd.preview.min.css 44KB
screen.css 42KB
print.css 40KB
font-awesome.css 39KB
video-js.css 35KB
font-awesome.css 34KB
ueditor.min.css 34KB
font-awesome.min.css 30KB
font-awesome.css 28KB
layui.css 27KB
font-awesome.min.css 27KB
font-awesome.min.css 26KB
ambiance.css 26KB
ambiance.css 26KB
bootstrap-theme.css 26KB
ambiance.css 25KB
style-common.css 25KB
gcspread.sheets.excel2016darkGray.9.40.20161.0.css 24KB
style.css 24KB
font-awesome.min.css 23KB
bootstrap-theme.min.css 23KB
gcspread.sheets.excel2013darkGray.9.40.20161.0.css 23KB
gcspread.sheets.excel2013lightGray.9.40.20161.0.css 23KB
gcspread.sheets.excel2016colorful.9.40.20161.0.css 23KB
gcspread.sheets.excel2013white.9.40.20161.0.css 22KB
style.css 22KB
bootstrap-responsive.css 22KB
video-js.css 22KB
style.css 21KB
image.css 19KB
bootstrap-responsive.min.css 16KB
video.css 15KB
attachment.css 15KB
bootstrap-theme.css 15KB
font-awesome.css 15KB
layer.css 14KB
layer.css 14KB
layer.css 14KB
experience.css 13KB
bootstrap-theme.min.css 13KB
superBlue.css 11KB
video-js.min.css 11KB
fullcalendar.css 11KB
tabs.css 10KB
layui.mobile.css 10KB
style-editor.css 10KB
styles.css 9KB
awesome.css 9KB
codemirror.css 8KB
laydate.css 8KB
style.css 8KB
multi.css 8KB
chosen.css 8KB
ng-grid-2.0.7.min.css 7KB
laydate.css 7KB
codemirror.css 7KB
tabs.css 7KB
tabs.css 7KB
shCoreDefault.css 7KB
mobile.css 7KB
metroStyle.css 7KB
color.css 6KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
kesel
- 粉丝: 2
- 资源: 36
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功