当前位置: 首页 > Web前端 > vue.js

Vue动态表单编辑器和代码生成器

时间:2023-04-01 01:01:10 vue.js

基于Vuetify的预览1.概述2.ICON和COLOR设置展示3.RULE设置展示简介在做工作流服务的时候,深切感受到动态表单的重要性。于是,我慢慢摸索学习,结合自己的需求,搭建了这套动态表单系统。本系统基于lerna和yarnworkspaces构建,monorepo方式管理代码项目(我很喜欢这种方式,像Maven的模块化项目,最重要的是不要每个项目都有一堆node_modules)基于Vue2.0和Vuetify2.3。XX构建。没有使用Vue3,主要是因为Vuetify3还在开发中。常用组件用rollup编译,所有在现有认知范围内可以做的性能优化都处理了。示例模块基于vuewebpack方式,深度优化项目打包。项目中会有很多组件。本来是想从之前工作涉及到的通用的东西逐步搭建一个组件库(这个动态表单系统本身也是一个组件)。学习了标准化的组件库后,觉得以我现在的水平做不到,所以采用了monorepo的方式。本项目是后端老炮儿的前端。广度和深度肯定不如纯前端。如果您不喜欢它,请不要喷它。请多多包涵,多多交流,促进共同成长。在线体验[1]、开发环境配置(Windows)参考我的文章:Vue开发环境npm和Yarn环境变量配置[2]、全局安装如果想要正确运行本系统,需要提前安装一些全局工具,以便某些命令可以正常工作。请首先确保以上环境变量配置正确。//请提前全局安装组件npminstall-gyarnyarnglobaladdlerna@vue/cli[3],项目包名中各包用途说明当前版本用途说明@hecate/core1.0.0通用工具代码,组件包包含localforage、lodash、moment、shortid、sweetalert2和通用工具代码@hecate/example1.0.0组件示例及运行项目可以运行和使用本项目中已有的组件,也可以理解为组件开发环境@hecate/form-service1.0.0Nuxt环境动态表单SSR验证环境@hecate/h-button1.0.0自定义按钮组件自封装按钮带Tooltip@hecate/h-code-editor1.0.0代码编辑器组件基于代码编辑器codemirror包,支持多种语言,通过界面菜单等方式控制,有代码提示,各种功能。@hecate/h-code-mirror1.0.0代码编辑器基础组件基于codemirror封装的代码编辑器,支持多种语言,无参数控制界面,需要手动传参@hecate/h-form-generator1.0.0动态表单编辑组件基于Vuetify的动态表单设计器@hecate/h-form-renderer1.0.0动态表单组件绘图组件动态表单渲染核心组件,参考koumoul-dev/vuetify-jsonschema-form。目前重构还未完成,需要根据支持组件的不断添加逐步重构完善@hecate/h-form-runtime1.0.0动态表单预览组件基于生成的Schema展示表单component@hecate/h-icon-list1.0.0图标选择组件是根据materialdesignicons封装的图标进行查询和选择组件[4],常用命令指定包,在某个包下执行yarn命令yarnws:**//例如://添加包(来自npm)yarnws:exampleaddlodash-D//删除包yarnws:exampleremovelodash//runexampleyarnws:exampleserve将组件添加到这个项目中依赖包(还没有上传到npm)//把h-button放到项目中Addtoexample//注意:不支持多批次,需要一个一个添加lernaadd@hecate/h-button--scope@hecate/example//要删除这个项目中的组件,使用yarncommandtoyarnws:exampleremove@hecate/h-button在根目录添加依赖包//-W表示工作空间,如果要操作工程级包,这个参数不能少//-D指定devDependencies的含义//添加组件yarnaddlodash-D-W//删除组件yarnaddlodash-W升级依赖包yarnupgrade-interactive--latest//升级全局依赖包yarnglobalupgrade-interactive--latest编译所有组件lernarunlibclearcomponentsdistlernarunclean清除各个组件中的node_moduleslernaclean,并重新关联各个组件中的依赖包lernabootstrap或yarninstall提交代码yarnpush[5],问题解决问题1:升级时出错依赖包使用yarnupgrade-interactive--latest命令升级依赖包有时,尤其是在@hecate/form-service中,当有依赖包可以升级时(视觉上由于Nuxt的使用),经常出现如下错误。不变量违规:预期工作空间包存在于不变量(D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:2314:15)at_loop2(D:\LocalCaches\yarn\global\)node_modules\yarn\lib\cli.js:94537:9)在PackageHoister.init(D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:94596:19)在PackageLinker.getFlatHoistedTree(D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:48744:20)在PackageLinker.(D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:48755:27)在Generator.next()在步骤(D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:310:30)在D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:328:14atnewPromise()atnewF(D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:5301:28)这个问题是yarn的bug本身,虽然yarn已经升级到了1.22.10,但是一会儿好一会儿坏。(1)方案一:将项目中的yarn版本降级为1.19.XX。这种方法只对本项目有效,这样其他项目仍然可以使用最新版本的yarn,避免了全局安装低版本yarn的问题。yarnpoliciesset-version1.19.XX//生成.yarn目录后,执行命令yarninstall项目中会生成一个.yarn目录和一个.yarnrc文件,在里面指定yarn版本。(2)方案二这个方法有点粗暴,不过不用管yarn的问题就不用管了。//1.先查询看看有哪些包可以升级yarnupgrade-interactive--latest//2.进入指定包的package.json,手动修改版本号//3.清除组件的依赖packagelernaclean//4.重新关联依赖lernabootstrap或yarninstall问题2:运行命令时出现错误,禁止脚本运行解决方法:打开PowerShell(在小娜搜索即可),输入:set-executionpolicyremotesigned并选择Y,问题解决。[6]、依赖说明以下依赖包暂时不要升级不要升级这个包,这个包是解决Nuxt启动问题的Warning升级包,等待项目换成Vue3,升级webpack4。44.2>5.9.0目前不升级包,需要等相关Vue版本升级后再考虑源码Gitee地址Github地址