开源AI表单设计器 FcDesigner v3.5 版本发布!

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

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

核心功能🔥

  • 内置表单多语言体系,轻松打破语言隔阂。

  • 提供 30+ 常用组件,涵盖表单组件、布局组件、辅助类组件等各类实用模块。

  • 支持灵活扩展自定义组件,个性化开发轻松拿捏。支持二次扩展开发,深度定制不在话下。

  • 支持组件样式配置,动态调整组件尺寸、颜色、间距等样式属性。

  • 支持事件交互配置,灵活配置组件事件响应逻辑,实现复杂交互场景。

  • 内置 AI 表单助理,让表单开发更快、更稳、更智能。

  • 表单大纲、操作记录、数据录入、组件生成、事件配置、表单验证、栅格布局、表格布局等。

3.5 版本更新内容

1. 字段 ID 支持下拉级联选择

新版中,字段 ID 已支持下拉级联选择能力,能够更快速完成字段关联与映射,减少手动输入带来的错误率。对于大型业务表单来说,配置效率会明显提升。

2. 选项组件新增多种录入方式

选项类组件新增两种录入模式:文本录入、JSON 数据录入。同时,对选项配置区域的布局进行了重新调整。

3. 大纲支持拖拽排序

现在大纲列表已支持拖拽排序能力。开发者可以直接在大纲面板中调整组件位置,系统会实时同步画布结构。

4. beforeUnmount 生命周期支持

新增 beforeUnmount 生命周期,用于组件销毁前的处理逻辑。

5. 设计器新增 Header 插槽

设计器顶部区域现已支持通过插槽扩展,可用于扩展品牌信息、快捷操作入口或业务按钮,让设计器更贴合你的使用场景

6. 代码编辑器增强:增加代码提示

代码编辑器新增 API 与代码提示能力,在编写事件函数或逻辑时可以减少记忆成本。

7. 功能优化及 BUG 修复

✅ 新增 设计规则导入功能

✅ 新增 支持快捷查看组件配置项的 field

✅ 新增 左侧菜单支持默认收起

✅ 新增 样式支持配置背景图

✅ 新增 表格布局增加表格表单样式

✅ 优化 拖入限制功能增加递归校验

✅ 优化 样式录入交互

✅ 优化 表格表单组件功能

Element UI 版本表单设计器

本项目采用 Vue2.7 和 Element UI 进行页面构建,内置多语言解决方案,支持二次扩展开发,支持自定义组件扩展。演示站

安装

要开始使用 @form-create/designer,首先需要将其安装到您的项目中。可以通过 npm 安装:

复制代码
npm install @form-create/designer@^1
npm install @form-create/element-ui@^2.7
npm install element-ui

如已安装旧版本渲染器,请执行以下命令更新至最新版:

复制代码
npm update @form-create/element-ui@^2.7

请检查当前 Vue 版本,若版本低于 2.7,请执行以下升级命令:

复制代码
npm update vue@^2.7

引入

Node.js 引入

对于 Node.js 项目,您需要通过 npm 安装相关依赖,并在您的项目中引入并配置它们。

复制代码
import Vue from 'vue';
import FcDesigner from '@form-create/designer';
import ELEMENT from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
// 使用 Element UI
Vue.use(ELEMENT);
// 使用 form-create 和 designer
Vue.use(FcDesigner);
Vue.use(FcDesigner.formCreate);

CDN 引入

如果您希望通过 CDN 方式引入 FcDesigner ,请确保先引入 Vue.js 和 Element UI。然后引入 @form-create/element-ui@form-create/designer,并在 Vue 实例中进行配置

复制代码
<!-- 引入 Vue.js -->
<script src="https://unpkg.com/vue@2.7.16/dist/vue.js"></script>
<!-- 引入 Element UI 样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入 Element UI -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<!-- 引入 form-create 和 designer -->
<script src="https://unpkg.com/@form-create/element-ui/dist/form-create.min.js"></script>
<script src="https://unpkg.com/@form-create/designer/dist/index.min.js"></script>
<div id="app">
    <fc-designer height="100vh"></fc-designer>
