皮皮网

【php proxy源码】【少儿频道源码】【lutter的源码】vue 拖拽式表单源码_vue拖拽生成表单

2024-11-06 12:43:02 来源:php 源码 博客

1.基于 VUE3 可视化低代码表单设计器
2.vue2 + Antv X6实现可拖拽可视化流程图
3.springboot+vue+elementui+flowable+自定义表单
4.想要用vue实现自定义拖拽表单,拖e拖有推荐的框架吗?
5.推荐几个开源的vue表单设计器
6.基于 Vue3 + Ant Design Vue 实现的 ProTable,用于快速开发

vue 拖拽式表单源码_vue拖拽生成表单

基于 VUE3 可视化低代码表单设计器

       格子表单/GRID-FORM已在Github开源,拽式拽生如能帮到您麻烦给个星点此查看在线文档及演示

       楔子

       大概4年前,表单我做了一个简单的源码动态表单功能,开发人员通过UI界面配置表单(其实就是成表添加常用的控件,如文本框、拖e拖php proxy源码下拉框等)就能向用户提供数据查询,拽式拽生反响不错,表单尤其是源码偏后端开发的小伙伴。

       时至今日,成表上述功能存在以下问题:

       目前书面上已经有不少优秀开源的拖e拖同类产品,这里列出可二次开发的拽式拽生,同时具备表单渲染、表单表单设计的源码工具(截止至年底)

       再造个轮子吧

       同类型的开源产品各有千秋,适合不同的成表少儿频道源码应用场景,然而跟我想要的还不够契合。权衡后,还是觉得自己弄一个。技术选型为vue3 + naive UI,使用pnpm进行包管理(monorepo结构)。

       不同于同类型产品的组件拖拽,我采用栅栏布局来堆积组件(实现起来简单,省事,暂不支持容器嵌套、子表单),通过设置组件占据的格子数可以使其独占一行,故取名GRID-FORM(栅栏表单),源码详见Github。

       表单设计器

       得益于VUE的lutter的源码响应式,设计器所见即所得显得尤为丝滑,不然得自己手撸监听配置项变动事件及界面重绘。

       编辑器分为左中右三个区域(这是业内约定俗成的标准设计),有别于兄弟产品,我把左区域用作表单整体的参数编辑。为方便用户自定义组件,设计器对外暴露组件库参数,并封装了常用的组件(诸如输入框、单选/多选框、日期选择)。

       组件分为数据型(对应上图中的输入组件、选择组件)及展示型(上图的展示组件)两类,后者不参与表单提交。

       渲染器组件渲染

       每个组件有唯一编号,自动办公源码渲染函数为一个Object(key即为组件编号),需要扩展组件时添加对应的渲染函数即可。渲染时属性分为基本信息(名称我用_开头加以区分)及组件层面两类,分别对应了组件渲染函数的两个参数:attrs、props。

       渲染引擎处理完属性后,调用Render函数(不同UI库各自实现,使用者可根据业务需要自行覆写)得到组件实例。此处以文本输入框INPUT为例:

       默认值

       表单项默认值可以填写常量或占位符(在初始化时被模板引擎赋值),占位符格式为${ code},用户可自行扩展处理函数。

       校验

       此处校验分为非空、内容格式两种

       当表单项勾选是否必填,则在提交前渲染器会对该值进行非空检测;若设置了校验正则,dart 源码剖析则对非空值进行正则表达式校验。

       事件&钩子函数

       参数说明

       数据联动

       常规的做法是输入类表单项增加事件(如onChange、onBlur、onFocus等),但是这样操作(实现)繁琐(困难),我的做法只需要填写一处代码(直观简单)

       要启用联动需要满足以下条件:

       渲染器初始化后,会对勾选监听值变动的表单项开启监听(没错,是每个表单值有独立的监听)从而获取到新旧值。注意,若在回调函数中对form改动会重新触发onChange事件。

       示例

       适配更多UI库

       目前已实现Naive UI、Vant4的渲染器

       我封装了渲染器的基础框架(组合式API),帮助使用者根据需要快速适配心仪的UI库。

       结语

       因个人能力有限,此工具在设计、实现上存在诸多不足,仅作学习交流。

vue2 + Antv X6实现可拖拽可视化流程图

       ANTV X6,一个基于HTML和SVG的图编辑引擎,提供便捷的自定义能力与内置扩展,助力快速构建DAG图、ER图、流程图、血缘图等应用。

       顶部工具栏实现,HTML与数据结合,借助资源库如www.iconfont.cn获取图标,同时在JS部分定义操作逻辑,实现功能化管理。

       通过G6预览,得到画完图的json数据,至此,顶部工具栏的基本功能完成。

       左侧拖拽区域的实现,HTML与JS联动,通过预设事件监听,动态生成节点与边,提升交互体验。

       中间画布区域,HTML与JS协同工作,初始化画布配置,添加节点按钮与备注功能,优化用户操作。

       右侧表单部分,定制化界面设计,满足复杂业务需求,提供自定义灵活性。

       整体效果展示,通过CSS精调布局与样式,确保视觉呈现与功能实现相辅相成。

springboot+vue+elementui+flowable+自定义表单

       æºç 

        springboot: /zjm/zjmzxfzhl

        springcloud: /zjm/zjmzxfzhl-cloud

        演示环境

       ponents库,其React版本的优秀特性得到了延续和优化。

       首先,ProTable支持多种文件格式,包括jsx和vue,使得开发者可以根据项目需求灵活选择。它内置了强大的表单搜索功能,用户可以通过输入关键字快速定位所需数据,提高工作效率。此外,虚拟列表技术的应用使得处理大量数据时,页面的响应速度和性能表现得尤为出色。

       批量选中和复制功能便于数据管理,模糊搜索则提供了更便捷的查找体验。ProTable还支持列设置,开发者可以根据业务需求自定义列展示内容和样式。右键菜单功能和表格拖拽排序则增强了用户的交互体验,使得数据操作更为直观和直观。

       遗憾的是,当前编辑表格功能还在开发中,但其完善的文档和网站资源为开发者提供了详尽的使用指南。对于需要快速构建高效表格界面的开发者来说,ProTable无疑是一个值得信赖的选择。