FormMaking自定字段高级用法(FormMaking自定字段高级用法)

FormMaking介绍

FormMaking表单设计器是一款与行业无关的通用表单设计器前端解决方案,表单设计器包含设计器(MakingForm)和生成器(GenerateForm)两个模块,设计器主要负责表单的动态设计,可以通过拖拽的形式设计生成表单页面,生成器则负责对表单页面的渲染和数据的回写。

如果你对FormMaking不太了解可能会把FormMaking当成是单纯页面设计器,只为了减少重复的表单,稍微有点经验的前端开发,通过简单的Copy Paste就能很快做出一个固定的表单页面。而FormMaking做的是一整套与表单相关的前端方案,包含了表单的动态设计,表单渲染,数据回写,数据校验,事件支持,css自定义,动作面板等丰富的功能,而这些所有的功能只需要一个import 命令将MakingFormGenerateForm引入到项目中,你的项目就可以拥有这些功能。

FormMaking新功能 自定义字段高级用法

FormMaking基础功能可以看之前都介绍。

本文我们将介绍如何使用 FormMaking 来引入自己的高级组件,并可以通过设计器进行配置,处理事件等操作

封装分页数据表格组件

我们将封装 一个分页数据表格组件,组件采用 ElementPlus TableV2

<template> <div> <div style="height: 400px"> <el-auto-resizer> <template #default="{ height, width }"> <el-table-v2 :columns="columns" :data="data" :width="width" :height="height" fixed /> </template> </el-auto-resizer> </div> <el-pagination background layout="prev, pager, next" :total="1000" v-model:current-page="currentPage" @current-change="loadPageData" /> </div> </template> <script setup> import { onMounted, ref, watch } from 'vue' const props = defineProps({ modelValue: { type: Array, default: () => [] }, columns: { type: Array, default: () => [] } }) const emit = defineEmits(['on-load']) const data = ref(props.modelValue) const currentPage = ref(1) const loadPageData = (index) => { // 通过 emit,可以将事件抛出到设计器中进行配置 emit('on-load', index) } onMounted(() => { emit('on-load', currentPage.value) }) watch(() => props.modelValue, (val) => { data.value = val }) </script>

引入到设计器

注册组件

首先应该在自己项目中进行组件的注册。

import CustomPaginationTable from 'PaginationTable.vue' app.use(FormMakingV3, { components: [{ name: 'custom-pagination-table', component: CustomPaginationTable // 自定义组件 }] })

也可以使用Vue.component 进行组件的注册

app.component('custom-pagination-table', CustomPaginationTable)

设计器配置

<template> <fm-making-form :custom-fields="customFields" > </fm-making-form> </template> <script> export default { data() { return { customFields: [ { name: '分页数据列表', el: 'custom-pagination-table', options: { defaultValue: [], labelWidth: 0, isLabelWidth: false, hidden: false, dataBind: true, validator: '', extendProps: { columns: [] // 用于配置表格的列 } }, events: { onLoad: '' // 定义设计器可以配置的事件,处理组件 emit 的事件 } } ] } } } </script>

然后在自定义字段中就展示出来了

FormMaking自定字段高级用法(FormMaking自定字段高级用法)(1)

设计器界面

配置组件表格

表格列配置

在字段属性中对扩展属性配置 进行设置

数据加载

数据加载的 on-load事件,我们在自定义组件中通过emit抛出到设计器中进行配置,在字段属性-动作设置中添加onLoad事件配置如下:

效果展示

我们来查看下最后的效果

效果图

更多关于FormMaking详情可移步:

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页