</div>
<script>
    Vue.use(FcDesigner);
    Vue.use(FcDesigner.formCreate);
    new Vue().$mount('#app');
</script>

使用

在 Vue 组件中,您可以像下面这样使用 fc-designer 组件:

复制代码
<template>
    <fc-designer ref="designer" height="100vh" />
</template>

Element Plus版本表单设计器

@form-create/designer 支持 Vue 3 环境,以下是如何在 Vue 3 项目中安装和使用该库的指南。

演示站

安装

首先,安装 @form-create/designer 的 Vue 3 版本

复制代码
npm install @form-create/designer@^3
npm install @form-create/element-ui@^3
npm install element-plus

如已安装旧版本渲染器,请执行以下命令更新至最新版:

复制代码
npm update @form-create/element-ui@^3

引入

Node.js 引入

对于使用 Node.js 的项目,按照以下步骤在您的 Vue 3 项目中引入并配置:

复制代码
import { createApp } from 'vue';
import FcDesigner from '@form-create/designer';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
// 创建 Vue 应用
const app = createApp(App);
// 使用 Element Plus 和 FcDesigner
app.use(ElementPlus);
app.use(FcDesigner);
app.use(FcDesigner.formCreate);
// 挂载应用
app.mount('#app');

CDN 引入

如果您选择使用 CDN,可以按照以下步骤在 HTML 文件中引入相关依赖:

复制代码
<!-- 引入 Element Plus 样式 --><link href="https://unpkg.com/element-plus/dist/index.css" rel="stylesheet" /><!-- 引入 Vue 3 --><script src="https://unpkg.com/vue"></script><!-- 引入 Element Plus --><script src="https://unpkg.com/element-plus/dist/index.full.js"></script><!-- 引入 form-create 和 designer --><script src="https://unpkg.com/@form-create/element-ui@next/dist/form-create.min.js"></script><script src="https://unpkg.com/@form-create/designer@next/dist/index.umd.js"></script><div id="app">
    <fc-designer height="100vh"></fc-designer></div><script>
    const { createApp } = Vue;
    const app = createApp({});
    app.use(ElementPlus);
    app.use(FcDesigner);
    app.use(FcDesigner.formCreate);
    app.mount('#app');
</script>

使用

在 Vue 3 组件中,您可以通过以下方式使用 fc-designer 组件:

复制代码
<template>
    <fc-designer ref="designer" height="100vh" /></template><script setup>
    import { ref } from 'vue';
    // 可以在此处获取设计器实例或进行其他操作
    const designer = ref(null);
</script>

AntDesignVue 版本PC端表单设计器

演示站

本项目采用 Vue3.0 和 Ant Design Vue 进行页面构建,内置多语言解决方案,支持二次扩展开发,支持自定义组件扩展。

安装

首先,安装 @form-create/antd-designer

复制代码
npm install @form-create/antd-designer@^3
npm install @form-create/ant-design-vue@^3
npm install ant-design-vue

如已安装旧版本渲染器,请执行以下命令更新至最新版:

复制代码
npm update @form-create/ant-design-vue@^3

引入

Node.js 引入

对于使用 Node.js 的项目,按照以下步骤在您的 Vue 3 项目中引入并配置:

复制代码
import FcDesigner from '@form-create/antd-designer'import antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css';
// 创建 Vue 应用const app = createApp(App);
app.use(antd)
app.use(FcDesigner)
app.use(FcDesigner.formCreate)
// 挂载应用
app.mount('#app');

CDN 引入

如果您选择使用 CDN,可以按照以下步骤在 HTML 文件中引入相关依赖:

