首页 > 其他分享 >FormCreate 低代码表单设计器全局方法使用指南

FormCreate 低代码表单设计器全局方法使用指南

时间:2024-09-03 17:57:05浏览次数:13  
标签:string 示例 FormCreate value 表单 tstype 使用指南 formCreate

FormCreate 提供了一系列全局方法,本指南将详细介绍这些全局方法的使用方法、配置说明,并通过示例帮助新用户快速上手。

FormCreate 低代码表单设计器全局方法使用指南_自定义

如何调用全局方法

在开始使用这些方法之前,你需要先确保已经导入了 formCreate。以下是如何在项目中导入并使用 FormCreate 的全局方法的示例。

导入 FormCreate

首先,确保你已经安装了 FormCreate,并在项目中引入它:

js

import { createApp } from 'vue';
import App from './App.vue';
import formCreate from '@form-create/element-ui'; // 根据你的UI框架选择对应的包


const app = createApp(App);


app.use(formCreate);
app.mount('#app');

调用全局方法

在你的组件或应用中,你可以通过 formCreate 对象来访问和调用全局方法。以下是一些常见方法的调用示例:

js

const api = formCreate.getApi('formName');

表单操作相关方法

create

用于生成一个表单实例,返回表单的 API 对象,可以用于进一步操作表单。

  • 类型

ts

type Create = (rules:Rule[], options:object) => Api;
  • 示例

js

const rules = [
    { type: 'input', field: 'name', title: 'Name', value: '' },
    { type: 'input', field: 'email', title: 'Email', value: '' }
];


const options = {
    onSubmit: (formData) => {
        console.log('Form Submitted', formData);
    }
};


const fApi = formCreate.create(rules, options);

create 方法通过规则数组生成表单,并允许通过 options 配置表单的行为(如提交事件、初始值等)。返回的 fApi 是一个表单 API 对象,可以用于动态控制表单。

getApi

通过表单的 name 获取表单的 API 实例。这在需要跨组件或在大型应用中操作特定表单时非常有用。

  • 类型

ts

type GetApi = (name:string) => Api | Api[];
  • 示例

html

<form-create name="form" :rule="rule" />

js

const api = formCreate.getApi('form')

copyRules

用于拷贝生成规则的数组,确保对规则的更改不会影响原始规则。

  • 类型

ts

type CopyRules = (rules:Rule[]) => Rule[];
  • 示例

js

const rules = formCreate.copyRules([{
  type:'input',
  field:'goods_name',
  title:'商品名称',
  value:'form-create'
}])

copyRule

用于拷贝单个生成规则,确保对规则的更改不会影响原始规则。

  • 类型

ts

type CopyRule = (rule:Rule) => Rule;
  • 示例

js

const rule = formCreate.copyRule({
  type:'input',
  field:'goods_name',
  title:'商品名称',
  value:'form-create'
})

JSON转换相关方法

toJson

将指定生成规则转换为 JSON 字符串,方便存储和传递。

  • 类型

ts

type ToJson = (value:Rule[]|object) => string;
  • 示例

js

const rules = [
    { type: 'input', field: 'goods_name', title: '商品名称', value: 'form-create' }
];
const json = formCreate.toJson(rules);
console.log(json); // 输出JSON字符串

parseFn

parseFn 方法将函数转换为 JSON 字符串。

  • 类型

ts

type ParseFn = (fnString:string) => Function;
  • 示例

js

const fn = formCreate.parseFn(`function() {
    console.log('This is a function');
}`);

parseJson

将 JSON 字符串转换为表单的生成规则,用于恢复表单结构。

  • 类型

ts

type ParseJson = (json:string) => Rule[]|object;
  • 示例

js

const json = '{"type":"input","field":"goods_name","title":"商品名称","value":"form-create"}';
const rules = formCreate.parseJson(json);

组件和扩展相关方法

$form

获取 FormCreate 组件实例,通常用于手动挂载到应用中。

  • 类型

ts

type $form = () => Component;
  • 示例

js

const $formCreate = formCreate.$form();
app.component('form-create', $formCreate);

component

用于在 FormCreate 中挂载或获取自定义组件。

  • 类型

ts

type Component = (name: string, component?: Component)=> Component|undefined;
  • 示例

js

//挂载组件
formCreate.component('user',component)
//获取组件
const component = formCreate.component('user')

componentAlias

用于为组件设置别名,便于在生成规则中使用更简洁的名称引用组件。

  • 类型

