【Vue2】可视化表单编辑器插件 @huliuyu/form-generator

介绍

这是一款基于 Vue2 + ElementUI+ Vant UI开发的可视化表单编辑器插件,功能包括:表单的设计、填报及已填报表单的显示,适用于各种动态表单项目;生成表单预览样式支持PC端( ElementUI)及移动端( Vant UI)两种形式。
在线预览地址:http://47.96.66.232:8090/form-generator/index.html#/comsDesiger
码云地址:https://gitee.com/deer_bambi_hly/form-generator
npm地址:https://www.npmjs.com/package/@huliuyu/form-generator

  • 该插件包含五个组件,分为两个阶段:
    • 设计阶段
      表单设计:可以通过拖拽的方式,将单个的组件组合成一个完整的表单,生成JSON数据
      FGDesigner
    • 用户阶段
      表单填报:传入从表单设计组件得到的JSON表单数据,可以实现表单的显示及填报
      FGPcForm
      FGPhoneForm
    • 详情显示:完成表单填报后的表单详情数据的显示
      FGPcShow
      FGPhoneShow

表单设计器预览

在这里插入图片描述

PC端预览

在这里插入图片描述

移动端预览

在这里插入图片描述

安装

npm install @huliuyu/form-generator 

使用

完整引入

main.js 中
import FG from '@huliuyu/form-generator'
或者 import FG from '@huliuyu/form-generator/form-generator.umd.js'
import '@huliuyu/form-generator/form-generator.css'
Vue.use(FG)

包含组件

编辑器

 <FGDesigner />

在这里插入图片描述
表单编辑器分为组件库、表单画板、属性面板三个区域:

  1. 组件库

组件库面板提供两种方式添加组件:点击(组件置于最下方)和拖拽(可手动拖拽到任意位置),将一个组件添加到画板中后,它会被自动选中,配置面板会显示该组件的所有属性,并且可以任意更改这些属性,例如组件类型、字段名称、标题、校验规则等。

在这里插入图片描述

  1. 表单画板

表单画板是表单编辑器的主要工作区域,提供了一种直观的方式来构建和设计表单,在表单画板中,可以使用拖放和单击等交互式操作,完成复制、删除和移动表单组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 属性面板(组件属性+表单属性)

表单属性:用于配置表单属性的区域。
组件属性:用于配置组件属性的区域。当添加或选择表单中的一个组件时,该组件的属性将在属性面板中显示,可以任意修改该组件的属性配置。

  • 基础属性配置
    在这里插入图片描述
  • 正则验证配置
    在这里插入图片描述
  • css 及样式配置
    在这里插入图片描述
    在这里插入图片描述
  • event 事件配置
    在这里插入图片描述

使用

<template>
  <div style="height: 100%">
    <el-button type="primary" @click="handlePublish">发布</el-button>
    <el-button type="primary" @click="handleValidate">校验</el-button>
    <FGDesigner ref="FGDesigner"  v-model="formConf" />
  </div>
</template>
export default {
  data() {
    return {
      formConf: {},
    };
  },
  methods: {
    handleValidate() {
      this.$refs.FGDesigner.validate((valid, message) => {
        if (valid) {
        } else {
          this.$message.error(message);
        }
      });
    },
    handlePublish() {
      this.$refs.FGDesigner.submit((value) => {
        console.log(value);
      });
    },
  },
};

Attributes

参数说明类型可选值默认值
value / v-model为包含表单属性及组件列表的对象Object--
form为包含表单组件对应的key和valueObject--
enabled编辑器控件是否可以点击操作Boolean-false
enabled编辑器控件是否可以点击操作Boolean-false
options编辑器配置(如下)Object--

编辑器配置options

【FGPcForm/FGPhoneForm/FGPcShow/FGPhoneShow同理】

<FGDesigner :options='options' />
options: {
  themeColor:'', // 编辑器主题色
  header: {   // 接口请求头内容,如果存在则将其放置到表单编辑器的接口请求头上
   // 如果编辑器配置的接口需要带上token,可以从此处传入,参数名自定义
   // "token": '',
  },
  hideTemps: false,// 是否隐藏模板
  hideOutline: false,// 是否隐藏大纲
  hidePhone: false // 是否隐藏手机端
}

Methods

方法名说明参数
validate对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入两个个参数:校验是否通过、校验提示语Function(callback: Function(Boolean,Array))
submit对整个表单进行提交的方法,参数为一个回调函数。传入一个参数:即为已修改的value值Function(callback: Function(object))

Event

事件名称说明回调参数
save点击保存按钮触发新状态的value值,新状态的组件列表,新状态的表单属性
change数据更改触发新状态的value值

PC表单渲染

在这里插入图片描述

使用

<template>
  <FGPcForm ref="FGPcForm" v-model="drawingDefalut" :form='form' @submit='handleSubmit'/>
  <el-button @click='submitForm'>提交</el-button>
</template>

<script>
export default {
  data() {
    return {
      drawingDefalut: '',
      form:{}
    };
  },

  methods: {
    submitForm() {
      this.$refs["FGPcForm"].validateForm((form) => {
        console.log("form", form);
      });
    },
    resetForm() {
      this.$refs["FGPcForm"].resetForm();
    },
    handleSubmit(form,list) {

    }
  },
};
</script>

Attributes

参数说明类型可选值默认值
value / v-model为包含表单属性及组件列表的对象String--
form为包含表单组件对应的key和valueObject--

Methods

方法名说明参数
validateForm对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入一个参数:即为校验通过的value值Function(callback: Function(object))
submitForm对整个表单进行提交的方法,参数为一个回调函数。传入一个参数:即为已修改的value值Function(callback: Function(object))
resetForm对整个表单进行重置,将所有字段值重置为初始值并移除校验结果-

phone表单渲染

在这里插入图片描述

使用

<template>
  <FGPhoneForm ref="FGPhoneForm" v-model="drawingDefalut" />
</template>

<script>
export default {
  data() {
    return {
      drawingDefalut: '',
    };
  },

  methods: {
    submitForm() {
      this.$refs["FGPhoneForm"].validateForm((form) => {
        console.log("form", form);
      });
    },
    resetForm() {
      this.$refs["FGPhoneForm"].resetForm();
    },
  },
};
</script> 

Attributes

参数说明类型可选值默认值
value / v-model为包含表单属性及组件列表的对象String--
form为包含表单组件对应的key和valueObject--

Methods

方法名说明参数
validateForm对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入一个参数:即为校验通过的value值Function(callback: Function(object))
submitForm对整个表单进行提交的方法,参数为一个回调函数。传入一个参数:即为已修改的value值Function(callback: Function(object))
resetForm对整个表单进行重置,将所有字段值重置为初始值并移除校验结果-

PC表单详情

在这里插入图片描述

使用

<template>
  <FGPcShow :value="drawingDefalut" />
</template>

<script>
export default {
  data() {
    return {
      drawingDefalut: '',
    };
  },
};
</script>

Attributes

参数说明类型可选值默认值
value为包含表单属性及组件列表的对象String--
form为包含表单组件对应的key和valueObject--

phone表单详情

在这里插入图片描述

使用

<template>
  <FGPhoneShow :value="drawingDefalut" />
</template>
<script>
export default {
  data() {
    return {
      drawingDefalut: '',
    };
  },
};
</script>

Attributes

参数说明类型可选值默认值
value为包含表单属性及组件列表的对象String--
form为包含表单组件对应的key和valueObject--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值