当前位置: 首页 > news >正文

开源Vue表单设计器 FcDesigner 组件提供的方法详解

FcDesigner 是一款基于Vue的开源低代码可视化表单设计器工具,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。

源码地址: Github | Gitee | 文档 | 在线演示

通过 refs.designer 可以调用 fc-designer 组件的各种方法来操作和配置设计器。以下是各方法的详细说明及示例:

Vue3

<template><fc-designer ref="designer"/>
</template>
<script setup>import {onMounted} from "vue";const designer = ref(null);//注意:需等待组件完成初始化后,方可调用其方法onMounted(() => {designer.value.addComponent([//扩展组件])});
</script>

Vue2

<template><fc-designer ref="designer"></fc-designer>
</template>
<script>export default {name: 'Component',//注意:需等待组件完成初始化后,方可调用其方法mounted() {this.$refs.designer.addComponent([//扩展组件])}};
</script>

方法

组件实例方法及使用说明:

方法名描述类型定义
addComponent将一个或多个组件模板或拖拽组件添加到设计器,并根据 menu 字段自动归类到对应菜单下。AddComponent
setMenuItem将拖拽组件覆盖添加到指定的菜单下,menuName 为目标菜单名称。(menuName: string, list: MenuList) => void
addMenu向设计器左侧菜单栏添加一个新的菜单项。(menu: Menu) => void
setRule设置表单生成的规则,支持字符串或规则对象数组。(rule: string | Rule[]) => void
setOption设置表单的配置选项(如布局、标签宽度)。
别名方法:setOptions
(opt: Options) => void
mergeOptions通过合并方式更新表单配置选项。(opt: Options) => void
getRule获取当前表单的渲染规则(数组形式)。() => Rule[]
getJson获取当前表单的 JSON 渲染规则(字符串形式)。() => string
getOption获取当前表单的配置对象。
别名方法:getOptions
() => Options
getOptionsJson获取当前表单的 JSON 配置(字符串形式)。() => string
getFormData获取当前表单的 formData 对象。() => Object
setFormData设置表单的 formData 对象(用于预填充数据)。(formData: Object) => void
getDescription获取表单的层级结构数据。() => TreeData
getFormDescription获取表单组件的层级结构数据。() => TreeData
openPreview打开表单预览模式。() => void
openInputData开启或关闭数据录入模式(true 开启,false 关闭)。(open: boolean) => void
clearDragRule清空设计器中的所有表单组件。() => void
fields获取设计器中所有字段的名称列表。() => string[]
triggerActive选中指定组件(支持规则对象或 field/name/_fc_id)。(rule: Rule | string) => void
clearActiveRule清除当前选中的组件状态。() => void
setFormRuleConfig设置表单配置规则(同 config.formRule)。(rule: () => Rule[], append: boolean) => void
setBaseRuleConfig设置组件基础配置规则(同 config.baseRule)。(rule: () => Rule[], append: boolean) => void
setComponentRuleConfig设置指定组件的属性配置规则(同 config.componentRule)。(id: string, rule: () => Rule[], append: boolean) => void
setGlobalData预设全局数据源(用于设计器)。(data: GlobalData) => void
setGlobalEvent预设全局事件(用于设计器)。(event: GlobalEvent) => void
setGlobalClass预设全局样式(用于设计器)。(class: GlobalClass) => void
openGlobalEventDialog开启全局事件弹窗。() => void
openGlobalFetchDialog开启全局数据源弹窗。() => void
openGlobalClassDialog开启全局样式弹窗。() => void

类型定义

// 单组件或组件数组添加
type AddComponent =(dragRule: dragRule | dragTemplateRule) => void |(dragRule: Array<dragRule | dragTemplateRule>) => void;// 菜单项操作
type SetMenuItem = (menuName: string, list: MenuList) => void;
type AddMenu = (menu: Menu) => void;// 规则与配置操作
type SetRule = (rule: string | Rule[]) => void;
type SetOption = (opt: Options) => void;
type MergeOptions = (opt: Options) => void;
type GetRule = () => Rule[];
type GetJson = () => string;
type GetOption = () => Options;
type GetOptionsJson = () => string;// 表单数据操作
type GetFormData = () => Object;
type SetFormData = (formData: Object) => void;// 结构数据获取
type GetDescription = () => TreeData;
type GetFormDescription = () => TreeData;// 视图控制
type OpenPreview = () => void;
type OpenInputData = (open: boolean) => void;// 设计器操作
type ClearDragRule = () => void;
type Fields = () => string[];
type TriggerActive = (rule: Rule | string) => void;
type ClearActiveRule = () => void;// 规则配置
type SetFormRuleConfig = (rule: () => Rule[], append: boolean) => void;
type SetBaseRuleConfig = (rule: () => Rule[], append: boolean) => void;
type SetValidateRuleConfig = (rule: () => Rule[], append: boolean) => void;
type SetComponentRuleConfig = (id: string, rule: () => Rule[], append: boolean) => void;// 全局预设
type SetGlobalData = (data: GlobalData) => void;
type SetGlobalEvent = (event: GlobalEvent) => void;
type SetGlobalClass = (class:
GlobalClass
) =>
void;// 弹窗控制
type OpenGlobalEventDialog = () => void;
type OpenGlobalFetchDialog = () => void;
type OpenGlobalClassDialog = () => void;

相关文章:

  • 【更新至2023年】1985-2023年全国及各省就业人数数据(无缺失)
  • 从比分滚动到数据革命:体育数据如何重构我们的观赛体验?
  • 使用 Cannonballs 进行实用导体粗糙度建模
  • 深度学习中的卷积和反卷积
  • 制药行业数字化转型:从挑战到智能化落地的实践路径
  • 单细胞数据分析(五):三种整合单细胞数据(Harmony、fastMNN、SCTransform)的完整流程
  • 西部工艺品:匠心独运,传承千年文化之美
  • 【Android】SharePreference原理
  • 安卓端智能耗材柜系统可行性方案(基于uniapp + Vue3)
  • FallbackHome的启动流程(android11)
  • Android GPU Inspector深度解析:从零掌握驱动级性能数据抓取与优化
  • 20250526给荣品PRO-RK3566的Android13单独编译boot.img
  • Oracle SHARED POOL的内部结构
  • shell之通配符及正则表达式
  • NL2SQL代表,Vanna
  • 区块链DApp的开发技术方案
  • 数据保护在Web3应用中的重要性及其实现
  • 【Webtrees 手册】第 4 章 - 编辑指南
  • 【深度学习】6. 卷积神经网络,CNN反向传播,感受野,池化变种,局部连接机制,可视化实例
  • redis五种数据结构详解(java实现对应的案例)
  • 怎样做网站管理/网络营销中心
  • 长兴做网站/chatgpt 网站
  • 优酷wordpress建站教程/百度怎么优化网站排名
  • 做app网站有哪些/百度官方人工客服电话
  • 培训类网站模板/厦门网站设计公司
  • 巴音郭楞库尔勒网站建设/seo收费低