ng-form 基于vue 的开源动态表单组件

ng-form是致力打造开源最强vue动态表单组件,目前已经适配了element-ui版本和iview版本,后续会支持element-plus,ant design。

ng-form 致力打造开源最强vue动态表单组件

组件一览

码云代码地址:

element-ui: https://gitee.com/jjxliu306/ng-form-element , 演示地址: http://jjxliu306.gitee.io/ng-form-element/

iview: https://gitee.com/jjxliu306/ng-form-iview , 演示地址:https://jjxliu306.github.io/ng-form-iview/dist

示例

基础表单

基础表单

表单验证和组件动态显示

表单验证和组件动态显示

动态表格

动态表格

简介

基于vue和element-ui实现的表单设计器。通过拖拽方式快速生成一个表单页面,表单可以导出json格式,也可以将其他人绘制的表单通过json导入方式进行还原。

和其他开源表单的差异

  • 每个组件可以动态隐藏和显示,并且提供除了“必填”以外的多种规则验证,支持表达式验证和正则验证
  • 隐藏的组件绑定值可以配置不输出,减少输出数据大小
  • 针对选择性控件(radio,select,checkbox)提供选择后触发调用,支持表达式。对选择性控件支持数据联动功能,通过此功能可以做多级联动
  • 动态表格提供单独的弹框进行填写和编辑
  • 布局方式多样化,提供栅格,表格等多种布局方式
  • 支持表单预览模式,表单内容全部非组件化,全部文本显示
  • 针对选择性控件(radio,select,checkbox)选择后将对应的label进行单独存储,方便展示

组件

  • ng-form-design 表单设计器(基于可视化操作快速设计出表单页面,生成配置json或页面)
  • ng-form-build 表单构建器(根据设计器中获取的配置json数据,快速构建出表单页面,添加readonly属性后展现预览表单)

使用

安装

npm install --save  ng-form-element // iview版本为 ng-form-iview

引用

 // 导入组件库 element-ui版本
import NgForm from 'ng-form-element' 
import 'ng-form-element/lib/ng-form-element.css'

//导入组件库 iview版本
import NgForm  from 'ng-form-element' 
import 'ng-form-iview/lib/ng-form-iview.css'

注册

// 注册组件库 
Vue.use(NgForm) 

页面引用

API 说明

1. 表单绘制组件 ng-form-design

方法:

方法名称 参数 说明
initModel json 初始化动态表单内容,参数为动态表单json模板
getModel N/A 返回当前正在编辑得动态表单信息

属性:

属性名 说明 格式 默认值
customComponents 自定义组件的配置,具体参加最下方自定义组件示例中的格式 array N/A
config 表单的一些基础配置,主要为http的一些参数,譬如在http请求中给header增加参数:config: { httpConfig: (config)=>{ config.headers['aaaa'] = 'bbbb' return config } } object N/A
clear 是否显示面板上清除按钮 boolean true
preview 是否显示面板上预览按钮 boolean true
reder 是否显示面板上渲染按钮 boolean true
imp 是否显示面板上导入按钮 boolean true
exp 是否显示面板上导出按钮 boolean true

插槽:

插槽名称 说明
drag 左侧组件面板插槽,可以在组件面板上面填充一个区域展示内容
formName 当前动态表单名称
controlButton 功能区按钮,如果需要自定义功能按钮可以在这里自定义

插槽示例:

 
       
       
    

2. 表单查看/填报组件 ng-form-build

方法:

方法名称 参数 说明
reset N/A 重置动态表单内容
validator N/A 根据设置的规则验证当前表单内容,返回Promise
getData N/A 表单验证后,获取当前表单数据,返回Promise

属性:

属性名 说明 格式 默认值
formTemplate 表单模板 json
models 表单填充数据 json
disabled 是否禁用 boolean false
renderPreview 当前是否为预览模式 boolean false
config 表单的一些基础配置,主要为http的一些参数,譬如在http请求中给header增加参数:config: { httpConfig: (config)=>{ config.headers['aaaa'] = 'bbbb' return config } } object N/A
customComponents 自定义组件的配置,具体参加最下方自定义组件示例中的格式 array N/A

使用示例:

   
   

3. 自定义组件示例

3.1 自定义一个组件(根据文本中输入的地址展示图片)



3.2 定义一个自定义组件的属性配置组件(后面通过插槽挂到表单绘制面板的属性面板中)



3.3 在动态表单绘制面板中进行配置

 

 

交流

点击链接加入qq群聊,可以直接提问及反馈bug 【交流群:203205848】 vue-form-design

你可能感兴趣的:(ng-form 基于vue 的开源动态表单组件)