easy-form-design

1.0.0 • Public • Published

easy-form-design

简介

easy-form-design 是一个基于 vue2, element-ui,vuedraggable 的自定义表单设计器。主要功能是能通过简单操作来生成配置表单,生成可保存的 JSON 数据,并能将 JSON 还原成表单,使表单开发更简单更快速。

组件

  • EasyFormDesign 表单设计器(基于可视化操作快速设计出表单页面,生成配置 json 或页面)
  • EasyFormBuild 表单构建器(根据设计器中获取的配置 json 数据,快速构建出表单页面)

安装

// use npm
npm install easy-form-design -S

// use yarn
yarn add easy-form-design

// use pnpm
pnpm add easy-form-design

使用

使用前请确认已安装配置了 element-ui

文档还未完善,先凑活看吧。或者看源码的 EasyFormBuild 和 EasyFormDesign 文件夹

全局注册

// main.js
import Vue from 'vue';
import 'easy-form-design/lib/easyFormDesign.css';
import EasyFormDesign from 'easy-form-design';

Vue.use(EasyFormDesign);

局部注册

import 'easy-form-design/lib/easyFormDesign.css'; // 这个可在项目入口文件引入
import { EasyFormDesign, EasyFormBuild } from 'easy-form-design';

export default {
  components: {
    EasyFormDesign,
    EasyFormBuild,
  },
};

集成源码

git 上下载源码,把 src/components 拷贝到自己的项目下,index.js 为入口文件可以通过 Vue.use 的方式注册或者局部注册。

使用方法

<!-- 表单设计器 -->
<template>
  <div>
    <EasyFormDesign ref="formDesign"></EasyFormDesign>
  </div>
</template>
export default {
  methods: {
    /* 初始化已有表单,例如已编辑过表单设计器导出json的,可以用这个方法还原 */
    initForm() {
      this.$refs.formDesign.initForm(fromJson); //fromJson导出的json
    },
    /* 导出表单json方法 */
    exportForm() {
      this.$refs.formDesign.exportForm();
    },
    /* 表单预览方法 */
    preViewForm() {
      this.$refs.formDesign.preViewForm();
    },
  },
};
<!-- 表单构建器 -->
<template>
  <div>
    <EasyFormBuild ref="formBuild" @validateSuccess="validateSuccess"></EasyFormBuild>
  </div>
</template>
export default {
  methods: {
    initForm() {
      // 初始化表单构建器
      this.$refs.formBuild.initForm(data); //data是表单设计器导出的json

      // 给表单构建器的组件设置默认的值
      this.$nextTick(() => {
        this.$refs.formBuild.setFormData(json); //json是个对象{组件uuid:默认值,组件uuid:默认值}
      });
    },
    /* 校验成功 */
    validateSuccess(ruleForm, formJsonList) {
      // ruleForm 用户填写的表单值json, formJsonList 原始表单json
    },
    /* 表单重置 */
    resetForm() {
      this.$refs.formBuild.resetForm();
    },
  },
};

EasyFormDesign

props

参数 类型 默认值 说明
fields Array 全部组件 - ['BaseInput', 'BaseTextarea', 'BaseRadio', 'BaseCheckbox', 'BaseSelect', 'BaseCascader' ,'BaseColorPicker', 'BaseDatePicker', 'BaseDateRangePicker', 'BaseInputNumber'] 自定义左侧控件列表

Methods

名称 说明 入参 回调参数
exportForm 导出 JSON - JSON 数组
preViewForm 表单预览 - -
initForm 初始化表单 Array or 不传 -

Attributes

名称 说明
formBtns 表单设计器按钮组区域(默认展示按钮 预览表单、导出 JSON)

EasyFormBuild

Events

名称 说明 回调参数
validateSuccess 表单校验成功回调 Object

Methods

名称 说明 入参 回调参数
validateForm 表单校验 - Object
resetForm 表单重置 - -
initForm 初始化表单 表单 JSON -
setFormData 设置表单值 JSON ({组件 uuid: value}) -

slots

名称 说明
btns 表单构造器按钮组(默认展示按钮 表单校验、表单重置按钮)

Package Sidebar

Install

npm i easy-form-design

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

383 kB

Total Files

8

Last publish

Collaborators

  • jywud314