前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码

文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码

作者头像
用户1174620
发布于 2020-09-26 08:31:22
发布于 2020-09-26 08:31:22
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

开源代码

https://github.com/naturefwvue/nf-vue3-ant

也不知道大家是怎么写代码的,这里全当抛砖引玉

为何封装?

AntDV非常强大,效果也非常漂亮,功能强大,使用也非常灵活,只是写起来代码有点多。

可以看下面的这个对比图,最右面的是官网的实例代码,非常长,一屏都没放下,中间的是一级封装,把a-input、a-select这类的组件封装起来,最左面是用for循环,遍历字段。

一级封装

针对表单域里面的 a-input、a-select 这类组件进行封装,统一属性和事件,简化操作。这样一行一个字段,写起来就很简洁了,具体封装方法可以看这里:https://cloud.tencent.com/developer/article/1700465

二级封装

使用v-for循环a-form-item,这样字段再多也不怕。

既然看起来这么简洁了,干嘛还要一行一行的写呢?来个for循环他不香吗?

当然可以了,准备好json文件,简单组织一下就好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        "1000":{
            "controlId": 1000,
            "colName": "companyName",
            "controlType": 101,
            "isClear": true,
            "disabled": false,
            "required": true,
            "readonly": false,
            "pattern": "",
            "class": "",
            "placeholder": "请输入公司名称",
            "title": "公司名称",
            "autocomplete": "on",
            "size": 30,
            "maxlength": 100,
            "optionList": [],
            "tdCount":1
        },
        "1001":{
            "controlId": 1001,
            "colName": "companyCode",
            "controlType": 131,
            "isClear": true,
            "disabled": false,
            "required": true,
            "readonly": false,
            "pattern": "",
            "class": "",
            "placeholder": "公司邮编",
            "title": "公司邮编",
            "autocomplete": "on",
            "min": 100000,
            "max": 999999,
            "step": 1,
            "maxlength": 6,
            "optionList": [],
            "tdCount":1
        }
   ......
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 const json = require('./FormDemo.json') // 加载meta信息,json格式
    this.modelValue = reactive({}) // 放数据的model
    this.metaInfo = reactive(json.companyForm.formItem) // 表单需要的meta信息
    // 根据meta 设置model
    for (var key in this.metaInfo) {
      var meta = this.metaInfo[key]
      this.modelValue[meta.colName] = ''
    }

三级封装

把整个表单都做到独立组件里面。

一个实现增删改查的页面里,往往需要数据列表、分页、查询、和表单,如果直接放在一个页面里,还是有点太乱,所以需要进一步封装,就是把添加和修改的表单单独封装在一个组件里面,这样外面的页面就是和表单组件、查询组件、数据列表组件和分页组件对话了,代码会非常简洁。

多行多列的表单咋弄?

AntDV的Form表单似乎只能是单列或者单行的,没发现多行多列的方法。

单列就是下面这样

多行多列是这样

难道现在都不需要这种多行多列的表单了吗?

为啥不自己写个table?

这个还真写了,查询表单就是自己写的table,只是我发现表单验证的功能似乎被AntDV给封装到了Form表单里面,目前还没发现单独使用的方法。

所以目前只好直接封装Form表单来实现表单验证功能了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于Ant Design Vue封装一个表单控件
https://github.com/naturefwvue/nf-vue3-ant
用户1174620
2020/09/19
3.2K0
文档驱动 —— 查询组件:将查询功能做到极致!你说还有啥没包含进来?antdv + vue 3.0 全新体验 快捷查询个性化查询方案更换各种查询方式更多的查询条件meta 驱动封装基础
https://github.com/naturefwvue/nf-vue3-ant
用户1174620
2020/09/21
1.3K0
文档驱动 —— 查询组件:将查询功能做到极致!你说还有啥没包含进来?antdv + vue 3.0 全新体验
    