ts

type ComponentAlias = (alias:{[aliasName:string]:string }) => void;
  • 示例

js

formCreate.componentAlias({btn:'ElButton'})

setModelField

设置自定义表单组件值的双向绑定字段名称,默认为 modelValue

ts

type SetModelField = (componentName:string,propName:string) => void;
  • 示例

js

formCreate.setModelField('input','value');

directive

用于在 FormCreate 中挂载自定义指令。

  • 类型

ts

type Directive = (name:string, directive:Directive) => void;
  • 示例

js

formCreate.directive('autofocus',(el) => {
  el.focus();
})

数据处理相关方法

setData

挂载自定义数据,使其在表单中可用,方便在组件间共享数据。

  • 类型

ts

type SetData = (name:string,value:any) => void;
  • 示例

js

formCreate.setData('options',[
        {label:'好用',value:0},
        {label:'快速',value:1},
        {label:'高效',value:2},
        {label:'全能',value:3},
 ]);

setDataDriver

导入自定义的数据获取函数,允许你根据特定的逻辑从外部数据源中获取数据。

  • 类型

ts

type SetDataDriver = (id: string, callback: (key: string) => any) => void;
  • 示例

js

formCreate.setDataDriver('$user', function(key) {
    return $store.state.user[key];
});

setDataDriver 方法允许你为表单指定数据驱动函数,使得表单组件可以动态地获取数据。例如,你可以从 Vuex 状态管理中获取用户数据,并在表单中显示。

getData

获取先前通过 setData 挂载的自定义数据。

  • 类型

ts

type GetData = (name: string) => any;
  • 示例

js

const options = formCreate.getData('options');
console.log(options);

removeData

移除之前通过 setData 方法挂载的自定义数据。

  • 类型

ts

type RemoveData = (name:string) => void;
  • 示例

js

formCreate.removeData('options');

refreshData

手动刷新与特定数据相关的表单渲染,确保表单组件的显示和数据保持同步。

  • 类型

ts

type RefreshData = (name:string) => void;
  • 示例

js

formCreate.refreshData('options');

fetch

FormCreate 内置的数据请求方法,支持重写,方便处理异步数据。

  • 类型

ts

type Fetch = (options: {
  //接口
  action: String;
  //请求方式
  method?: String;
  //调用接口附带数据
  data?: object;
  //调用接口附带数据的提交方式,默认为 `formData`
  dataType?: 'json';
  //自定义 header 头信息
  headers?: object;
  //接口调用成功回调
  onSuccess: (body: any) => void
  //接口调用失败回调
  one rror?: (e: Error | ProgressEvent) => void;
})=> void;
  • 示例

js

formCreate.fetch({
  action: 'https://api.example.com/data',
  method: 'POST',
  data: { key: 'value' },
  onSuccess: (response) => {
    console.log('Data fetched', response);
  },
  one rror: (error) => {
    console.error('Error fetching data', error);
  }
});

进阶扩展方法

extendApi

扩展 formCreate 的表单 API,添加自定义的表单操作方法。

  • 类型

ts

type ExtendApi = (fn:(api: Api)=>Object) => void;

js

formCreate.extendApi((api) => ({
  open(id) {
    console.log('This is a custom method');
    api.top.el(id).open();
  }
}));

parser

为表单组件绑定自定义解析器,用于处理特殊的数据格式或转换逻辑。

  • 类型

ts

type Parser = (name:string,parser:Parser) => void;
  • 示例

js

formCreate.parser({
    name:'input',
    toFormValue(val){
        return parseFloat(val)||0
    }
})

register

用于注册自定义属性扩展,使得在生成规则时可以自动执行某些逻辑。

  • 类型

ts

type Register = (name:string, effect:Effect) => void;
  • 示例

js

formCreate.register('loadOptions', {
  component:'select',
  init(rule){
      rule.props.options = [
        {label:'好用',value:0},
        {label:'快速',value:1},
        {label:'高效',value:2},
        {label:'全能',value:3},
      ];
  }
})

factory

创建一个全新的 formCreate

  • 类型

ts

type Factory = () => FormCreate;
  • 示例

js

const subFormCreate = formCreate.factory()

use

安装 formCreate 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法调用时,会将 formCreate 作为参数传入。 该方法需要在插件初始化时调用。

  • 类型

ts

type Use = (fn: (formCreate:FormCreate, opt:object) => FormCreate) => void;

