注意注意 VUE版本得动态表单已开始发布(计划9月初推到npm仓库),此jquery版本的项目早已不再维护,请大家移步:

预览github: github

预览gitee镜像: gitee

基于雷劈网的表单设计器扩展,java实现后台解析(插件内容和字段和原版有一定改变)。致敬雷劈网. http://formdesign.leipi.org/

解析全部由java处理,时间紧迫,代码实现上不考虑太多的效率问题。原有控件部分已经屏蔽,如果大家感兴趣可以联系我一起加进来,另外如果控件有需要新增也可以联系本人(jjxliu306@163.com)。

最新修改:

目前 radio,select,checkbox均支持ajax从后台获取数据进行列表组合。

数据表两个:

drop table if exists form;
-- 自定义的工单
create table form(
form_idint auto_increment primary key ,
form_name varchar(255),
template text, -- 页面编辑好的原始html
html text , -- 反解析出来的页面html代码(设计到定义的select lictrl等控件要解析出展示代码)
data text, -- 自定义的各个控件字段的jsonarray格式存储
parse text ,
fields integer,
crtime timestamp,
modify_time timestamp
);
drop table if exists entry;
-- 保存各个工单填写的记录
create table entry(
idint auto_increment primary key ,
form_idint , -- 填写的动态工单ID
valuetext, -- 实际为json格式,存储此次填写的动态表单数据
crtime timestamp ,
modify_timetimestamp
);

动态表单绘制完毕后由后台解析并存储到数据库,后续每次发起的工单通过form中的html在页面进行绘制。工单填写完毕通过页面将form表单内容jsonobject之后交由后台验证并保存。

以下是目前此项目的一些截图。

1、动态表单新增

java 动态sql JAVA 动态表单_字段

2、动态表单预浏览

java 动态sql JAVA 动态表单_java 动态sql_02

3、填写已设置动态表单的工单

java 动态sql JAVA 动态表单_java 动态sql_03

4、工单浏览查看(readonly)

java 动态sql JAVA 动态表单_字段_04

功能实现:

雷劈网动态表单中原有的字段大部分均添加了一些修改,譬如非空(notnull),将name和title区分开,增加select,radios,checkbox选项的数据从填写的url中通过ajax获取等。详细如下:

1、 针对text,textarea,select,checkboxs,listctrl,datepicker(自增控件)添加notnull非空选项,勾选此选项后,后续数据输入均会在后端进行非空验证(针对text中int,email等类型也会进行格式验证).

2、 listctrl屏蔽单位、合计、默认值,但增加每个列字段的非空验证选项(针对字段的int类型也会验证)。

3、 对所有控件中name和title区分出来,其中name主要用来后续表单存储结果中作为key,title用来后续表单验证中进行提示使用。

4、 select,radios,checkbox控件中选项数据均通过配置url从后台获取数据显示。

各个控件编辑图如下:

text:

java 动态sql JAVA 动态表单_控件_05

textarea:

java 动态sql JAVA 动态表单_java 动态表单 开源_06

radio:

java 动态sql JAVA 动态表单_java 动态sql_07

checkboxs:

java 动态sql JAVA 动态表单_字段_08

select:

java 动态sql JAVA 动态表单_java 动态表单 开源_09

datepicker:

java 动态sql JAVA 动态表单_表单_10

listctrl

java 动态sql JAVA 动态表单_java 动态表单 开源_11

最后来几张示例项目的全图:

java 动态sql JAVA 动态表单_字段_12

java 动态sql JAVA 动态表单_字段_13