Commit bd3d0133 authored by xiandafu's avatar xiandafu
Browse files

增加数据字典,附件,excel导入导出生成

parent e8b30d62
......@@ -24,7 +24,7 @@ logging.level.org.springframework.web.servlet.mvc.method.annotation=warn
server.port=8080
#html视图交给beetl渲染
beetl.suffix=html
beetlsql.dbStyle=org.beetl.sql.core.db.OracleStyle
beetlsql.dbStyle=org.beetl.sql.core.db.MySqlStyle
#beetlsql.basePackage=com.ibeetl,com.xxx.yourpackage
beetlsql.basePackage=com
app.name=SpringBoot-Plus
......
......@@ -72,6 +72,7 @@ class JavaEntityGen implements AutoGen{
map.put("name", attr.getName());
map.put("methodName", BaseTarget.upperFirst(attr.getName()));
map.put("isId", attr.isId());
map.put("dictType", attr.getDictType());
attrs.add(map);
}
......
......@@ -7,6 +7,8 @@ public class Attribute {
private String displayName;
private boolean isId;
private boolean showInQuery =false;
//数据字典
private String dictType;
private String comment;
......@@ -58,5 +60,11 @@ public class Attribute {
public void setComment(String comment) {
this.comment = comment;
}
public String getDictType() {
return dictType;
}
public void setDictType(String dictType) {
this.dictType = dictType;
}
}
......@@ -14,6 +14,9 @@ public class Entity {
Attribute nameAttribute;
String comment;
String system;
boolean includeExcel =false;
boolean attachment=false;
public String getName() {
return name;
}
......@@ -90,5 +93,17 @@ public class Entity {
}
return newList;
}
public boolean isIncludeExcel() {
return includeExcel;
}
public void setIncludeExcel(boolean includeExcel) {
this.includeExcel = includeExcel;
}
public boolean isAttachment() {
return attachment;
}
public void setAttachment(boolean attachment) {
this.attachment = attachment;
}
}
......@@ -132,14 +132,6 @@ public class CoreCodeGenController {
copy(resource,"btsql-ext.properties");
copy(resource,"banner.txt");
//修改application.properties的配置,改成手工添加
// Properties ps = new Properties();
// ps.load(new FileReader(config));
//// String str = ps.getProperty("beetlsql.basePackag");
// ps.put("beetlsql.basePackag", "ibeetl.com,"+basePackage);
// ps.store(new FileWriter(config), "");
//
return JsonResult.success();
}
......@@ -319,22 +311,22 @@ public class CoreCodeGenController {
entity.setCode(info.getCode());
entity.setDisplayName(info.getDisplayName());
entity.setSystem(info.getSystem());
entity.setAttachment(data.entity.isAttachment());
entity.setIncludeExcel(data.entity.isIncludeExcel());
for (int i = 0; i < entity.getList().size(); i++) {
Attribute attr = entity.getList().get(i);
attr.setDisplayName(info.getList().get(i).getDisplayName());
attr.setShowInQuery(info.getList().get(i).isShowInQuery());
attr.setDictType(info.getList().get(i).getDictType());
if(attr.getName().equals(data.getNameAttr())) {
entity.setNameAttribute(attr);
}
}
if (StringUtils.isEmpty(entity.getCode()) || StringUtils.isEmpty(entity.getSystem())) {
throw new PlatformException("code,system不能为空");
}
return entity;
}
......@@ -432,6 +424,7 @@ class EntityInfo {
String basePackage;
String nameAttr;
public Entity getEntity() {
return entity;
}
......@@ -464,4 +457,6 @@ class EntityInfo {
this.nameAttr = nameAttr;
}
}
......@@ -16,17 +16,25 @@
<div class="layui-inline">
<label class="layui-form-label">${item.displayName}</label>
<div class="layui-input-inline">
<input type="text" name="${item.name}"
class="layui-input" >
@if(isEmpty(item.dictType)){
<input type="text" name="${item.name}" class="layui-input" >
@}else{
<layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
id="${item.name}" name="${item.name}" value="" />
@}
</div>
</div>
@}
</div>
</div>
@}
@if(entity.attachment){
<div class="layui-row">
<!-- 业务对象得有一个字段保存附件id,假设是attachmentId -->
<layui:attachment name="attachmentId" batchFileUUID="\${uuid()}" isNew="true"/>
</div>
@}
<layui:submitButtons id="addButton" />
</form>
<!--#} -->
......
......@@ -15,16 +15,26 @@
<div class="layui-inline">
<label class="layui-form-label">${item.displayName}</label>
<div class="layui-input-inline">
<input type="text" name="${item.name}" value="\${${entity.code}.${item.name}}"
@if(isEmpty(item.dictType)){
<input type="text" id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}"
class="layui-input" >
@}else{
<layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}" />
@}
</div>
</div>
@}
</div>
</div>
@}
<input type="hidden" name="${entity.idAttribute.name}" value=\${${entity.code}.${entity.idAttribute.name}} />
@if(entity.attachment){
<div class="layui-row">
<layui:attachment name="attachmentId" batchFileUUID="\${${entity.code}.attachmentId}" isNew="false" bizId="\${${entity.code}.${entity.idAttribute.name}}" bizType="${entity.name}"/>
</div>
@}
<input type="hidden" name="${entity.idAttribute.name}" value=\${${entity.code}.${entity.idAttribute.name}} />
<layui:submitButtons id="updateButton" />
</form>
<!--#} -->
......
......@@ -2,12 +2,16 @@
<layui:searchForm formId="searchForm" condition="\${search}">
</layui:searchForm>
<div class="layui-btn-group">
<div class="layui-btn-group">
<layui:accessButton function="${entity.code}.add" action="add">增加</layui:accessButton>
<layui:accessButton function="${entity.code}.edit" action="edit">编辑</layui:accessButton>
<layui:accessButton function="${entity.code}.del" action="del">删除</layui:accessButton>
@if(entity.includeExcel){
<layui:accessButton function="${entity.code}.exportExcel" action="exportExcel">导出excel</layui:accessButton>
<layui:accessButton function="${entity.code}.importExcel" action="importExcel">导入excel</layui:accessButton>
@}
</div>
</div>
<table id="${entity.code}Table" lay-filter="${entity.code}Table"></table>
<!--#} -->
<script>
......
......@@ -13,6 +13,8 @@ import com.ibeetl.admin.core.util.ValidateConfig;
import org.beetl.sql.core.TailBean;
import java.math.*;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity;
/*
......@@ -30,6 +32,10 @@ public class ${className} extends BaseEntity{
\@SeqID(name = ORACLE_CORE_SEQ_NAME)
\@AutoID
@}
@if(isNotEmpty(attr.dictType)) {
\@Dict(type="${attr.dictType}")
@}
private ${attr.type} ${attr.name} ;
@}
......
......@@ -8,11 +8,15 @@ import java.util.Date;
*${entity.displayName}查询
*/
public class ${entity.name}Query extends PageParam {
@for(attr in attrs) {
@for(attr in attrs) {
@if(isNotEmpty(attr.dictType)) {
\@Query(name = "${attr.displayName}", display = true,type=Query.TYPE_DICT,dict="${attr.dictType}")
@}else {
\@Query(name = "${attr.displayName}", display = true)
@}
private ${attr.javaType} ${attr.name};
@}
@for(attr in attrs) {
@}
@for(attr in attrs) {
public ${attr.javaType} get${upperFirst(attr.name)}(){
return ${attr.name};
}
......
......@@ -27,7 +27,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
},
@for(attr in entity.list){
{
field : '${attr.name}',
field : '${isEmpty(attr.dictType)?attr.name:(attr.name+"Text")}', ${isNotEmpty(attr.dictType)?"//数据字典类型为 "+attr.dictType}
title : '${attr.displayName}',
@if(attrLP.first){
fixed:'left',
......@@ -69,6 +69,17 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
delView.delBatch();
});
}
@if(entity.includeExcel){
,
exportExcel : function() {
Common.alert("未完成的导出功能,参考数据字典到处")
},
importExcel:function(){
//参考数据字典导入导出
Common.alert("未完成的导入功能能,参考数据字段导入")
}
@}
};
$('.ext-toolbar').on('click', function() {
var type = $(this).data('type');
......
......@@ -26,12 +26,15 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
{
field : 'tableName',
title : '表名称',
width : 200,
width : 400,
sort : true
},
{
field : 'name',
title : '类名',
width : 300,
width : 400,
sort : true
}
] ]
......
<!--# layout("/common/layout.html",{"jsBase":"/js/core/codeGen/"}){ -->
<div class="layui-btn-group">
<div class="layui-btn-group">
<button class="layui-btn ext-toolbar" data-type="js">预览JS</button>
......@@ -8,53 +8,55 @@
<button class="layui-btn ext-toolbar" data-type="html">预览HTML</button>
<button class="layui-btn ext-toolbar" data-type="gen">立即生成</button>
<button class="layui-btn ext-toolbar" data-type="cancel">取消</button>
</div>
<form class="layui-form layui-form-pane" id="updateForm"
>
</div>
<form class="layui-form layui-form-pane" id="updateForm">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>主健字段</legend>
</fieldset>
</fieldset>
<div class="layui-row">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">主健</label>
<div class="layui-input-inline">
<input type="text" name="entity.idAttribute.name" disable value="${entity.idAttribute.name}"
class="layui-input" >
<input type="text" name="entity.idAttribute.name" disable
value="${entity.idAttribute.name}" class="layui-input">
</div>
</div>
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>显示字段</legend>
</fieldset>
</fieldset>
<div class="layui-row">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<select name="nameAttr">
<!--#
for(attr in entity.list){
-->
<option value="${attr.name}" ${attrLP.index==1?"selected=''"}>${attr.name}</option>
<option value="${attr.name}" ${attrLP.index==1? "selected=''"}>${attr.name}</option>
<!--#} -->
</select>
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
</div>
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>配置基本信息</legend>
</fieldset>
</fieldset>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">表名</label>
<div class="layui-input-inline">
<input type="text" name="entity.tableName" readonly value="${entity.tableName}"
class="layui-input" >
<input type="text" name="entity.tableName" readonly
value="${entity.tableName}" class="layui-input">
</div>
</div>
......@@ -63,14 +65,14 @@
<label class="layui-form-label">类名</label>
<div class="layui-input-inline">
<input type="text" name="entity.name" value="${entity.name}"
class="layui-input" >
class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">系统包名</label>
<div class="layui-input-inline">
<input type="text" name="basePackage" value="com.ibeetl.admin.console"
class="layui-input" >
<input type="text" name="basePackage"
value="com.ibeetl.admin.console" class="layui-input">
</div>
</div>
</div>
......@@ -79,10 +81,10 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">显示名</label>
<label class="layui-form-label">业务名称</label>
<div class="layui-input-inline">
<input type="text" name="entity.displayName" value="${entity.name}"
class="layui-input" >
class="layui-input">
</div>
</div>
......@@ -90,7 +92,7 @@
<label class="layui-form-label">变量名</label>
<div class="layui-input-inline">
<input type="text" name="entity.code" value="${entity.code}"
class="layui-input" >
class="layui-input">
</div>
</div>
......@@ -100,8 +102,7 @@
<div class="layui-inline">
<label class="layui-form-label">urlBase</label>
<div class="layui-input-inline">
<input type="text" name="urlBase" value="admin"
class="layui-input" >
<input type="text" name="urlBase" value="admin" class="layui-input">
</div>
</div>
......@@ -109,50 +110,83 @@
<label class="layui-form-label">system</label>
<div class="layui-input-inline">
<input type="text" name="entity.system" value="console"
class="layui-input" >
class="layui-input">
</div>
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>字段信息</legend>
</fieldset>
<!--#
var attrs = entity.list;
for(attr in attrs){
-->
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>可选配置</legend>
</fieldset>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">名称</label>
<div class="layui-input-inline">
<input type="text" name="entity.list[${attrLP.index-1}].name" readonly value="${attr.name}"
class="layui-input" >
<input type="checkbox"
name="entity.includeExcel"
lay-skin="primary" value="true" title="导入导出"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">显示名</label>
<div class="layui-input-inline">
<input type="text" name="entity.list[${attrLP.index-1}].displayName" value="${attr.displayName}"
class="layui-input" >
<input type="checkbox"
name="entity.attachment"
lay-skin="primary" value="true" title="关联附件"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input type="checkbox" name="entity.list[${attrLP.index-1}].showInQuery" lay-skin="primary" value="true" title="作为搜索" >
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>字段信息(重要)</legend>
</fieldset>
</div>
<table class="layui-table">
<colgroup>
<col width="200">
<col width="250">
<col width="250">
<col>
</colgroup>
<thead>
<tr>
<th>名称</th>
<th>显示名</th>
<th>查询</th>
<th>字典类型(可选)</th>
</tr>
</thead>
<tbody>
<!--#
var attrs = entity.list;
for(attr in attrs){
-->
<tr>
<td><input type="text"
name="entity.list[${attrLP.index-1}].name" readonly
value="${attr.name}" class="layui-input" /></td>
<td><input type="text"
name="entity.list[${attrLP.index-1}].displayName"
value="${attr.displayName}" class="layui-input"></td>
<td><input type="checkbox"
name="entity.list[${attrLP.index-1}].showInQuery"
lay-skin="primary" value="true" title="作为搜索"></td>
<td><input type="text" name="entity.list[${attrLP.index-1}].dictType" value=""
class="layui-input"></td>
</tr>
<!--# } -->
</tbody>
</table>
</div>
<!--# } -->
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment