• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

layui-form-render: 基于layui的表单设计器

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

layui-form-render

开源软件地址:

https://gitee.com/adminj/layui-form-render

开源软件介绍:

AdminJ layui-form-render

界面图

介绍

基于layui的表单设计器,自己的一个开源项目里提出来的子项目,主要参考了阿狸的那个VUE的 form render,目前此项目处于开始阶段,另外并没有跟layui集成,如果想集成到一起只需要把HTML>body的内容放在变量里在render() 里开头写入即可

AdminJ layui-form-render 不只是生成html form 还另外提供了 AdminJFormData form的数据初始化组件(数据)并生成验证代码功能(参考editor_base.html),开箱即用。

演示地址: http://47.244.155.29:13308/editor/editor.html

扩展左则按钮和右则属性演示地址: http://47.244.155.29:13308/editor/editor_external.html

软件架构

基于layui开发,所使用的插件:

插件说明
sortable很COOL的拖动排序功能
jquery-sortable让sortable支持Jquery的插件
select2下拉多选框
ckeditor5H5的文本编辑器

使用说明

var formRender = new AdminJLayuiFormRender();formRender.exportToHTML();//导出htmlformRender.importJSON('json');//导入逆向生成htmlformRender.exportJSON();//导出JSONformRender.disabledAll(formId, true/false);//禁用/启用所有字段formRender.disabled(formId, ['title','username'], true/false);//禁用/启用title,username
参数说明
id组件IDtext,image
labellabel
nameinput的唯一名称
labelWidthlabel列宽px
rowWidth行宽%
inputWidth输入框宽%
validateRule验证规则array
comment输入框后的说明
required必填(选)
placeholder输入框内的提示
defValue默认值
minValue最小值
maxValue最大值
minLength最小长度
maxLength最大长度
optionsarray(radio,checkbox select 选择项)
layuiSkincheckbox以layui样式显示
dateFormat时间格式化样式
currentTime当前时间为初始值
milliscondFormat提交数据时格式化为毫秒
startDateName时间范围开始时间的name
endDateName时间范围结束时间的name
showInput滑块是否显示输入框
suffix滑块拖动时显示的后缀
rateCount评分显示的星星总数
uploadTypearray 文件上传的类型
minSize文件上传最小大小
maxSize文件上传最大大小
uploadUrl文件上传地址
uploadCount最大文件上传数量
groupCount多组布局的例的数量

AdminJFormData (editor_base.html) 功能使用说明

AdminJFormData 是对form render的增强,如果你在导出的html form里选择了长度,最大值 最小值验证等、使用了编辑器、滑块,用AdminJFormData会自动初始化这些组件并且生成验证功能,其节省的时间比 form render要多的多。

  • 如何使用:只需要把 form render 导出的html粘到 editor_base.html 的body 内就OK,功能参考 预览 功能

AdminJFormData集成说明

  • 初始化AdminJFormData 导入js:
<script src="adminj/adminj_form.js"></script><script src="adminj/adminj_utils.js"></script>
  • 获取AdminJFormData对像
var adminJFormData = layui.adminJFormData;
  • 初始化html form,初始化各种组件和初始值:
adminJFormData.init(_json, 'form');//_json 为form render导出 html时自动生成的代码,第2个参数为 form 的 lay-filter 值
  • 初始化数据:
var d={"hidden":"f","text":"123","textarea":"nn","password":"1222333","select":"2","radio":"2","checkbox":["0","2"],"select2":["0","2"],"color":"#0f3e62","switch":"1"};adminJFormData.setData('form',d);//第一个参数为 form 的 lay-filter 值, 另外checkbox、select2的值必须是array
  • 取数据:
var data = adminJFormData.getData('form');//第一个参数为form 的 lay-filter 值

关于图片上传结果:需要server返回 resultCode=0,result.filename=上传文件名 的json的数据结构,如果是多文件上传则getData时对应字段拿到的是个array,单文件是string样例:{resultCode:0,message:"",result:结果}

resultCode0上传成功返回0
result.filenamexx.jpg上传成功的文件名

使用例子如下:

layui.use('element', function () {        var adminJFormData = layui.adminJFormData;        adminJFormData.init(_json, 'form');        //初始化form数据        var d={"hidden":"f","text":"123","textarea":"nn","password":"1222333","select":"2","radio":"2","checkbox":["0","2"],"select2":["0","2"],"color":"#0f3e62","switch":"1"};        adminJFormData.setData('form',d);        layui.form.on('submit(postButton)', function (data) {            var data = adminJFormData.getData('form');//取form的数据            var val = JSON.stringify(data);            console.log(val)            return false;        });    });

无限级联动 数据API说明

提交数据

parentId上级ID初始化时传值 ,在最顶级时 parentId会传空字符
selectId选中的ID在编辑时传值,与parentId只传一个值,传selectId时server必须返回 selectId所在级别的数据和它所有上级的数据列表,传selectId时parentId无效

返回数据

isSelect是否选中"0" 是 "1" 否
text显示的文本
valueselect value

传parentId时返回的完整数据样例

{"resultCode":0,"result":[{"isSelect":"1","text":"title0","value":"0"},{"isSelect":"1","text":"title1","value":"1"},{"isSelect":"1","text":"title2","value":"2"}]}

传selectId时返回的完整数据样例

{"resultCode":0,"result":[[{"isSelect":"1","text":"title0","value":"0"},{"isSelect":"1","text":"title1","value":"1"},{"isSelect":"0","text":"title2","value":"2"}],[{"isSelect":"1","text":"title0","value":"0"},{"isSelect":"1","text":"title1","value":"1"},{"isSelect":"0","text":"title2","value":"2"}],[{"isSelect":"1","text":"title0","value":"0"},{"isSelect":"1","text":"title1","value":"1"},{"isSelect":"0","text":"title2","value":"2"}]]}

参与贡献

2开简单说明

在html里找到下面代码

<span id="cpts_items" style="display: none">

所有的拖动后生成的组件都在这里,可以显示出来进行编辑预览等操作

  • **11-26修正了 adminJFormData BUG,增加了禁用启用表单功能,增加了扩展左则按钮和右则属性演示

  • 8-2 增加无限级选择联动修改了ajax请求时返回的结果的key name ,包括数据请求和文件上传 ,标准为{resultCode:0,message:"",result:结果} ,可在 config.ajaxRequestName 自定义

  • 8-1 发布 AdminJFormData 版本

  • 2021-7-2? 发布第一个form render版本


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap