更新记录
1.3.1(2024-06-06)
下载此版本
描述调整
1.3.0(2024-06-06)
下载此版本
bug修复
1.2.0(2024-06-02)
下载此版本
更新
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.1.0 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
ClForm 配置化表单
基于 uniapp
原生开发,通过简单代码即可轻松实现多样化表单展示,代码简洁,提高效率。
属性说明
属性名 |
说明 |
默认值 |
类型 |
formList |
表单数据,具体见下方【配置说明】 |
[] |
Array |
colspan |
表单分几列展示 |
1 |
[String, Number] |
hideBtn |
是否隐藏提交按钮 |
false |
Boolean |
disabled |
是否禁用表单 |
false |
Boolean |
align |
表单控件对齐方式 |
right |
String |
themeColor |
表单控件主题颜色 |
#007aff |
String |
placeholderColor |
提示文字颜色 |
#bbb |
String |
editBtnText |
提交按钮文字 |
提交 |
String |
@Cl_FormSubmit |
表单提交事件,event.detail = {key1:value1,key2:value2,...} |
-- |
Function |
@key 拼接 'ClChange' |
表单控件值发生变化时触发 change 事件,event.detail = {value:变化的值value} |
-- |
Function |
formList 配置说明
字段名 |
说明 |
可选值 |
默认值 |
title |
标签文本 |
-- |
-- |
label |
表单控件类型 |
input textarea switch radio checkbox tag-choose picker date-picker region-picker uploader video |
-- |
placeholder |
默认展示文字 |
-- |
-- |
key |
表单域 字段名称 |
-- |
-- |
value |
表单控件绑定值 |
-- |
-- |
array |
选择器选项,结构为 [{name: '', value:''}] |
[] |
-- |
toastMsg |
表单校验提示语,存在该属性则为必选项,通过 uni.showToast 方法弹出提示语 |
-- |
-- |
required |
存在该属性有红色必选标识* |
true/false |
-- |
disabled |
是否禁用表单控件 |
true/false |
-- |
column |
换行表单模式 |
true/false |
-- |
hr |
表单控件下方是否显示分割线 |
true/false |
-- |
colspan |
多列展示时,表单控件占据的列数 |
-- |
1 |
subTitle |
副标题 |
-- |
-- |
subTitleColumn |
副标题换行 |
true/false |
-- |
type |
input 控件类型 |
详见 |
-- |
maxlength |
textarea 控件属性,最大输入长度,设置为 -1 的时候不限制最大长度 |
Number |
-1 |
api |
uploader video 控件属性,上传接口 |
-- |
-- |
AsyncUpload |
uploader video 控件属性,异步上传,表单提交后才上传 |
true/false |
-- |
maxCount |
uploader video 控件属性,最多上传多少张图片 |
1-9 |
-- |
single |
tag-choose 控件属性,是否为单选 |
true/false |
-- |
maxCount |
tag-choose 控件属性,最多允许选择多少项,设置为 -1 的时候不限制 |
Number |
-1 |
rangeKey |
picker 控件属性 |
详见 |
|
Slot
name |
说明 |
top |
表单顶部内容 |
表单域 字段名称 |
每个表单控件下方内容 |
bottom |
表单底部内容 |
distance |
表单按钮与表单底部之间内容 |
button |
表单按钮内容 |
ClForm 表单方法
方法名 |
说明 |
参数 |
resetForm |
对整个表单进行重置,将所有字段值重置为初始值并移除校验结果 |
-- |
submit |
表单提交,会触发表单组件 @Cl_FormSubmit 事件 |
-- |
Demo
<template>
<view>
<CL-ClForm
ref="ClForm"
:formList="formList"
@Cl_FormSubmit="Cl_FormSubmit"
@key4ClChange="key4ClChange"
>
<view slot="key4" style="color: deepskyblue;">key4 插槽</view>
</CL-ClForm>
</view>
</template>
<script>
export default {
data() {
return {
// 配置表单数据
data: {
formList: [
{ title: "单行输入框", label: "input", placeholder: "请输入", key: "key1", value: "", toastMsg: "请输入单行输入框", colspan: 2, hr: true },
{ title: "多行输入框", label: "textarea", placeholder: "请输入", key: "key2", value: "", toastMsg: "请输入多行输入框", column: true, colspan: 2, hr: true },
{ title: "开关选择器", label: "switch", key: "key3", value: true, toastMsg: "请选择开关选择器", colspan: 2, hr: true },
{ title: "单项选择器", label: "radio", key: "key4", array: [{ name: '男', value: 'male' }, { name: '女', value: 'female' }], toastMsg: "请选择单项选择器", required: true, colspan: 2, hr: true },
{ title: "多项选择器", label: "checkbox", key: "key5", array: [{ name: '男', value: 'male' }, { name: '女', value: 'female' }], toastMsg: "请选择多项选择器", colspan: 2, hr: true },
{ title: "标签选择器", label: "tag-choose", key: "key6", array: [{ name: '男', value: 'male' }, { name: '女', value: 'female' }], toastMsg: "请选择标签选择器", column: true, colspan: 2, hr: true },
{ title: "普通选择器", label: "picker", placeholder: "请选择", key: "key7", rangeKey: "rangeKey", value: "", array: [{ rangeKey: '男', value: 'male' }, { rangeKey: '女', value: 'female' }], toastMsg: "请选择普通选择器", hr: true },
{ title: "日期选择器", label: "date-picker", placeholder: "请选择", key: "key8", value: "", toastMsg: "请选择日期选择器", hr: true },
{ title: "地区选择器", label: "region-picker", placeholder: "请输入", key: "key9", value: [], toastMsg: "请选择地区选择器", hr: true },
{ title: "电话", label: "input", type: "number", placeholder: "请输入", key: "phone", value: "", toastMsg: "请输入电话", hr: true },
{ title: "上传图片", subTitle: "(最多上传9张)", label: "uploader", key: "key10", value: [], api: "https://jsonplaceholder.typicode.com/posts/", AsyncUpload: false, maxCount: 9, toastMsg: "请上传图片", hr: true },
{ title: "上传视频", subTitle: "(最多上传9个)", label: "video", key: "key11", value: [], api: "https://jsonplaceholder.typicode.com/posts/", AsyncUpload: false, maxCount: 9, toastMsg: "请上传视频", hr: true }
]
},
},
methods: {
Cl_FormSubmit(e) {
console.log("🚀 ~ e:", e)
},
key4ClChange(e) {
console.log("🚀 ~ e:", e)
}
}
}
}
</script>
反馈&&交流
如有问题,可以评论区反馈