useApp

组件初始化时会通过 app 被回调

  • 类型

ts

type UseApp = (fn: (formCreate:FormCreate, app:App)=>void ) => void;

FormCreate 提供了丰富的全局方法,使得表单的创建、管理和操作更加灵活和高效。通过 create 方法,你可以轻松地生成表单实例,并通过其他全局方法,如 getApicomponentsetData 等,进一步扩展和控制表单的行为。无论是挂载自定义组件、处理表单数据,还是配置复杂的交互逻辑,将帮助你更好地发挥 FormCreate 的全部潜力。

标签:string,示例,FormCreate,value,表单,tstype,使用指南,formCreate
From: https://blog.51cto.com/u_16994579/11909460

相关文章

  • 【Python插件入门】第4篇:单据表单插件
    【Python插件入门】第4篇:单据表单插件原创金蝶云·星空-BOS平台金蝶云·星空-基础架构金蝶云·星空-学习笔记金蝶云·星空-协同开发更多 CQ周玉立已关注247人赞赏了该文章 3.4万次浏览 未经作者许可,禁止转载编辑于2022年09月07日15:00:34摘要由A......
  • 基于Vue的低代码,6K star的可视化表单设计器工具,多端适配
    FormCreate 是一款基于Vue的低代码可视化表单设计器工具,它通过数据驱动的方式实现了表单的动态渲染。用户仅需通过直观的界面即可快速构建出功能完备的表单。FormCreate 的主要特性包括:多端适配:支持PC和移动设备,内置丰富的插件和强大的功能。国际化:提供中文、英文、......
  • react-hook-form 搭配 next-intl 国际化插件 处理form 表单错误
    useEffect(()=>{ form.clearErrors() if(state&&state.data){ router.push('/') } //后台错误 if(state&&state.errorMessage){ //showErrorToast(t(state.errorMessage)) showErrorToast(state.errorMessage) } ......
  • 探索《江湖录》:风灵月影四十九项修改器的使用指南
    《江湖录》是一款深受玩家喜爱的角色扮演游戏,以其丰富的剧情、多样的任务和独特的武侠世界而闻名。为了帮助玩家更好地体验游戏,风灵月影团队推出了一款强大的游戏修改器,提供了多达四十九项功能,极大地提升了游戏的可玩性和乐趣。《江湖录》风灵月影四十九项修改器https://down......
  • 《DNK210使用指南 -CanMV版 V1.0》第二十一章 machine.UART类实验
    第二十一章machine.UART类实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html......
  • HTML表单
    1.表单组件<span>:文本标签(没作用主要给文本加其他属性)<label>:文本标签(没作用主要给文本加其他属性)<form>:表单标签action提交路径method提交方式(get|post)<button>:按钮标签<select>...<option>:下拉框(下拉列表)selected设置默认值<texarea>:文本域|多行文本框c......
  • HTML表单中input标签中的type属性使用
     type属性表示表单控件的类型一,radio,checkbox,date,time,datetime-local,month,week等    1.radio:单选框             单选中一组内容必须设置同一个name名;                单选中每一个表单控件必须设置value......
  • CSS 中的图像、媒体和表单元素——WEB开发系列23
    Web开发中,图像、媒体和表单元素是构建用户界面的重要组成部分。正确地使用CSS来处理这些元素可以大幅提高用户体验,增强页面的美观性和功能性。一、什么是替换元素?图像和视频被描述为“替换元素”。这意味着CSS不能影响它们的内部布局——而仅影响它们在页面上相对于其他元素的......
  • Linux抓包神器 tcpdump 使用指南
    tcpdump是一款强大的网络抓包工具,它使用libpcap库来抓取网络数据包,这个库在几乎所有的Linux/Unix系统中都有。熟悉tcpdump的使用能够帮助用户分析调试网络数据。以下是tcpdump的详细使用指南:一、安装tcpdump在Linux系统中,可以通过包管理器安装tcpdump。对于Debian系系统,可以......
  • 【Qt】表单布局QFormLayout
     表单布局QFormLayoutQt还提供了QFormLayout,属于是QGridLayout的特殊情况,专⻔⽤于实现两列表单的布局.这种表单布局多⽤于让⽤⼾填写信息的场景.左侧列为提⽰,右侧列为输⼊框例子:使用QFormLayout创建表单(1)设置三个label、三个lineEdit(2)设置表单布局,将上述......