复制代码
<link rel="stylesheet" href="https://unpkg.com/ant-design-vue@4/dist/reset.css"></link><link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/vant@4/lib/index.css"></link><!-- 引入 Vue 及所需组件 --><script src="https://unpkg.com/dayjs/dayjs.min.js"></script><script src="https://unpkg.com/dayjs/plugin/customParseFormat.js"></script><script src="https://unpkg.com/dayjs/plugin/weekday.js"></script><script src="https://unpkg.com/dayjs/plugin/localeData.js"></script><script src="https://unpkg.com/dayjs/plugin/weekOfYear.js"></script><script src="https://unpkg.com/dayjs/plugin/weekYear.js"></script><script src="https://unpkg.com/dayjs/plugin/advancedFormat.js"></script><script src="https://unpkg.com/dayjs/plugin/quarterOfYear.js"></script><script src="https://unpkg.com/vue"></script><script src="https://unpkg.com/ant-design-vue@4/dist/antd.min.js"></script><script src="https://fastly.jsdelivr.net/npm/vant@4/lib/vant.min.js"></script><!-- 引入 form-create 及 fcDesigner --><script src="https://unpkg.com/@form-create/ant-design-vue@^3/dist/form-create.min.js"></script><script src="https://unpkg.com/@form-create/vant@^3/dist/form-create.min.js"></script><script src="https://unpkg.com/@form-create/antd-designer@^3/dist/index.umd.js"></script><div id="app">
    <fc-designer height="100vh"></fc-designer></div><!-- 挂载组件 --><script>
    // 创建 Vue 应用实例
    const app = Vue.createApp({});
    // 挂载 AntDesignVue
    app.use(antd);
    // 挂载 fcDesignerPro 组件
    app.use(FcDesigner);
    // 挂载 formCreate
    app.use(FcDesigner.formCreate);
    // 挂载 Vue 应用
    app.mount('#app');
</script>

使用

在 Vue 3 组件中,您可以通过以下方式使用 fc-designer 组件:

复制代码
<template>
    <fc-designer ref="designer" height="100vh" /></template><script setup>
    import { ref } from 'vue';
    // 可以在此处获取设计器实例或进行其他操作
    const designer = ref(null);
</script>

移动端表单设计器

演示站

本项目采用 Vue3.0 和 ElementPlus 进行移动端页面构建,移动端使用的是vant4.0版本,内置多语言解决方案,支持二次扩展开发,支持自定义组件扩展。

安装

首先,安装 @form-create/vant-designer

复制代码
npm install @form-create/vant-designer@^3
npm install @form-create/element-ui@^3
npm install @form-create/vant@^3
npm install element-plus
npm install vant

如已安装旧版本渲染器,请执行以下命令更新至最新版:

复制代码
npm update @form-create/element-ui@^3
npm update @form-create/vant@^3

引入

Node.js 引入

对于使用 Node.js 的项目,按照以下步骤在您的 Vue 3 项目中引入并配置:

复制代码
import FcDesignerMobile from '@form-create/vant-designer'import ELEMENT from 'element-plus';
import vant from 'vant';
import 'vant/lib/index.css';
import 'element-plus/dist/index.css';
// 创建 Vue 应用
const app = createApp(App);
app.use(ELEMENT)
app.use(vant)
app.use(FcDesignerMobile)
app.use(FcDesignerMobile.formCreate)
// 挂载应用
app.mount('#app');

CDN 引入

如果您选择使用 CDN,可以按照以下步骤在 HTML 文件中引入相关依赖:

复制代码
<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"></link><link rel="stylesheet" href="https://unpkg.com/vant@4/lib/index.css"/><script src="https://unpkg.com/vue"></script><script src="https://unpkg.com/element-plus/dist/index.full.js"></script><script src="https://unpkg.com/vant@4/lib/vant.min.js"></script><script src="https://unpkg.com/@form-create/element-ui@next/dist/form-create.min.js"></script><script src="https://unpkg.com/@form-create/vant@next/dist/form-create.min.js"></script><script src="https://unpkg.com/@form-create/vant-designer@next/dist/index.umd.js"></script><div id="app">
    <fc-designer-mobile height="100vh"></fc-designer-mobile></div><script>
    const { createApp } = Vue;
    const app = createApp({});
    app.use(ElementPlus);
    app.use(vant);
    app.use(FcDesignerMobile);
    app.use(FcDesignerMobile.formCreate);
    app.mount('#app');