快捷查询个性化查询方案更换各种查询方式更多的查询条件meta 驱动封装基础
文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。 表单一 公司信息表单二 员工信息,简化版,只是为了演示表单的切换。以后会出
https://github.com/naturefwvue/nf-vue3-ant
用户1174620
2020/09/21
8440
文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。
    



表单一 公司信息表单二 员工信息,简化版,只是为了演示表单的切换。以后会出
【摸鱼神器】UI库秒变低代码工具——表单篇(二)子控件
表单里面需要各种各样的子控件,像文本、数字、选择、日期等常见的需求,可以由内部提供组件解决,但是其他各种“奇奇怪怪”的需求怎么办呢?
用户1174620
2022/09/08
8150
【摸鱼神器】UI库秒变低代码工具——表单篇(二)子控件
文档驱动 —— 表单组件(一):表单元素组件 优点缺点选择文本类的Inputcheck 多选value的类型问题
想要做到文档驱动表单,首先要做几个表单元素组件。基于原生的HTML5的表单元素,做了一下分类,比如文本类、数字、日期、选择等,具体如下图。 【图片】
用户1174620
2020/09/15
8820
【摸鱼神器】UI库秒变低代码工具——表单篇(一)设计
表单是很常见的需求,各种网页、平台、后台管理等,都需要表单,有简单的、也有复杂的,但是目的一致:收集用户的数据,然后提交给后端。
用户1174620
2022/06/30
2.4K0
【摸鱼神器】UI库秒变低代码工具——表单篇(一)设计
meta生成器 —— 表单元素组件 meta表单代码meta的模板data变幻
meta(json)需要手写吗?别闹,手写多麻烦呀,我这么懒怎么可能手写,这辈子都别想,所以要弄个工具出来,咱们说干就干。
用户1174620
2020/09/15
1.1K0
Vue3组件(九)Vue + element-Plus + json = 动态渲染的表单控件 单列多列
把表单需要的属性,统统放入json里面,然后用require(方便) 或者aioxs(可以热更新)加载进来,这样就可以实现动态渲染了。 比如要实现公司信息的添加、修改,那么只需要加载公司信息需要的json即可。 想要实现员工信息的添加、修改,那么只需要加载员工信息需要的json。
用户1174620
2021/03/02
4.2K0
Vue3组件(九)Vue + element-Plus + json = 动态渲染的表单控件
    



单列多列
基于 el-form 封装一个依赖 json 动态渲染的表单控件 定义接口,统一规范封装各种表单子控件定义属性定义内部model实现多行多列和布局调整实现扩展实现数据联动实现组件联动
基于 el-form 封装了一个表单控件,包括表单的子控件。 既然要封装,那么就要完善一些,把能想到的功能都要实现出来,不想留遗憾。 毕竟UI库提供的功能都很强大了,不能浪费了对吧。
用户1174620
2021/05/20
1.7K0
从后端到前端之Vue(六)表单组件 HTML5原生的表单和表单元素Vue组件的基础知识表单元素组件辅助工具开源
  要想做好表单组件,必须先知道HTML5里面的表单和表单元素都有哪些属性,以及属性的效果和作用,否则的话可能折腾半天才发现,原来HTML5已经自带了这个功能!   比如要实现这样一个功能:文本框只能输入数字,然后要加上两个按钮,按一个数值+1,按另一个数值-1。以前要写js代码实现,现在只需要把type改成number就可以了。而且可以对输入的文字做拦截,非数字根本输入不进去,这样就不用我们自己再去写代码实现了。所以磨刀不误砍柴工,我们先来整理一下,表单和表单属性都有哪些属性。
用户1174620
2020/09/03
5.2K0
从后端到前端之Vue(六)表单组件
    



