更新记录

1.0.9(2024-11-21) 下载此版本

  1. 添加表单自定义默认值(当有缓存值时,已缓存值为准)
  2. 添加onBlur、onChange事件,增强表单项之间联动性
  3. 添加校验通过后、调用接口前二次弹窗,配置项提效开发
  4. 添加块钱pageLoading、toast函数
  5. 添加表单项禁用

1.0.8(2024-11-21) 下载此版本

TODO: 精度条、失去焦点事件、$check快捷confirm

1.0.7(2024-11-20) 下载此版本

添加自动报错提示

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.27 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × ×

Easy-Form:简易而强大的表单组件

背景

在插件市场中,我们常常面临表单组件功能不全或使用复杂的问题。为了解决这些痛点,我结合了十年的前端开发经验,开发了一款易用且功能全面的表单组件——Easy-Form。

前置条件

在使用Easy-Form之前,请确保已安装uview2.0

DEMO

基础使用

<template>
    <easy-form ref="form" :list="list" v-model="value" :requiredTag="false" />
</template>

<script>
    export default {
        data() {
            return {
                value: {}  // 会根据组件类型自动添加默认值;
            }
        },
        methods: {
            list() {
                return [
                    {
                        label: '文本输入框',
                        desc: '这是额外描述',
                        descStyle: 'color:red;font-size:24rpx;',
                        type: 'input'
                    },
                    {
                        label: '文本域 ',
                        type: 'textarea',
                        maxlength: 200
                    },
                    {
                        label: '数组下拉选择',
                        type: 'select',
                        options: [{label:'张三',id:'a'},{label:'李四',id:'b'}]
                    },
                    {
                        label: '日期',
                        type: 'date',
                    }
                ]
            }
        }
    }
</script>

easy-from 属性

参数 说明 类型 可选值 默认值
list 返回数组,用来表示form-item项 Function - -
cacheKey 缓存表单数据,存入storage中 String - -
secretKey 缓存表单数据加密密钥,增加安全性 String - -
labelPosition 标题文字位置 String top、left top
labelWidth 设置文字left位置时,文本最大宽度 String - 240rpx
confirmText 二次弹窗文案,配置后提交前会有二次弹窗 String - -
requiredTag 是否显示必填项* Boolean - true
descStyle 公共表单项描述自定义样式 String - -

easy-from 方法

async function submit() {
    const valid = await this.$refs.form.$check()  // 校验表单
    if (valid) {
        this.$refs.form.$openPageLoading()  // 打开页面loading
        await this.sleep(50000)             // 调用接口
        this.$refs.form.$closePageLoading()  // 关闭页面loading
        await this.$refs.form.$toast({             // 等待成功提示完成
            type: 'success',
            message: "校验成功",
        })
        // 后续业务逻辑,如:跳转页面
    }
}
方法名 说明 参数 返回值
$check 校验表单 - Boolean
$openPageLoading 打开页面loading - -
$closePageLoading 关闭页面loading - -
$toast 消息提示 - -

easy-from list 公有属性

参数 说明 类型 可选值 默认值
label 表单项文本 String - -
prop 表单唯一值,必填 String - -
desc 表单项描述 String - -
descStyle 表单项描述自定义样式 String - -
placeholder 输入框占位文本 String - -
type 表单项类型 String input、textarea、select、cascader、date、radio、checkbox、rate、switch、upload、editor、tree -
required 是否必填 Boolean - -
rules 表单校验规则,自定义请看校验规则 Array ['phone','card','email','url',{type: 'array',min: 1,max: 2,message: '请选择1-2个之间'}] -
show 控制展示表单项目;function中value为表单值,可自动实时显隐控制 Function(value){return boolean} - -
disabled 控制禁用表单项目;同上 同上 - -
onChange 表单值发生变化事件;同上 Function(value){} - -

表单组件额外属性

输入框-input

参数 说明 类型 可选值 默认值
inputType 输入框类型 String int、number、card、car -
onBlur 失去焦点事件 Function(value){} int、number、card、car -

文本域-textarea

参数 说明 类型 可选值 默认值
maxlength 允许输入最大长度 Number - -

下拉选择-select

options、flashOptions 属性在checkbox、radio等有一维数组选项值的组件中生效

参数 说明 类型 可选值 默认值
options 选项值 ,Function形势时,可据value值,调用接口动态获取表单选项) [{label:'',id:''}]、async function(value){return []} - -
flashOptions 当options是接口获取数据时,每次显示下拉值时,先动态更新最新数据 Boolean - -

级联-cascader

参数 说明 类型 可选值 默认值
valueAllData value值是否返回整个node;否:只返回node.id Boolean - false
valueByTree 一般级联value是数组,但是有些接口只给某个节点值,设置true会遍历tree节点显示全路径value值,getTree获取数据才生效 Boolean - false
props 选项的label、id 的key - {label:'label',id:'id'}
getTree 选项值:返回整个树形选项数据 async function(){return [{label:'',id:'',children:[]}]} - -
getLevelData 选项值:懒加载;返回每次需要层级的选项数据;index:第几层数据;selectedNode:当前选中的node,一般是接口是parentId:selectedNode.id async function(index, selectedNode){return [{label:'',id:''}]} - -

下拉树-tree

参数 说明 类型 可选值 默认值
showCheckbox 是否多选 Boolean - false
selectOnlyLeaf 单选时,是否只允许选中末级节点 Boolean - false
valueOnlyLeaf 多选时,value值只包含末级值 Boolean - false
valueAllData value值是否返回整个node;否:只返回node.id Boolean - false
getTree 选项值:返回整个树形选项数据 async function(){return [{label:'',id:'',children:[]}]} - -

上传-upload

参数 说明 类型 可选值 默认值
uploadApi 文件上传接口; 一般调用公共uni.uploadFile封装函数; async funtion(tempUrl){return {url:'',其他额外属性}} - -
max 最大上传文件数 Number - 1
bkImage 自定义上传按钮背景图url,如实现上传身份证 String - -
width 宽度 String - -
height 高度 String - -
isFile 上传其他文件,变更文件列表展示形式 Boolean - false

富文本-editor

参数 说明 类型 可选值 默认值
uploadApi 文件上传接口; 一般调用公共uni.uploadFile封装函数; async funtion(tempUrl){return {url:''}} - -

隐私、权限声明

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

上传需要相册选择或摄像头权限

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

插件不采集任何数据

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

许可协议

MIT协议

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