</script>

使用

在 Vue 3 组件中,您可以通过以下方式使用 fc-designer 组件:

复制代码
<template>
    <fc-designer-mobile ref="designer" height="100vh" /></template><script setup>
    import { ref } from 'vue';
    // 可以在此处获取设计器实例或进行其他操作
    const designer = ref(null);
</script>

获取设计表单的数据

在表单设计器中,可以通过以下方法获取表单的生成规则和配置,这些数据通常会被保存到数据库中,以便后续加载和回显。

复制代码
//获取表单的生成规则
const ruleJson = this.$refs.designer.getJson();
//获取表单的配置
const optionsJson = this.$refs.designer.getOptionsJson();


//todo 保存JSON数据到数据库中

这些数据可以用来保存到数据库中,确保表单的状态和配置可以在页面刷新或重新加载时恢复。

回显设计表单

当需要回显设计好的表单时,您需要加载之前保存的 JSON 规则和配置,并将其应用到设计器中。

复制代码
//todo 加载表单JSON规则
//回显表单
this.$refs.designer.setOptions(optionsJson);
this.$refs.designer.setRule(ruleJson);

通过这些方法,可以将之前保存的表单规则和配置应用到设计器中,从而恢复表单的状态。

表单渲染

要渲染表单,您需要挂载 form-create 到 Vue 应用中,并加载表单规则和配置。

复制代码
//从设计器中导入 formCreate
import {formCreate} from '@form-create/designer';
//挂载 formCreate
app.use(formCreate);

表单渲染示例

复制代码
<template>
    <div id="app">
        <form-create v-model="formData" v-model:api="fApi" :rule="rule" :option="option"></form-create>
    </div></template><script>
    import {formCreate} from '@form-create/designer';
    export default {
        data() {
            return {
                //实例对象
                fApi: {},
                //表单数据
                formData: {},
                //表单生成规则
                rule: [],
                //组件参数配置
                option: {}
            }
        },
        beforeCreate(){
            const rule,option;
            // todo 加载表单JSON规则
            this.rule = formCreate.parseJson(rule);
            this.option = formCreate.parseJson(option);
        }
    }
</script>

动态加载和保存表单配置

可以通过 API 请求动态加载表单规则和配置,并将表单数据保存到服务器。

复制代码
import axios from 'axios';


// 加载表单配置async function loadFormConfig() {
    try {
        const response = await axios.get('/api/form-config');
        return response.data;
    } catch (error) {
        console.error('加载表单配置失败', error);
        return { rule: [], option: {} };
    }
}


// 保存表单配置async function saveFormConfig(ruleJson, optionsJson) {
    try {
        await axios.post('/api/form-config', { rule: ruleJson, options: optionsJson });
    } catch (error) {
        console.error('保存表单配置失败', error);
    }
}
相关推荐
爱讲故事的1 小时前
操作系统第三讲:Context Switch —— 用户态如何安全地进入内核态?
前端·javascript·安全
段ヤシ.1 小时前
【Java框架】知识点汇总Day7:Spring Boot +Vue(持续更新)
vue.js·spring boot·后端·框架
light blue bird1 小时前
支轴事件任务线程执行工序路径的图表组件
前端·jvm·windows
终端行者1 小时前
企业级 Jenkins Pipeline 实战Docker构建前端+Ansible发布
前端·ci/cd·docker·jenkins
风之舞_yjf1 小时前
Vue基础(33)_web Storage(web存储)
前端·javascript·vue.js
Soari1 小时前
GitHub 开源项目解析:D4Vinci/Scrapling —— Python 网页抓取与自动化处理工具
python·开源·github·python爬虫·网页抓取·异步抓取
夜空孤狼啸1 小时前
Vue Data UI:这不是图表库,是数据可视化 UI 平台
vue.js·ui·信息可视化
oort1231 小时前
VLStream 全开源决策式 AI 视频平台 技术视角完整说明
大数据·开发语言·人工智能·经验分享·python·开源·音视频