HTML5原生的表单和表单元素Vue组件的基础知识表单元素组件辅助工具开源
如何优雅的设置UI库组件的属性?
https://naturefw.gitee.io/nf-rollup-ui-controller/
用户1174620
2022/05/09
1.8K0
如何优雅的设置UI库组件的属性?
基于 element-plus 封装一个依赖 json 动态渲染的查询控件 文本数字单选组的查询勾选和开关级联选择日期年、年月、年周的查询日期时间的查询快速查询自定义查询方案更多查询
使用 vue3 + element-plus 封装了一个查询控件,专为管理后台量身打造,支持各种查询需求:
用户1174620
2021/06/09
2.2K0
基于 element-plus 封装一个依赖 json 动态渲染的查询控件
    




文本数字单选组的查询勾选和开关级联选择日期年、年月、年周的查询日期时间的查询快速查询自定义查询方案更多查询
vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)
效果展示的在线预览页面为 http://vue.tuokecat.com/#/webpack-app/form
aehyok
2021/10/25
5.4K0
vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)
37.Django1.11.6文档
第一步 入门 检查版本 python -m django --version 创建第一个项目 django-admin startproject mysite 运行 python manage.py runserver 更改端口 python manage.py runserver 8080 更改IP python manage.py runserver 0:8000 1.创建app 创建投票应用 python manage.py startapp polls polls/views.py from dj
zhang_derek
2018/04/11
24.6K0
37.Django1.11.6文档
最全面、最详细web前端面试题及答案总结
本章是HTML考点的⾮重难点,因此我们采⽤简略回答的⽅式进⾏撰写,所以不会有太多详细的解释。我们约定,每个问题后我们标记『✨ 』的为⾼频⾯试题 doctype的作⽤是什么?✨ DOCTYPE是html5标准⽹⻚声明,且必须声明在HTML⽂档的第⼀⾏。来告知浏览器的解析器⽤什么⽂档标准解析这个 ⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript 脚本的解析 ⽂档解析类型有: BackCompat:怪异模式,浏览器使⽤⾃⼰的怪异模式解析渲染⻚⾯。(如果没有声明DOCTYPE,默认就是这个模式) CSS1Compat:标准模式,浏览器使⽤W3C的标准解析渲染⻚⾯。 IE8还有⼀种介乎于上述两者之间的近乎标准的模式,但是基本淘汰了。
全栈程序员站长
2022/08/01
8.2K0
推荐阅读
基于Ant Design Vue封装一个表单控件
3.2K0
文档驱动 —— 查询组件:将查询功能做到极致!你说还有啥没包含进来?antdv + vue 3.0 全新体验 快捷查询个性化查询方案更换各种查询方式更多的查询条件meta 驱动封装基础
1.3K0
文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。 表单一 公司信息表单二 员工信息,简化版,只是为了演示表单的切换。以后会出
8440
【摸鱼神器】UI库秒变低代码工具——表单篇(二)子控件
8150
文档驱动 —— 表单组件(一):表单元素组件 优点缺点选择文本类的Inputcheck 多选value的类型问题
8820
【摸鱼神器】UI库秒变低代码工具——表单篇(一)设计
2.4K0
meta生成器 —— 表单元素组件 meta表单代码meta的模板data变幻
1.1K0
Vue3组件(九)Vue + element-Plus + json = 动态渲染的表单控件 单列多列
4.2K0
基于 el-form 封装一个依赖 json 动态渲染的表单控件 定义接口,统一规范封装各种表单子控件定义属性定义内部model实现多行多列和布局调整实现扩展实现数据联动实现组件联动
1.7K0
从后端到前端之Vue(六)表单组件 HTML5原生的表单和表单元素Vue组件的基础知识表单元素组件辅助工具开源
5.2K0
如何优雅的设置UI库组件的属性?
1.8K0
基于 element-plus 封装一个依赖 json 动态渲染的查询控件 文本数字单选组的查询勾选和开关级联选择日期年、年月、年周的查询日期时间的查询快速查询自定义查询方案更多查询
2.2K0
vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)
5.4K0
37.Django1.11.6文档
24.6K0
最全面、最详细web前端面试题及答案总结
8.2K0
相关推荐
基于Ant Design Vue封装一个表单控件
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验