注意注意 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、动态表单新增
2、动态表单预浏览
3、填写已设置动态表单的工单
4、工单浏览查看(readonly)
功能实现:
雷劈网动态表单中原有的字段大部分均添加了一些修改,譬如非空(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:
textarea:
radio:
checkboxs:
select:
datepicker:
listctrl
最后来几张示例项目的全图: