同步操作将从 meystack/layui-form-design 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
价值源自分享
简介
因维护自己的swiftadmin开源项目时需要一款基于layui的表单设计器,发现已有的开源项目并不太适合自己使用,
所以只能重复造这个轮子了,主要用于在一键CURD过程中快速设计表单,自定义生成表单布局,支持远程JSON加载,并且代码简洁易懂!
注:本表单设计器完全开源,如若功能不符合您的需求,完全可以自行二次开发或提交PR~~~
软件架构
基于layui2.7RC5 Sortable拖拽组件开发的一款简洁易用,功能强大的表单设计器,其中除了包含layui自身常用的属性之外;
还包括级联选择器(城市)、富文本编辑器、TAGS标签(原创)等其他可用于生产环境下的优秀组件。熟悉layui即可轻松上手,开箱即用!
增加了font-awesome图标库,开源不易,请右上角点击Star支持,感谢你的支持!!!
使用说明
本项目使用Sortable拖拽组件,并结合layui自身模块化编写。组件直接写HTML代码即可
尽量在项目中HTML的代码部分跟JavaScript分开,不然代码会看起来特别混乱,维护比较麻烦!
//默认配置
Class.prototype.config = {
id: null,
data: [], // 当前元素集合
eval: '', // 当前HTML数据
count: 0, // 当前组件总数
state: null, // 当前活动实例
index: [], // 组件分类索引
itemIndex: {}, // 子组件元素索引
master: undefined // 主界面拖拽实例
};
1、在HTML设计模板中增加你所需要的组件,并定义data-tag的值
<div class="component">
<div class="head">表单组件</div>
<div class="component-group" id="sort_1">
<ol data-tag="input"><div class="icon"><i class="layui-icon layui-icon-layer"></i></div><div class="name">单行输入</div></ol>
<ol data-tag="textarea"><div class="icon"><i class="layui-icon layui-icon-align-left"></i></div><div class="name">多行输入</div></ol>
<ol data-tag="radio"><div class="icon"><i class="layui-icon layui-icon-radio"></i></div><div class="name">单选框</div></ol>
<ol data-tag="checkbox"><div class="icon"><i class="layui-icon layui-icon-table"></i></div><div class="name">多选框</div></ol>
<ol data-tag="select"><div class="icon"><i class="layui-icon layui-icon-print"></i></div><div class="name">下拉框</div></ol>
<ol data-tag="date"><div class="icon"><i class="layui-icon layui-icon-time"></i></div><div class="name">日期组件</div></ol>
<!-- // 需要的组件可以自己添加 -->
<!-- // 并且按照已有流程进行代码render的编写即可 -->
</div>
</div>
2、在正常加载layuiJS以及CSS后,需要自行在尾部将非layui模块规范的JS组件加载到页面中
<script src="/layui.js?v=v"></script>
<!-- // 全局加载第三方JS -->
<script src="/cascadata.js"></script>
<script src="/tinymce/tinymce.min.js"></script>
<!-- // 加载font-awesome图标 -->
<link href="/css/font-awesome.css" rel="stylesheet" type="text/css" />
<script src="/Sortable/Sortable.js?v=1.14"></script>
3、在formDesignJS中编写你所需要增加的组件的render实现以及其他需要二次开发的属性
然后在模板首页使用如下调用方式即可完成组件的渲染工作!
layui.use(['form','jquery','flow','formDesign'],function() {
var form = layui.form;
var $ = layui.jquery;
var formDesign = layui.formDesign;
// 加载即可
formDesign.render({
elem: '#formBuilder'
,eval: '#formdesign'
});
})
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
参与贡献
欢迎Fork 本仓库有好的需求可以提交PR
当您使用这款软件的时候,默认视为您同意上述条款
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。