Commit befe06b8 authored by ykb's avatar ykb
Browse files

生成代码功能添加前端校验

parent 59e6416d
......@@ -9,12 +9,13 @@ layui.define([ 'form', 'laydate', 'table','functionApi'], function(exports) {
},
initSubmit:function(){
$("#saveFunction").click(function(){
form.on('submit(form)', function(){
functionApi.addFunction(function(){
Common.info("添加成功");
Lib.closeFrame();
});
parent.window.dataReload();
});
});
$("#saveFunction-cancel").click(function(){
......
......@@ -9,12 +9,13 @@ layui.define([ 'form', 'laydate', 'table','functionApi'], function(exports) {
},
initSubmit:function(){
$("#saveFunction").click(function(){
form.on('submit(form)', function(){
functionApi.updateFunction(function(){
Common.info("更新成功");
Lib.closeFrame();
});
parent.window.dataReload();
});
});
$("#saveFunction-cancel").click(function(){
......
......@@ -5,7 +5,7 @@
<div class="layui-form-item">
<label class="layui-form-label">功能名</label>
<div class="layui-input-block">
<input type="text" name="name" autocomplete="off"
<input type="text" name="name" autocomplete="off" lay-verify="required"
placeholder="请输入名称" class="layui-input" value="">
</div>
</div>
......
......@@ -5,7 +5,7 @@
<div class="layui-form-item">
<label class="layui-form-label">功能名</label>
<div class="layui-input-block">
<input type="text" name="name" autocomplete="off"
<input type="text" name="name" autocomplete="off" lay-verify="required"
placeholder="请输入标题" class="layui-input" value="${function.name}">
</div>
</div>
......
......@@ -8,6 +8,8 @@ import org.beetl.core.Function;
import org.beetl.core.GroupTemplate;
import org.beetl.core.resource.ClasspathResourceLoader;
import com.ibeetl.admin.core.util.beetl.VerifyForamtFunction;
public abstract class BaseTarget implements Target {
protected GroupTemplate gt = null;
......@@ -36,6 +38,7 @@ public abstract class BaseTarget implements Target {
cfg.setStatementEnd(null);
cfg.setHtmlTagSupport(false);
gt = new GroupTemplate(rs,cfg);
gt.registerFunction("verifyFormat", new VerifyForamtFunction());
gt.registerFunction("upperFirst", new Function() {
@Override
......
package com.ibeetl.admin.core.gen.model;
import java.util.ArrayList;
import java.util.List;
public class Attribute {
private String name;
private String colName;
......@@ -10,6 +13,8 @@ public class Attribute {
//数据字典
private String dictType;
private String comment;
//校验对象
private List<Verify> verifyList = new ArrayList<>();
public Attribute() {
......@@ -66,5 +71,11 @@ public class Attribute {
public void setDictType(String dictType) {
this.dictType = dictType;
}
public List<Verify> getVerifyList() {
return verifyList;
}
public void setVerifyList(List<Verify> verifyList) {
this.verifyList = verifyList;
}
}
......@@ -9,7 +9,6 @@ public class Entity {
String code;
String displayName;
ArrayList<Attribute> list = new ArrayList<Attribute>();
Attribute[] temp = null;
Attribute idAttribute;
Attribute nameAttribute;
String comment;
......@@ -76,13 +75,6 @@ public class Entity {
this.comment = comment;
}
public Attribute[] getTemp() {
return temp;
}
public void setTemp(Attribute[] temp) {
this.temp = temp;
}
public List<Attribute> getGeneralList(){
List<Attribute> newList = new ArrayList<Attribute>();
for(Attribute attr:list) {
......
package com.ibeetl.admin.core.gen.model;
/**
* 添加表单属性的校验
*/
public class Verify {
private String name;//校验规则名称
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.ibeetl.admin.core.util.beetl;
import java.util.List;
import org.beetl.core.Context;
import org.beetl.core.Function;
import com.ibeetl.admin.core.gen.model.Verify;
/**
* 格式化校验集合
*/
public class VerifyForamtFunction implements Function {
@Override
public String call(Object[] arg0, Context arg1) {
StringBuilder sb = new StringBuilder("");
if(arg0[0] instanceof List){
List<Verify> list = (List)arg0[0];
for (int i = 0; i < list.size(); i++) {
Verify verify = list.get(i);
if(i < list.size() - 1){
sb.append(verify.getName()+"|");
}else{
sb.append(verify.getName());
}
}
}
return sb.toString();
}
}
......@@ -318,10 +318,12 @@ public class CoreCodeGenController {
attr.setDisplayName(info.getList().get(i).getDisplayName());
attr.setShowInQuery(info.getList().get(i).isShowInQuery());
attr.setDictType(info.getList().get(i).getDictType());
attr.setVerifyList(info.getList().get(i).getVerifyList());
if(attr.getName().equals(data.getNameAttr())) {
entity.setNameAttribute(attr);
}
}
if (StringUtils.isEmpty(entity.getCode()) || StringUtils.isEmpty(entity.getSystem())) {
throw new PlatformException("code,system不能为空");
}
......
......@@ -17,9 +17,9 @@
<label class="layui-form-label">${item.displayName}</label>
<div class="layui-input-inline">
@if(isEmpty(item.dictType)){
<input type="text" name="${item.name}" class="layui-input" >
<input type="text" name="${item.name}" class="layui-input" ${isNotEmpty(item.verifyList)?('lay-verify="'+verifyFormat(item.verifyList)+'"'):''}>
@}else{
<layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
<layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}" layVerify="${verifyFormat(item.verifyList)}"
id="${item.name}" name="${item.name}" value="" />
@}
</div>
......@@ -32,7 +32,7 @@
@if(entity.attachment){
<div class="layui-row">
<!-- 业务对象得有一个字段保存附件id,假设是attachmentId -->
<layui:attachment name="attachmentId" batchFileUUID="\${uuid()}" bizType="entity.name" isNew="true"/>
<layui:attachment name="attachmentId" batchFileUUID="\${uuid()}" bizType="entity.name" isNew="true" layVerify="${verifyFormat(item.verifyList)}" />
</div>
@}
<layui:submitButtons id="addButton" />
......
......@@ -16,11 +16,10 @@
<label class="layui-form-label">${item.displayName}</label>
<div class="layui-input-inline">
@if(isEmpty(item.dictType)){
<input type="text" id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}"
class="layui-input" >
<input type="text" id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}" ${isNotEmpty(item.verifyList)?('lay-verify="'+verifyFormat(item.verifyList)+'"'):''} class="layui-input" >
@}else{
<layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}" />
id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}" layVerify="${verifyFormat(item.verifyList)}" />
@}
</div>
</div>
......@@ -34,7 +33,7 @@
<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}} />
<input type="hidden" name="${entity.idAttribute.name}" value=\${${entity.code}.${entity.idAttribute.name}} ${isNotEmpty(item.verifyList)?('lay-verify="'+verifyFormat(item.verifyList)+'"'):''}/>
<layui:submitButtons id="updateButton" />
</form>
<!--#} -->
......
......@@ -9,12 +9,14 @@ layui.define([ 'form', 'laydate', 'table','${entity.code}Api'], function(exports
},
initSubmit:function(){
$("#addButton").click(function(){
form.on('submit(form)', function(){
${entity.code}Api.add${upperFirst(entity.code)}($('#addForm'),function(){
parent.window.dataReload();
Common.info("添加成功");
Lib.closeFrame();
});
});
});
$("#addButton-cancel").click(function(){
Lib.closeFrame();
......
......@@ -9,16 +9,18 @@ layui.define([ 'form', 'laydate', 'table','${entity.code}Api'], function(exports
},
initSubmit:function(){
$("#updateButton").click(function(){
form.on('submit(form)', function(){
${entity.code}Api.update${upperFirst(entity.code)}($('#updateForm'),function(){
parent.window.dataReload();
Common.info("更新成功");
Lib.closeFrame();
});
});
});
$("#updateButton-cancel").click(function(){
Lib.closeFrame();
});
}
}
exports('edit',view);
......
......@@ -49,6 +49,57 @@ layui.define([ 'form', 'laydate', 'table','codeApi'], function(exports) {
toolbar[type] ? toolbar[type].call(this) : '';
});
$(".addVerify").click(function(){
var _this = $(this),verifyGroup = _this.parent('.verifyGroup');
layer.open({
title: '添加校验类型',
content: '<div class="layui-form">'+
'<div class="layui-form-item">'+
'<input type="checkbox" class="verify" title="必填" value="required"/>'+
'<input type="checkbox" class="verify" title="邮箱"value="email" />'+
'<input type="checkbox" class="verify" title="手机" value="phone"/>'+
'</div>'+
'<div class="layui-form-item">'+
'<input type="checkbox" class="verify" title="数字"value="number" />'+
'<input type="checkbox" class="verify" title="日期" value="date"/>'+
'<input type="checkbox" class="verify" title="网址" value="url"/>'+
'</div>'+
'<div class="layui-form-item">'+
'<input type="checkbox" class="verify" title="身份证"value="identity" />'+
'</div>'+
'</div>',
success: function(layero, index){
//初始化赋值
var inputs = verifyGroup.find('input');
var verifys = $('.verify');
for (var i = 0; i < inputs.length; i++) {
for (var j = 0;j< verifys.length;j++) {
if(inputs[i].value == verifys[j].value){
$(verifys[j]).attr("checked",true);
}
}
}
form.render();
},
yes: function(index, layero){
var verifys = $('.verify:checked');
//清空并重新赋值
verifyGroup.find('.verifybtn').remove();
for (var i = 0; i < verifys.length; i++) {
var name = 'entity.list[' + verifyGroup.data('index')+'].verifyList'+'['+i+'].name';
var btn = '<button class="layui-btn layui-btn-xs verifybtn" type="button" >'+$(verifys[i]).attr('title')+
'<input type="text" name="'+name +'" value="'+$(verifys[i]).val()+'" hidden>'+
'</button>'
verifyGroup.append(btn);
}
layer.close(index);
}
});
});
},
openCode:function(data){
......
......@@ -9,7 +9,7 @@ var files = (isNew=="true")?[]:core.file(batchFileUUID);
-->
<div class="layui-upload">
<input type="hidden" name="${name}" value="${batchFileUUID}"/>
<input type="hidden" name="${name}" value="${batchFileUUID}" ${isNotEmpty(layVerify)?('lay-verify="'+layVerify+'"'):''} />
<button type="button" class="layui-btn layui-btn-normal"
id="${chooseId}">选择多文件</button>
......
......@@ -19,11 +19,10 @@ if(has(readonly)){
}
-->
<input type="text" class="layui-input input-readonly" value="${selectedDict.name}"></input>
<input type="hidden" name="${name}"
value="${expected}"></input>
<input type="hidden" name="${name}" ${isNotEmpty(layVerify)?('lay-verify="'+layVerify+'"'):''} value="${expected}"></input>
<!--#}else{ -->
<select data-group="${group!}" name="${name}" ${has(id)?("id="+id):''}>
<select data-group="${group!}" name="${name}" ${has(id)?("id="+id):''} ${isNotEmpty(layVerify)?('lay-verify="'+layVerify+'"'):''}>
<option value="">请选择</option>
<!--#
var dicts = [];
......
<div class="layui-row">
<div class="layui-form-item" style="position:absolute;right:10px;bottom:0px;">
<button class="layui-btn layui-btn-danger" type="button" id="${id}">${text!"保存"}</button>
<button class="layui-btn layui-btn-danger" type="button" id="${id}" lay-submit lay-filter="form">${text!"保存"}</button>
<button class="layui-btn" type="button" id="${id}-cancel">取消</button>
</div>
</div>
\ No newline at end of file
......@@ -13,13 +13,13 @@
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>字段</legend>
<legend>字段</legend>
</fieldset>
<div class="layui-row">
<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.idAttribute.name" disable
value="${entity.idAttribute.name}" class="layui-input">
......@@ -163,6 +163,7 @@
<th>显示名</th>
<th>查询</th>
<th>字典类型(可选)</th>
<th>字段校验(可选)</th>
</tr>
</thead>
<tbody>
......@@ -182,6 +183,11 @@
lay-skin="primary" value="true" title="作为搜索"></td>
<td><input type="text" name="entity.list[${attrLP.index-1}].dictType" value=""
class="layui-input"></td>
<td>
<div class="layui-btn-container verifyGroup" data-index="${attrLP.index-1}">
<div class="layui-btn layui-btn-xs addVerify"><i class="layui-icon">&#xe654;</i></div>
</div>
</td>
</tr>
<!--# } -->
</tbody>
......
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