1.基于 VUE3 可视化低代码表单设计器
2.vue2 + Antv X6实现可拖拽可视化流程图
3.springboot+vue+elementui+flowable+èªå®ä¹è¡¨å
4.想要用vue实现自定义拖拽表单,拖e拖有推荐的框架吗?
5.推荐几个开源的vue表单设计器
6.基于 Vue3 + Ant Design Vue 实现的 ProTable,用于快速开发
基于 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无疑是一个值得信赖的选择。