基于vue自动化表单实践

背景

  1. B端系统表单较多,且表单可能含有较多字段
  2. 字段较多的表单带来了大片HTML代码
  3. 在大片HTML中,混杂着参数绑定、事件处理等逻辑,不利于维护
  4. 技术栈 Vue,Element(默认表单布局)适合中后台项目快速开发

目标

通过json配置快速生成表单的vue plugin。

设计目标

  1. 减少html 重复片段
  2. 表单字段组件可扩展
  3. 事件、联动通过eventbus 解耦
  4. 校验可扩展
  5. 表单布局可自定义
  6. 可视化配置

大概方案设计

使用

安装

npm install charlie-autoform  charlie-autoform_component_lib

使用文档: doc

!!!请忽略文档上方的开发指南

引入插件

import AutoForm from 'charlie-autoform';
import AutoForm_component_lib from 'charlie-autoform_component_lib';Vue.use(AutoForm);
Vue.use(AutoForm_component_lib);

基本使用

demo.vue

<template><div><auto-form ref="tagForm1" :model="model1" :fields="fields1" :layout="layout"><el-form-item class="clearfix"><el-button type="primary">立即创建</el-button><el-button>取消</el-button></el-form-item></auto-form></div>
</template>
<script>export default {data() {return {model2: {name: '',type: []},layout2: {align: 'left',labelWidth: '100px',custom: false,  //是否自定义布局inline: true   //是否内联},fields2: [{key: 'name',type: 'input',templateOptions: {label: '审批人'}},{key: 'region',type: 'select',templateOptions: {label: '活动区域',placeholder: '请选择活动区域',options: [{label: '区域一',value: 'shanghai'},{label: '区域二',value: 'beijing'}],validators:[   //校验// {required:true,message:'必填'}// ""]}}]};}};
</script>

最终效果

添加自定义组件或者组件目录

Vue.$autoform.RegisterDir(()=>require.context('./components/autoform', 'c'));//目录
Vue.$autoform.Register(Vue,[Components...],{prefix: "c"}) //组件对象

cHello.vue

// PATH:/components/autoform/cHello.vue
<template><div><div><p>基本的变量可以通过"mixins"获取,这里有开发组件需要的一些变量</p><p>自定义子组件:Hello</p><p>当前field: {{field}}</p><p>整个model: {{model}}</p><p>当前model: {{model[field.name]}}</p><p>layout: {{layout}}</p><p>字段相关配置to: {{to}}</p></div></div>
</template><script>import {baseField} from "charlie-autoform";export default {mixins: [baseField],name: 'cHello',data () {return {};},methods: {},mounted(){//this.eventBus  事件总线}};
</script>

成果

目前应用再多个系统

  1. 定性: 维护成本降低、关注点分离
  2. 定量:表单开发效率提升50%

反馈

欢迎大家来敲: github


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天津科技大学计算机学院复试分数线,2021天津科技大学研究生复试分数线

2021天津科技大学研究生复试分数线已经公布&#xff0c;包含学术学位、专业学位、专项计划复试分数线&#xff0c;供大家参考&#xff0c;如意了在此祝广大考研学子都能顺利上岸。一、2021年天津科技大学研究生分数线1&#xff0e;专业分数线各学院严格执行《2021年全国硕士研究…

使用Eclipse Hibernate插件逐步为POJO域Java类和hbm自动生成代码

概述&#xff1a; 在本教程中&#xff0c;我们将使用Eclipse Hibernate工具自动生成域对象和相应的hbm xml文件。 如果您正在处理大型或中型项目&#xff0c;并且开始时有超过5个以上的表&#xff0c;则可能会发现此插件是自动生成映射域对象java文件和相应* .hbm.xml的绝佳工具…

idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全

简介&#xff1a;有哪些常见的线上故障&#xff1f;如何快速定位问题&#xff1f;本文详细总结工作中的经验&#xff0c;从服务器、Java应用、数据库、Redis、网络和业务六个层面分享线上故障排查的思路和技巧。较长&#xff0c;同学们可收藏后再看。前言线上定位问题时&#x…

【第七次JAVA课,java语法基础】课件总结

没上课&#xff0c;不写总结&#xff01; 空着&#xff0c;会专门写篇总结java的io和nio的随笔。 转载于:https://www.cnblogs.com/limitCM/p/9997971.html

计算机技术与分析化学论文,分析化学(论文).doc

分析化学(论文)分析化学在生活中的应用化学化工学院 胡成摘 要&#xff1a;通过简单介绍有关分析化学在食品安全、药品检测、化妆品研究和环境监测的应用&#xff0c;阐明分析化学在人类生活中的重要作用。关 键 词&#xff1a;分析化学 食品安全 药品检测 化妆品研究 环境监测…

从零打造在线版H5页面生成器

想必你一定使用过易企秀或其它微场景生成工具制作过炫酷的h5页面&#xff0c;除了感叹其神奇之处有没有想过其实现方式呢&#xff1f;从设计者的角度来看待问题&#xff0c;会有不一样的收获&#xff0c;本文将从零开始&#xff0c;使用node技术来设计实现一款精简版的易企秀 G…

使用Struts2,Hibernate和MySQL BLOB开发个人迷你相册应用程序–第1部分

概述&#xff1a; 在本研讨会中&#xff0c;我们将开发一个Web应用程序&#xff0c;可用于创建漂亮的照片库。 您可以将其托管在Web服务器中&#xff0c;也可以在自己的PC中使用以维护和管理照片集。 使用本教程&#xff0c;您将能够了解与Struts2和Hibernate相关的以下重要内容…

Activity并行网关和排他网关

说一说activiti中的排他网关和并行网关 activiti工作流中我们经常用到的网关有两种&#xff1a; 1. Exclusive Gateway 排他网关 排他网关.png 排他网关&#xff08;也叫异或&#xff08;XOR&#xff09;网关&#xff0c;或更技术性的叫法 基于数据的排他网关&#xff09;&…

ValueError: too many values to unpack

Error msg: 执行: python manage,py makemigrations 报错:Value: too many values to unpack 问题: django第一次数据库迁移之后, apps中的model位置改变了, 导致之前生成的迁移文件检测不到原来的位置 解决: 删除所有的迁移文件重新迁移, 或者将之前的迁移文件的路径修改正确 …

安徽省计算机二级考试vfp试题,安徽省计算机二级VFP考试理论模拟试题附答案

《安徽省计算机二级VFP考试理论模拟试题附答案》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《安徽省计算机二级VFP考试理论模拟试题附答案(19页珍藏版)》请在人人文库网上搜索。1、一、单项选择题(每题1分&#xff0c;共40分) 1. 计算机能够自动工作&#xff0c;主…

你不懂js系列学习笔记-异步与性能- 02

第二章&#xff1a;回调 原文&#xff1a;You-Dont-Know-JS 主要理解 “回调地狱&#xff08;callback hell&#xff09;”痛苦的点到底是哪&#xff0c;以及尝试拯救回调。 1. 首先从实际生活中模拟 我相信大多数读者都曾经听某个人说过&#xff08;甚至你自己就曾这么说&…

c# 计算空格宽度像素_关于C#中换算像素和毫米的说明

在C#中是以像素作为尺寸单位的&#xff0c;像素是一种相对的尺寸概念&#xff0c;与毫米的转换跟当前显示器的分辨率有关&#xff0c;在不同分辨率下转换的系数也不同。借助C#中的GDI可以实现像素与毫米的换算&#xff1a;一、根据Win32 API定义函数获取显示器设备信息&#xf…

使用Apache Commons Net SMTP以Java(和Android)发送邮件:STARTTLS,SSL

最近我正在做一个Android实验&#xff0c;我想使用SMTP服务器通过android应用程序通过身份验证和加密来发送电子邮件。 好吧&#xff0c; 我发现Android上的javax.mail并不是一个很好的选择 &#xff0c;因为它取决于awt类&#xff08;我猜是传统&#xff09;&#xff1b; 有些…

列名无效

数据库增加新&#xff0c;视图没有更新转载于:https://www.cnblogs.com/Neil-Peng/p/9283355.html

天津天河计算机技术有限公司,“天河一号”超级计算机落户天津,命名为“天河”,取天津与“银河团队...

注意问题&#xff1a;一、对语句排序试题一般应注意以下几个问题&#xff1a;1.揣摩语段的整体意义&#xff0c;理清选项内容所提供的信息和表达内容的主旨。2.分析选项内容与整体语段的语境联系。3.进行对比分析&#xff0c;排除干扰项。该类试题几个选项在语句的数量或内容上…

tan和cot的梗_cot和tan的关系

各位家长好&#xff0c;我是51学霸(51xueba.cn)专栏作者&#xff0c;甜老师全文共计521字&#xff0c;建议阅读2分钟cot和tan的关联&#xff1a;tanαcotα1。在三角函数中&#xff0c;cotθcosθ/sinθ&#xff0c;当θ≠kπ&#xff0c;k∈Z时&#xff0c;cotθ1/tanθ&#…

基于 Webpack2、Vue2、iView2 的可视化脚手架 iView Cli 发布 2.0 版本

谷歌今天发布了一系列“性感”的软件&#xff0c;我们也发布了一款大家期待已久的开发者工具&#xff0c;同样很性感 &#xff1a;) iView 2.0 已经发布有两个月了&#xff0c;在 2.0 发布后&#xff0c;npm 下载量、issues 数量都提升了很多&#xff08;可以 watch 下项目&…

在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

请查看我在Karaf的OSGi中构建普通CXF服务&#xff08;不使用Camel&#xff09;的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播&#xff08;并并行化&#xff09;传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终用户。…

Myeclipse debug时出现跳行问题的解决

1.删除Myeclipse中部署的类似的重复项目&#xff08;例如将测试项目中的代码包直接复制粘贴到另一个项目中&#xff09;。 2.project->clean 3.删除服务器中部署的项目并重新部署。 4.开启debug模式&#xff0c;问题解决。转载于:https://www.cnblogs.com/abortre/p/9999323…

2017计算机三级哪个好考,快速突破2017年计算机三级考试的几大复习阶段

原标题&#xff1a;快速突破2017年计算机三级考试的几大复习阶段为某种原因&#xff0c;本人共考过2次笔试&#xff0c;3次上机。其中笔试在70左右&#xff0c;3次上机均为满分&#xff0c;看着大批的同学在为三级发愁不知道如何准备和应考。我想我应该把经验和学习的方法写下来…