vue+element-ui的form多表单组件及Descriptions详情页面封装(可实现单页面有多个表单/详情按模块的方式展示并且可以收缩)

一、最终效果

在这里插入图片描述

二、组件集成了以下功能

1、可以多模块配置form表单——配置formOpts对象
2、每个模块可以收起或展开——模块不设置title值取消此功能(或者设置disabled:true3、每个模块可以自定义插槽设置
4、头部标题可以显示隐藏——有title则显示没有则隐藏
5、可以自定义设置footer操作按钮(默认:表单显示取消和保存按钮;详情显示取消按钮)——设置 :footer="null"
6、多表单校验不通过可以指定哪个模块
7、可以设置tabs(默认展示第一个tab;可以指定展示某一个根据setSelectedTab方法)
8、头部返回操作默认返回上一页,若需要自定义可以设置isGoBackEvent
9、多模块详情页面value值可以自定义插槽
10、多模块详情页面value值可以自定义tip(提示)
11、多模块表单或详情页面如果不使用手风琴收缩功能可以设置“disabled:true

三、注意点

1、el-descriptions与el-descriptions-item组件无效时要注意更新最新element-ui版本
2、多模块表单是基于我之前封装的t-form组件

四、组件及demo地址

组件及demo地址

五、参数配置

配置参数(Attributes)

参数说明类型默认值
title头部返回按钮标题string
subTitle头部副标题string
extra操作区,位于 title 行的行尾(右侧)slot
footer底部操作区(默认展示“取消/保存”按钮;使用插槽则隐藏)footer="null"时隐藏底部操作String/slot
tabs页面展示是否需要页签(并且 tabs 的 key 是插槽)Array
isGoBackEvent点击头部返回(默认返回上一页,设置此值可以自定义 back 事件)Booleanfalse
handleType显示方式(edit 表 form 表单操作,desc 表详情页面)stringedit
----edithandleType=edit 表 form 表单操作的属性--
------formOpts表单配置描述,支持多分组表单Object
------submit保存时(调用 saveHandle 方法 ),返回 promise 可自动显示 loadingfunction所有表单数据
-----deschandleType=desc 表详情页面的属性--
------descColumn详情页面展示每行显示几列(handleType= desc 生效)Number4
------descData详情页面配置描述,支持多分组表 (handleType= desc 生效)Object
descData 配置参数
参数说明类型默认值
title详情标题(是否显示控制折叠面板功能)String
slotName插槽(自定义详情数据)有插槽就无需配置 dataslot
name每组详情定义的名字(作用:是否默认展开)String
disabled禁用时取消收缩功能及隐藏 icon)Booleanfalse
data详情配置项Object
----label详情字段说明标题String
----value详情字段返回值String
----slotName插槽(自定义 value)slot
----span占用的列宽,默认占用 1 列,最多 4 列Number1
----tooltipvalue 值的提示语String/function
formOpts 配置参数
参数说明类型默认值
title表单标题(是否显示控制折叠面板功能)String
slotName插槽(自定义表单数据)有插槽就无需配置 optsslot
name每组表单定义的名字(作用:是否默认展开)String
widthSize每行显示几个输入项(默认两项) 最大值 4Number3
disabled禁用时取消收缩功能及隐藏 icon)Booleanfalse
opts表单配置项Object
opts 配置参数
参数说明类型是否必须
rules规则(可依据 elementUI el-form 配置————对应 formData 的值)Object/Array
operatorList操作按钮 listArray
listTypeInfo下拉选择数据源(type:'select’有效)Object
labelWidthlabel 宽度(默认值 120px)String
formData表单提交数据(对应 fieldList 每一项的 value 值)Object
fieldListform 表单每项 listArray
----slotName自定义表单某一项输入框slot
----compform 表单每一项组件是输入框还是下拉选择等(可使用第三方 UI 如 el-select/el-input 也可以使用自定义组件)String
----bind表单每一项属性(继承第三方 UI 的 Attributes,如 el-input 中的 clearable 清空功能)默认清空及下拉过滤Object
----typeform 表单每一项类型String
----widthSizeform 表单某一项所占比例(如果一行展示可以设值:1)Number
-------arrLabeltype=select-arr 时,每个下拉显示的中文String
-------arrKeytype=select-arr 时,每个下拉显示的中文传后台的数字String
----labelform 表单每一项 titleString
----labelRender自定义某一项 titlefunction
----valueform 表单每一项传给后台的参数String
----rules每一项输入框的表单校验规则Object/Array
----list下拉选择数据源(仅仅对 type:'select’有效)String
----event表单每一项事件标志(handleEvent 事件)String
----className如果某一项需要一行显示则设置:className:‘t-form-block’String

events

事件名说明返回值
handleEvent单个查询条件触发事件fieldList 中的 event 值和对应输入的 value 值
tabsChange点击 tab 切换触发被选中的标签 tab 实例
validateError校验失败抛出事件obj——每个收缩块的对象
back头部标题点击返回事件-

Methods

事件名说明参数
resetFormFields重置表单-
clearValidate清空校验-
setSelectedTab默认选中 tab默认选中 tab 插槽名
saveHandle异步 form 表单校验,生成 submit 属性(是个 function 并返回所有表单数据)-

六、组件地址

gitHub组件地址

gitee码云组件地址

七、相关文章

基于Element-ui和ant-design-vue再次封装基础组件文档


vue+element-ui的table组件二次封装

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wocwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值