拖拽表单vform3框架
最近这家公司主要负责了一个动态表单的模块,我以前从未做过,感觉这个vform3框架功能十分强大,因此在这里总结一波
每个公司要求不一致,可能只使用vform自带的表单,完成拖拽效果。我们公司要求自定义组件,完成拖拽效果
1.拉取代码
1.git clone 'https://gitee.com/vdpadmin/vform3-builds'
2.拉取代码后npm i element-plus
3.再npm i一下
代码拉取好后就可以开始做拖拽了,不要按照官网的方式引入他的组件,因为这样的话有很多东西都达到不了你想要的效果,而是把他的文件拉入到你的项目中的某个路由组件中,开始书写代码
2.改变路径
由于你拉进来的代码路径已经发生改变,因此你需要改变其各个导入路径
3.配置相关文件
1.根据vform3文件去配置相关路径,注册相关组件
2.根据vform3文件中的package.json的包,在你自己的项目中去下载对应的包,在去自己的package.json查看包
3.根据vform3中的vite.config.js去配置相关配置项
4.一定要把lib文件夹整个给他拉过去
这时候项目基本就能跑了
4.开始配置相关页面
form-designer文件夹表单设计器,主要是作用于表单设计的
这里主要是要改人家的源码,很多东西都不需要你动,根据需求去改
1.extension这个文件夹中的extension-loader.js文件,主要是作用于自定义的拖拽组件,需要把你自己封装好的自定义组件文件导入进去
2.在lang文件中的zh-CN_extension.js,配置的是你自己封装的可拖拽组件名,用于显示页面
3.同样是在extension文件夹中的samples文件夹中去封装组长所提需求的组件,即自定义组件而非自带的组件
4.同样是在这个文件中,extension-schema.js,这个文件是规定你的这个组件拖拽的同时,右侧可调节的相关属性,比如说宽高,颜色等
5.固定模块,即你选择模块,自动生成相对的结构样式,code-generator.js
5.注意
1.在如果使用的是vue3+vite,在使用vite打包,这时候引入axios不能使用之前的vue脚手架的方法。要把引入改为import axios from "axios/dist/axios"
2.在使用该源码时,他有自己的一些svg图标,可能会与自己项目的svg产生冲突,导致图标失效,只需要把他的图标移入到我们的里面。并在一起即可
3.在配置vite中,引入的是按需引入的createSvgIconsPlugin方法,老版的方法可能会让你代码报错