当前位置: 首页 > 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;
http://www.xdnf.cn/news/657847.html

相关文章:

  • 《1.1_4计算机网络的分类|精讲篇|附X-mind思维导图》
  • deepseek告诉您http与https有何区别?
  • CQF预备知识:一、微积分 -- 1.4.6 莱布尼茨法则详解
  • Mysql在SQL层面的优化
  • [Java实战]SpringBoot集成SNMP实现OID数据获取:原理、实践与测试(三十三)
  • GitLab 从 17.10 到 18.0.1 的升级指南
  • 动态规划-918.环形子数组的最大和-力扣(LeetCode)
  • SQL Driver
  • 16QAM通信系统设计与实现(上篇)——信号生成与调制技术(python版本)
  • leetcode 525. 连续数组
  • CertiK联创顾荣辉做客纽交所,剖析Bybit与Coinbase事件暴露的Web3安全新挑战
  • 原子操作(C++)
  • 深度体验:海螺 AI,开启智能创作新时代
  • liunx、ubantu22.04安装neo4j数据库并设置开机自启
  • AI工程师跑路了-SpringAi来帮忙
  • 学习路之PHP--easyswoole安装入门
  • LINUX安装运行jeelowcode前端项目
  • SC89171的介绍和使用
  • 炫云云渲染,构筑虚实交融的3D数字新视界
  • AI的“软肋”:架构设计与业务分析的壁垒
  • OpenCV CUDA模块图像过滤------创建一个行方向的一维积分(Sum)滤波器函数createRowSumFilter()
  • 爬虫IP代理效率优化:策略解析与实战案例
  • Neo4j(三) - 使用Java操作Neo4j详解
  • 第12次05: 用户中心-用户基本信息
  • 如何用ChatGPT提升学术长文质量
  • Golang Gin框架基础与实践指南
  • 【学习笔记】GitLab 下载安装与配置
  • 算力服务器的应用场景都有哪些
  • 学习python day8
  • 超临界机组协调控制系统建模项目开发笔记