更新记录

1.3.1(2024-06-06)

描述调整

1.3.0(2024-06-06)

bug修复

1.2.0(2024-06-02)

更新

查看更多

平台兼容性

Vue2 Vue3
×
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>

反馈&&交流

如有问题,可以评论区反馈

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问