uniapp开发一个动态表单组件-也许最佳实践

文档

发布文档
插件地址

HbuilderX上传到dcloud的插件库

组件展示

在这里插入图片描述

wangzy-dynamicForm

vue3 动态表单组件,基于 uniapp 开发,样式需要 sass 支持

组件说明

这是一个灵活的动态表单组件,支持多种输入类型,包括文本输入、选择器和日期时间选择等。

安装

在 uni_modules 目录下导入该组件。

基本使用

<template>
  <wangzy-dynamicForm :formConfig="formConfig" v-model:formData="formData" @onChange="handleChange" />
</template>

属性说明

属性名类型默认值说明
formConfigArray[]表单配置项数组
formDataObject{}表单数据对象
paddingNumber0表单内边距(rpx)
backgroundColorString‘#fff’表单背景色
layoutString‘vertical’布局方式,支持 ‘horizontal’/‘vertical’
labelColorString‘#333’标签文字颜色

表单配置项说明

每个配置项支持以下属性:

{
  type: String,       // 输入类型:'input'/'select'/'datetime'
  field: String,      // 字段名
  label: String,      // 标签文本
  required: Boolean,  // 是否必填
  placeholder: String,// 占位文本
  disabled: Boolean,  // 是否禁用
  showClear: Boolean, // 是否显示清除按钮
  hidden: Boolean,    // 是否隐藏
  // input类型特有属性
  inputType: String,  // 输入框类型
  maxLength: Number,  // 最大长度
  // select类型特有属性
  options: Array,     // 选项数组
  rangeKey: String,   // 选项标签键名
  // datetime类型特有属性
  format: String,     // 日期格式,默认'yyyy-MM-dd'
  ranges: Array       // 时间选择范围
}

事件

事件名说明回调参数
onChange表单值变化时触发(field, value)

示例

const formConfig = [
  {
    type: 'input',
    field: 'name',
    label: '姓名',
    required: true,
    placeholder: '请输入姓名',
  },
  {
    type: 'select',
    field: 'gender',
    label: '性别',
    options: [
      { label: '男', value: 1 },
      { label: '女', value: 2 },
    ],
    placeholder: '请选择性别',
  },
  {
    type: 'datetime',
    field: 'birthday',
    label: '生日',
    format: 'yyyy-MM-dd',
    placeholder: '请选择日期',
  },
];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值